c语言编写十字路口交通灯的程序

我这有个程序,但很多地方不理解,拜托各路大神给予讲解。部分程序如下:
sbit Time_Show_LED2=P2^5; //Time_Show_LED2(直行时间显示)控制位
sbit Time_Show_LED1=P2^4; //Time_Show_LED1(直行时间显示)控制位
sbit E1=P0^7;
sbit EW_LED2=P2^3; //EW_LED2控制位
sbit EW_LED1=P2^2; //EW_LED1控制位
sbit SN_LED2=P2^1; //SN_LED2控制位
sbit SN_LED1=P2^0; //SN_LED1控制位
sbit SN_Yellow=P1^6; //SN黄灯
sbit EW_Yellow=P1^2; //EW黄灯
sbit EW_ManGreen=P3^0; //EW人行道绿灯
sbit SN_ManGreen=P3^1; //SN人行道绿灯
sbit Special_LED=P2^6; //交通特殊指示灯
sbit Busy_LED=P2^7; //交通繁忙指示灯
sbit Nomor_Button=P3^5; //交通正常按键
sbit Busy_Btton=P3^6; //交通繁忙按键
sbit Special_Btton=P3^7; //交通特殊按键
sbit EW_ManRed=P3^3; //EW人行道红灯
sbit SN_ManRed=P3^4; //SN人行道红灯
bit Flag_SN_Yellow; //SN黄灯标志位
bit Flag_EW_Yellow; //EW黄灯标志位
char Time_EW; //东西方向倒计时单元
char Time_SN; //南北方向倒计时单元
uchar EW=60,SN=40,EWL=19,SNL=19; //程序初始化赋值,正常模式
uchar EW1=60,SN1=40,EWL1=19,SNL1=19; //用于存放修改值的变量
uchar codetable[]={0x01,0x67,0x12,0x42,0x64,0x48,0x08,0x63,0x00,0x40}; //0-9段选码
uchar codeS[8]={0x28,0x48,0x18,0x48,0x82,0x84,0x81,0x84}; (此处位码是怎么计算出来的???)
//交通信号灯控制代码
/**********************延时子程序**************************/
void Delay(uchar a)
{
uchar i;
i=a;
while(i--){;}
}

/*****************显示子函数******************************/
void Display(void)
{
ucharh,l;
h=Time_EW/10;
l=Time_EW%10;
P0=table[l];
EW_LED1=1;
EW_LED2=0; //点亮EW_LED2
Delay(10);
EW_LED2=1; //熄灭EW_LED2
P0=table[h];
EW_LED2=1;
EW_LED1=0; //点亮EW_LED1
Delay(10);
EW_LED1=1;

h=Time_SN/10;
l=Time_SN%10;
P0=table[l];
SN_LED1=1;
SN_LED2=0; //点亮SN_LED2
Delay(10);
SN_LED2=1;
P0=table[h];
SN_LED2=1;
SN_LED1=0; //点亮SN_LED1
Delay(10);
SN_LED1=1;

h=EW1/10;
l=EW1%10;
P0=table[l];
Time_Show_LED1=1; //点亮Time_Show_LED1
Delay(10);
麻烦哪位大神给我讲解一下此处有关数码管的问题啊,急啊

这程序是自己写的吗?要是的话也有点太,,,,那啥了吧,就是有点乱,感觉不用sbit那么多。不过自己写的怎么都比抄的好。
P0=table【I】
table数组从来没看到。定义的数组是uchar codetable[]和uchar codeS[8,codes数组也没看到。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-09-26
你的单片机是直接连接数码管么?

c51单片机c语言交通灯的程序
使用C语言为C51单片机编写交通灯控制程序是完全可行的,通过合理地设置定时器、I\/O端口以及逻辑控制,可以实现交通灯的定时切换和状态显示。接下来,我将详细解释如何为C51单片机使用C语言编写交通灯控制程序。首先,我们需要了解C51单片机的基本结构和资源,包括其I\/O端口、定时器\/计数器等。通常,交通灯系...

求高人帮忙十字路口交通灯c语言编程 急急急!!!
define uchar unsigned char define uint unsigned int sbit RED_A = P0^0;sbit YELLOW_A = P0^1;sbit GREEN_A = P0^2;sbit RED_B = P0^3;sbit YELLOW_B = P0^4;sbit GREEN_B = P0^5;uchar Flash_Count = 0, Operation_Type=1;void DelayMS(uint x){ uchar i;while ...

十字路口交通灯控制
} void display() \/\/交通灯显示 { if(flag==1) \/\/南北通行,东西受阻

单片机C语言红绿灯程序,要求:数码管显示时间倒计时、16*16LED点阵显示...
define uint unsigned int define uchar unsigned char define BLKN 2 \/\/列锁存器数 sbit G = P1^7; \/\/P1.7为显示允许控制信号端口 sbit RCLK = P2^0; \/\/P2.0为输出锁存器时钟信号端 sbit SCLR = P2^1; \/\/P2.1为移位寄存器清○端 void delay(uint); \/\/延时函数 ...

用C语言编程模拟交通路口(十字路口)红绿灯的控制功能
方向, 2、4 为东,西方向,初始态为4 个路口的红灯全亮。之后, 1、3 路口的绿灯亮,2、4 路口的红灯亮, 1、3 路口方向通车。延迟一段时间后, 1、3 路口的绿灯熄灭,而1、3 路口的黄灯开始闪烁。闪烁若干次后, 1、3 路口的红灯亮, 同时 2、4 路口的绿灯亮, 2、4 路口方向开始...

C语言程序设计编写一个交通红绿灯的控制,各位高手帮帮忙急!
void main(){ TMOD= TH0 TL0 ET0 TR0 while(1) \/\/根据楼主所给,有4种状态 { state1;state2;state3;state4;} } void timer0() interrupt 1 \/\/定时器0 { TH0=0x3c;TL0=0xb0;counter++;} void state1() \/\/控制南北红灯亮,东西绿灯亮,30s { unsigned char temp = 30;red_nb...

如何用c语言编程在单片机上做交通信号灯
(1)电路连接图:三、软件程序(C语言) 以下是整个设计的软件程序,直接可以编译成*。Hex代码。通过以上电路,下载到单片机,可直接运行。\/\/***\/\/\/程序名:十字路口交通灯控制\/\/编写人:黄庭剑\/\/初写时间:2009年1月2日\/\/程序功能:南北为车行道,延时60秒;东西方向为人行道,延时20秒,且在最后...

求用C语言编写的交通灯程序,C51单片机控制,无左转右转
define uchar unsigned char define ON 0 \/\/0的时候灯亮 define OFF 1 \/\/1的时候灯亮 \/\/管脚定义 \/\/南北道 黄灯亮3秒 红灯亮 30秒 黄灯3秒 绿灯38秒 \/\/东西道 黄灯亮3秒 绿灯亮 28秒 黄灯3秒 红灯40秒 sbit PortDX_Yellow = P1^0; \/\/东西方向黄灯 sbit PortDX_Red = P1^1; ...

c51单片机c语言交通灯的程序
东西绿灯,南北黄灯 sec_nb=sec_dx+5;while(1){ key(); \/\/调用按键扫描程序 display(); \/\/调用显示程序 Buzzer();} } \/\/函数的定义部分 void key() \/\/按键扫描子程序 { if(k1!=1){ delay(10);if(k1!=1){ while(k1!=1){ key_to1();for(n=0;n<40;n++)...

一、设计制作一个模拟的十字路口交通信号灯控制系统,要求:
你的交通灯做好了么 要是没有的话给你写个 你有protues么 有的花给你画个图 写个程序!!

相似回答