收藏 分享(赏)

电子闹钟(沈).doc

上传人:scg750829 文档编号:7527238 上传时间:2019-05-20 格式:DOC 页数:8 大小:53.50KB
下载 相关 举报
电子闹钟(沈).doc_第1页
第1页 / 共8页
电子闹钟(沈).doc_第2页
第2页 / 共8页
电子闹钟(沈).doc_第3页
第3页 / 共8页
电子闹钟(沈).doc_第4页
第4页 / 共8页
电子闹钟(沈).doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、#include “reg51.h“#include#define uint unsigned char#define uchar unsigned char#define THCO 0xee#define TLCO 0x0uchar i,n;uint H,L;void delay(uint);uchar code table=0xfd,0x09,0x04,0xfd,0x09,0x04,0xfd,0x34,0x04,0xfd,0x83,0x04,0xfd,0x83,0x04,0xfd,0x34,0x04,0xfd,0x09,0x04,0xfc,0xad,0x04,0xfc,0x44,0x04,

2、0xfc,0x44,0x04,0xfc,0xad,0x04,0xfd,0x09,0x04,0xfd,0x09,0x04,0xfc,0xad,0x04,0xfc,0xad,0x08,0xfd,0x09,0x04,0xfd,0x09,0x04,0xfd,0x34,0x04,0xfd,0x83,0x04,0xfd,0x83,0x04,0xfd,0x34,0x04,0xfd,0x09,0x04,0xfc,0xad,0x04,0xfc,0x44,0x04,0xfc,0x44,0x04,0xfc,0xad,0x04,0xfd,0x09,0x04,0xfc,0xad,0x04,0xfc,0x44,0x04,

3、0xfc,0x44,0x08;unsigned char code Duan=0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;/共阴极数码管,0-9 段码表unsigned char Data_Buffer10=0,1,2,3,4,5,6,7,8,9;/四个数码管显示数值,数组变量定义static unsigned char Bit=0; /静态变量,退出程序后,值保留static unsigned char Bit1=0;static unsigned char Bit2=0;static unsigned char Bit3=0;sta

4、tic unsigned char Bit4=0;static unsigned char Bit5=0;static unsigned char Bit6=0;static unsigned char Trouch=0;sbit P10=P10; /四个数码管的位码口定义sbit P27=P27;sbit P26=P26;sbit P25=P25;sbit P24=P24;sbit P23=P23;sbit P20=P20;sbit P21=P21; sbit P3_2=P32;sbit P11=P11;sbit P12=P12;sbit P13=P13;sbit P14=P14; /四个数

5、码管的位码口定义sbit P15=P15;sbit P16=P16;sbit P17=P17;void delay(int i)unsigned int a,b;for(a=i;a0;a-);for(b=100;b0;b-);void change6() P26=0;P25=0;delay(150000) ;doif(P21=0)Bit6+;if(Bit6=2)Bit6=0;P0=DuanData_BufferBit1; /开段码P1=0xdf; delay(50);P0=DuanData_BufferBit2;P1=0xef; delay(50); /先关位码P0=DuanData_Buff

6、erBit3; /开段码P1=0xf7;delay(50);P0=DuanData_BufferBit4;P1=0xfb; delay(50); /先关位码P0=DuanData_BufferBit5; /开段码P1=0xfd;delay(50);P0=DuanData_BufferBit6;P1=0xfe;delay(50); while(P20=1);P26=1;P25=1;delay(25000);void change5() P24=0; P26=0;delay(150000) ;doif(P21=0)Bit5+;if(Bit5=4)Bit5=0;P0=DuanData_BufferB

7、it1; /开段码P1=0xdf; delay(50);P0=DuanData_BufferBit2;P1=0xef; delay(50); /先关位码P0=DuanData_BufferBit3; /开段码P1=0xf7;delay(50);P0=DuanData_BufferBit4;P1=0xfb; delay(50); /先关位码P0=DuanData_BufferBit5; /开段码P1=0xfd;delay(50);P0=DuanData_BufferBit6;P1=0xfe;delay(50); while(P20=1);P24=1; P26=1;delay(25000);cha

8、nge6();void change4() P24=0;delay(150000) ;doif(P21=0)Bit4+;if(Bit4=6)Bit4=0;P0=DuanData_BufferBit1; /开段码P1=0xdf; delay(50);P0=DuanData_BufferBit2;P1=0xef; delay(50); /先关位码P0=DuanData_BufferBit3; /开段码P1=0xf7;delay(50);P0=DuanData_BufferBit4;P1=0xfb; delay(50); /先关位码P0=DuanData_BufferBit5; /开段码P1=0xf

9、d;delay(50);P0=DuanData_BufferBit6;P1=0xfe;delay(50); while(P20=1); P24=1;delay(25000); change5();void change3() P25=0;P26=0;delay(150000) ;doif(P21=0)Bit3+;if(Bit3=10)Bit3=0;P0=DuanData_BufferBit1; /开段码P1=0xdf; delay(50);P0=DuanData_BufferBit2;P1=0xef; delay(50); /先关位码P0=DuanData_BufferBit3; /开段码P1

10、=0xf7;delay(50);P0=DuanData_BufferBit4;P1=0xfb; delay(50); /先关位码P0=DuanData_BufferBit5; /开段码P1=0xfd;delay(50);P0=DuanData_BufferBit6;P1=0xfe;delay(50); while(P20=1);P25=1;P26=1; ;delay(25000); change4();void change2() P25=0;delay(150000) ;doif(P21=0)Bit2+;if(Bit2=6)Bit2=0;P0=DuanData_BufferBit1; /开段

11、码P1=0xdf; delay(50);P0=DuanData_BufferBit2;P1=0xef; delay(50); /先关位码P0=DuanData_BufferBit3; /开段码P1=0xf7;delay(50);P0=DuanData_BufferBit4;P1=0xfb; delay(50); /先关位码P0=DuanData_BufferBit5; /开段码P1=0xfd;delay(50);P0=DuanData_BufferBit6;P1=0xfe;delay(50); P2=0xdf; while(P20=1);P25=1;delay(25000); change3(

12、);void change1() P26=0;delay(150000) ;doif(P21=0)Bit1+;if(Bit1=10)Bit1=0;P0=DuanData_BufferBit1; /开段码P1=0xdf; delay(50);P0=DuanData_BufferBit2;P1=0xef; delay(50); /先关位码P0=DuanData_BufferBit3; /开段码P1=0xf7;delay(50);P0=DuanData_BufferBit4;P1=0xfb; delay(50); /先关位码P0=DuanData_BufferBit5; /开段码P1=0xfd;de

13、lay(50);P0=DuanData_BufferBit6;P1=0xfe;delay(50); while(P20=1);P26=1; delay(25000); change2();void main()PX0=1;EX0=1; /沿触发方式IT0=1;TMOD=0x01; /定时器 0 初始化TH0=THCO;TL0=TLCO;TR0=1;ET0=1;EA=1;TMOD=0x10;EA=1;/开总中断ET1=1;/开 T1 中断for(i=0;i=100)Bit=0;Bit1+;if(Bit1=9)Bit1=0;Bit2+;if(Bit2=6)Bit2=0;Bit3+;if(Bit3=

14、9)Bit3=0;Bit4+;if(Bit4=6) Bit4=0;Bit5+;if(Bit5=4)Bit5=0;Bit6+;if(Bit6=2)Bit6=0; /先关位码P1=0xff; /先关位码P0=DuanData_BufferBit1; /开段码P1=0xdf;delay(50);P0=DuanData_BufferBit2;P1=0xef; delay(50); /先关位码P0=DuanData_BufferBit3; /开段码P1=0xf7;delay(50);P0=DuanData_BufferBit4;P1=0xfb; delay(50); /先关位码P0=DuanData_B

15、ufferBit5; /开段码P1=0xfd;delay(50);P0=DuanData_BufferBit6;P1=0xfe; delay(50); void time1() interrupt 3TH1=H;TL1=L;P3_2=P3_2;void int0() interrupt 0doP27=!P27; delay(50);P1=0xff; /先关位码P0=DuanData_BufferBit1; /开段码P1=0xdf;delay(50);P0=DuanData_BufferBit2;P1=0xef; delay(50); /先关位码P0=DuanData_BufferBit3; /开段码P1=0xf7;delay(50);P0=DuanData_BufferBit4;P1=0xfb; delay(50); /先关位码P0=DuanData_BufferBit5; /开段码P1=0xfd;delay(50);P0=DuanData_BufferBit6;P1=0xfe; while(P20=1); P27=1;change1();

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报