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

下载本文档

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

文档简介

从构思到实体出来花了我一个月的课外时间,大家支持一下我的DIY精神吧。.。。由于只有一个数码管,只能显示0到15,所以这个定时器可以定时0到15分,0到15个小时,0到15天,0到15个星期,原来想在程序中加上定时0到15个月,但想想在实际情况中定时15个月都有一年多了,估量好少用到,就不写了.这个定时器我加上了继电器,所以可以掌握220V沟通电,且定时误差在几个毫秒内,还算精确吧。..ﻫ先来几张初期的原理图:ﻫﻫﻫ

ﻫ下面是单片机的源程序:ﻫ#include<reg52.h〉ﻫ#defineuintunsignedintﻫ#defineucharunsignedcharﻫsbitledg=P1^0;//秒闪烁(一秒钟亮一秒钟灭)ﻫsbitledb=P1^1;//分闪烁(一分钟亮一分钟灭)ﻫsbitfmq=P3^3;//蜂鸣器ﻫsbitledx=P3^4;//定时星期指示灯

sbitledt=P3^6;//定时天指示灯

sbitledf=P3^5;//定时分钟指示灯ﻫsbitleds=P3^7;//定时小时指示灯ﻫsbitkey1=P1^6;//启动|暂停

sbitkey2=P1^5;//调整定时分钟ﻫsbitkey3=P1^4;//调整定时小时ﻫsbitkey4=P1^3;//调整定时天ﻫsbitkey5=P1^2;//调整定时星期ﻫsbitjdq=P1^7;//继电器ﻫuinti,j,num,num1,num2,num3,num4,num5,num6;ﻫucharshi,temp1,temp2,temp3,temp4,temp5,temp6,temp7,temp8,dsf,dss,dst,dsx;

ucharcodeshuju[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,ﻫ0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};ﻫvoiddelayms(uintxms)

{

for(i=xms;i>0;i--)ﻫfor(j=110;j〉0;j--);ﻫ}ﻫvoiddisplay(shi)ﻫ{

P2=shuju[shi];ﻫ}ﻫvoidkeyscan()ﻫ{ﻫuchari;

if(key1==0)

{ﻫdelayms(10);ﻫif(key1==0)ﻫ{ﻫledb=0;//把分闪烁指示灯调用来指示启动|暂停ﻫwhile(i==0&&P2!=0xC0)

{ﻫTR0=~TR0;//启动|暂停ﻫi++;ﻫ}ﻫif(TR0==1)ﻫ{ﻫledb=1;//把分闪烁指示灯调用来指示启动|暂停ﻫ}ﻫelse

{ﻫTR0=0;

}ﻫ}ﻫ}ﻫif(key2==0&&TR0==0)ﻫ{

dss=0;//定时小时清零ﻫdst=0;//定时天数清零ﻫdsx=0;//定时星期清零

temp1=1;//进入switch-caseﻫdelayms(10);ﻫ}ﻫif(key3==0&&TR0==0)ﻫ{ﻫdsf=0;ﻫdst=0;ﻫdsx=0;ﻫtemp2=1;ﻫdelayms(10);ﻫ}ﻫif(key4==0&&TR0==0)ﻫ{

dsf=0;ﻫdss=0;ﻫdsx=0;

temp3=1;

delayms(10);ﻫ}ﻫif(key5==0&&TR0==0)ﻫ{ﻫdsf=0;

dss=0;ﻫdst=0;

temp4=1;

delayms(10);ﻫ}ﻫswitch(temp1)ﻫ{ﻫcase1:ﻫ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=2;

temp5=1;

num2=dsf;ﻫtemp6=2;ﻫtemp7=2;ﻫtemp8=2;ﻫ}ﻫbreak;ﻫ}

switch(temp2)

{ﻫcase1:ﻫ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)ﻫ{ﻫcase1:ﻫif(key4==0)ﻫ{

ledf=1;ﻫleds=1;ﻫledx=1;ﻫledt=0;ﻫjdq=0;ﻫledg=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)ﻫ{

case1:ﻫ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;ﻫ}ﻫswitch(temp5)ﻫ{ﻫcase1:ﻫ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)ﻫ{ﻫcase1:ﻫ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)ﻫ{ﻫcase1:ﻫif(num==3686)ﻫ{ﻫnum=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)

{ﻫcase1:ﻫ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;ﻫ}ﻫ}ﻫﻫvoidmain()ﻫ{ﻫTMOD=0x02;ﻫTH0=6;ﻫTL0=6;ﻫEA=1;ﻫET0=1;ﻫjdq=0;

while(1)ﻫ{

keyscan();

display(shi);ﻫwhile(jdq==1&&P2==

温馨提示

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

评论

0/150

提交评论