⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds1990a.c

📁 开锁程序,可以通过DA1990a打开门的锁
💻 C
字号:
/*
;-----------------------------------------
;程序文件名称:DS1990A.C
;软件标题:DS1990A操作标准子程序集
;软件说明:DS1990A ROM码读取程序
;程序最后修改时间: 2007-11-03 13:10
;-----------------------------------------
;原作者:   张  鑫    
;程序修改人:张  鑫
;版本号:	  V1.0.0
;-----------------------------------------
*/ 
#include <intrins.h>

#define T4us _nop_();_nop_();_nop_();_nop_();           //延时4us的宏   base=11.059Mhz(精确控制)
#define T6us _nop_();_nop_();_nop_();_nop_();_nop_();   //延时6us的宏   base=11.059Mhz(精确控制)

//外部变量声明
extern bit Key;

//*********************************************
//函数功能:发出复位脉冲
//入口:无
//出口:  0=失败,1=成功,失败表示总线被钳在低电平
//*********************************************
bit TouchReset(void)
{
       uchar i;
       bit a;
       Key=0;                        //拉低总线
       for (i=230;i>0;--i);          //保持500us         base=11.059Mhz(精确控制)
       Key=1;                        //释放总线
       i=255;                        //超时1.6ms         base=11.059Mhz(精确控制)
       while (--i)
              if (Key==1)            //等待总线拉高
              {
                    a=0;
                    for (i=63;i>0;--i)     //延时480us   base=11.059Mhz(精确控制)
                          a|=!Key;         //采集总线状态
                    return(a);             //返回总线状态
              }
       return(0);                          //返回失败标示
}

//********************************************************
//函数功能:读入DS1990A的SN,要检查复位情况和CRC,总共读10次
//入口: 指向内部RAM的指针
//出口: 返回0表示没有成功读取,指针的值不变,返回1表示成功读
//      取,指针指向最后一个字节
//*********************************************************
 bit Read1990a(void)
{
    uchar c;
    for (c=30;c>0;--c)                                     //最多读10次
      {
          if (TouchReset())                               //检查复位是否正确
             {
               return(1);                                 //成功返回1
             }
      }
      return(0);                                          //失败返回0
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -