时钟加闹钟的音乐.doc_第1页
时钟加闹钟的音乐.doc_第2页
时钟加闹钟的音乐.doc_第3页
时钟加闹钟的音乐.doc_第4页
时钟加闹钟的音乐.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

#include #define uint unsigned int#define uchar unsigned charuchar frq; sbit key1=P30;sbit key2=P31;sbit key3=P32;sbit key4=P33;sbit jiao=P15;uchar d,m,miao2,miao1,fen2,fen1,shi2,shi1,num3,ringsz;char num1,num2,num4,a,b;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar code table1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1;/延时程序void delayms(uint xms) uint i,j; for(i=xms;i0;i-) for(j=110;j0;j-); void yinyue() TR0=1; frq+=30; /显示函数void display() switch(d) case 0: miao2=num1/10; miao1=num1%10; fen2=num2/10;fen1=num2%10;shi2=num4/10;shi1=num4%10; P0=tablemiao1;P2=0xfe;delayms(5); P0=tablemiao2; P2=0xfd; delayms(5); P0=table1fen1;P2=0xfb; delayms(5); P0=tablefen2; P2=0xf7; delayms(5); P0=table1shi1; P2=0xef; delayms(5); P0=tableshi2; P2=0xdf; delayms(5); break; case 1: fen2=b/10;fen1=b%10;shi2=a/10;shi1=a%10; P0=tablefen1;P2=0xfb; delayms(5); P0=tablefen2; P2=0xf7; delayms(5); P0=table1shi1; P2=0xef; delayms(5); P0=tableshi2; P2=0xdf; delayms(5); break; /初始化函数void init() TMOD=0x11; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1; ET1=1; TR1=1; / TMOD |= 0x01; /使用模式1,16位定时器,使用|符号可以在使用多个定时器时不受影响 TH0=0x00; /给定初值 TL0=0x00; /总中断打开 ET0=1; /定时器中断打开 /键盘程序void keyscan() if(m=0)TR1=1; if(key1=0) delayms(5); jiao=0; if(key1=0) d+; if(d=2) d=0; while(!key1);jiao=1; if(key2=0) delayms(5); if(key2=0) jiao=0; switch(d) case 0: m+; TR1=0; if(m=4) m=0; break; case 1: ringsz+; if(ringsz=3) ringsz=1; break; while(!key2); jiao=1; if(key3=0) delayms(5); if(key3=0) jiao=0; if(d=0) switch(m) case 1: num4+; if(num4=24) num4=0; break; case 2: num2+; if(num2=60) num2=0; break; case 3: num1+;if(num1=60) num1=0; break; default: ; if(d=1) switch(ringsz) case 1: a+; if(a=24) a=0; break; case 2: b+; if(b=60) b=0; break; default: ; while(!key3); jiao=1; if(key4=0) delayms(5); if(key4=0) jiao=0; if(d=0) switch(m) case 1: if(num4=0) num4=24; num4-; break; case 2: num2-; if(num2=-1) num2=59; break; case 3: num1-;if(num1=-1) num1=59; break; default: ; if(d=1) switch(ringsz) case 1: a-; if(a=-1) a=23; break; case 2: b-;if(b=-1) b=59; break; default: ; while(!key4); jiao=1;if(a=num4&b=num2&(num1=0)&(num1=30)jiao=1; TR0=0; /主函数 void main() num4=12; /时间初始化12.00 jiao=1; init(); while(1) keyscan();display(); /中断程序void T1_time() interrupt 3 TH1=(65536-50000)/256; TL1=(65536-50000)%256; num3+; if(num3=20) num3=0; num1+; if(num1=60) num1=0; num2+; if(num2=60)

温馨提示

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

评论

0/150

提交评论