找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

C51單片機超級簡單的交通燈模擬

[復制鏈接]
跳轉到指定樓層
樓主
ID:298460 發(fā)表于 2018-3-28 18:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include "reg51.h"

  2. sbit  dula=P1^3;
  3. sbit  g1=P1^4;

  4. sbit  c=P1^5;
  5. sbit  b=P1^6;
  6. sbit  a=P1^7;

  7. char s=6,ms=0;

  8. unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  9. bit flag=0;

  10. void  delay()
  11. {
  12.         unsigned char i;
  13.         for(i=0;i<255;i++);
  14. }

  15. initial()
  16. {
  17.         TMOD=1;
  18.         TL0=0XF0;
  19.         TH0=0XD8;
  20.        
  21.         TR0=1;
  22.         ET0=1;
  23.         EA=1;
  24.         P2=0x0f;
  25.         g1=0;

  26. }

  27. display()
  28. {

  29. //        P0=tab[ms/10];dula=1;
  30. //        c=1;b=1;a=0;g1=1;
  31. //        delay();
  32. //        g1=0;

  33. //        P0=tab[ms%10];dula=1;
  34. //        c=1;b=1;a=1;g1=1;
  35. //        delay();
  36. //        g1=0;

  37.         P0=tab[s%10];dula=1;
  38.         c=1;b=1;a=1;g1=1;
  39.         delay();
  40.         g1=0;

  41.         P0=tab[s/10];dula=1;
  42.         c=1;b=1;a=0;g1=1;
  43.         delay();
  44.         g1=0;




  45. }

  46. main()
  47. {
  48.         initial();
  49.         while(1)
  50.         {
  51.                 display();
  52.         }
  53. }

  54. t_0()  interrupt 1
  55. {
  56.         TL0=0XF0;
  57.         TH0=0XD8;
  58.         ms++;
  59.         if(ms==50&&s<=3)
  60.         {
  61.                 P2=0x55;
  62.         }
  63.                
  64.                 if(ms==100)
  65.                 {
  66.                         if(flag==0){
  67.                         P2=0x0f;
  68.                         }else{
  69.                         P2=0xf0;
  70.                         }
  71.                         ms=0;
  72.                         s--;
  73.                         if(s==0)
  74.                         {
  75.                         s=6;
  76.                         flag=~flag;
  77.                         P2=~P2;
  78.                         }
  79.                 }
  80. }
復制代碼
P0口接LED燈(所以有上拉電源(power)),共陰極,代碼中的a,b,c是用3-8譯碼器定位LED,方式一中斷
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

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