• 大小: 10.77MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-06
  • 语言: 其他
  • 标签: rifd  

资源简介

rfid技术文档与arduino的结合与参考代码,方便学习rfid技术文档与arduino的结合与参考代码,方便学习

资源截图

代码片段和文件信息

#include “WProgram.h“
#include “DS1302.h“


/*** Time definitions ***/

Time::Time(uint16_t yr uint8_t mon uint8_t date
           uint8_t hr uint8_t min uint8_t sec
           uint8_t day)
{
  this->yr   = yr;
  this->mon  = mon;
  this->date = date;
  this->hr   = hr;
  this->min  = min;
  this->sec  = sec;
  this->day  = day;
}


Time::Time()
{
  Time(2000 1 1 0 0 0 7);
}


/*** DS1302 definitions ***/

DS1302::DS1302(uint8_t ce_pin uint8_t io_pin uint8_t sclk_pin)
{
  _ce_pin = ce_pin;
  _io_pin = io_pin;
  _sclk_pin = sclk_pin;

  pinMode(ce_pin OUTPUT);
  pinMode(sclk_pin OUTPUT);
}


void DS1302::_write_out(uint8_t value)
{
  pinMode(_io_pin OUTPUT);
  shiftOut(_io_pin _sclk_pin LSBFIRST value);
}


uint8_t DS1302::_read_in()
{
  uint8_t input_value = 0;
  uint8_t bit = 0;
  pinMode(_io_pin INPUT);

  for (int i = 0; i < 8; ++i) {
    bit = digitalRead(_io_pin);
    input_value |= (bit << i);

    digitalWrite(_sclk_pin HIGH);
    delayMicroseconds(1);
    digitalWrite(_sclk_pin LOW);
  }

  return input_value;
}


uint8_t DS1302::_register_bcd_to_dec(reg_t reg uint8_t high_bit)
{
  uint8_t val = read_register(reg);
  uint8_t mask = (1 << (high_bit + 1)) - 1;
  val &= mask;
  val = (val & 15) + 10 * ((val & (15 << 4)) >> 4);
  return val;
}


uint8_t DS1302::_register_bcd_to_dec(reg_t reg)
{
  return _register_bcd_to_dec(reg 7);
}


void DS1302::_register_dec_to_bcd(reg_t reg uint8_t value uint8_t high_bit)
{
  uint8_t regv = read_register(reg);
  uint8_t mask = (1 << (high_bit + 1)) - 1;

  /* convert value to bcd in place */
  uint8_t tvalue = value / 10;
  value = value % 10;
  value |= (tvalue << 4);

  /* replace high bits of value if needed */
  value &= mask;
  value |= (regv &= ~mask);

  write_register(reg value);
}


void DS1302::_register_dec_to_bcd(reg_t reg uint8_t value)
{
  _register_dec_to_bcd(reg value 7);
}


uint8_t DS1302::read_register(reg_t reg)
{
  uint8_t cmd_byte = 129;  /* 1000 0001 */
  uint8_t reg_value;
  cmd_byte |= (reg << 1);

  digitalWrite(_sclk_pin LOW);
  digitalWrite(_ce_pin HIGH);

  _write_out(cmd_byte);
  reg_value = _read_in();

  digitalWrite(_ce_pin LOW);

  return reg_value;
}


void DS1302::write_register(reg_t reg uint8_t value)
{
  uint8_t cmd_byte = (128 | (reg << 1));

  digitalWrite(_sclk_pin LOW);
  digitalWrite(_ce_pin HIGH);

  _write_out(cmd_byte);
  _write_out(value);

  digitalWrite(_ce_pin LOW);
}


void DS1302::write_protect(bool enable)
{
  write_register(WP_REG (enable << 7));
}


void DS1302::halt(bool enable)
{
  uint8_t sec = read_register(SEC_REG);
  sec &= ~(1 << 7);
  sec |= (enable << 7);
  write_register(SEC_REG sec);
}


/*** Get time ***/

uint8_t DS1302::seconds()
{
  return _register_bcd_to_dec(SEC_REG 6);
}


uint8_t DS1302::minutes()
{
  return _register_bcd_to_dec(MIN_REG);
}


uint8_t DS1302::hour()
{
  uint8_t hr = read_register(HR_REG);
  uint8_t adj;
  if (hr & 128)  /* 12-hour mode */
    adj = 12 * ((hr & 32) >> 5);
  e

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件   10293699  2013-05-27 20:09  rfid\rfid.PDF

     文件    2526921  2007-06-01 10:35  rfid\RC522.pdf

    ..A.SH.      6656  2013-05-27 20:15  rfid\Thumbs.db

     文件      18818  2012-06-29 10:48  rfid\lib\DoorCon\DoorCon.pde

     文件      20358  2012-06-29 10:41  rfid\lib\RFID\RFID.pde

     文件       5398  2009-05-19 22:00  rfid\lib\DS1302\DS1302.h

     文件       4368  2009-05-19 22:00  rfid\lib\DS1302\DS1302.cpp

     文件       2571  2011-11-17 12:25  rfid\lib\DS1302\examples\DS1302_Example\DS1302_Example.pde

     文件       1948  2009-05-19 22:00  rfid\lib\DS1302\examples\set_clock\set_clock.pde

     文件       1095  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\keywords.txt

     文件       8276  2011-08-10 21:36  rfid\lib\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp

     文件       3340  2011-08-10 21:35  rfid\lib\LiquidCrystal_I2C\LiquidCrystal_I2C.h

     文件      41564  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\LiquidCrystal_I2C.o

     文件       1413  2012-11-29 14:11  rfid\lib\LiquidCrystal_I2C\examples\CustomChars\CustomChars.pde

     文件      93218  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\examples\CustomChars\applet\core.a

     文件       1588  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\examples\CustomChars\applet\CustomChars.cpp

     文件         13  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\examples\CustomChars\applet\CustomChars.cpp.eep

     文件      51878  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\examples\CustomChars\applet\CustomChars.cpp.elf

     文件      12090  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\examples\CustomChars\applet\CustomChars.cpp.hex

     文件       9044  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\examples\CustomChars\applet\CustomChars.cpp.o

     文件      16140  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\examples\CustomChars\applet\HardwareSerial.cpp.o

     文件       3028  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\examples\CustomChars\applet\pins_arduino.c.o

     文件      25124  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\examples\CustomChars\applet\Print.cpp.o

     文件       5588  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\examples\CustomChars\applet\WInterrupts.c.o

     文件       8748  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\examples\CustomChars\applet\wiring.c.o

     文件       6532  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\examples\CustomChars\applet\wiring_analog.c.o

     文件       8240  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\examples\CustomChars\applet\wiring_digital.c.o

     文件       6416  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\examples\CustomChars\applet\wiring_pulse.c.o

     文件       4052  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\examples\CustomChars\applet\wiring_shift.c.o

     文件       6992  2010-07-17 15:53  rfid\lib\LiquidCrystal_I2C\examples\CustomChars\applet\WMath.cpp.o

............此处省略97个文件信息

评论

共有 条评论