文档详情

SD2403与TM1640显示时钟程序(国外英文资料).doc

发布:2017-06-09约6.43千字共23页下载文档
文本预览下载声明
SD2403与TM1640显示时钟程序(国外英文资料) # include reg52.h # include stdio . h # include intrins.h #定义uchar unsigned char #定义使用uint unsigned int / * * * * * * TM1640端口的定义* * * * * * / sbit sci = P2 ^ 0; sbit sda = P2 ^ 1;/ /串行通讯口 / * * * * * * SD2403端口的定义* * * * * * / sbit SCL1 = P0 ^ 7; sbit SDA1 = P0 ^ 6; uchar data1、data2 data3 data4; uchar日期[7];/ /日期数组 / /日期[6]=,日期[5]=月,日期[4]=天,日期[3]=一周, / /日期[2]=小时,日期[1]=分钟,日期[0]=第二 #定义真正的1 #定义错误0 / * * * * * * TM1640函数名* * * * * * / 空白开始(); 无效停止(); 空写(uchar日期); 空白init_tm1640(uchar i,j); 空白send_z(uchar地址、日期); 无效发送(uchar地址、日期); / * * * * * * TM1640开始* * * * * * / 无效的start() { sda = 1; sci = 1; _nop_(); _nop_(); sda = 0; _nop_(); _nop_(); sci = 0; _nop_(); _nop_(); } / * * * * * * TM1640结束* * * * * * / 无效停止() { sda = 0; sci = 1; _nop_(); _nop_(); sda = 1; _nop_(); _nop_(); sci = 0; _nop_(); _nop_(); } / * * * * * *写字节* * * * * * / 空写(uchar日期) { uchar我,aa; aa =日期; sda = 0; sci = 0; (我= 0; 8;我+ +) { sci = 0; 如果(aa0x01) { sda = 1; _nop_(); _nop_(); } 其他的 { sda = 0; _nop_(); _nop_(); } sci = 1; aa aa = 1; } sci = 0; sda = 0; } / * * * * * *向TM1640发送显示数据* * * * * * / / * * * * * *初始化TM1640 * * * * * * / 空白init_tm1640(uchar i,j) { sda = 1; sci = 1; 开始(); 写(我);/ /设置数据,0 x40 0 x44分别对应地址自动加一和固定地址模式 停止(); 开始(); 写(j);/ /控制显示,开显示,0 x88 0 x89 0 x8a 0 x8b 0 x8c 0 x8d 0 x8e,0 x8f分别对应脉冲宽度为: / / - - - - - - - - - - - - - - - - - - 1/16,2/16,4/16,10/16,11/16,12/16,13/16,13/16 / / 0 x80关显示 停止(); } / * * * * * *自动加一模式* * * * * * / 空白send_z(uchar地址、日期) { uchar我; 开始(); 写(地址);/ /设置起始地址 (我= 0; 16,我+ +) { 写(日期); } 停止(); } / * * * * * *固定地址模式* * * * * * / 无效发送(uchar地址、日期) { 开始(); 写(地址);/ /传显示数据对应的地址 写(日期);/ /传1字节显示数据 停止(); } / * * * * * * SD2400函数名* * * * * * / 空白I2CWait(无效); 位I2CStart(无效); 空白I2CStop(无效); 空白I2CAck(无效); 空白I2CNoAck(无效); 位I2CWaitAck(无效); Void I2CSendByte (uchar demand); Uchar I2CReceiveByte (void); Bit I2CReadDate (void); Void I2CWriteStatus (void); Void Delay (uint nn); Bit I2CWriteDate (void); Bit WriteTimeOn (void); Bit WriteTimeOff (void); (2
显示全部
相似文档