求51单片机程序。(C语言)

要求:1.东西方向各有一组红黄绿灯用于指挥交通,持续时间分别60S,3S,60S。           2.当有紧急情况(如消防车),两方向均为红灯,计时停止,特殊情况后,按控制键恢复原来状态,正常工作(按键控制)。           3.使用数码管以倒计时显示两个方向允许或禁止通行的时间。

第1个回答  2011-07-05
#include <AT89X51.H>//单片机51头文件,存放着单片机的寄存器
unsigned char dat; //用于存储单片机接收发送缓冲寄存器SBUF里面的内容
sbit gewei=P2^2; //个位选通定义
sbit shiwei=P2^3; //十位选通定义
unsigned char code table[]=;
//;// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
void Delay(unsigned int tc) //延时程序
{
while( tc != 0 )
{unsigned int i;
for(i=0; i<100; i++);
tc--;}
}
void LED() //LED显示接收到的数据
{
shiwei=0;
P0=~table[dat/16];
Delay(8);
shiwei=1;
gewei=0;
P0=~table[dat%16];
Delay(5);
gewei=1;
}
void Init_Com(void)//功能:串口初始化,波特率9600,方式1
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
void main()//主程序功能:实现接收数据并把接收到的数据原样发送回去///////
{
Init_Com();//串口初始化
// P1=0xf0;
while(1)
{
if ( RI ) //扫描判断是否接收到数据,
{
dat = SBUF; //接收数据SBUF赋与dat
RI=0; //RI清零。
SBUF = dat; //在原样把数据发送回去
}
LED(); //显示接收到的数据
}
}
另外,站长团上有产品团购,便宜有保证
第2个回答  2011-07-15
我有代码,但是太长,请楼主给个邮箱,我发给你本回答被提问者采纳
第3个回答  2011-07-06
你要的是结果还是过程。学习不能够这样。
相似回答