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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1947|回復: 2
打印 上一主題 下一主題
收起左側

初學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. }
復制代碼


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:462827 發表于 2020-3-1 20:09 | 只看該作者
加油!

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

使用道具 舉報

板凳
ID:700456 發表于 2020-3-2 05:46 | 只看該作者
hantu 發表于 2020-3-1 20:09
加油!

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

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: av黄色国产 | 欧美乱码精品一区二区三区 | 欧美一区二区三区四区五区无卡码 | 日韩精品成人 | 午夜精品福利视频 | 国产电影一区二区 | 日韩α片 | 亚洲aⅴ| av在线一区二区 | a国产一区二区免费入口 | 亚洲一区二区三区在线视频 | 伊人二区 | 欧美日韩在线观看一区 | 户外露出一区二区三区 | 日韩精品一区在线观看 | 国产亚洲欧美日韩精品一区二区三区 | 欧美成人免费在线 | 国产伦一区二区三区四区 | 欧美精品在线免费观看 | 中文字幕不卡在线观看 | 天堂一区在线 | 91视频18 | 老牛嫩草一区二区三区av | h视频在线观看免费 | 成人在线免费视频 | 午夜精品视频在线观看 | 伊人精品 | 国产色在线 | 亚洲精品日韩欧美 | 国产视频一区在线 | 欧美日韩高清免费 | 日韩一区二区三区在线看 | 韩日在线视频 | 国产农村妇女毛片精品久久麻豆 | 婷婷综合在线 | 玖玖国产精品视频 | 毛片免费看 | 免费黄色在线观看 | 超碰人人人 | 国产超碰人人爽人人做人人爱 | 日韩欧美国产精品 |