附录1程序源代码
#include
#include
#define uchar unsigned char
#define uint unsigned int
/*************声光报警引脚定义****************/
sbit WARN = P3^7;
/***************按键引脚定义******************/
sbit KEY1= P1^0;
sbit KEY2= P1^1;
/*************TLC1549引脚定义*****************/
sbit
AD_CLK = P3^4;
//AD_CLK
sbit
AD_DOUT = P3^5;
//AD_DOUT
sbit
AD_CS = P3^6;
//AD_CS
uchar code du_code[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //共阳极数码管码值
uchardis_buf[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
//显示缓冲
ucharbit_code[]={0xfe,0xfd,0xfb,0xf7}; //数码管位码,高电平选通
/**************变量定义定义******************/
bit flag=0,flag1=0;
long result;
long temp;
uint MAX=500;
uchar count=0,count1=0;
uchar second,minute;
void Delayms(uint x)
{
uchar y;
for(;x>0;x--)
for(y=110;y>0;y--);
}
void Init_Interrupt(void)
{
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=0;
}
void Display(void)
{
uchar i,j;
if(flag==0)
{
dis_buf[0]=du_code[result/1000];
dis_buf[1]=du_code[result%1000/100];
dis_buf[2]=du_code[result%100/10];
dis_buf[3]=du_code[result%10];
}
else
{
dis_buf[0]=du_code[MAX/1000];
dis_buf[1]=du_code[MAX%1000/100];
dis_buf[2]=du_code[MAX%100/10];
dis_buf[3]=du_code[MAX%10];
}
for(j=0;j<10;j++)
{
for(i=0;i<4;i++)
{
P2=bit_code;
P0=dis_buf;
Delayms(5);
}
}
}
|