编码软件:Keil4
测试仿真软件:Protues
AT89C51-红绿灯源码,使用Protues仿真
实现代码如下:
#include<regx51.h>
#define uchar unsigned char
#define uint unsigned int
uint i_dx_green,i_nb_green,i_yellow,dx_green,nb_green;
uchar seg_09[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar dongxi_green=15; //东西绿15s
uchar yellow=3; //南北黄3s
uchar nanbei_green=25; //南北绿25s
//数码管位
sbit S_nb=P0^1; //南北十位
sbit G_nb=P0^0; //南北个位
sbit S_dx=P0^3; //东西十位
sbit G_dx=P0^2; //东西个位
//红绿灯位
sbit XD_green=P3^0; //西东绿
sbit XD_yellow=P3^1; //西东黄
sbit XD_red=P3^4; //西东红
sbit BN_green=P3^5; //北南绿
sbit BN_yellow=P3^6; //北南黄
sbit BN_red=P3^7; //北南红
//中断位
sbit K1=P3^2;
sbit K2=P3^3;
sbit K3=P0^4;
//定时延时
void delay(uint time)
{
uint t1;
t1=time;
while(t1--);
}
void time50ms(uchar j) //定时50ms
{
uchar k;
for(k=0;k