交通灯程序梯形图(交通灯程序)

2023-09-07 19:03:32 生活饮食 0阅读 回答者:admin

大家好,小爱来为大家解答以上问题。交通灯程序梯形图,交通灯程序很多人还不知道,现在让我们一起来看看吧!

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仿真软件,效果如下:

本文到此结束,希望对大家有所帮助。

免责声明:本文来源网友投稿及网络整合仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。投诉邮箱:1765130767@qq.com。

本文地址:https://www.lnsss.com/shenghuo/yinshi/871528.html