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

標題: 簡易交通燈[c語言+仿真圖]完整注釋 [打印本頁]

作者: 森小胖    時間: 2017-5-2 23:58
標題: 簡易交通燈[c語言+仿真圖]完整注釋
簡易交通燈【c語言+仿真圖】完整注釋


單片機源程序:
  1. #include<reg51.h>
  2. #include<absacc.h>

  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. #define PA XBYTE[0xf8ff]                                //定義A口
  6. #define PB XBYTE[0xf9ff]                                //定義B口
  7. #define PC XBYTE[0xfaff]                            //定義C口
  8. #define CTRL XBYTE[0xfbff]                                //ctrol簡寫為CTRL 定義控制口

  9. uint i = 0, cnt = 120, flag=0;
  10. uchar table[]={                                                                        //共陰極
  11. 0x3f,0x06,0x5b,0x4f,
  12. 0x66,0x6d,0x7d,0x07,
  13. 0x7f,0x6f,0x77,0x7c,
  14. 0x39,0x5e,0x79,0x71
  15. };

  16. void display(int x, int y, int m, int n, int a, int  b, int c, int d);
  17. void delay(int);
  18. void main()
  19. {
  20.     CTRL = 0x80;                           //1000 0000B        方式選擇控制字: A口方式0 A口位輸出 C口高4位輸出 B口方式0 B口輸出 C口低4位輸出
  21.         IP = 0x05;
  22.         TMOD = 0x01;                      //方式寄存器TMOD    0000 0001B 定時器0,方式1
  23.     TH0 = (65536-50000)/256;                          
  24.     TL0 = (65536-50000)%256; //定時50ms
  25.     EA = 1;                                         //開總中斷
  26.     ET0 = 1;                                 //允許定時器0中斷
  27.     TR0 = 1;                                 //開啟定時器0
  28.     while(1)
  29.         {
  30.                 if(cnt > 65)                   //120-cnt 小于55
  31.                 {                                                                                   
  32.                           XBYTE[PA] = 0x33;  //0011 0011B PA2綠燈亮 PA3紅燈亮
  33.                         display(0xfe ,0xfd, 0xfb, 0xf7, (cnt-65)/10, (cnt-65)%10, (cnt-60)/10, (cnt-60)%10);
  34.                 }  //1111 1110B,(P1.0) 1111 1101B,(P1.1) 1111 1011B,(P1.2) 1111 0111B,(p1.3)假設cnt=70即計數50次此時南北綠燈顯示05 東西紅燈顯示10;
  35.                   else if(cnt > 60 && cnt <= 65)        //120-cnt介于 55與60之間
  36.                   {
  37.                     if(flag == 0)                           
  38.                         {
  39.                           XBYTE[PA] = 0x35;//0011 0101B  PA1黃燈亮  PA3紅燈亮  
  40.                           display(0xff ,0xff, 0xfb, 0xf7, (cnt-60)/10,(cnt-60)%10, (cnt-60)/10,(cnt-60)%10);
  41.                         } //1111 1111B,1111 1111B 1111 1011B 1111 0111B 假設cnt=62 即計數120-62=58次,此時南北黃燈顯示數字02 東西顯示紅燈02;
  42.                     if(flag == 1)                           
  43.                         {
  44.                           XBYTE[PA] = 0x35;//0011 0101B         PA1黃燈亮 PA3紅燈亮
  45.                           display(0xfe ,0xfd, 0xfb, 0xf7, (cnt-60)/10,(cnt-60)%10, (cnt-60)/10,(cnt-60)%10);
  46.                         }//1111 1110B,1111 1101B,1111 1011B,1111 0111B 假設cnt=62 即計數120-62=58次,此時南北紅燈顯示數字02,東西顯示綠燈02;
  47.                   }
  48.                 else if(cnt <= 60 && cnt > 5) //120-cnt介于 60與115之間
  49.                   {
  50.                         XBYTE[PA] = 0x1e; //0001 1110B   PA0紅燈亮 PA5綠燈亮
  51.             display(0xfe ,0xfd, 0xfb, 0xf7, (cnt)/10,(cnt)%10, (cnt-5)/10,(cnt-5)%10);
  52.                   }//1111 1110B,1111 1101B,1111 1011B,1111 0111B    假設cnt=40 即計數120-40=80次,此時南北紅燈顯示數字40,東西綠燈顯示35;
  53.                 else if(cnt > 0 && cnt <= 5) //120-cnt 介于 115與120之間
  54.             {
  55.                         if(flag == 0)
  56.                         {
  57.                           XBYTE[PA] = 0x2e;//0010 1110B        PA0紅燈亮 PA4黃燈亮
  58.                           display(0xfe ,0xfd, 0xff, 0xff, (cnt)/10,(cnt)%10, (cnt)/10,(cnt)%10);
  59.                         }//1111 1110B,1111 1101B,1111 1111B,1111 1111B 假設cnt=3即計數120-3=117次,此時南北紅燈顯示數字03,東西黃燈顯示數字03
  60.                     if(flag == 1)
  61.                         {
  62.                           XBYTE[PA] = 0x2e;//0010 1110B         PA0紅燈亮 PA4黃燈亮
  63.                           display(0xfe ,0xfd, 0xfb, 0xf7, (cnt)/10,(cnt)%10, (cnt)/10,(cnt)%10);
  64.                         }//1111 1110B,1111 1101B,1111 1101B,1111 0111B 假設cnt=3即計數120-3=117次,此時南北紅燈顯示數字03,東西黃燈顯示數字03
  65.                 }
  66.         }
  67. }

  68. void display(int x, int y, int m, int n, int a, int  b, int c, int d)                           //數碼管
  69. {
  70.     P1 = x;                                  //P1.0
  71.         PB = table[a];                  //南北方向高位數碼管顯示數字
  72.         delay(1);                          //調用延時函數
  73.     P1 = y;                                  //P1.1
  74.         PB = table[b];                  //南北方向低位數碼管顯示數字
  75.         delay(1);                          //調用延時函數
  76.                                                 
  77.         P1 = m;                                  //P1.2
  78.         PC = table[c];                  //東西方向高位數碼管顯示數字
  79.         delay(1);                          //調用延時函數
  80.     P1 = n;                                  //P1.3
  81.         PC = table[d];                  //東西方向低位數碼管顯示數字
  82.         delay(1);                      //調用延時函數
  83. }

  84. void delay(int z)                         //延時子程序
  85. {
  86. uint x,y;
  87. for(x=z;x>0;x--)
  88. for(y=110;y>0;y--);
  89. }

  90. void mytimer0() interrupt 1                 //定時器中斷0
  91. {
  92.   TH0 = (65536-50000)/256;
  93.   TL0 = (65536-50000)%256;                 //定時50ms

  94.   i++;
  95.   if(i >= 10)                                         //T=50ms*10=500ms
  96.   {
  97.     flag ++;                                        //flag每0.5秒加1
  98.     i = 0;
  99.   }

  100.   if(flag > 1)                                                
  101.   {
  102.           flag=0;
  103.         cnt --;                                                 //cnt每秒減1
  104.   }


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

下載:
NO.3.rar (60.16 KB, 下載次數: 80)


作者: 沒心沒肺挺好丶    時間: 2017-12-10 10:29
沒有黑幣啊




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲成人激情在线观看 | 国产传媒在线观看 | 国产黄色精品 | 国产日韩精品视频 | 亚洲精品视频在线 | 狠狠涩 | 婷婷91 | 情侣av | 日韩在线播放av | 美国a级毛片免费视频 | 在线免费观看欧美 | 国产精品久久在线 | 久久综合狠狠综合久久综合88 | 欧美黄在线观看 | 国产精品福利在线 | 国产精品久久一区二区三区 | 免费在线观看一区二区三区 | 国产精品我不卡 | 中文字幕在线观看国产 | 黄色精品 | 日韩国产一区二区三区 | 日韩中文字幕第一页 | 又爽又黄axxx片免费观看 | 在线观看黄色电影 | 久久久久久久电影 | 欧美午夜精品 | 自拍 亚洲 欧美 老师 丝袜 | 日韩中文在线观看 | 在线免费观看日本 | 九九亚洲| 成人激情视频免费在线观看 | 久久91av | 国产69久久精品成人看动漫 | 日韩电影免费在线观看中文字幕 | 亚洲第一成年免费网站 | 凹凸日日摸日日碰夜夜 | 亚洲精品白浆高清久久久久久 | 99视频免费播放 | 日p视频免费看 | 中午字幕在线观看 | 亚洲一区视频在线 |