《单片机电子钟》word版.docx

上传人:scccc 文档编号:13438684 上传时间:2021-12-25 格式:DOCX 页数:5 大小:49.53KB
返回 下载 相关 举报
《单片机电子钟》word版.docx_第1页
第1页 / 共5页
《单片机电子钟》word版.docx_第2页
第2页 / 共5页
《单片机电子钟》word版.docx_第3页
第3页 / 共5页
《单片机电子钟》word版.docx_第4页
第4页 / 共5页
《单片机电子钟》word版.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《《单片机电子钟》word版.docx》由会员分享,可在线阅读,更多相关《《单片机电子钟》word版.docx(5页珍藏版)》请在三一文库上搜索。

1、.功能:1. 显示小时(2位)、分钟(2位)、秒钟(2位)。2. 同时可以通过按键调节时间,调节小时、分钟、秒钟均可以。3. 4个LED灯发光二极管做为秒点一秒钟闪烁一次。4. 还有一个LED显示按键的操作,没有按键时长亮,按键按下时不亮。*定时器0的工作方式1定时50ms,等待20次定时1s进行时钟计数。通过定时器1的工作方式1定时500ms,用来调整数码管闪烁的时间。K1是用来选中时分秒,按一下选中时,再按一下选中分,再按一下选中秒,再按一下退出选中状态。K2按一下数加一,K3按一下数减一。在调整时间时,时钟停走。仿真说明:上电显示12.00.00 开始计时, 4个LED灯发光二极管做为秒

2、点一秒钟闪烁一次,显示按键LED亮。这是正常显示状态。可以按下1次时间设置按键,进入时间设置状态,此时小时的2位数码管闪动,即可以设置小时的数值,按加按键,可以加一,减按键可以减一。设置小时完成,再按3次设置按键退出设置状态。设置分钟,连续按动2次设置按键,分钟的2位数码管闪动,既可以进入设置分钟状态,数值加减上同。设置完成,再按2次设置按键退出设置状态。设置秒钟,连续按动3次设置按键,其他类似。程序#include<reg52.h>#define uint unsigned int#define uchar unsigned charuchar num=0,temp=0,coun

3、t=0;uchar aa;uchar hour,min,sec;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; void delay(uint z);void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f,uchar aa);void time_change();/* 主函数 */void main() P2=0xff; hour=12; min=0; sec=0; TMOD=0x11; /定时器初始化 TH0=(65536-50000)/2

4、56; TL0=(65536-50000)%256; EA=1; ET0=1; ET1=1; TR0=1; TR1=1; aa=0xff; while(1) time_change(); display(tablehour/10,tablehour%10,tablemin/10, tablemin%10,tablesec/10,tablesec%10,0xff); /* 显示函数 */void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f,uchar aa) if(num=1)P1=0x01&aa;P0=a;delay(

5、2);elseP1=0x01;P0=a;delay(2); /hour if(num=1)P1=0x02&aa;P0=b&0x7f;delay(2);elseP1=0x02;P0=b&0x7f;delay(2); /hour if(num=2)P1=0x04&aa;P0=c;delay(2);elseP1=0x04;P0=c;delay(2); /min if(num=2)P1=0x08&aa;P0=d&0x7f;delay(2);elseP1=0x08;P0=d&0x7f;delay(2); /min if(num=3)P1=0x10&aa;P0=e;delay(2);elseP1=0x10;P0=e;delay(2); /sec if(num=3)P1=0x20&aa;P0=f;delay(2);elseP1=0x20;P0=f;delay(2); /sec /* 定时器0中断函数 */void timer0() interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; temp+; /* 延时子函数 */void delay(uint z) uint j,k; for(j=z;j>0;j-) for(k=120;k>0;k-); *;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1