该【用51单片机在12864液晶上实现 电子钟 】是由【学锋】上传分享,文档一共【6】页,该文档可以免费在线阅读,需要了解更多关于【用51单片机在12864液晶上实现 电子钟 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..#include<>#include<>#defineucharunsignedchar#defineuintunsignedintcharsecond=0;charminite=0;charhour=0;intn=0;bits2=0;bits3=0;bits4=0;bits5=0;//bits6=0;/*共阳数码管字型码*//*0,1,2,3,4,5,6,7,8,9,p.,灭*/charcodedis_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x0c,0xff,0xbf};/*P点显示代码序号*/chardatafind_code[]={0,0,12,0,0,12,0,0};/********************************************************///函数名:voidDelay1ms(uintcount)//功能:延时时间为1ms//输入参数:count,1ms计数//说明:总共延时时间为1ms乘以count,crystal=12Mhz/********************************************************//*延迟函数*/voidDelay1ms(uintcount){uintj;while(count--!=0){for(j=0;j<80;j++);}}/************************************************************************//*显示函数*//************************************************************************/voiddisp(){chari,j=0xfe;chark;:..for(i=0;i<8;i++){P2=j;k=find_code[i];P0=dis_code[k];Delay1ms(1);j=_crol_(j,1);}P0=0xff;}/*************************************************************************函数原型:keychuli();*功能:处理与键盘相连的P1口的内容,作为键值。************************************************************************/ucharkeychuli(){uchark;k=P1;//P1口内容送Kk=~k;//取反return(k);//返回键值}/*************************************************************************函数原型:key();*功能:键盘扫描函数,函数返回值即键值。************************************************************************/ucharkey(){ucharkeyzhi,keyzhii;//电子钟键盘按键键值临时存放keyzhi=keychuli();//调P1口处理函数if(keyzhi!=0)//有键动作延时去抖动,否则函数返回{disp();disp();keyzhi=keychuli();//再次调P1口处理函数if(keyzhi!=0)//真正有键按下,取键值并暂存{keyzhii=keyzhi;while(keyzhi!=0)//判按键是否释放,没有释放延时去抖动等待释放{disp();disp();keyzhi=keychuli();:..}keyzhi=keyzhii;//按键释放后恢复按键键值}}return(keyzhi);//返回按键键值}voidzxxq()/*更新显示区*/{find_code[0]=second%10;find_code[1]=second/10;find_code[2]=12;find_code[3]=minite%10;find_code[4]=minite/10;find_code[5]=12;find_code[6]=hour%10;find_code[7]=hour/10;}/*中断函数*/TTCO()interrupt1using1{TH0=(65536-49999)/256;//赋初值TL0=(65536-49999)%256;n++;if(n==20){n=0;second++;if(second==60){second=0;minite++;if(minite==60){minite=0;hour++;if(hour==24){hour=0;}}}:..}zxxq();}/*主函数*/voidmain(){charkz;EA=1;ET0=1;TMOD=0X01;TH0=(65536-49999)/256;TL0=(65536-49999)%256;find_code[0]=11;find_code[1]=11;find_code[2]=11;find_code[3]=11;find_code[4]=11;find_code[5]=11;find_code[6]=11;find_code[7]=10;disp();while(1){kz=key();switch(kz){case0x00:disp();break;/*判断键值后直接调用循环显示函数*/case0x01:s2=!s2;/*s2表示启动/停止标志*/if(s2){TR0=1;zxxq();disp();}if(s2==0)/*停止*/{TR0=0;zxxq();disp();}break;:..case0x02:/*调时*/if(s2==0)hour++;if(hour==24)hour=0;zxxq();disp();break;case0x04:/*调分*/if(s2==0)minite++;if(minite==60)minite=0;zxxq();disp();break;case0x08:/*调秒*/if(s2==0)second++;if(second==60)second=0;zxxq();disp();break;}}}
用51单片机在12864液晶上实现 电子钟 来自淘豆网m.daumloan.com转载请标明出处.