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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

手工焊接的單片機的紅綠燈系統制作資料

[復制鏈接]
跳轉到指定樓層
樓主
這是我做的一個基于51單片機的紅綠燈系統自己手工焊接

內附硬件圖
分別有兩個按鈕控制正道和側道交通燈的情況
一個按鈕處理突發情況的情況,即全部燈變為紅燈



單片機源程序如下:
  1. #include"reg52.h"
  2. //腳定義
  3. sbit Adaoyouche=P3^2;        //將Adaoyouche定義為P3_2腳
  4. sbit Bdaoyouche=P3^3;
  5. sbit jinji=P3^4;

  6. //函數聲明
  7. void display(int miao);        //顯示子函數聲明
  8. void time_init();                        //定時器使能子函數聲明
  9. void delay(unsigned int t);  //延時子函數聲明
  10. void dingshi();                            //定時子函數聲明
  11. void deng();                          //亮燈模式控制子函數聲明
  12. //變量定義
  13. int i=1,l=0,tt=0;  //定義全局變量
  14. unsigned char table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //顯示數字0-9

  15. main()
  16. {
  17.          time_init();  //定時器使能
  18.          Adaoyouche=1;
  19.          Bdaoyouche=1;
  20.          jinji=1;
  21.          while(1)
  22.          {
  23.                  display(i);                 //顯示i
  24.                  if(Adaoyouche==0)  //按鍵功能
  25.                  {         
  26.                      l=0;  //A車道綠燈模式
  27.                          i=1;         //當i=0,tt=0時進入模式選擇
  28.                          tt=0;
  29.                  }
  30.                  if(Bdaoyouche==0)
  31.                  {         
  32.                      l=2;        //B車道綠燈模式
  33.                          i=1;
  34.                          tt=0;
  35.                  }
  36.                  if(jinji==0)
  37.                  {         
  38.                      l=4; //緊急雙紅燈模式
  39.                          i=1;
  40.                          tt=0;
  41.                  }
  42.                  deng(); //亮燈模式控制
  43.                  delay(300); //短暫延時
  44.      }
  45. }
  46. //定時器使能子函數
  47. void time_init()
  48. {
  49.     tt=0;
  50.     TMOD=0X01;                //設置定時器1為模式一,即16位計算模式
  51.         TH0=(65536-50000)/256;        //給計數寄存器賦值,50毫秒時間
  52.         TL0=(65536-50000)%256;
  53.         EA=1;                //開啟總中斷
  54.         ET0=1;                //開啟定時器0中斷
  55.         TR0=1;                //啟動定時器
  56. }
  57. //中斷函數,關鍵字"interrupt" , 這是C語言的中斷函數表示法,1表時定地器0
  58. void dingshi() interrupt 1
  59. {
  60.     TH0=(65536-50000)/256;        //重新給計數寄存器賦值,50毫秒時間
  61.         TL0=(65536-50000)%256;
  62.         tt--;                                   //  每50毫秒tt就減1,tt從20減到0為1秒
  63. }
  64. //顯示子函數
  65. void display(int miao)
  66. {
  67.     P0=0xff;   //P0數據清0,數碼管為0亮1滅。
  68.         P1=0xaa;   //開啟十位
  69.         P0=table[miao/10];//顯示十位
  70.         delay(500);           //短暫延時
  71.         P0=0xff;
  72.         P1=0x55;  //開啟個位
  73.         P0=table[miao%10];//顯示個位
  74.          
  75. }
  76. //亮燈模式控制子函數
  77. void deng()
  78. {
  79.      if(tt==0)// 每50毫秒tt就減1,tt從20減到0為1秒,當tt=0時i就減1,i為倒數時間。
  80.          {
  81.                 i=i-1;
  82.                 if(i==0)//當i=0時判斷下一步要亮的燈
  83.                 {
  84.                          switch(l)
  85.                      {
  86.                                  case 0: //l=0,A道綠燈50秒
  87.                                         i=50;
  88.                                     P2=0x78;  //燈為0亮1滅。A道紅黃綠燈分別接了P2的4、3、2腳,B道紅黃綠燈分別接了P2的7、6、5腳。0x78為0111 1000
  89.                                         break;
  90.                                  case 1:   //l=1,A道黃燈10秒
  91.                                         i=10;
  92.                                     P2=0x74;
  93.                                         break;
  94.                                 case 2:         //l=2,B道黃燈25秒
  95.                                         i=25;
  96.                                         P2=0xcc;
  97.                                         break;
  98.                                 case 3:                 //l=3,B道黃燈5秒
  99.                                         i=5;
  100.                                         P2=0xac;
  101.                                         break;
  102.                                 case 4:                   //l=4,A,B兩道紅燈99秒
  103.                                         i=99;
  104. ……………………

  105. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
紅綠燈.zip (902.41 KB, 下載次數: 10)



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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品久久久久久亚洲综合网 | 久久区二区 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 日本成人中文字幕 | 日韩激情网 | 日本成人毛片 | 欧美精品一区二区免费 | 久久91精品国产 | 亚洲精品天堂 | 中文字幕一区二区三区精彩视频 | 我爱操 | 国产区在线 | 毛片一级片| 最新免费av网站 | 日韩精品在线播放 | 国产最新精品视频 | 性国产xxxx乳高跟 | 亚洲一级淫片 | 欧美区日韩区 | 99福利视频| 欧美在线视频一区二区 | 国产精品欧美一区喷水 | 国产精品久久久久久久久久久久冷 | 成人三级在线观看 | 精品成人免费视频 | 蜜桃特黄a∨片免费观看 | 亚洲综合无码一区二区 | 91看片| 99国产视频| 成年免费大片黄在线观看岛国 | 色爽女 | 亚洲乱码一区二区三区在线观看 | 亚洲国产情侣自拍 | 日韩欧美一区二区三区免费观看 | 国产精品久久99 | 在线观看亚洲专区 | 羞羞视频网站免费观看 | 日产精品久久久一区二区福利 | 天天夜碰日日摸日日澡 | 色视频在线播放 | 久久精品视频在线观看 |