51_52单片机(89c52)数码管时钟程序_免费下载.doc_第1页
51_52单片机(89c52)数码管时钟程序_免费下载.doc_第2页
51_52单片机(89c52)数码管时钟程序_免费下载.doc_第3页
51_52单片机(89c52)数码管时钟程序_免费下载.doc_第4页
51_52单片机(89c52)数码管时钟程序_免费下载.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/52单片机程序/*/* 数码管时钟89c52 */*/*程序可调时间,可设闹钟 ,数码管共阳驱动。 */*功能键 K1 K2 K3 K4 功能如下 */*K1按一下:(显示)显示正常走时间 */*K1按两下:(调时)K2按一下再按K3K4调时间时位,K2按两下再按*/* K3K4调时间分位,K2按三下再按K3K4调时间秒位 */*K1按三下:(显示)显示设置的闹钟时间 */*K1按四下:(设闹钟)K2按一下再按K3K4设闹钟时间时位,K2按两*/* 下再按K3K4设闹钟时间分位K2按三下再按K3K4设闹钟时间秒位 */*K3加键 */*K4减键 */*/*作者:陈朝宝 */*学校:寿宁职业技术学校 */*日期:2010年12月22日星期三*/*/#include#define uchar unsigned char#define uint unsigned intuchar code table10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; char hh,mm,ss;char nhh,nmm,nss;uchar n,q;uchar hhs,hhg,mms,mmg,sss,ssg;uchar nhhs,nhhg,nmms,nmmg,nsss,nssg;uchar set,set1=1,set2=0;sbit fm=P24;sbit wr=P25; sbit dula=P26; sbit wela=P27;sbit k1=P34;sbit k2=P35;sbit k3=P36;sbit k4=P37;void jishi(); void baoshi();void alarm();void set_alarm(); /设置闹钟 void k_change(); /K1按键扫描void set_time(); /设置时间void k_set(); /K2按键扫描/*/延时函数void delay(uint xms) uint i,j;for(i=xms;i0;i-) for(j=110;j0;j-);/*/位选通void wx()wr=0;wela=0;wr=1;wela=1;/*/段选通void dx()wr=0;dula=0;wr=1;dula=1;/*/显示函数void display( )if(set1=1)/正常走时显示P0=0x7f;wx();P0=tablehhs;dx();delay(1);P0=0xff;dx();P0=0xbf;wx();P0=tablehhg;dx();delay(1);P0=0xff;dx();P0=0xdf;wx();P0=0xbf;dx();delay(1);P0=0xff;dx();/显示“-”P0=0xef;wx();P0=tablemms;dx();delay(1);P0=0xff;dx();P0=0xf7;wx();P0=tablemmg;dx();delay(1);P0=0xff;dx();P0=0xfb;wx();P0=0xbf;dx();delay(1);P0=0xff;dx();P0=0xfd;wx();P0=tablesss;dx();delay(1);P0=0xff;dx();P0=0xfe;wx();P0=tablessg;dx();delay(1);P0=0xff;dx();if(set1=2)/设置时间P0=0x7f;wx();P0=tablehhs;dx();delay(1);P0=0xff;dx();P0=0xbf;wx();P0=tablehhg;dx();delay(1);P0=0xff;dx();P0=0xdf;wx();P0=0xbf;dx();delay(1);P0=0xff;dx();P0=0xef;wx();P0=tablemms;dx();delay(1);P0=0xff;dx();P0=0xf7;wx();P0=tablemmg;dx();delay(1);P0=0xff;dx();P0=0xfb;wx();P0=0xbf;dx();delay(1);P0=0xff;dx();P0=0xfd;wx();P0=tablesss;dx();delay(1);P0=0xff;dx();P0=0xfe;wx();P0=tablessg;dx();delay(1);P0=0xff;dx();if(set1=3)/显示闹钟定时P0=0x7f;wx();P0=tablenhhs;dx();delay(1);P0=0xff;dx();P0=0xbf;wx();P0=tablenhhg;dx();delay(1);P0=0xff;dx();P0=0xdf;wx();P0=0xbf;dx();delay(1);P0=0xff;dx();P0=0xef;wx();P0=tablenmms;dx();delay(1);P0=0xff;dx();P0=0xf7;wx();P0=tablenmmg;dx();delay(1);P0=0xff;dx();P0=0xfb;wx();P0=0xbf;dx();delay(1);P0=0xff;dx();P0=0xfd;wx();P0=tablensss;dx();delay(1);P0=0xff;dx();P0=0xfe;wx();P0=tablenssg;dx();delay(1);P0=0xff;dx();if(set1=4)/设置闹钟 P0=0x7f;wx();P0=tablenhhs;dx();delay(1);P0=0xff;dx();P0=0xbf;wx();P0=tablenhhg;dx();delay(1);P0=0xff;dx();P0=0xdf;wx();P0=0xbf;dx();delay(1);P0=0xff;dx();P0=0xef;wx();P0=tablenmms;dx();delay(1);P0=0xff;dx();P0=0xf7;wx();P0=tablenmmg;dx();delay(1);P0=0xff;dx();P0=0xfb;wx();P0=0xbf;dx();delay(1);P0=0xff;dx();P0=0xfd;wx();P0=tablensss;dx();delay(1);P0=0xff;dx();P0=0xfe;wx();P0=tablenssg;dx();delay(1);P0=0xff;dx();baoshi();alarm();/*/时间中断函数 50msvoid T0_time()interrupt 1 TMOD=0x01;TH0=0x3c;TL0=0xb0;n+;/*/计时函数void jishi()if(n=20)n=0;ss+;if(ss=60)ss=0;mm+;if(mm=60)mm=0;hh+;if(hh=24)hh=0;/*/初始化函数void init()TMOD=0x01;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;/*/k1按键扫描void k_change()if(k1=0)delay(20);if(k1=0)set1+;while(!k1);if(set1=5)set1=1;/*/k2按键扫描void k_set()if(k2=0)delay(20);if(k2=0)set2+;while(!k2);if(set2=4)set2=1;/*/加一函数uchar incone(uchar n)if(k3=0)delay(20);if(k3=0)n+;while(!k3);return(n);/*/减一函数uchar decone(uchar q)if(k4=0)delay(20);if(k4=0)q-;while(!k4);if(q0&mm=00&ss=00)fm=1;elsefm=0; /*/闹钟函数void alarm()uchar x;if(nhh=0&nmm=0&nss=0)goto end;if(nhh=hh&nmm=mm&nss=ss)for(x=0;x6;x+)fm=1;delay(15);fm=0;delay(10);fm=1;delay(15);fm=0;delay(10);fm=1;delay(15);fm=0;delay(10);fm=1;delay(15);fm=0;delay(90);end:;/*/设置闹钟函数void set_alarm()if(set1=4)if(set2=1)nhh=incone(nhh);if(nhh=24)nhh=0;nhh=decone(nhh);if(nhh=-1)nhh=23;if(set2=2)nmm=incone(nmm);if(nmm=60)nmm=0;nmm=decone(nmm);if(nmm=-1)nmm=59;if(set2=3)nss=incone(nss);if(nss=60)nss=0;nss=decone(nss);if(nss=-1)nss=59;/*/主函数void main()init();hh=00;mm=59;ss=55;nhh=01;nmm=00;nss=5;whi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论