资源描述:
《基于单片机闹钟设计程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include#include//_nop_();#defineucharunsignedchar#defineuintunsignedintucharcodetable[]="9999-12-31MON";ucharcodetable1[]="23:59:55C";ucharcodetable2[]="0123456789abcdef";ucharcodetable3[]="CLOCKTIME";ucharcodetable4[]="--";//日期ucharcodetable5[]="::";//时间ucharday[]={31,28,3
2、1,30,31,30,31,31,30,31,30,31};//月份天数ucharxq[][3]={"Sun","Mon","Tue","Web","Thu","Fri","Sat"};//星期字符串数组ucharshiji,nian,yue,week,ri,shi,fen,miao,count,snum_1,snum_2,ns=0,nf=0,nm=0;//,t1,t2;bitnz=0,sz=0,n_key=1,K_n=1;//nz闹钟显示界面开关sz:设置界面开关sbitLCD_RS=P2^0;sbitLCD_EN=P2^2;sbitLCD_RW=P2^1;sbitKey_ce=P1^3
3、;sbitDig_ce=P1^1;sbitSeg_ce=P1^0;sbitSOUND=P2^3;voiddelay();//延时voidw_com(ucharcom);//写指令voidw_date1(uchardate);//写数据1voidw_date(uchari,ucharadd,uchardate);//在特定的位置显示数字i:显示行数add:显示的位置date:所要显示的值!voidstart();//初始化LCD显示屏,在LCD上显示“0123456789abcdef”X2voidchushiahua();//初始化voidtime();intkeyscan(inti);//
4、年月日、时分秒以及星期的正常显示!voidset();//时间设置voiddelay(uinti)//延时{uintj;for(i;i>0;i--)for(j=124;j>0;j--);17}voidw_com(ucharcom)//写指令{LCD_RS=0;LCD_EN=1;LCD_RW=0;P0=com;delay(5);LCD_EN=0;}voidw_date1(uchardat)//写数据子程序1{LCD_RS=1;LCD_EN=1;LCD_RW=0;P0=dat;delay(5);LCD_EN=0;}voidw_date(uchari,ucharadd,uchardate)//在
5、特定的位置显示数字i:显示行数add:显示的位置date:所要显示的值!{ucharshi,ge;shi=date/10;ge=date%10;if(i==1){w_com(0x80+add);w_date1(0x30+shi);w_date1(0x30+ge);}if(i==2){w_com(0x80+0x40+add);w_date1(0x30+shi);w_date1(0x30+ge);}}voidstart(ucharj)//初始化LCD显示屏,在LCD上显示“0123456789abcdef”X2{ucharnum;uchari;17w_com(0x38);//显示0011100
6、08为数据接口两行显示7bdew_com(0x0c);//光标不显示00001100显示开关控制显示开光标关闪烁关w_com(0x06);//指针加1,整屏不移动00000110读写操作后AC+1画面不动w_com(0x80);//指针指向0x8010000000~10101111指向第一行起点if(j==1)//测试LCD{for(i=0;i<3;i++){for(num=0;num<16;num++){w_date1(table2[num]);delay(20);}w_com(0x80+0x40);for(num=0;num<16;num++){w_date1(table2[num])
7、;delay(20);}}}if(j==2)//显示时钟{for(num=0;num<16;num++){w_date1(table4[num]);//ucharcodetable4[]="--";//日期delay(20);}w_com(0x80+0x40);for(num=0;num<16;num++){w_date1(table5[num]);//ucharcodetable5[]="::";//时间delay(2