DIY制作LED数码管定时器_第1页
DIY制作LED数码管定时器_第2页
DIY制作LED数码管定时器_第3页
DIY制作LED数码管定时器_第4页
DIY制作LED数码管定时器_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、从构思到实体出来花了我一个月的课外时间,大家支持一下我的DIY精神吧。由于只有一个数码管,只能显示0到15,所以这个定时器可以定时0到15分,0到15个小时,0到15天,0到15个星期,本来想在程序中加上定时0到15个月,但想想在实际情况中定时15个月都有一年多了,估计好少用到,就不写了。这个定时器我加上了继电器,所以可以控制220V交流电,且定时误差在几个毫秒内,还算精确吧。先来几张初期的原理图:下面是单片机的源程序:#include#define uint unsigned int#define uchar unsigned charsbit ledg=P10;/秒闪烁(一秒钟亮一秒钟灭)

2、sbit ledb=P11;/分闪烁(一分钟亮一分钟灭)sbit fmq=P33;/ 蜂鸣器sbit ledx=P34;/ 定时星期指示灯sbit ledt=P36;/ 定时天指示灯sbit ledf=P35;/ 定时分钟指示灯sbit leds=P37;/ 定时小时指示灯sbit key1=P16;/ 启动|暂停sbit key2=P15;/ 调整定时分钟sbit key3=P14;/ 调整定时小时sbit key4=P13;/ 调整定时天sbit key5=P12;/ 调整定时星期sbit jdq=P17; /继电器uint i,j,num,num1,num2,num3,num4,num5

3、,num6;uchar shi,temp1,temp2,temp3,temp4,temp5,temp6,temp7,temp8,dsf,dss,dst,dsx;uchar code shuju=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E;void delayms(uint xms)for(i=xms;i0;i-)for(j=110;j0;j-);void display(shi)P2=shujushi;void keyscan()uchar i;if(key1=0) delaym

4、s(10);if(key1=0)ledb=0; /把分闪烁指示灯调用来指示启动|暂停while(i=0&P2!=0xC0)TR0=TR0;/ 启动|暂停i+;if(TR0=1)ledb=1;/把分闪烁指示灯调用来指示启动|暂停elseTR0=0;if(key2=0&TR0=0) dss=0; / 定时小时清零dst=0; / 定时天数清零dsx=0; / 定时星期清零temp1=1; /进入switch-casedelayms(10);if(key3=0&TR0=0)dsf=0;dst=0;dsx=0;temp2=1;delayms(10);if(key4=0&TR0=0)dsf=0;dss=

5、0;dsx=0;temp3=1;delayms(10);if(key5=0&TR0=0)dsf=0;dss=0;dst=0;temp4=1;delayms(10);switch (temp1)case 1:if(key2=0)leds=1; / 关闭定时小时指示灯ledt=1; / 关闭定时天指示灯ledx=1;/ 关闭定时星期指示灯 ledf=0;/ 打开定时分钟指示灯ledg=1; / 关闭秒闪烁ledb=1; / 关闭分闪烁jdq=0; /关闭继电器dsf+; / 分钟加加shi=dsf;/ 把分送去显示if(dsf=16)shi=0;dsf=0; while(!key2);temp1=

6、2;temp5=1;num2=dsf;temp6=2;temp7=2;temp8=2;break;switch (temp2)case 1:if(key3=0)ledf=1;ledt=1;ledx=1;leds=0;jdq=0;ledg=1;ledb=1;dss+;shi=dss;if(dss=16)shi=0;dss=0;while(!key3);temp2=2;temp6=1;num4=dss; temp5=2;temp7=2;temp8=2;break;switch (temp3)case 1:if(key4=0)ledf=1;leds=1;ledx=1;ledt=0;jdq=0;led

7、g=1;ledb=1;dst+;shi=dst;if(dst=16)shi=0;dst=0;while(!key4);temp3=2;temp7=1;num5=dst; temp5=2;temp6=2;temp8=2;break;switch (temp4)case 1:if(key5=0)ledf=1;leds=1;ledt=1;ledx=0;jdq=0;ledg=1;ledb=1;dsx+;shi=dsx;if(dsx=16)shi=0;dsx=0;while(!key5);temp4=2;temp8=1;num6=dsx; temp5=2;temp6=2;temp7=2;break;sw

8、itch (temp5)case 1:if(num=3686)num=0;ledg=ledg;num1+;if(num1=60)num1=0;num2-;shi=num2;if(num2=0)jdq=1;TR0=0; break;switch (temp6)case 1:if(num=3686)num=0;ledg=ledg;num1+;if(num1=60)num1=0;ledb=ledb;num3+;if(num3=60)num3=0;num4-;shi=num4; if(num4=0)jdq=1;TR0=0;break;switch (temp7)case 1:if(num=3686)n

9、um=0;ledg=ledg;num1+;if(num1=60)num1=0;ledb=ledb;num3+;if(num3=1440)num3=0;num5-;shi=num5; if(num5=0)jdq=1;TR0=0;break;switch (temp8)case 1:if(num=3686)num=0;ledg=ledg;num1+;if(num1=60)num1=0;ledb=ledb;num3+;if(num3=10080)num3=0;num6-;shi=num6; if(num6=0)jdq=1;TR0=0;break;void main() TMOD=0x02;TH0=6;TL0=6

温馨提示

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

评论

0/150

提交评论