单片机制作闹钟(含闹铃开关,调节年月日,闹钟时间, 有闰年的)文库.doc_第1页
单片机制作闹钟(含闹铃开关,调节年月日,闹钟时间, 有闰年的)文库.doc_第2页
单片机制作闹钟(含闹铃开关,调节年月日,闹钟时间, 有闰年的)文库.doc_第3页
单片机制作闹钟(含闹铃开关,调节年月日,闹钟时间, 有闰年的)文库.doc_第4页
单片机制作闹钟(含闹铃开关,调节年月日,闹钟时间, 有闰年的)文库.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

#include#define uchar unsigned char#define uint unsigned intsbit k1=P35;sbit k2=P36;sbit k3=P34;sbit k4=P33;sbit k5=P32;sbit rs=P20;sbit rw=P21;sbit ep=P22;sbit led1 =P10;sbit buzzer=P17;uchar shuzi11=0,1,2,3,4,5,6,7,8,9;uchar day_tab213=0,31,28,31,30,31,30,31,31,30,31,30,31,0,31,29,31,30,31,30,31,31,30,31,30,31;uchar data26=0,0,0,0,0,0;uchar data13=7,59,40;uint hour=8,minute=0,port=1,count;uchar rept4=0,0,0,0;uchar rept18=0,0,0,0,0,0,0,0;uchar leap,key, k=0,t=0;uint year=2011,month=6,day=28;void delayms(unsigned char ms);void putchar(uchar weizhi,uchar da);void process(void); /void process1(void);uchar keyscan(void);void lcd_wcmd(uchar);bit lcd_bz(void);void lcd_pos(uchar);void lcd_wdat(uchar);void lcd_init(void);void showtime(void);void time_init(void);void showclock();void keyproc(void);void horse(uchar i);void showdays(void);void clock1(void);void processday(void); void main() P0=0x00; delayms(5); lcd_init(); EA=1; ET0=1; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256;TR0=1;while(1) keyproc(); process();process1();if(k!=data12) k=data12; showtime(); showdays(); if(t!=day) t=day; showtime(); showdays(); if(hour=data10&minute=data11&port=0) / buzzer=0;delayms(100);buzzer=1; void process(void) / data20=data10/10; data21=data10%10; data22=data11/10; data23=data11%10; data24=data12/10; data25=data12%10; if(data21=0) led1=0;void process1(void) /8 rept10=year/1000; rept11=year/100%10; rept12=year/10%10; rept13=year%10; rept14=month/10; rept15=month%10; rept16=day/10; rept17=day%10;void timer0(void) interrupt 1 using 1 / count+;if(count=20) count=0; data12+; if(data12=60) data12=0; data11+; if(data11=60) data11=0; data10+; if(data10=24) data10=0;day+; if( day=day_tableapmonth) day=0; month+; if(month=12) month=0;year+; elseTH0=(65536-50000)/256;TL0=(65536-50000)%256; void delayms(unsigned char ms) uchar i; while(ms-) for(i=0;i11) putchar(0x40,P);putchar(0x41,M); else putchar(0x40,A); putchar(0x41,M); putchar(0x43,shuzidata20); putchar(0x44,shuzidata21); putchar(0x45,:); putchar(0x46,shuzidata22); putchar(0x47,shuzidata23); putchar(0x48,:); putchar(0x49,shuzidata24); putchar(0x4a,shuzidata25);uchar keyscan(void)key=1;k1=1,k2=1,k3=1,k4=1,k5=1;if(k1=0) k1=1; delayms (20); if(k1=0) key=0x20;if(k2=0) k2=1; delayms (20); if(k2=0) key=0x40;if(k3=0) k3=1; delayms (20); if(k3=0) key=0x10;if(k4=0) k4=1; delayms(20); if(k4=0) key=0x08;if(k5=0) k5=1; delayms(20); if(k5=0) key=0x04;if(k3=0&k4=0) k3=1;k4=1; delayms(20); if(k3=0&k4=0) key=0x18;if(k3=0&k5=0) k3=1;k5=1; delayms(20); if(k3=0&k5=0) key=0x14; return (key); void showclock() / if(hour11) putchar(0x40,P);putchar(0x41,M); else putchar(0x40,A); putchar(0x41,M); putchar(0x44,shuzirept0); putchar(0x45,shuzirept1); putchar(0x46,:); putchar(0x47,shuzirept2); putchar(0x48,shuzirept3); void showdays() / putchar(0x00,shuzirept10); putchar(0x01,shuzirept11); putchar(0x02,shuzirept12); putchar(0x03,shuzirept13); putchar(0x05,shuzirept14); putchar(0x06,shuzirept15); putchar(0x08,shuzirept16); putchar(0x09,shuzirept17); void horse(uchar kk) / uchar a,b; switch(kk) case 0x20: data10 +; if(data10=24) data10=0; break; case 0x40: data11 +; if(data11=60) data11=0; break; case 0x10: / if(port=1) port=0; else port=1; if(port=0) led1=0; else led1=1; break;case 0x18: lcd_init(); delayms(2); /3+4 while(1) clock1(); a=keyscan(); while(a=keyscan() showclock(); if(key=0x08) break; break; case 0x14: / lcd_init(); delayms(2); while(1) processday(); b=keyscan(); while(b=keyscan() showdays(); if(key=0x04) break; break; void clock1() / switch(keyscan() case 0x20: hour+; if(hour=24) hour=0; break; case 0x40: minute+; if(minute=60) minute=0; break; rept1=hour%10; rept0=hour/10; rept3=minute%10; rept2=minute/10; void processday() / switch(key) case 0x20: year+; leap=year%4=0&year%100!=0|year%400=0; break; case 0x40: year-; leap=year%4=0&year%100!=0|year%400=0; break; case 0x10: month+; if(month=13) month=1; break; case 0x08: day+; if(day=day

温馨提示

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

评论

0/150

提交评论