电路图
点击下载
代码:
#include<reg51.h>
// 定义come 变量 用于显示
unsigned int come = 0;
//延时函数
void delay(unsigned time){
unsigned i , j;
for(i = 0 ;i< time;i++)
for(j = 0;j < time ;j++);
}
//主函数
void main(){
// P0、P1 初始化
P0 = 0x00;
P2 = 0x00;
//中断0定义
EA = 1;
IT0 = 1;
EX0 = 1;
//中断1定义
IT1 = 1;
EX1 = 1;
//设置工作方式
TMOD = 0x55;
//使用T0进行计数
TH0 = 0xff;
TL0 = 0xff;
ET0 = 1;
TR0 = 1;
//使用T1进行计数
TH1 = 0xff;
TL1 = 0xff;
ET1 = 1;
TR1 = 1;
//使用T0进行计数
while(1);
}
// 全亮
void light() interrupt 0{
P2 = 0xff;
P0 = 0x99;
come = 0x99;
}
//全灭
void extingish() interrupt 2{
P2 = 0x00;
P0 = 0x00;
come = 0;
}
// 来人
void person_come() interrupt 1{
come = come + 1 ;
P2 = (come/10<<4|come%10);
P0 = (come/10<<4|come%10);
TH0 = 0xff;
TL0 = 0xff;
}
//走人
void person_go() interrupt 3{
come = come - 1;
P2 = (come/10<<4|come%10);
P0 = (come/10<<4|come%10);
TH1 = 0xff;
TL1 = 0xff;
}