久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 初學10天單片機,仿制交通信號燈,請多指導 [打印本頁]

作者: jwulang    時間: 2020-3-1 07:23
標題: 初學10天單片機,仿制交通信號燈,請多指導
我是一名高中物理教師,因需指導學生進行小發明創造而利用寒假自學單片機,10天時間簡單了解了一些單片機的功能,這是我仿制的交通信號燈程序及效果視頻,望大家多多指導。


單片機源程序如下:
  1. #include "reg52.h"
  2. typedef unsigned int u16;
  3. typedef unsigned char u8;
  4. sbit smg1=P3^1;
  5. sbit smg2=P3^2;
  6. sbit smg3=P3^3;
  7. sbit smg4=P3^4;
  8. #define GPIO_DIG P0
  9. #define GPIO_TRAFFIC P1
  10. sbit RED1 = P1^1;
  11. sbit YELLOW1= P1^2;
  12. sbit GREEN1 = P1^3;
  13. sbit RED2 = P1^4;
  14. sbit YELLOW2= P1^5;
  15. sbit GREEN2 = P1^6;
  16. u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};// 顯 示 0~F 的值
  17. u8 DisplayData[4];
  18. u8 Second;
  19. /*函 數 名 : delay*/
  20. void delay(u16 i)
  21. {
  22. while(i--);
  23. }
  24. /*函 數 名 : DigDisplay*/
  25. void DigDisplay()
  26. {
  27. u8 i;
  28. for(i=0;i<4;i++)
  29. {
  30. switch(i)  
  31. {
  32.    case(0): smg1=0;smg2=1;smg3=1;smg4=1; break;
  33.    case(1): smg1=1;smg2=0;smg3=1;smg4=1; break;
  34.    case(2): smg1=1;smg2=1;smg3=0;smg4=1; break;
  35.    case(3): smg1=1;smg2=1;smg3=1;smg4=0; break;
  36. }
  37. GPIO_DIG=DisplayData[i];//發送段碼
  38. delay(100); //間隔一段時間掃描
  39. GPIO_DIG=0x00;//消隱
  40. }
  41. }
  42. /*函 數 名 : Timer0Init*/
  43. void Timer0Init()
  44. {
  45. TMOD|=0X01;//選擇為定時器 0 模式,工作方式 1,僅用 TR0 打開啟動。
  46. TH0=0XFC; //給定時器賦初值,定時 1ms
  47. TL0=0X18;
  48. ET0=1;//打開定時器 0 中斷允許
  49. EA=1;//打開總中斷
  50. TR0=1;//打開定時器
  51. }
  52. /*函 數 名 : main*/
  53. void main()
  54. {
  55. Second = 1;
  56. Timer0Init();
  57. while(1)
  58. {
  59. if(Second == 30)
  60. {
  61. Second = 1;
  62. }
  63. if(Second < 11)
  64. {
  65. //周期1/4:南北1方向通行10秒//
  66. DisplayData[0] = smgduan[(10 - Second) % 100 / 10];
  67. DisplayData[1] = smgduan[(10 - Second) %10];
  68. DisplayData[2] = DisplayData[0];
  69. DisplayData[3] = DisplayData[1];
  70. DigDisplay();
  71. GPIO_TRAFFIC = 0x00;
  72. GREEN1 = 1;  
  73. RED2 = 1;  
  74. }
  75. //周期2/4:南北1方向黃燈5秒//
  76. else if(Second < 16)
  77. {
  78. DisplayData[0] = smgduan[(15 - Second) % 100 / 10];
  79. DisplayData[1] = smgduan[(15 - Second) %10];
  80. DisplayData[2] = DisplayData[0];
  81. DisplayData[3] = DisplayData[1];
  82. DigDisplay();  
  83. GPIO_TRAFFIC = 0x00;  
  84. YELLOW1 = 1;
  85. RED2 = 1;
  86. delay(20000);
  87. YELLOW1 = 0;
  88. delay(20000);
  89. }
  90. //周期3/4:東西2方向通行10秒//
  91. else if(Second < 26)
  92. {
  93. DisplayData[0] = smgduan[(25 - Second) % 100 / 10];
  94. DisplayData[1] = smgduan[(25 - Second) %10];
  95. DisplayData[2] = DisplayData[0];
  96. DisplayData[3] = DisplayData[1];
  97. DigDisplay();
  98. GPIO_TRAFFIC = 0x00;  
  99. RED1 = 1;  
  100. GREEN2 = 1;  
  101. }
  102. //周期4/4:東西2方向黃燈5秒//
  103. else
  104. {
  105. DisplayData[0] = smgduan[(30 - Second) % 100 / 10];
  106. DisplayData[1] = smgduan[(30 - Second) %10];
  107. DisplayData[2] = DisplayData[0];
  108. DisplayData[3] = DisplayData[1];
  109. DigDisplay();
  110. GPIO_TRAFFIC = 0x00;  
  111. RED1 = 1;
  112. YELLOW2 = 1;
  113. delay(20000);
  114. YELLOW2 = 0;
  115. delay(20000);
  116. }
  117. }
  118. }
  119. /*函 數 名 : void Timer0() interrupt 1*/
  120. void Timer0() interrupt 1
  121. {
  122. static u16 i;
  123. TH0=0XFC;
  124. TL0=0X18;
  125. i++;
  126. if(i==1000)
  127. {
  128. i=0;
  129. Second ++;
  130. }
  131. }
復制代碼



作者: hantu    時間: 2020-3-1 20:09
加油!

不過,C語言代碼呢最好還是要規范縮進排版比較好,不然真的不想看。
作者: jwulang    時間: 2020-3-2 05:46
hantu 發表于 2020-3-1 20:09
加油!

不過,C語言代碼呢最好還是要規范縮進排版比較好,不然真的不想看。

嗯嗯,我會繼續學習的,謝謝了!!




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩精品中文字幕一区二区三区 | 精品中文字幕一区二区三区 | 超碰在线播 | 精品一区二区三区在线视频 | 午夜精品久久 | 午夜成人免费视频 | 欧美 日韩 国产 成人 在线 | 久久国产一区二区 | 成年人在线观看 | 久久久婷 | 久久成人av电影 | 国产91色在线 | 亚洲 | 国产精品视频久久久 | 久久精品欧美一区二区三区不卡 | 日韩精品在线观看一区二区三区 | 国产精品久久久久久久久久 | 性色av网站 | 精品久久国产视频 | 正在播放国产精品 | 日本三级视频 | 日日骚视频| 欧美精品久久久久 | 中文字幕第九页 | 日韩在线视频一区 | www.日韩高清| 国产一区二区电影 | 国产精品99久久久精品免费观看 | 久久91av| 日韩在线观看网站 | 日韩av成人 | 久久亚洲一区二区 | 国产精品欧美一区二区三区不卡 | 四虎海外 | 国产成人精品一区二区三区在线 | 日本中文字幕在线视频 | 日本激情视频在线播放 | 婷婷开心激情综合五月天 | 神马久久久久久久久久 | 成人免费视频 | 99精品视频在线 | 亚洲一区二区在线视频 |