太原工业学院毕业设计
附录一:智能定时电源开关的程序设计
#include
unsigned char j,k,a1,a0,s=60; unsigned int m;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void delay(unsigned char i) {
for(j=i;j>0;j--) for(k=125;k>0;k--); }
void display(unsigned char sh_c,unsigned char g_c)//个位与十位数字的显示 {
dula=0;
P0=table[sh_c]; dula=1; dula=0; wela=0; P0=0xfe; wela=1; wela=0; delay(5); P0=table[g_c]; dula=1; dula=0; P0=0xfd;
41
太原工业学院毕业设计
wela=1; wela=0; delay(5); }
void main() {
TMOD=0x01;//选择中断类型为定时器中断 TR0=1;//总中断打开
TH0=(65536-46080)/256;// 由于晶振为11.0592,故所记次数应为46080,计时器
每隔50000微秒发起一次中断。
TL0=(65536-46080)%6;//46080的来历,为50000*11.0592/12 ET0=1;//定时器中断0打开 EA=1;//使能中断打开 while(1) {
if(m==20) { m=0; } a0=s; a1=s/10; display(a1,a0); if(s==10) {
// TR0=0;//时间到,定时器关闭
JDQ=0;//继电器闭合,灯泡亮。 s--;
} if(s == 0) {
JDQ = 1;//继电器断开,灯泡灭。
42
太原工业学院毕业设计
s = 60;
// break; }
}
}
void time0() interrupt 1 {TH0=(65536-46080)/256; TL0=(65536-46080)%6; m++;
}
43
太原工业学院毕业设计
附录二:智能定时电源开关硬件接线图
44