51单片机可调时钟c程序

51单片机可调时钟c程序

ID:9944888

大小:24.50 KB

页数:5页

时间:2018-05-16

51单片机可调时钟c程序_第1页
51单片机可调时钟c程序_第2页
51单片机可调时钟c程序_第3页
51单片机可调时钟c程序_第4页
51单片机可调时钟c程序_第5页
资源描述:

《51单片机可调时钟c程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include"reg52.h"//单片机头文件#defineucharunsignedchar//定义uchar代替unsignedchar#defineuintunsignedintsbitduan=P2^6;//位定义sbitwei=P2^7;sbitk1=P3^4;sbitk2=P3^5;sbitk3=P3^6;sbitk4=P3^7;voiddisplay(uchara0,uchara1,uchara2,uchara3,uchara4,uchara5);//函数声明voiddelay(ucharmss

2、);ucharcodetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};//共阴数码管显示数字ucharms=0,mg=0,fs=0,fg=0,ss=0,sg=0,m=0,f=0,s=0;//定义变量//主函数main(){P0=0x00;duan=1;duan=0;P0=0xc0;wei=1;wei=0;TH0=(65536-50000)/256;TL0=(65536-5000

3、0)%256;TMOD=0x01;//设置定时器工作方式---定时器0在工作模式1下工作,即一个16位的计时器TR0=1;//开定时器0ET0=1;//开中断1即定时器中断0EA=1;//开总中断while(1){if(k1==0)//按键k1为低电频{delay(40);//延时去抖if(k1==0)//判断k1是否按下{//等待按键释放while(k1!=1);f++;//分钟自加m=0;//秒置0if(f==60)//分钟为60,自动置0,小时自加1{f=0;s++;if(s==24){s=0;}}}}if

4、(k2==0){delay(40);if(k2==0){while(k2!=1);f--;m=0;if(f==-1){f=59;s--;if(s==-1){s=0;}}}}if(k3==0){delay(40);if(k3==0){while(k3!=1);s++;m=0;if(s==24){{s=0;}}}}if(k4==0){delay(40);if(k4==0){while(k4!=1);s--;m=0;if(s==-1){{s=23;}}}}mg=m%10;//秒个位是秒数除以10的余数ms=m/10;/

5、/秒十位是秒数除以十的商fg=f%10;fs=f/10;sg=s%10;ss=s/10;display(mg,ms,fg,fs,sg,ss);//调用显示函数,实参为秒的十位个位...}}voidtimer0()interrupt1//中断函数{intnum;//num是个标志TH0=(65536-50000)/256;//计时器赋初值TL0=(65536-50000)%256;num++;//当num==20即1s进入秒自加,num清0if(num==20){m++;num=0;if(m==60)//秒自加到6

6、0自动清0,分自加{m=0;f++;if(f==60){f=0;s++;if(s==24){s=0;}}}}}voiddisplay(uchara0,uchara1,uchara2,uchara3,uchara4,uchara5)//显示函数{P0=tab[a0];//P0口赋值tab[a0]即对应实参tab[mg]秒个位显示duan=1;//开段选即读到tab[mg]到数码管上duan=0;//关段选P0=0xdf;//P0赋0xdf即11011111wei=1;//开位选,即第六个数码管被选通wei=0;//

7、关位选//delay(10);delay(5);//延时P0=tab[a1];duan=1;duan=0;P0=0xef;wei=1;wei=0;delay(5);P0=0xf7;wei=1;wei=0;P0=tab[a2];duan=1;duan=0;delay(5);P0=0xfb;wei=1;wei=0;P0=tab[a3];duan=1;duan=0;delay(15);P0=0xfd;wei=1;wei=0;P0=tab[a4];duan=1;duan=0;delay(5);P0=0xfe;wei=1;

8、wei=0;P0=tab[a5];duan=1;duan=0;delay(5);}voiddelay(ucharmss)//延时函数{inti,j;for(i=mss;i>0;i--){for(j=30;j>0;j--);}}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。