//This 代码写闪烁 #1、 #3、 #5 和 #7 指示灯使用定时器 0 每 200 毫秒
//In 另外,该代码使用两个第一的七段显示周期,即从 0 到 60 使用计时器 1
#include < reg52.h >
sbit led1 = P1 ^0;
sbit led3 = P1 ^2 ;
sbit led5 = P1 ^4;
sbit led7 = P1 ^6 ;
sbit LE1 = P2 ^6 ;
sbit LE2 = P2 ^7;
void delay(void) ;
无符号的 int count1、 count2、 l、 k;
无符号的字符代码表 1 [] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D} ;
无符号的字符代码表 2 [] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D、 为 0x07,0x7F,0x6F} ;
void main)
{
TMOD = 0X11;
EA = 1;
ET0 = 1 ;
TR0 = 1;
TH0 =(65536-45872)/256 ;
TL0 =(65536-45872) %256;
TMOD = 0X11;
EA = 1;
ET1 = 1 ;
TR1 = 1 ;
TH1 =(65536-45872)/256 ;
TL1 =(65536-45872) %256;
while(1) ;
}
void time0() 中断 1
{
TH0 =(65536-45872)/256 ;
TL0 =(65536-45872) %256;
count1 + + ;
如果 (count1 = = 4)
{
led1 = ~ led1 ;
led3 = ~ led3 ;
led5 = ~ led5 ;
led7 = ~ led7 ;
count1 = 0 ;
}
}
void time1() 中断 3
{
TH1 =(65536-45872)/256 ;
TL1 =(65536-45872) %256;
count2 + + ;
如果 (count2 = = 20)
{
LE2 = 1 ;
P0 = 0XDF;
LE2 = 0 ;
LE1 = 1 ;
P0 = 表 1 [1] ;
LE1 = 0 ;
LE2 = 1 ;
P0 = 到 0XEF 之间 ;
LE2 = 0 ;
LE1 = 1 ;
P0 = 表 1 [2] ;
LE1 = 0 ;
count2 = 0 ;
}
}
delay()
{
为 (k = 200 ; k > 0; k-)
为 (l = 100 ; l > 0; I--) ;
为 (k = 200 ; k > 0; k-)
为 (l = 100 ; l > 0; I--) ;
}
|