找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 10349|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)交通燈程序設(shè)計(jì)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
交通燈單片機(jī)程序:
  1. #include<reg52.h>
  2. #include<bstv51.h>
  3. #define uchar unsigned char
  4. #define uint  unsigned int

  5. sbit nbp1=P0^4;//南北方向數(shù)碼管第一位;
  6. sbit nbp2=P0^5;//南北方向數(shù)碼管第二位;
  7. sbit dxp1=P0^6;//東西方向數(shù)碼管第一位;
  8. sbit dxp2=P0^7;//東西方向數(shù)碼管第二位;

  9. sbit hdnb=P0^2;//南北方向紅燈;
  10. sbit hddx=P0^0;//東西方向紅燈;
  11. sbit ldnb=P0^3;//南北方向綠燈;
  12. sbit lddx=P0^1;//東西方向綠燈;
  13. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
  14.                       0x6d,0x7d,0x07,0x7f,0x6f};        //0-9
  15. uchar num=30;num2,shi,ge;



  16. void delayms(xms)           //延時(shí)函數(shù)x毫秒函數(shù)
  17. {
  18.    uint i,j;
  19.    for(i=xms;i>0;i--)
  20.      for(j=110;j>0;j--);
  21. }

  22. void display(uchar shi,uchar ge) //南北數(shù)碼管顯示函數(shù)
  23. {



  24. P1=table[shi];
  25. nbp1=0;                                                        //選中南北方向數(shù)碼管第一位
  26. delayms(3);
  27. nbp1=1;                                                //關(guān)閉南北方向數(shù)碼管第一位
  28. P1=table[ge];
  29. nbp2=0;                                                //選中南北第二位
  30. delayms(3);
  31. nbp2=1;                                                //關(guān)閉南北方向數(shù)碼管第二位


  32. P2=table[shi];
  33. dxp1=0;                                                //選中南北方向數(shù)碼管第一位
  34. delayms(3);
  35. dxp1=1;                                                //關(guān)閉南北方向數(shù)碼管第一位
  36. P2=table[ge];
  37. dxp2=0;                                                //選中南北第二位
  38. delayms(3);
  39. dxp2=1;               
  40. }

  41. void T1_time()interrupt 3                        //定時(shí)器1中斷函數(shù)
  42. {
  43.   TH1=(65536-45872)/256;
  44.   TL1=(65536-45872)%256;
  45.   num2++;      
  46.   if(num2==20)
  47.   {
  48.    num2=0;                                                   //說明計(jì)時(shí)夠一秒
  49.    num--;
  50.    if(num==0)
  51.     {  
  52.        lddx=~lddx;                                                
  53.        hdnb=~hdnb;                                            
  54.        ldnb=~ldnb;
  55.        hddx=~hddx;
  56.            num=30;
  57.      }

  58.   }
  59.         shi=num/10;
  60.         ge=num%10;
  61. }


  62. void main()                                           //主函數(shù)
  63. {
  64.    TMOD=0x10;
  65.    TH1=(65536-45872)/256;
  66.    TL1=(65536-45872)%256;
  67.    EA=1;
  68.    ET1=1;
  69.    TR1=1;
  70.    lddx=0;                                                //東西方向綠燈亮
  71.    hdnb=0;                                            //南北方向紅燈亮
  72.    ldnb=1;
  73.    hddx=1;

  74. P1=0x00;
  75. P2=0x00;
  76. nbp1=1;
  77. dxp1=1;
  78. dxp2=1;
  79. nbp2=1;

  80.    while(1)
  81.    {
  82.    display(shi,ge);
  83.     }
  84. }


復(fù)制代碼

基于51單片機(jī)交通燈設(shè)計(jì)下載:
交通燈.rar (32.45 KB, 下載次數(shù): 59)

評分

參與人數(shù) 2黑幣 +10 收起 理由
demo5713 + 5 很給力!
chrccc + 5

查看全部評分

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

使用道具 舉報(bào)

地板
ID:358223 發(fā)表于 2018-6-25 09:50 | 只看該作者
請問這個如何接線��?我是單片機(jī)小白,還沒學(xué)明白。。。。
回復(fù)

使用道具 舉報(bào)

板凳
ID:290226 發(fā)表于 2018-6-1 15:08 | 只看該作者
可以,簡單明了
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:342789 發(fā)表于 2018-6-1 14:01 | 只看該作者
程序很好,nice
回復(fù)

使用道具 舉報(bào)

樓主
ID:322872 發(fā)表于 2018-5-30 22:20 | 只看該作者
這個沒有數(shù)碼管啊
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表