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

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

QQ登錄

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

搜索
查看: 5809|回復(fù): 1
收起左側(cè)

單片機(jī)十字路口交通信號(hào)燈控制程序

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

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

  1. #include<reg51.h>


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


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


  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;         //初始時(shí)間是12
  17. char tab_disp[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//共陽(yáng)極碼表


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


  29. //外部中斷0,東西放行,南北禁止函數(shù)
  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,南北放行,東西禁止函數(shù)
  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. //延時(shí)函數(shù)
  46. void delay(int t )
  47. {
  48.         while(t--);
  49. }


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


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


  69. //led顯示和數(shù)碼管產(chǎn)生函數(shù)
  70. void led()
  71. {
  72.         char i;
  73.         N=12;                                                   //初始時(shí)間是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;                                                                //時(shí)間變成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. /*主函數(shù)*/
  110. void main(void)
  111. {
  112.         csh();        //中斷初始函數(shù)
  113.         while(1)
  114.         {
  115.                 led();        //led顯示和數(shù)碼管產(chǎn)生函數(shù)
  116.         }
  117. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区视频在线观看 | 亚洲精品一区二区三区 | 永久免费av | 色综合一区二区三区 | 久久av网站| 日本天堂视频 | 亚洲国产精品区 | 国产小视频在线 | 国产精品1区 | 四虎影院在线免费观看 | 久久成人高清视频 | 天天综合网91 | 黄色国产在线视频 | 91精品国产91久久综合桃花 | 欧美精品在线免费观看 | 亚州av| av一级久久 | 亚洲国产精品久久久 | www.97国产 | 欧美一级大片免费观看 | 国产在线精品一区二区三区 | 亚洲成年在线 | 久亚州在线播放 | 欧美在线视频一区二区 | 日韩精品一区二区三区视频播放 | 色婷婷综合久久久久中文一区二区 | 中文二区 | 中文字字幕在线中文乱码范文 | 成人精品一区二区三区中文字幕 | 亚洲一区二区在线播放 | 国产亚洲精品精品国产亚洲综合 | 国产一区二区三区高清 | 欧洲视频一区二区 | 日日干日日色 | 中文字幕 在线观看 | 亚洲一区亚洲二区 | 国产免费拔擦拔擦8x高清 | 日韩午夜网站 | 亚洲天堂影院 | 一本一道久久a久久精品综合 | 国产精品亚洲精品日韩已方 |