需求:一个电子表,有计时,调时,定闹,查看时间(查看闹钟时间),闹钟时,一段时间
(这里设为一分钟)后自动停止,或者按个按键后强制停止。
思路:
其中第一个按键为进入计时和调时,定闹,查看时间模式间的切换,第二个按键在调时的时
间和分钟,以及闹钟的时间和分钟的时间确定间不断切换,用指示灯 D1,D2,D3,D4 分
别来表示,选中的部分,第三个按键为设定的时间,第四个按键控制闹钟的蜂鸣器不响。用
单片机内的定时器 0 进行计时。
以下是程序源代码:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long int
sbit dula=P2^6;
sbit wela=P2^7;
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
sbit beep=P2^3;
sbit D1=P1^0;
sbit D2=P1^1;
sbit D3=P1^2;
sbit D4=P1^3;
ulong tt1,temp,temp1,temp0;
uchar tt,sw,wan,qian,bai,shi,ge,flag,choose,aa,bb,cc,dd,ff,num;
uchar code tabledu[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar code tablewe[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
void delay(uint);
void stop();
void int1();
void tempB(ulong );
void dispaly(uchar sw,uchar wan,uchar qian,uchar bai,uchar shi,uchar ge);
void main()
{