大家好,小爱来为大家解答以上问题。交通灯程序梯形图,交通灯程序很多人还不知道,现在让我们一起来看看吧!
1、打开proteus仿真软件,画出红绿灯仿真电路图,如下图:
2、打开Keil4编程软件,根据刚刚画的红绿灯模拟电路图,编写相应的程序。该计划如下:
3、#include reg52.h
4、#define uchar unsigned char
5、#define uint unsigned int
6、sbit RED_A=P0^0;
7、sbit YELLOW_A=P0^1;
8、sbit GREEN_A=P0^2;
9、sbit RED_B=P0^3;
10、sbit YELLOW_B=P0^4;
11、sbit GREEN_B=P0^5;
12、uchar Flash_Count=0;
13、Operation_Type=1;
14、void DelayMS(uint x)
15、{
16、uchar t;
17、while(x--)
18、{
19、 for(t=120;t0;t--);
20、}
21、}
22、void Traffic_lignt()
23、{
24、switch(Operation_Type)
25、{
26、 case 1:
27、RED_A=1;YELLOW_A=1;GREEN_A=0;
28、RED_B=0;YELLOW_B=1;GREEN_B=1;
29、DelayMS(2000);
30、Operation_Type=2;
31、break;
32、case 2:
33、DelayMS(200);
34、YELLOW_A=~YELLOW_A;
35、if(++Flash_Count !=10)
36、return;
37、Flash_Count=0;
38、Operation_Type=3;
39、break;
40、case 3:
41、RED_A=0;YELLOW_A=1;GREEN_A=1;
42、RED_B=1;YELLOW_B=1;GREEN_B=0;
43、DelayMS(2000);
44、Operation_Type=4;
45、break;
46、case 4:
47、DelayMS(200);
48、YELLOW_B=~YELLOW_B;
49、if(++Flash_Count !=10)
50、return;
51、Flash_Count=0;
52、Operation_Type=1;
53、break;
54、}
55、}
56、void main()
57、{
58、while(1)
59、{
60、 Traffic_lignt();
61、}
62、}
63、将Keil4编写的程序导入proteus仿真软件,效果如下:
本文到此结束,希望对大家有所帮助。