单片机电子闹钟程序亲自写,可用_第1页
单片机电子闹钟程序亲自写,可用_第2页
单片机电子闹钟程序亲自写,可用_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、学校电子钟,有闹钟功能,按键可调时间,可调打铃时间,打铃时间长短显示,每个模块有 功能注释。其中正常时间显示和闹钟时间显示可用一个开关来调整 芯片选择 STC89C52程序:#include#include#define uchar unsigned char#define uint unsigned int/定义显示段码uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;uchar codebbtime=0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77

2、,0x7c,0x39,0x5e,0x79,0x71; uchar clock=0,0,0,0;uchar clock1=12,30,0;uchar weikong6;uchar bbduration=4;uchar lingtime=9;/学校打铃时间组uchar shangwu1=8,30;uchar shangwu2=10,0;uchar shangwu3=10,20;uchar shangwu4=11,50;uchar xiawu1=13,30;uchar xiawu2=15,00;uchar xiawu3=15,15;uchar xiawu4=16,45;/按键定义sbit mode=

3、P1A7;sbit sec_clr=P1A。;sbit min_set_add=P1A3;sbit min_set_sub=P1A4;sbit hour_set_add=P1A1;sbit hour_set_sub=P1A2;sbit bb_set_add=P1A5;sbit bb_set_sub=P1A6;sbit speaker=P2A6;/延时函数void delay(unsigned int t)while(t-);/时钟进位函数void clockjinwei()clock0+;if(clock0=20)clock1+;clock0=0;if(clock1=60)clock2+;cl

4、ock1=0; if(clock2=60) clock3+; clock2=0; if(clock3=24) clock3=0;/定时器 0 中断服务函数 void timer0(void) interrupt 1 using 1 TMOD=0x01;TH0=0x3c;TL0=0xb0;clockjinwei();/时钟分位显示函数void fenwei()weikong0=clock3/10; weikong1=clock3%10; weikong2=clock2/10; weikong3=clock2%10;weikong4=clock1/10; weikong5=clock1%10;/闹

5、钟分位显示函数void naofen()weikong0=clock10/10; weikong1=clock10%10; weikong2=clock11/10; weikong3=clock11%10;weikong4=clock12/10;weikong5=clock12%10;/闹钟定时显示函数void naozhongdisplay()uchar z,s;uchar x=0x01;naofen();for(z=0;z6;z+)P2=0;P0=tableweikongz;P2=x;x=_crol_(x,1);for(s=0;s255;s+);/时钟显示函数void display()u

6、char i,j;uchar x=0x01;fenwei();for(i=0;i6;i+)P2=0;P0=tableweikongi;P2=x;x=_crol_(x,1);for(j=0;j255;j+);/总显示函数void zhongxian()if(mode=1)delay(100);if(mode=1)display();if(mode=0)delay(100);if(mode=0)naozhongdisplay();/按键处理程序void key_set()zhongxian();P1=0xff;if(min_set_add=0)delay(100);if(min_set_add=0

7、)if(mode=1)clock2+; if(clock2=60) clock2=0;while(min_set_add=0) zhongxian();if(mode=0)clock11+; if(clock11=60) clock11=0; while(min_set_add=0) zhongxian();/if(min_set_sub=0)delay(100);if(min_set_sub=0)if(mode=1)clock2-; if(clock2=0) clock2=59;while(min_set_sub=0) zhongxian();if(mode=0)clock11-;if(cl

8、ock11=0) clock11=59; while(min_set_sub=0) zhongxian();/if(hour_set_add=0)delay(100);if(hour_set_add=0)if(mode=1)clock3+;if(clock3=24)clock3=0;while(hour_set_add=0) zhongxian();if(mode=0)clock10+;if(clock10=24) clock10=0; while(hour_set_add=0) zhongxian();/if(hour_set_sub=0)delay(100);if(hour_set_sub

9、=0)if(mode=1)clock3-;if(clock3=0)clock3=23;while(hour_set_sub=0)zhongxian();if(mode=0)clock10-;if(clock10=0) clock10=23; while(hour_set_sub=0) zhongxian();/if(sec_clr=0)delay(100);if(sec_clr=0)clock1=0;while(sec_clr=0)zhongxian();/闹钟响铃函数void bb()if(clock1=bbduration) speaker=1;delay(100);speaker=0;else speaker=0;/打铃函数void daling()if(clock115)bbduration=0;/响铃按键处理函数void bbtime_set()bbtimeshow();if(bb_set_add=0)delay(100);if(bb_set_add=0)bbduration+;while(bb_set_add=0) bbtimeshow();if(bb_set_sub=0)delay(100);if(bb_set_sub=0)bbdurati

温馨提示

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

评论

0/150

提交评论