欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6091|回復: 1
收起左側

單片機十字路口交通信號燈控制程序

[復制鏈接]
ID:402388 發表于 2018-9-25 20:58 | 顯示全部樓層 |閱讀模式
1) 完成南北方向、東西方向交通信號燈的電路設計;
2) 兩個按鍵,按下K1鍵時,東西放行南北禁行;松開K1鍵恢復正常。按下K2鍵時,南北放行東西禁行;松開K2鍵恢復正常。

正常情況下,放行線——綠燈亮放行x秒后,黃燈亮警告y秒,然后紅燈亮禁止(x+y)秒;禁止線——紅燈亮禁止(x+y)秒,然后綠燈亮放行x秒后,黃燈亮警告y 秒。

  1. #include<reg51.h>


  2. void delay(int t );        //延時函數
  3. void display(char dat);        //顯示函數
  4. void deal(char m);        //顯示50次函剩,時間為1s
  5. void led();        //led顯示和數碼管產生函數
  6. void csh();        //中斷初始函數


  7. sbit led_A=P2^0;   //數碼管位
  8. sbit led_B=P2^1;   //數碼管位


  9. //***************led指示燈引腳定義*****************//
  10. sbit dx_R=P2^2;
  11. sbit dx_Y=P2^3;
  12. sbit dx_G=P2^4;


  13. sbit nb_R=P2^7;
  14. sbit nb_Y=P2^6;
  15. sbit nb_G=P2^5;


  16. char N=12;         //初始時間是12
  17. char tab_disp[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//共陽極碼表


  18. //中斷初始函數
  19. void csh()
  20. {
  21.         EA=1;        //開總中斷
  22.       
  23.         EX1=1;        //開外部中斷1
  24.         IT1=0;        //低電平
  25.       
  26.         EX0=1;        //開外部中斷1
  27.         IT0=0;        //低電平
  28. }


  29. //外部中斷0,東西放行,南北禁止函數
  30. void dx_int0() interrupt 0 using 0
  31. {
  32.         dx_R=1;dx_Y=1;dx_G=0;        //指示燈1是亮,0是滅
  33.         nb_R=0;nb_Y=1;nb_G=1;        //指示燈1是亮,0是滅
  34.         N=N;
  35.         P0=0xff;
  36. }


  37. //外部中斷1,南北放行,東西禁止函數
  38. void nb_int0() interrupt 2 using 2
  39. {
  40.         dx_R=0;dx_Y=1;dx_G=1;        //指示燈1是亮,0是滅
  41.         nb_R=1;nb_Y=1;nb_G=0;        //指示燈1是亮,0是滅
  42.         N=N;
  43.         P0=0xff;
  44. }


  45. //延時函數
  46. void delay(int t )
  47. {
  48.         while(t--);
  49. }


  50. //顯示函數
  51. void display(char dat)
  52. {
  53.         led_A=led_B=1;         
  54.         P0=tab_disp[dat/10]; //賦顯示的數
  55.         led_A=0;
  56.         delay(1000);              //延時
  57.       
  58.         led_A=led_B=1;      
  59.         P0=tab_disp[dat%10]; //賦顯示的數
  60.         led_B=0;
  61.         delay(1000);        //延時
  62. }


  63. //顯示50次函剩,時間為1s
  64. void deal(char m)
  65. {
  66.         int t=50;
  67.         while(t--)        display(m);  
  68. }


  69. //led顯示和數碼管產生函數
  70. void led()
  71. {
  72.         char i;
  73.         N=12;                                                   //初始時間是25      
  74.         for(i=N;i>0;i--)         //一秒一秒的減
  75.         {
  76.                 if(i>0&&i<=2)
  77.                 {
  78.                         dx_R=1;dx_Y=0;dx_G=1;        //指示燈1是亮,0是滅
  79.                         nb_R=0;nb_Y=1;nb_G=1;        //指示燈1是亮,0是滅
  80.                 }
  81.                 else
  82.                 {
  83.                         dx_R=1;dx_Y=1;dx_G=0;        //指示燈1是亮,0是滅
  84.                         nb_R=0;nb_Y=1;nb_G=1;        //指示燈1是亮,0是滅
  85.                 }
  86.                
  87.                 deal(i);
  88.                
  89.         }
  90.                
  91.         N=12;                                                                //時間變成25
  92.         for(i=N;i>0;i--)         //一秒一秒的減
  93.         {
  94.                 if(i>0&&i<=2)
  95.                 {
  96.                         dx_R=0;dx_Y=1;dx_G=1;          //指示燈1是亮,0是滅
  97.             nb_R=1;nb_Y=0;nb_G=1;  //指示燈1是亮,0是滅
  98.                 }
  99.                 else
  100.                 {
  101.                         dx_R=0;dx_Y=1;dx_G=1;         //指示燈1是亮,0是滅
  102.             nb_R=1;nb_Y=1;nb_G=0;        //指示燈1是亮,0是滅
  103.                 }
  104.                
  105.                 deal(i);
  106.                
  107.         }
  108. }


  109. /*主函數*/
  110. void main(void)
  111. {
  112.         csh();        //中斷初始函數
  113.         while(1)
  114.         {
  115.                 led();        //led顯示和數碼管產生函數
  116.         }
  117. }
復制代碼



回復

使用道具 舉報

ID:1 發表于 2018-9-25 21:36 | 顯示全部樓層
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表