函数功能:显示秒的子程序
入口参数:s
********************************************************************/
void DisplaySecond(unsigned char s)
{
if(time[0])
{
P2=0xAB; //P2.6引脚输出低电平, DS6点亮 1010 1011
P0=Tab[s/10]; //显示十位
delay();
delay();
delay();
P2=0x57; //P2.7引脚输出低电平, DS7点亮 0101 0111
P0=Tab[s%10]; //显示个位
delay();
delay();
delay();
P2=0xff; //关闭所有数码管
P0=0xff;
delay();
delay();
delay();
P13 = 0;
P16 = 0;
P15 = 0;
P34 = 1;
P35 = 1;
P36 = 1;
P37 = 1;
}
else
{
P34 = 0;
P35 = 0;
P36 = 0;
P0=Tab[0];
if(yellow_time%2)
{
P2=0x03;
}
else
{
P2=0xff;
}
if(RI) // 是否有数据到来
{
EA=0;
RI = 0;
tmp = SBUF;
EA=1;
if(tmp==0xff) flag=1;
else
{
tmp_buf[1]=tmp;
flag=0;
}
}
P10 = 1;
P11 = 1;
P12 = 1;
P13 = 1;
P14 = 1;
P15 = 1;
P16 = 1;
P17 = 1;
P32 = 1;
P33 = 1;
P34 = 1;
P35 = 1;
P36 = 1;
P37 = 1;
}
}
中 P13 = 0;
P16 = 0;
P15 = 0;
P34 = 1;
P35 = 1;
P36 = 1;
P37 = 1;的作用???
解释c语言编写的交通灯程序
答案:2 悬赏:60
解决时间 2021-02-17 20:00
- 提问者网友:巴黎塔下许过得承诺
- 2021-02-17 10:45
最佳答案
- 二级知识专家网友:荒唐后生
- 2021-02-17 12:23
你这个程序,需要知道原理图或仿真图,结合电路才知道那些是用来控制什么。
不过,那些Pnn,应该是在程序的面定义的引脚,如P37,应该是用
sbit P37=P3^7;这样的语句定义过的,就是P3.7的引脚去控制什么电路了。
引脚是不是控制LED,用LED排列成的8字形的计时牌啊,就像数码管似的。因交通灯的倒计时版就是由很多的LED灯排列而成的,并不是用现成的数码管。
不过,那些Pnn,应该是在程序的面定义的引脚,如P37,应该是用
sbit P37=P3^7;这样的语句定义过的,就是P3.7的引脚去控制什么电路了。
引脚是不是控制LED,用LED排列成的8字形的计时牌啊,就像数码管似的。因交通灯的倒计时版就是由很多的LED灯排列而成的,并不是用现成的数码管。
全部回答
- 1楼网友:说多了都是废话
- 2021-02-17 13:22
我用的是atmega16单片机编程的,也是avr单片机
假设pa0接红灯,pa1接黄灯,pa2接绿灯。高电平亮。
我的延时函数是ms延时,比如delay(1000)表示延时1000毫秒
void main()
{
ddra|=bit(0)|bit(1)|bit(2);//设置pa0,pa1,pa2口为输出
while(1)
{
porta|=bit(0);
porta&=~bit(1);
porta&=~bit(2);
delay(50000);
porta&=~bit(0);
porta|=bit(1);
porta&=~bit(2);
delay(5000);
porta&=~bit(0);
porta&=~bit(1);
porta|=bit(2);
delay(50000);
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯