Ds1302消除干扰实用方案程序.docVIP

  • 19
  • 0
  • 约4.13万字
  • 约 28页
  • 2017-08-21 发布于安徽
  • 举报
Ds1302消除干扰实用方案程序 #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int sbit D1=P3^1; sbit D2=P3^2; sbit dk3=P3^4; sbit dk2=P3^5; sbit dk1=P3^6; sbit dk0=P3^7; sbit d1=P2^4; sbit d2=P2^5; sbit d3=P2^6; sbit d4=P2^7; sbit sck = P2^2 ; //实时时钟时钟线引脚 sbit io = P2^1; //实时时钟数据线引脚 sbit rst= P2^0; //实时时钟复位线引脚 //sbit ACC0 = ACC^0; //sbit ACC_7 = ACC^7; //位寻址寄存器定义 */ sbit DQ = P3^3;//ds18B20温度传感器定义 #define jump_ROM 0xCC //跳过ROM命令 #define start 0x44 #define read_EEROM 0xBE //读存储器命令 //uchar code table[]={0x28,0xf9,0x4c,0x58,0x99,0x1a,0x0a,0xf8,0x08,0x18}; uchar code table[]={0x20,0xf1,0x44,0x50,0x91,0x12,0x02,0xf0,0x00,0x10}; uchar time_data[7]={11,6,12,31,19,28,30}; //年 周 月 日 时 分 秒 (设置数组 ) uchar write_add[7]={0x8c,0x8a,0x88,0x86,0x84,0x82,0x80}; //写地址数组 uchar read_add[7]={0x8d,0x8b,0x89,0x87,0x85,0x83,0x81};//读地址数组 uchar ylmonth1,ylmonth2,ylday1,ylday2,week, ch1,ch2,lednum1,lednum2,lednum3,lednum4,jq1,jq2,ab,TMPH,TMPL,month,ylmonth,day,ylday,shi, fen,miao,num,temp1,tempn,lednum,day_24,f,c,w,k,j,i,AM; // stp, uint year,a1,a,a2; uchar code table0[]={0x20,0xf1,0x44,0x50,0x91,0x12,0x02,0xf0,0x00,0x10}; uchar code table1[]={0x20,0xf1,0x44,0x50,0x91,0x12,0x02,0xf0,0x00,0x10}; //LED节气显示灯码表 uchar code led_table[]={0xf7,0xf6,0xf5,0xf3,0xe7,0xd7,0xb7}; //6位管脚一次排列 uchar code table_led1[]={0xf6,0xf4,0xf0,0xe0,0xc0,0x80,0x80,0x80,0x80,0x80,0x80,0x80};//LEDtemp1闪灯码表 uchar code table_led2[]={0xf7,0xf7,0xf7,0xf7,0xf7,0xf7,0xf6,0xf4,0xf0,0xe0,0xc0,0x80};//LEDtemp2闪灯码表 void write_1302_byte(uchar dat); void write_1302(uchar add,uchar dat); uchar read_1302(uchar add); void set_rtc(void); //时间初始化设置所有数据一下子全部写进去 void read_rtc(void);//所有数据一下子全部读出来 void time_pros(void); //处理函数 读出来的十六进制数据转换成十进制数 uchar disp[13]; //处理完的数据放在这个数组当中 void display(void); /*void delay(uint z) { uint x,y; for(x=z;x0;x--) for(y=110;y0;y--); } */ void w

文档评论(0)

1亿VIP精品文档

相关文档