单片机c语言电子钟_第1页
单片机c语言电子钟_第2页
单片机c语言电子钟_第3页
免费预览已结束,剩余13页可下载查看

下载本文档

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

文档简介

1、51单片机c语言电子钟 已加入调时、闹铃、整点报时功能)效果图:程序如下:51单片机c语言电子钟 已加入调时、闹铃、整点报时功能)/WHJWNAVY 2018/10/14#include#include #define uchar unsigned char#define uint unsigned int/* 七段共阴管显示定义 */ 此表为 LED 的字模 , 共阴数码管 0-9 -uchar code dispcode =0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40 。 / 段码控制/* 定义并初始化变量 */uchar s

2、econde=0 。 / 秒uchar minite=0 。/ 分uchar hour=12 。 / 时uchar mstcnt=0 。/ 定时器计数,定时 50ms, mstcnt 满20,秒加 1uchar shi=0 。 / 闹铃功能uchar fen=0 。uchar bjcs 。 / 报警次数sbit/seconP1_0=P1A0od 调整定义sbitP1_1=P1A1e 调整定义 sbit/minitP1_2=P1A2调整定义/hoursbit P1_5=P1A5 。 sbit P1_3=P1A3 。 sbit P1_6=P1A6 。 sbit P1_7=P1A7 。 sbit P

3、1_4=P1A4 。 /* 函数声明 */ void delay(uint k void time_pro( void display( void keyscan( /* 延时子程序 */ void delay (uint k uchar j 。/ 整点报时/ 闹铃功能,调整时间/ 调整时/ 调整分/ 关闭闹铃/ 延时子程序/ 时间处理子程序/ 显示子程序/ 键盘扫描子程序while(k-!=0 for(j=0 。j 。 /* 时间处理子程序 */void time_pro(voidif(seconde=60seconde=0 。 minite+ 。if(minite=60minite=0 。

4、hour+ 。 if(hour=24hour=0 。/* 显示子程序 */ void display(void if(P1_3=1 P2=0XFE。 P0=dispcodeseconde%10 。 / 秒个位 delay(1 。P2=0XFD。P0=dispcodeseconde/10 。 / 秒十位 delay(1 。P2=0XFB。P0=dispcode10 。 / 间隔符 - delay(1 。P2=0XF7。P0=dispcodeminite%10 。 / 分个位 delay(1 。P2=0XEF。P0=dispcodeminite/10 。 / 分十位 delay(1 。P2=0XD

5、F。P0=dispcode10 。 / 间隔符 -delay(1 。P2=0XBF。P0=dispcodehour%10 。 / 时个位 delay(1 。P2=0X7F。P0=dispcodehour/10 。 / 时十位delay(1 。/* 键盘扫描子程序 */void keyscan(voidif(P1_0=0/ 秒位的调整delay(30 。if(P1_0=0seconde+ 。if(seconde=60seconde=0 。delay(250 。if(P1_1=0/ 分位的调整delay(30 。if(P1_1=0minite+ 。 if(minite=60minite=0 。de

6、lay(250 。if(P1_2=0/ 时位的调整delay(30 。if(P1_2=0hour+ 。if(hour=24hour=0 。delay(250 。/* 整点报警 */void zhengdian (void整点报时if(seconde=0&(minite=0/P1_5=0。delay(1000 。P1_5=1。/* 定时闹钟 */ void dingshi(voidif(P1_3=0II按住P1_3BU不松,显示闹铃设置界面,分别按P1_6、P1_7 设置闹铃时间P2=0XFE。P0=dispcode0 delay(1 。 P2=0XFD。P0=dispcode0 delay(1

7、 。P2=0XFB。P0=dispcode10 delay(1 。II 秒个位II 秒十位II 间隔符 -P2=0XF7。II 分个位P0=dispcodefen%10 delay(1 。P2=0XEF。P0=dispcodefenI10 。 II 分十位delay(1 。P2=0XDF。P0=dispcode10 。II 间隔符-delay(1 。P2=0XBF。P0=dispcodeshi%10 。 / 时个位 delay(1 。P2=0X7F。P0=dispcodeshi/10 。 / 时十位 delay(1 。if(P1_6=0/ 设定时delay(30 。if(P1_6=0shi+

8、。if(shi=24shi=0 。delay(250 。if(P1_7=0/ 设定分delay(30 。if(P1_7=0fen+ 。if(fen=60fen=0 。 delay(250 。闹铃if(hour=shi&(minite=fen&(seconde=0/ 时间到,报警十次。for(bjcs=0 。bjcsP1_5=0。delay(500 。P1_5=1。 delay(500 。/* 主函数 */void main(voidP1=0XFF。TMOD = 0x11。 /time0 为定时器,方式 1TH0=0x3c。/ 预置计数初值 ,50msTL0=0xb0。EA=1。/ 总中断开ET0=1。/ 允许定时器 0 中断TR0=1。/ 开启定时器 0while (1keyscan( 。 / 按键扫描 dingshi( 。 / 定时闹钟 zhengdian( 。 / 整点报时 display( 。 / 显示时间/ 定时器 0 方式 1,void timer0(void interrupt 150ms中断一次TH0=0x3c。/ 手动加载计数脉冲次数TL0=0

温馨提示

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

评论

0/150

提交评论