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

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

QQ登錄

只需一步,快速開始

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

簡(jiǎn)易紅綠燈的仿真設(shè)計(jì)與單片機(jī)源代碼(注釋很詳細(xì))

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
自己設(shè)計(jì)的紅綠燈

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


帶有詳細(xì)注釋的單片機(jī)源程序如下:
  1.                                   //程序:ex5_3.c
  2. //功能:交通燈控制程序
  3. #include <reg51.h>           //包含頭文件reg51.h,定義了51單片機(jī)的專用寄存器
  4. unsigned char t0,t1;         //定義全局變量,用來保存延時(shí)時(shí)間循環(huán)次數(shù)
  5. //函數(shù)名:delay0_5s1
  6. //函數(shù)功能:用T1的工作方式1編制0.5 s延時(shí)程序,假定系統(tǒng)采用12 MHz晶振,定
  7. //          時(shí)器T1、工作方式1定時(shí)50 ms,再循環(huán)10次即可定時(shí)到0.5 s
  8. //形式參數(shù):無
  9. //返回值:無
  10. void delay0_5s1()
  11. {  
  12.    for(t0=0;t0<10;t0++)                //采用全局變量t0作為循環(huán)控制變量
  13.    {            
  14.    TH1=(65536-50000)/256;        //設(shè)置定時(shí)器初值
  15.    TL1=(65536-50000)%256;  
  16. TR1=1;                                       //啟動(dòng)T1
  17.    while(!TF1);       //查詢計(jì)數(shù)是否溢出,即50ms定時(shí)時(shí)間到,TF1=1
  18.    TF1=0;              //50ms定時(shí)時(shí)間到,將定時(shí)器溢出標(biāo)志位TF1清零
  19.    }
  20. }
  21. //函數(shù)名:delay_t1
  22. //函數(shù)功能:實(shí)現(xiàn)0.5~128s延時(shí)
  23. //形式參數(shù):unsigned char t;
  24. //          延時(shí)時(shí)間為0.5s×t
  25. //返回值:無
  26. void delay_t1(unsigned char t)
  27. {
  28.     for(t1=0;t1<t;t1++)            //采用全局變量t1作為循環(huán)控制變量
  29.     delay0_5s1();
  30. }
  31. //函數(shù)名:int_0
  32. //函數(shù)功能:外部中斷0中斷函數(shù),緊急情況處理,當(dāng)CPU響應(yīng)外部中斷0的中斷請(qǐng)求時(shí),
  33. //          自動(dòng)執(zhí)行該函數(shù),實(shí)現(xiàn)兩個(gè)方向紅燈同時(shí)亮10 s
  34. //形式參數(shù):無
  35. //返回值:無
  36. void int_0()  interrupt 0             //緊急情況中斷
  37. {
  38. unsigned char i,j,k,l,m;
  39. i=P1;                                //保護(hù)現(xiàn)場(chǎng),暫存P1口、t0、t1、TH1、TL1
  40. j=t0;
  41. k=t1;
  42. l=TH1;
  43. m=TL1;
  44. P1=0xdb;                        //兩個(gè)方向都是紅燈
  45. delay_t1(20);                        //延時(shí)10 s
  46. P1=i;                        //恢復(fù)現(xiàn)場(chǎng),恢復(fù)進(jìn)入中斷前P1口、t0、t1、TH1、TL1
  47. t0=j;
  48. t1=k;
  49. TH1=l;
  50. TL1=m;
  51. }
  52. //函數(shù)名:int_1
  53. //函數(shù)功能:外部中斷1中斷函數(shù),特殊情況處理,當(dāng)CPU響應(yīng)外部中斷1的中斷請(qǐng)求時(shí),
  54. //                   自動(dòng)執(zhí)行該函數(shù),實(shí)現(xiàn)A道放行5 s
  55. //形式參數(shù):無
  56. //返回值:無
  57. void int_1() interrupt 2          //特殊情況中斷
  58. {
  59. unsigned char  i,j,k,l,m;
  60. EA=0;                          //關(guān)中斷
  61. i=P1;                                //保護(hù)現(xiàn)場(chǎng),暫存P1口、t0、t1、TH1、TL1
  62. j=t0;
  63. k=t1;
  64. l=TH1;
  65. m=TL1;
  66. EA=1;                                  //開中斷
  67. P1=0xf3;                        //A道放行
  68. delay_t1(10);                        //延時(shí)5 s
  69. EA=0;                                //關(guān)中斷
  70. P1=i;                        //恢復(fù)現(xiàn)場(chǎng),恢復(fù)進(jìn)入中斷前P1口、t0、t1、TH1、TL1
  71. t0=j;
  72. t1=k;
  73. TH1=l;
  74. TL1=m;
  75. EA=1;                                //開中斷
  76. }
  77. void main()                        //主函數(shù)                        
  78. {
  79. unsigned char k;
  80. TMOD=0x10;                        //T1設(shè)置為工作方式1
  81. EA=1;                           //開總中斷允許位
  82. EX0=1;                          //開外部中斷0中斷允許位
  83. IT0=1;                           //設(shè)置外部中斷0為下降沿觸發(fā)
  84. EX1=1;                          //開外部中斷1中斷允許位
  85. IT1=1;                           //設(shè)置外部中斷1為下降沿觸發(fā)
  86. while(1){
  87.    P1=0xf3;                        //A綠燈,B紅燈,延時(shí)55 s
  88.    delay_t1(20);                                 
  89.    for(k=0;k<3;k++)                        //A綠燈閃爍3次
  90.     {P1=0xf3;
  91.      delay0_5s1();                        //延時(shí)0.5 s
  92.      P1=0xfb;
  93.      delay0_5s1();                        //延時(shí)0.5 s
  94.      }
  95.    P1=0xeb;                                //A黃燈,B紅燈,延時(shí)2 s
  96.    delay_t1(4);
  97.    P1=0xde;                                //A紅燈,B綠燈,延時(shí)55 s
  98.    delay_t1(110);
  99.    for(k=0;k<3;k++)                        //B綠燈閃爍3次
  100.     {P1=0xde;
  101.      delay0_5s1();                        //延時(shí)0.5 s
  102.      P1=0xdf;
  103.      delay0_5s1();                        //延時(shí)0.5 s
  104.      }
  105.    P1=0xdd;                                   //A紅燈,B黃燈,延時(shí)2 s
  106.    delay_t1(4);                                
  107.     }
  108.   }
復(fù)制代碼

Keil2代碼與Proteus7.5版本仿真下載:資料51hei提供下載:
注意版本
模擬交通燈控制系統(tǒng).rar (34.05 KB, 下載次數(shù): 102)


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

使用道具 舉報(bào)

沙發(fā)
ID:668084 發(fā)表于 2019-12-19 10:28 | 只看該作者
設(shè)計(jì)描述是什么?看不出來
回復(fù)

使用道具 舉報(bào)

板凳
ID:836375 發(fā)表于 2020-10-29 20:13 | 只看該作者
這算不算很基礎(chǔ)的仿真圖?
回復(fù)

使用道具 舉報(bào)

地板
ID:869544 發(fā)表于 2022-5-7 14:00 來自手機(jī) | 只看該作者
設(shè)計(jì)描述有嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品电影一区 | 国产99久久久国产精品 | 成人a视频 | 欧美网址在线观看 | 亚洲二区在线 | 久久91av| 91免费看片 | 无码一区二区三区视频 | 日韩欧美一区在线 | 久久成人综合 | 亚洲日韩中文字幕 | 激情小说综合网 | 国产成人精品亚洲日本在线观看 | 亚洲色图插插插 | 婷婷色国产偷v国产偷v小说 | 精品一区二区久久久久久久网站 | 国产真实精品久久二三区 | 黄篇网址| 国产欧美一级二级三级在线视频 | 99re在线视频 | 黄色毛片免费看 | 中文字幕在线精品 | 国产精品成人一区二区三区夜夜夜 | 久久精品国产亚洲夜色av网站 | 国产激情在线 | 韩国av一区二区 | 不卡欧美 | 成年人在线观看视频 | 操人网 | 日韩免费看视频 | 国产一区二区三区精品久久久 | 一区二区欧美在线 | 99久久精品免费看国产四区 | 欧美日韩久久 | 99视频在线播放 | 国产精品91久久久久久 | 高清国产午夜精品久久久久久 | 中文字幕丁香5月 | 中文在线一区 | 欧美日本韩国一区二区三区 | 国产美女一区 |