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

標(biāo)題: 51單片機(jī)+Proteus交通信號(hào)燈模擬 雙機(jī)通信程序 [打印本頁(yè)]

作者: 火星大使    時(shí)間: 2021-3-31 11:13
標(biāo)題: 51單片機(jī)+Proteus交通信號(hào)燈模擬 雙機(jī)通信程序
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
設(shè)計(jì)的基本功能如下:
a)    4*4矩陣鍵盤(pán)電路,用于輸入與控制工作電路。
b)    液晶顯示模塊電路,顯示當(dāng)前工作狀態(tài)。
c)    交通燈模塊電路,用于模擬當(dāng)前路口紅綠燈工作狀態(tài)。
d)    繼電器模塊電路,闖紅燈抓拍功能(燈泡模擬)實(shí)現(xiàn)。
系統(tǒng)工作流程如下:
a)    電路啟動(dòng)后,按照預(yù)先設(shè)定的紅燈值設(shè)定進(jìn)行運(yùn)行,東西方向?yàn)榫G燈,南北方向?yàn)榧t燈,且南北方向的闖紅燈抓拍電路工作。
b)    在矩陣鍵盤(pán)輸入設(shè)定的倒計(jì)時(shí)值,按下確定鍵,液晶顯示模塊相應(yīng)改變,并通過(guò)串口通信,發(fā)送到工作單片機(jī)上。
c)    工作單片機(jī)收到控制單片機(jī)發(fā)送的數(shù)值后,黃燈閃爍3次,按照設(shè)定的倒計(jì)時(shí)時(shí)間運(yùn)行。


單片機(jī)源程序如下:
  1. #include <reg51.h>
  2. #include <LM016L.h>

  3. uchar Dtime_H, Dtime_L;
  4. uchar Ttime_H = 0,Ttime_L = 0;
  5. uchar send_t;
  6. uchar key;
  7. uchar out = 0;
  8. uchar cnt = 0;

  9. uchar code key_code[]={0xEE, 0xDE, 0xBE, 0x7E, 0xED, 0xDD, 0xBD,
  10. 0x7D, 0xEB, 0xDB, 0xBB, 0x7B, 0xE7, 0xD7, 0xB7, 0x77};
  11. uchar LED_VALUE[10]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
  12. uchar tab_1[] = {0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39};

  13. uchar rdkey(){
  14.         uchar scan1, scan2, keycode, j;
  15.         P1 = 0x0F;
  16.         scan1 = P1;
  17.         if((scan1&0x0F)!=0x0F){
  18.                 delay(30);
  19.                 scan1 = P1;
  20.                 if((scan1&0x0F)!=0x0F){
  21.                         P1 = 0XF0;
  22.                         scan2 = P1;
  23.                         keycode = scan1 | scan2;
  24.                         for(j = 0;j <=15;j++){
  25.                                 if(keycode == key_code[j]){
  26.                                         key = j;
  27.                                         return(key);
  28.                                 }
  29.                         }
  30.                 }
  31.         }
  32.         else P1 = 0xFF;
  33.         return (16);
  34. }

  35. void exit_int0() interrupt 0{
  36.         rdkey();
  37.         out = 1;
  38. }

  39. void Lcd(){
  40.          LcdInitiate();         //調(diào)用LCD初始化函數(shù)  
  41.         WriteAddress(0x00);   //將顯示地址指定為第1行第0列
  42.           WriteData('D');
  43.         WriteData('e');
  44.         WriteData('l');
  45.         WriteData('a');
  46.         WriteData('y');
  47.         WriteData(':');
  48.         WriteData(Dtime_H);
  49.         WriteData(Dtime_L);
  50.         WriteData('S');
  51.         WriteAddress(0x40);
  52.         WriteData('E');
  53.         WriteData('n');
  54.         WriteData('t');
  55.         WriteData('e');
  56.         WriteData('r');
  57.         WriteData(':');
  58.         delay(10);
  59. }

  60. void send(){
  61.         ES = 1;
  62.         SBUF = send_t;
  63.         while(TI == 0);
  64.         TI = 0;
  65.         ES = 0;
  66. }

  67. void main(){
  68.         IT0 = 1;        
  69.         IP = 0x01;
  70.         P1 = 0x0F;
  71.         EA = 1;
  72.         EX0 = 1;
  73.         
  74.         TCON = 0x40;
  75.         SCON = 0x50;                   //方式1 8位   
  76.         TMOD = 0x20;           //定時(shí)器1 方式2
  77.         TH1 = 0xFD;
  78.         TL1 = 0xFD;

  79.         Dtime_H = tab_1[0];
  80.         Dtime_L = tab_1[5];
  81.         Lcd();
  82.          while(1){
  83.                 P1 = 0x0F;
  84.                 if(out == 1 && key < 10){
  85.                         cnt++;
  86.                         if(cnt > 1)
  87.                                 Ttime_H = Ttime_L;
  88.                         Ttime_L = key;
  89.                         WriteData(tab_1[Ttime_L]);
  90.                         out = 0;
  91.                 }else if(out == 1 && key > 10){
  92.                         if(key == 11){  //清除
  93.                                 Lcd();
  94.                                 out = 0;
  95.                                 cnt = 0;
  96.                                 Ttime_H = 0;
  97.                         }else if(key == 15){  //確認(rèn)
  98.                                 Dtime_H = tab_1[Ttime_H];
  99.                                 Dtime_L = tab_1[Ttime_L];
  100.                                 out = 0;
  101.                                 cnt = 0;
  102.                                 send_t = Ttime_H*10 + Ttime_L;
  103.                                 send();//send message
  104.                                 Lcd();
  105.                         }else if(key == 13){  //初始化
  106.                                 Ttime_H = 0;
  107.                                 WriteData(tab_1[Ttime_H]);
  108.                                 Ttime_L = 5;
  109.                                 WriteData(tab_1[Ttime_L]);
  110.                                 out = 0;
  111.                                 cnt = 2;
  112.                                 //send message
  113.                         }
  114.                 }
  115.         }
  116. }
復(fù)制代碼

所有資料51hei提供下載:
traffic light.rar (37.96 KB, 下載次數(shù): 38)





歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 极品白嫩少妇无套内谢 | 成人免费视频国产免费麻豆 | 日韩一级黄色片 | 蜜臀久久99精品久久久久久宅男 | av福利在线观看 | 91亚洲精选 | 欧美一级片免费 | 黄色成人在线视频 | 国产精品一区二区三区免费 | 精品国产一二三区 | 亚洲午夜在线 | 久久精品一二三 | www.日日日 | 亚洲日本视频 | 999在线视频| 午夜999 | 精品国产福利 | 国产色站 | 一级片在线免费观看 | 久草这里只有精品 | 日韩三级黄色片 | 亚洲人在线观看 | 97久久久 | 成人免费av | 成人福利视频在线观看 | 亚洲天堂网在线观看 | avxxxxx| 国产毛片一级 | 偷偷操网站 | 正在播放国产精品 | 国产日韩精品视频 | 欧美日韩在线免费观看 | 国产一级免费 | 一区二区高清视频 | 精品国产区一区二 | 欧美亚洲视频 | 国语对白做受69 | www.精品| 国产专区在线 | 在线播放黄色 | 日日不卡av |