首页 8数码管闹钟c程序

8数码管闹钟c程序

举报
开通vip

8数码管闹钟c程序8数码管闹钟c程序#include#include#include#include#include#include#include#defineucharunsignedchar#defineuintunsignedintsbitalout=P3^7;voidaloutput(){uchari;for(i=0;i#defineucharunsignedchar#defineuintunsignedintucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07...

8数码管闹钟c程序
8数码管闹钟c程序#include#include#include#include#include#include#include<24C02IIC.c>#defineucharunsignedchar#defineuintunsignedintsbitalout=P3^7;voidaloutput(){uchari;for(i=0;i<8;i){if(al[i].m==hour&&al[i].s==min){if(al[i].alon==0);if(al[i].alon==1)alout=0;if(al[i].alon==2)alout=1;}}}//***************主函数**********************************************voidmain(){  alout=1;ini();iicread();//init_ds1302();//每次上电写入时间,仅作为调试程序用  while(1){  send();                   //送数display(a0,a1,a2,a3,a4,a5,a6,a7); //显示chuli();aloutput();if(stoptime)stoptimes();if(starttime)starttimes();if(!settime)timerup();if(saveiic)iicsave();if(readiic)iicread();if(function==1||function_al!=0)reset=0;}}#include#defineucharunsignedchar#defineuintunsignedintucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40,0xb8,0xf4};//0~9,OFF,-,h.,L.//***************显示子程序*******************************************************************voiddisplay(uchara7,uchara6,uchara5,uchara4,uchara3,uchara2,uchara1,uchara0){    P0=table[a0];P1=0xfe;delay(2);P0=table[a1];P1=0xfd;delay(2);P0=table[a2];P1=0xfb;delay(2);P0=table[a3];P1=0xf7;delay(2);P0=table[a4];P1=0xef;delay(2);P0=table[a5];P1=0xdf;delay(2);P0=table[a6];P1=0xbf;delay(2);P0=table[a7];P1=0x7f;delay(2);}//******************将数送至缓冲单元,当shan的标志位为1时,再根据此时的此时的功能标示,对该位熄灭**************************voidsend()  { if(function_al==0)  //time{a0=sec;a1=sec/10;a2=11;a3=min;a4=min/10;a5=11;a6=hour;a7=hour/10;}if(function_al!=0)  //al{a0=al[function_al-1].s;a1=al[function_al-1].s/10;a2=11;a3=al[function_al-1].m;a4=al[function_al-1].m/10;a5=11;a6=al[function_al-1].alonadd;a7=function_al;}if(shan==1&&next==0&&(function_al!=0||function!=0)){a0=10,a1=10;a2=10;a3=10,a4=10;a5=10;a6=10,a7=10;}    if(shan==1&&next==1&&(function_al!=0||function!=0)){a0=10,a1=10;} if(shan==1&&next==2&&(function_al!=0||function!=0)){a3=10,a4=10;}if(shan==1&&next==3&&(function_al!=0||function!=0)){a6=10,a7=10;} }voiddisplay(uchara7,uchara6,uchara5,uchara4,uchara3,uchara2,uchara1,uchara0);voidsend();voiddelay(uintcount);#defineucharunsignedchar#defineuintunsignedint#define AT24C020xa0 //AT24C02地址bitISendStr(unsignedchar sla,unsignedchar suba,unsignedchar *s,unsignedchar no);bitIRcvStr(unsignedchar sla,unsignedchar suba,unsignedchar *s,unsignedchar no);ucharreset,t0,t1,sec,min,hour,function,a0,a1,a2,a3,a4,a5,a6,a7;ucharfunction_al,next,stop;ucharadd=11,pDat[24];bitshan,stoptime,starttime,settime,saveiic,readiic;struct{ucharalon;  ucharm;  uchars;}al[8];    //8AL  结构数组voidresets(){init_ds1302();al[0].m=8; al[0].s=3; al[0].alon=1;al[1].m=12;  al[1].s=0; al[1].alon=2;al[2].m=13;  al[2].s=33; al[2].alon=1;//al[3].m=17;  al[3].s=30; al[3].alon=2;//al[4].m=18;  al[4].s=3; al[4].alon=1;//al[5].m=21;  al[5].s=0; al[5].alon=2;//al[6].m=0;  al[6].s=0; al[6].alon=1;//al[7].m=8;  al[7].s=0; al[7].alon=2;saveiic=1;}voidiicsave()  //保存数据{  uchari;EA=0;for(i=0;i<2;i){pDat[i0]=al[i].s;pDat[i2]=al[i].m;pDat[i4]=al[i].alon;}ISendStr(AT24C02,0,&pDat[0],6);  delay(20);for(i=2;i<4;i){pDat[i4]=al[i].s;pDat[i6]=al[i].m;pDat[i8]=al[i].alon;}ISendStr(AT24C02,0,&pDat[0],6);delay(20);saveiic=0;EA=1;}voidiicread()   //读取数据{  uchari;EA=0;IRcvStr(AT24C02,0,&pDat[0],6);for(i=0;i<2;i){al[i].s=pDat[i0];al[i].m=pDat[i2];al[i].alon=pDat[i4];}     delay(20);IRcvStr(AT24C02,0,&pDat[0],6);for(i=2;i<4;i){al[i].s=pDat[i4];al[i].m=pDat[i6];al[i].alon=pDat[i8];}     delay(20);readiic=0;EA=1;}voidstoptimes(){write_ds1302(0x8e,0x00);//WP写保护关 write_ds1302(0x80,0x80|((sec/10)*16(sec)));//stop秒write_ds1302(0x8e,0x80);//写保护开stoptime=0;starttime=0;}voidstarttimes(){write_ds1302(0x8e,0x00);//WP写保护关 write_ds1302(0x80,0x00|((sec/10)*16(sec)));//stop秒write_ds1302(0x8e,0x80);//写保护开stoptime=0;starttime=0;}voidsavetime()  //savetime{write_ds1302(0x8e,0x00);write_ds1302(0x80,0x80|((sec/10)*16(sec)));
本文档为【8数码管闹钟c程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_721103
暂无简介~
格式:doc
大小:25KB
软件:Word
页数:0
分类:
上传时间:2021-09-07
浏览量:13