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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1950|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

stm32的交通信號(hào)燈控制系統(tǒng)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:786204 發(fā)表于 2020-6-21 23:30 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. #include "Trifficlight.h"
  2. #include "led.h"
  3. extern volatile u32 time;        //s計(jì)時(shí)
  4. extern int key;        //鍵值
  5. void Delay(__IO u32 nCount);         //簡(jiǎn)單的延時(shí)函數(shù)


  6. void control1(void)
  7. {

  8. if(time<=30)//主干道
  9.         {
  10.          B_red(ON);B_yellow(OFF);B_green_l(OFF);B_green_s(OFF);B_green_r(OFF);
  11.          C_red(OFF);C_yellow(OFF);C_green_l(OFF);C_green_s(ON);C_green_r(OFF);
  12.         }
  13. else if(time<=55)
  14.         {
  15.          B_red(ON);B_yellow(OFF);B_green_l(OFF);B_green_s(OFF);B_green_r(OFF);
  16.          C_red(OFF);C_yellow(OFF);C_green_l(ON);C_green_s(OFF);C_green_r(ON);
  17.         }
  18. else if(time<=60)
  19.         {
  20.          B_red(ON);B_yellow(OFF);B_green_l(OFF);B_green_s(OFF);B_green_r(OFF);
  21.          C_red(OFF);C_yellow(ON);C_green_l(OFF);C_green_s(OFF);C_green_r(OFF);

  22.          if(time%2)        {C_yellow(ON);}
  23.          else          {C_yellow(OFF);}
  24.                                                                                                
  25.         }
  26. else if(time<=90)
  27.         {
  28.         B_red(OFF);B_yellow(OFF);B_green_l(OFF);B_green_s(ON);B_green_r(OFF);
  29.         C_red(ON);C_yellow(OFF);C_green_l(OFF);C_green_s(OFF);C_green_r(OFF);
  30.         }
  31. else if(time<=115)
  32.         {
  33.         B_red(OFF);B_yellow(OFF);B_green_l(ON);B_green_s(OFF);B_green_r(ON);
  34.         C_red(ON);C_yellow(OFF);C_green_l(OFF);C_green_s(OFF);C_green_r(OFF);
  35.         }
  36. else
  37.         {
  38.         B_red(OFF);B_yellow(ON);B_green_l(OFF);B_green_s(OFF);B_green_r(OFF);
  39.         C_red(ON);C_yellow(OFF);C_green_l(OFF);C_green_s(OFF);C_green_r(OFF);

  40.         if(time%2)        {B_yellow(ON);}
  41.         else                  {B_yellow(OFF);}

  42.         }


  43. if(time<=30)   //人行道
  44. {
  45. Br_green(ON); Br_red(OFF);
  46. }
  47. else
  48. {
  49. Br_green(OFF); Br_red(ON);
  50. }


  51. if(time<=60)
  52. {
  53. Cr_green(OFF); Cr_red(ON);
  54. }
  55. else if(time<=90)
  56. {
  57. Cr_green(ON); Cr_red(OFF);
  58. }
  59. else
  60. {
  61. Cr_green(OFF); Cr_red(ON);
  62. }



  63. if(time<=30)//主干道
  64.         {
  65.          LEDC( ON ); LEDB( ON );LEDA( OFF );//選擇第二個(gè)數(shù)碼管
  66.          LED_DUANMA((60-time)/10);
  67.          Delay(0x000FEF);
  68.          LEDC( ON ); LEDB( ON );LEDA( ON );        //選擇第一個(gè)數(shù)碼管
  69.          LED_DUANMA((60-time)%10);                        //b方向
  70.          Delay(0x000FEF);
  71.          LEDC( OFF ); LEDB( ON );LEDA( ON );        //選擇第五個(gè)數(shù)碼管
  72.          LED_DUANMA((30-time)/10);
  73.          Delay(0x000FEF);
  74.            LEDC( OFF ); LEDB( ON );LEDA( OFF );   //選擇第六個(gè)數(shù)碼管                
  75.          LED_DUANMA((30-time)%10);                         //c方向
  76.          Delay(0x000FEF);  
  77.         }
  78. else if(time<=55)
  79.         {
  80.          LEDC( ON ); LEDB( ON );LEDA( OFF );//選擇第二個(gè)數(shù)碼管
  81.          LED_DUANMA((60-time)/10);
  82.          Delay(0x000FEF);
  83.          LEDC( ON ); LEDB( ON );LEDA( ON );        //選擇第一個(gè)數(shù)碼管
  84.          LED_DUANMA((60-time)%10);                        //b方向
  85.          Delay(0x000FEF);
  86.           
  87.          LEDC( OFF ); LEDB( ON );LEDA( ON );        //選擇第五個(gè)數(shù)碼管       
  88.          LED_DUANMA((55-time)/10);
  89.          Delay(0x000FEF);
  90.          LEDC( OFF ); LEDB( ON );LEDA( OFF );   //選擇第六個(gè)數(shù)碼管
  91.          LED_DUANMA((55-time)%10);                         //c方向
  92.          Delay(0x000FEF);         
  93.         }
  94. else if(time<=60)
  95.         {
  96.          LEDC( ON ); LEDB( ON );LEDA( OFF );//選擇第二個(gè)數(shù)碼管
  97.          LED_DUANMA((60-time)/10);
  98.          Delay(0x000FEF);
  99.          LEDC( ON ); LEDB( ON );LEDA( ON );        //選擇第一個(gè)數(shù)碼管
  100.          LED_DUANMA((60-time)%10);                        //b方向
  101.          Delay(0x000FEF);
  102.           
  103.          LEDC( OFF ); LEDB( ON );LEDA( ON );        //選擇第五個(gè)數(shù)碼管         
  104.          LED_DUANMA((60-time)/10);
  105.          Delay(0x000FEF);       
  106.          LEDC( OFF ); LEDB( ON );LEDA( OFF );   //選擇第六個(gè)數(shù)碼管       
  107.          LED_DUANMA((60-time)%10);                         //c方向
  108.          Delay(0x000FEF);       
  109.         }
  110. else if(time<=90)
  111.         {
  112.          LEDC( ON ); LEDB( ON );LEDA( OFF );//選擇第二個(gè)數(shù)碼管       
  113.          LED_DUANMA((90-time)/10);
  114.          Delay(0x000FEF);
  115.          LEDC( ON ); LEDB( ON );LEDA( ON );        //選擇第一個(gè)數(shù)碼管
  116.          LED_DUANMA((90-time)%10);                        //b方向
  117.          Delay(0x000FEF);
  118.           
  119.          LEDC( OFF ); LEDB( ON );LEDA( ON );        //選擇第五個(gè)數(shù)碼管
  120.          LED_DUANMA((120-time)/10);
  121.          Delay(0x000FEF);
  122.          LEDC( OFF ); LEDB( ON );LEDA( OFF );   //選擇第六個(gè)數(shù)碼管
  123.          LED_DUANMA((120-time)%10);                         //c方向
  124.          Delay(0x000FEF);       
  125.         }
  126. else if(time<=115)
  127.            {
  128.             LEDC( ON ); LEDB( ON );LEDA( OFF );//選擇第二個(gè)數(shù)碼管
  129.          LED_DUANMA((115-time)/10);
  130.          Delay(0x000FEF);
  131.          LEDC( ON ); LEDB( ON );LEDA( ON );        //選擇第一個(gè)數(shù)碼管
  132.          LED_DUANMA((115-time)%10);                        //b方向
  133.          Delay(0x000FEF);
  134.           
  135.          LEDC( OFF ); LEDB( ON );LEDA( ON );        //選擇第五個(gè)數(shù)碼管         
  136.          LED_DUANMA((120-time)/10);
  137.          Delay(0x000FEF);
  138.          LEDC( OFF ); LEDB( ON );LEDA( OFF );   //選擇第六個(gè)數(shù)碼管         
  139.          LED_DUANMA((120-time)%10);                         //c方向
  140.          Delay(0x000FEF);
  141.            }
  142. else
  143.         {
  144.         LEDC( ON ); LEDB( ON );LEDA( OFF );//選擇第二個(gè)數(shù)碼管
  145.         LED_DUANMA((120-time)/10);
  146.         Delay(0x000FEF);
  147.         LEDC( ON ); LEDB( ON );LEDA( ON );        //選擇第一個(gè)數(shù)碼管
  148.         LED_DUANMA((120-time)%10);                        //b方向
  149.         Delay(0x000FEF);
  150.     LEDC( OFF ); LEDB( ON );LEDA( ON );        //選擇第五個(gè)數(shù)碼管
  151.         LED_DUANMA((120-time)/10);
  152.         Delay(0x000FEF);
  153.         LEDC( OFF ); LEDB( ON );LEDA( OFF );   //選擇第六個(gè)數(shù)碼管          
  154.         LED_DUANMA((120-time)%10);                         //c方向
  155.         Delay(0x000FEF);
  156.         }



  157. if(time<=30)   //人行道
  158. {
  159. LEDC( OFF ); LEDB( OFF );LEDA( ON );//選擇第七個(gè)數(shù)碼管
  160. LED_DUANMA((30-time)/10);
  161. Delay(0x000FEF);
  162. LEDC( OFF ); LEDB( OFF );LEDA( OFF );        //選擇第八個(gè)數(shù)碼管
  163. LED_DUANMA((30-time)%10);                        //b方向
  164. Delay(0x000FEF);
  165. }
  166. else
  167. {
  168. LEDC( OFF ); LEDB( OFF );LEDA( ON );//選擇第七個(gè)數(shù)碼管
  169. LED_DUANMA((120-time)/10);
  170. Delay(0x000FEF);
  171. LEDC( OFF ); LEDB( OFF );LEDA( OFF );        //選擇第八個(gè)數(shù)碼管
  172. LED_DUANMA((120-time)%10);                        //b方向
  173. Delay(0x000FEF);
  174. }

  175.         if(time<=60)
  176.         {
  177.         LEDC( ON ); LEDB( OFF );LEDA( ON );//選擇第四個(gè)數(shù)碼管
  178.         LED_DUANMA((60-time)/10);
  179.         Delay(0x000FEF);
  180.         LEDC( ON ); LEDB( OFF );LEDA( OFF );        //選擇第三個(gè)數(shù)碼管
  181.         LED_DUANMA((60-time)%10);                        //c方向
  182.         Delay(0x000FEF);
  183.         }

  184. else if(time<=90)
  185. {
  186. LEDC( ON ); LEDB( OFF );LEDA( ON );//選擇第四個(gè)數(shù)碼管
  187. LED_DUANMA((90-time)/10);
  188. Delay(0x000FEF);
  189. LEDC( ON ); LEDB( OFF );LEDA( OFF );        //選擇第三個(gè)數(shù)碼管
  190. LED_DUANMA((90-time)%10);                        //c方向
  191. Delay(0x000FEF);
  192. }
  193. else
  194. {
  195. LEDC( ON ); LEDB( OFF );LEDA( ON );//選擇第四個(gè)數(shù)碼管
  196. LED_DUANMA((180-time)/10);
  197. Delay(0x000FEF);
  198. LEDC( ON ); LEDB( OFF );LEDA( OFF );        //選擇第三個(gè)數(shù)碼管
  199. LED_DUANMA((180-time)%10);                        //c方向
  200. Delay(0x000FEF);
  201. }
  202. }

  203. void control2(void)
  204. {
  205. if(time>15)
  206.         {
  207.          time=1;
  208.          key=0;
  209.         }
  210. LEDC( ON ); LEDB( ON );LEDA( OFF );        //選擇第2個(gè)數(shù)碼管
  211. LED_DUANMA((15-time)/10);
  212. Delay(0x000FEF);
  213. LEDC( ON ); LEDB( ON );LEDA( ON );        //選擇第1個(gè)數(shù)碼管
  214. LED_DUANMA((15-time)%10);
  215. Delay(0x000FEF);

  216. LEDC( ON ); LEDB(OFF );LEDA( OFF );        //選擇第4個(gè)數(shù)碼管  
  217. LED_DUANMA((15-time)%10);
  218. Delay(0x000FEF);
  219. LEDC( ON ); LEDB( OFF );LEDA( ON );        //選擇第3個(gè)數(shù)碼管
  220. LED_DUANMA((15-time)/10);

  221. Delay(0x000FEF);
  222. LEDC( OFF ); LEDB( ON );LEDA( ON );        //選擇第5個(gè)數(shù)碼管
  223. LED_DUANMA((15-time)/10);
  224. Delay(0x000FEF);
  225. LEDC( OFF ); LEDB( ON );LEDA( OFF );        //選擇第6個(gè)數(shù)碼管  
  226. LED_DUANMA((15-time)%10);
  227. Delay(0x000FEF);


  228. LEDC( OFF ); LEDB( OFF );LEDA( OFF );        //選擇第8個(gè)數(shù)碼管
  229. LED_DUANMA((15-time)%10);
  230. Delay(0x000FEF);
  231. LEDC( OFF ); LEDB( OFF );LEDA( ON );        //選擇第7個(gè)數(shù)碼管
  232. LED_DUANMA((15-time)/10);
  233. Delay(0x000FEF);


  234. B_red(ON);B_yellow(OFF);B_green_l(OFF);B_green_s(OFF);B_green_r(OFF);
  235. C_red(OFF);C_yellow(OFF);C_green_l(ON);C_green_s(ON);C_green_r(ON);

  236. Br_green(OFF); Br_red(ON);
  237. Cr_green(OFF); Cr_red(ON);

  238. }

  239. void control3(void)
  240. {
  241. if(time>15)
  242.         {
  243.          time=1;
  244.          key=0;
  245.         }
  246. LEDC( ON ); LEDB( ON );LEDA( OFF );        //選擇第2個(gè)數(shù)碼管
  247. LED_DUANMA((15-time)/10);
  248. Delay(0x000FEF);
  249. LEDC( ON ); LEDB( ON );LEDA( ON );        //選擇第1個(gè)數(shù)碼管
  250. LED_DUANMA((15-time)%10);
  251. Delay(0x000FEF);

  252. LEDC( ON ); LEDB(OFF );LEDA( OFF );        //選擇第4個(gè)數(shù)碼管  
  253. LED_DUANMA((15-time)%10);
  254. Delay(0x000FEF);
  255. LEDC( ON ); LEDB( OFF );LEDA( ON );        //選擇第3個(gè)數(shù)碼管
  256. LED_DUANMA((15-time)/10);

  257. Delay(0x000FEF);
  258. LEDC( OFF ); LEDB( ON );LEDA( ON );        //選擇第5個(gè)數(shù)碼管
  259. LED_DUANMA((15-time)/10);
  260. Delay(0x000FEF);
  261. LEDC( OFF ); LEDB( ON );LEDA( OFF );        //選擇第6個(gè)數(shù)碼管  
  262. LED_DUANMA((15-time)%10);
  263. Delay(0x000FEF);


  264. LEDC( OFF ); LEDB( OFF );LEDA( OFF );        //選擇第8個(gè)數(shù)碼管
  265. LED_DUANMA((15-time)%10);
  266. Delay(0x000FEF);
  267. LEDC( OFF ); LEDB( OFF );LEDA( ON );        //選擇第7個(gè)數(shù)碼管
  268. LED_DUANMA((15-time)/10);
  269. Delay(0x000FEF);


  270. B_red(OFF);B_yellow(OFF);B_green_l(ON);B_green_s(ON);B_green_r(ON);
  271. C_red(ON);C_yellow(OFF);C_green_l(OFF);C_green_s(OFF);C_green_r(OFF);

  272. Br_green(OFF); Br_red(ON);
  273. Cr_green(OFF); Cr_red(ON);

  274. }
  275. void control4(void)
  276. {
  277.   LEDC( ON ); LEDB( ON );LEDA( ON );        //選擇第1個(gè)數(shù)碼管
  278.   LEDC( ON ); LEDB( ON );LEDA( OFF );        //選擇第2個(gè)數(shù)碼管
  279.   LEDC( ON ); LEDB( OFF );LEDA( ON );        //選擇第3個(gè)數(shù)碼管
  280.   LEDC( ON ); LEDB(OFF );LEDA( OFF );        //選擇第4個(gè)數(shù)碼管  
  281.   LEDC( OFF ); LEDB( ON );LEDA( ON );        //選擇第5個(gè)數(shù)碼管
  282.   LEDC( OFF ); LEDB( ON );LEDA( OFF );        //選擇第6個(gè)數(shù)碼管  
  283.   LEDC( OFF ); LEDB( OFF );LEDA( ON );        //選擇第7個(gè)數(shù)碼管
  284.   LEDC( OFF ); LEDB( OFF );LEDA( OFF );        //選擇第8個(gè)數(shù)碼管
  285.   LED1(OFF);LED2(ON);LED3(ON); LED4(ON);LED5(OFF);LED6(OFF);LED7(ON);LED8(ON);
  286. B_green_l(OFF);B_green_s(OFF);B_green_r(OFF);B_yellow(OFF);
  287. C_green_l(OFF);C_green_s(OFF);C_green_r(OFF);C_yellow(OFF);
  288. Br_green(OFF);
  289. Cr_green(OFF);
  290. if(time%2)        {Cr_green(ON);  Br_green(ON);B_red(ON);C_red(ON); }
  291. else             {Cr_green(OFF);Br_green(OFF);B_red(OFF);C_red(OFF);}
  292. }

  293. void control()
  294. {
  295.         if(!key)
  296.         control1();
  297.         else if(key==1)
  298.         control2();
  299.         else if(key==2)
  300.         control3();
  301.         else if(key==3)       
  302.         control4();               
  303. }

  304. void Delay(__IO u32 nCount)         //簡(jiǎn)單的延時(shí)函數(shù)
  305. {
  306.         for(; nCount != 0; nCount--);
  307. }
復(fù)制代碼


交通燈.7z

186.17 KB, 下載次數(shù): 12, 下載積分: 黑幣 -5

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

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2020-6-22 15:47 | 只看該作者
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說(shuō)明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 特级特黄特色的免费大片 | 久久黄网 | 黄色香蕉视频在线观看 | 一级二级三级黄色 | 国产激情一区二区三区 | 国产黄色大片在线免费观看 | 一级黄色片网站 | 日韩av免费在线观看 | 日本三级黄视频 | 在线不卡一区 | 婷婷91| 视频一区二区三区中文字幕 | 精品人伦一区二区三区蜜桃网站 | 国产精品一二三区 | 人人干人人干人人干 | 日日操夜夜摸 | 午夜婷婷激情 | 国产精品国产精品国产专区不片 | 99re| 国产精品毛片一区二区在线看 | 91精品一区二区 | 国产精品嫩草影院精东 | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 天天躁日日躁狠狠的躁天龙影院 | 日本午夜在线视频 | 天堂网av在线 | 91色视频在线观看 | 中文日本在线 | 久久久激情视频 | 视频二区 | 日韩在线免费视频 | 婷婷久久一区 | 综合久久av| 草草草久久久 | 性大毛片视频 | 欧美黄色性生活视频 | 中文字幕一二三 | 国产欧美精品一区二区三区 | 一区二区av | 亚洲欧美一区二区三区1000 | 国产精品毛片一区二区在线看 |