单片机系统作息时间控制器_第1页
已阅读1页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、-单片机系统作息时间控制器附录:*include reg52.h*include *define THCO 0*ee*define TLCO 0*0*define u8 unsigned charunsigned char code Duan=0*3F, 0*06,0*5B,0*4F,0*66,0*6D,0*7D,0*07,0*7F,0*6F;/共阳极数码管,0-9段码表unsigned char Data_Buffer6=0,0,0,0,0,0;/6位数码管unsigned char Hour=6,Min=49,Sec=50;/实时时间unsigned char N_Hour=6,N_Min

2、=50;/闹钟时间unsigned char M_Min=0,M_Sec=0;M_Hour=0;/秒表时间unsigned char Ring_time = 5; /响铃长度unsigned char Mode=0;/按键次数/MODE, 0:实时时钟;1:修改小时;2:修改分钟,3:修改闹钟小时,4:修改闹钟分钟,5:启停闹钟u8Tim2=6,50,7,0,7,25,8,20,8,30,9,15,9,25,10,10,10,30,11,15,11,25,12,10,13,20,13,30, 14,15,14,25,15,10,16,30,17,0,17,50,18,0,21,30,23,0;

3、bit Z_Ring=0;/整点报时标志bit N_Ring =0 ;/启动闹铃标志,1:启动bit Brush_flag=0;/更新数码管标志sbit P10=P10;/四个数码管的位码口定义sbit P11=P11;sbit P12=P12;sbit P13=P13;sbit P14=P14;sbit P15=P15;bit qq=0;sbit K_Mode=P20; /按键定义sbit K_UP=P21;sbit K_DN=P22;sbit K_Net=P32;sbit LED1=P23; /四个指示灯sbit LED2=P24;sbit LED3=P25; sbit LED4=P26;

4、sbit Clock_Ring = P30; /蜂鸣器的位码口定义 static unsigned char Bit=0;/静态变量,退出程序后,值保存static unsigned char count=0,K_count=0,M_count;static unsigned char time_n=0; void miaobiao();/秒表函数static unsigned char MB=0;/秒表开启标志static unsigned char MBFW=0;/秒表复位 void ring_play(); /声音播放函数 void ring_delay(unsigned char *)

5、; /声音延时 void Z_ring();/整点报时函数void Zring();/整点报时/*/void ring_delay(unsigned char n) /声音延时 125*n 毫秒 unsigned char i=125,j; do do for (j=0; j230; j+) _nop_(); while(-i); while(-n);/*/void ring_play() /声音播放 Clock_Ring=0; ring_delay(1); Clock_Ring=1;/*/void Zring()/整点报时 if(Z_Ring=1)/整点报时标志位 ring_delay(4)

6、; ring_play(); /播放音乐一次 Z_Ring=0; /*/void ring()/闹钟 int i =0 ; for(i = 0 ;i = 23; i+) if(Timi0 = Hour & Timi1 = Min &Sec=10)/闹钟相等 N_Ring=1; /biaozhiweiif(N_Ring=1)/闹铃启动 ring_delay(4); ring_play(); /播放音乐一次 N_Ring=0; /*/void look()/数码管显示 if(Brush_flag=1)/更新数码管显示 Brush_flag=0;if(Mode=2) /实时时间Data_Buffer

7、0=Hour/10; Data_Buffer1=Hour%10; Data_Buffer2=Min/10; Data_Buffer3=Min%10; Data_Buffer4=Sec/10; Data_Buffer5=Sec%10; else if(Mode=4) /闹钟时间 Data_Buffer0=N_Hour/10; Data_Buffer1=N_Hour%10; Data_Buffer2=N_Min/10; Data_Buffer3=N_Min%10; Data_Buffer4=M_Sec/10; Data_Buffer5=M_Sec%10; else if(Mode=200)/秒计时

8、,定时器定时5ms,计200次为一秒 Brush_flag=1;/更新数码管显示 count=0; Sec+; if(Sec=60) Sec=0; Min+; if(Min=60)/时间计时 Min=0; Hour+; if(Hour=24)Hour=0; /*/void del()/显示位操作与小数点处理Bit+; if(Bit=6)Bit=0; P1|=0*ff;/先关位码 P0=DuanData_BufferBit;/开段码 if(count100&Bit=1)P0|=0*80;/0.5S中间小数点亮,之后灭,不断循环 if(count=30)/消抖处理 if(N_Ring = 1)/闹

9、铃启动 N_Ring = 0;return; K_count=0;Brush_flag=1;if(K_Mode=0)/修改Mode, Mode+; if(Mode=6)Mode=0; if(Mode=0)LED1=1;LED2=1;LED3=1;LED4=1;/实时时间 else if(Mode=1)LED1=0; /修改小时 else if(Mode=2)LED1=1;LED2=0;/修改分钟 else if(Mode=3)LED2=1;LED3=0;/修改小时 else if(Mode=4)LED3=1;LED4=0;/修改分钟 else if(Mode=5)LED4=0;LED3=0;/

10、秒表 else if(K_UP=0) if(Mode=1) /实时时间小时加 Hour+; if(Hour=24)Hour=0; else if(Mode=2)/实时时间分钟加 Min+; if(Min=60)Min=0; else if(Mode=3)/闹钟时间小时加 N_Hour+; if(N_Hour=24)N_Hour=0; else if(Mode=4)/闹钟时间分钟加 N_Min+; if(N_Min=60)N_Min=0; else if(Mode=5) MBFW=1; else if(K_DN=0) if(Mode=1) /小时减 if(Hour=0)Hour=23; else

11、 Hour-; else if(Mode=2) /分钟减 if(Min=0)Min=59; else Min-; else if(Mode=3) /小时减 if(N_Hour=0)N_Hour=23; else N_Hour-; else if(Mode=4) /分钟减 if(N_Min=0)N_Min=59; else N_Min-; else if(Mode=5) MB=!MB; if(Mode=3|Mode=4)Timqq0=N_Hour;Timqq1=N_Min; else K_count=0;/*/void timer0() interrupt 1 /中断 TH0=THCO; TL0=TLCO; jisuan(); del(); key(); /*/void miaobiao()/秒表函数 if (MBFW=1) M_count=0; M_Sec=0;Brush_flag=1; M_Min=0;Brush_flag=1; M_Hour=0;Brush_flag=1; MBFW=0; else if(MB=1) M_count+; if(M_count=20) M_count=0; M_Sec+; Brush_fla

温馨提示

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

评论

0/150

提交评论