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

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

QQ登錄

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

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

51單片機(jī)+Proteus交通信號(hào)燈模擬 雙機(jī)通信程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
設(shè)計(jì)的基本功能如下:
a)    4*4矩陣鍵盤電路,用于輸入與控制工作電路。
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)    在矩陣鍵盤輸入設(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)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产九九九九 | 国产精品69毛片高清亚洲 | 亚洲国产精品久久久久久 | 久久青视频 | 成年人在线观看 | 国产男人的天堂 | 国产男人的天堂 | 国产女人第一次做爰毛片 | 日韩激情在线 | 中文字幕高清视频 | 欧美日韩不卡合集视频 | 一区二区三区在线看 | 超碰日本 | 人人玩人人干 | 欧美一区二区三区在线免费观看 | 亚洲视频中文字幕 | 亚洲最大成人综合 | 91精品久久久久久久久久入口 | 亚洲毛片一区二区 | 久久com| 黄色a级一级片 | 国产激情视频网站 | 欧美一级电影免费观看 | 成人在线中文字幕 | 古装三级在线播放 | 日本三级网站在线观看 | 日韩欧美二区 | 国产一区二区三区免费观看视频 | 国产精品毛片在线 | 欧美自拍网站 | 天天搞天天操 | 亚洲第一网站 | 国产精品一区二区不卡 | caoporn视频| 国产精品久久久久久久免费大片 | 日韩www| 国产精品日产欧美久久久久 | 日韩中文字幕在线播放 | 久久精品欧美一区二区三区不卡 | 成人高清在线视频 | 91玖玖|