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

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

QQ登錄

只需一步,快速開始

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

單片機(jī)交通燈小程序+仿真圖

[復(fù)制鏈接]
ID:270258 發(fā)表于 2018-1-3 16:32 | 顯示全部樓層 |閱讀模式
最近做的一個(gè)單片機(jī)的紅綠燈控制小程序和仿真圖
發(fā)出來(lái)大家共享交流
希望得到大神指導(dǎo)
話不多說(shuō)
直接上程序和圖
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit wei_dx1=P2^0;
  6. sbit wei_dx2=P2^1;
  7. sbit wei_nb1=P3^6;
  8. sbit wei_nb2=P3^7;
  9. sbit nb_y=P2^2;
  10. sbit nb_g=P2^3;
  11. sbit nb_r=P2^4;
  12. sbit dx_y=P2^5;
  13. sbit dx_g=P2^6;
  14. sbit dx_r=P2^7;
  15. sbit choic=P1^7;
  16. sbit kongzhi=P1^6;
  17. uchar count=0;
  18. uchar time_long=25,time_short=20;
  19. uchar flag_1s,flag_500ms,flag_light=0,flag_long=1;
  20. uchar show_nb=25,show_dx=30,time_nb=0,time_dx=0;
  21. //uchar code show[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共陽(yáng)極
  22. uchar code show[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  23. void delay(uint z)
  24. {
  25.         uint x,y;
  26.         for(x=z;x>0;x--)
  27.         for(y=500;y>0;y--);       
  28. }
  29. void Timer0Init(void)               
  30. {
  31.         EA  = 1;                   
  32.         TMOD = 0X11;          
  33.         ET0 = 1;                  
  34.         TR0 = 1;
  35.         TH0 = 0x3c;
  36.         TL0 = 0xb0;               
  37. }
  38. void time(void) interrupt 1
  39. {
  40.         TH0 = 0x3c;
  41.         TL0 = 0xb0;
  42.         count++;flag_light++;
  43.         if(count==20)
  44.         {
  45.                 count=0;
  46.                 flag_1s=1;               
  47.         }
  48.         if(flag_light % 12 == 0)
  49.                 flag_500ms = ~flag_500ms;       
  50. }
  51. void do_time()
  52. {
  53.         if(flag_long==1)       
  54.            {
  55.                 if(flag_1s==1)                        //南北綠燈亮長(zhǎng)
  56.                 {
  57.                         flag_1s=0;
  58.                         show_nb--;
  59.                         show_dx--;
  60.                         if(show_nb==0)
  61.                         {
  62.                                 show_nb=5;
  63.                         }
  64.                         if(show_dx==0)
  65.                         {
  66.                                 flag_long=0;
  67.                                 time_dx=1;
  68.                                 time_nb=0;
  69.                         }
  70.                 }
  71.                 }
  72.         if(flag_long==0)
  73.         {
  74.                 if(flag_1s==1)                                        //東西綠燈亮短
  75.                 {
  76.                         flag_1s=0;
  77.                         show_nb--;
  78.                         show_dx--;
  79.                         if(show_dx==0)
  80.                         {
  81.                                 show_dx=5;
  82.                         }
  83.                         if(show_nb==0)
  84.                         {
  85.                                 flag_long=1;
  86.                                 time_dx=0;
  87.                                 time_nb=1;
  88.                         }
  89.                 }
  90.         }
  91. }
  92. //紅綠燈顯示
  93. void light()
  94. {
  95.         if(flag_long==1)
  96.         {
  97.                 if(show_dx>5)
  98.                 {
  99.                         nb_g=0;
  100.                         nb_y=1;
  101.                         nb_r=1;
  102.                         dx_g=1;
  103.                         dx_y=1;
  104.                         dx_r=0;
  105.                 }
  106.                 else if(show_dx<=5)
  107.                 {
  108.                         nb_g=1;
  109.                         nb_r=1;
  110.                         dx_g=1;
  111.                         dx_y=1;
  112.                         dx_r=0;       
  113.                         if(flag_500ms==0)           //黃燈閃爍
  114.                                 {
  115.                                         nb_y=0;        //亮       
  116.                                 }
  117.                                 else
  118.                                 {
  119.                                         nb_y=1;        //滅       
  120.                                 }                       
  121.                 }       
  122.         }
  123.         if(flag_long==0)
  124.         {
  125.                 if(show_nb>5)
  126.                 {
  127.                         nb_g=1;
  128.                         nb_y=1;
  129.                         nb_r=0;
  130.                         dx_g=0;
  131.                         dx_y=1;
  132.                         dx_r=1;       
  133.                 }
  134.                 else if(show_nb<=5)
  135.                 {
  136.                         nb_g=1;
  137.                         nb_r=0;
  138.                         nb_y=1;
  139.                         dx_g=1;
  140.                         dx_r=1;       
  141.                         if(flag_500ms==0)           //黃燈閃爍
  142.                                 {
  143.                                         dx_y=0;        //亮       
  144.                                 }
  145.                                 else
  146.                                 {
  147.                                         dx_y=1;        //滅       
  148.                                 }                                       
  149.                 }
  150.         }       
  151. }



  152. void display()
  153. {
  154.         P0=0xff;          //共陰極改
  155.         wei_dx1=0;
  156.         wei_dx2=0;
  157.         wei_nb1=0;
  158.         wei_nb2=0;
  159.         P0=show[show_nb%10];
  160.         wei_dx1=1;
  161.         wei_dx2=1;
  162.         wei_nb1=0;
  163.         wei_nb2=1;
  164.         delay(3);
  165.         P0=0xff;
  166.         P0=show[show_nb/10];
  167.         wei_dx1=1;
  168.         wei_dx2=1;
  169.         wei_nb1=1;
  170.         wei_nb2=0;
  171.         delay(3);
  172.         P0=0xff;
  173.         P0=show[show_dx%10];
  174.         wei_dx1=0;
  175.         wei_dx2=1;
  176.         wei_nb1=1;
  177.         wei_nb2=1;
  178.         delay(3);
  179.         P0=0xff;
  180.         P0=show[show_dx/10];
  181.         wei_dx1=1;
  182.         wei_dx2=0;
  183.         wei_nb1=1;
  184.         wei_nb2=1;
  185.         delay(3);
  186. }
  187. void main()
  188. {
  189.         choic=1;
  190.         kongzhi=1;
  191.         Timer0Init();       
  192.         while(1)
  193.                 {
  194.                         if(choic==1)
  195.                         {       
  196.                                 do_time();
  197.                                 light();
  198.                                 if(time_dx==1)
  199.                                 {
  200.                                         show_nb=time_long;
  201.                                         show_dx=time_short;
  202.                                         time_dx=0;          //重置0,不然time_dx==1括號(hào)里的程序會(huì)一直賦值
  203.                                 };
  204.                                 if(time_nb==1)
  205.                                 {
  206.                                         show_nb=time_long;
  207.                                         show_dx=30;
  208.                                         time_nb=0;
  209.                                 };
  210.                                 display();
  211.                         }
  212.                         if(choic==0)
  213.                         {
  214.                                 P0=0xff;
  215.                                 wei_dx1=1;
  216.                                 wei_dx2=1;
  217.                                 wei_nb1=1;
  218.                                 wei_nb2=1;
  219.                                 if(kongzhi!=1)
  220.                                 {
  221.                                         delay(10);
  222.                                         if(kongzhi!=1)
  223.                                         {
  224.                                                 nb_g=~nb_g;
  225.                                                 nb_y=1;
  226.                                                 nb_r=~nb_r;
  227.                                                 dx_g=~dx_g;
  228.                                                 dx_y=1;
  229.                                                 dx_r=~dx_r;
  230.                                                 while(kongzhi==0);       
  231.                                         }
  232.                                 }
  233.                         }
  234.                 }
  235. }
復(fù)制代碼



TIM圖片20180103162957.png

jiaotongdeng.zip

59.77 KB, 下載次數(shù): 89, 下載積分: 黑幣 -5

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:271565 發(fā)表于 2018-1-4 21:17 | 顯示全部樓層
問一下你仿真出來(lái)的數(shù)碼管沒有問題嗎,我的數(shù)碼管亂碼了
回復(fù)

使用道具 舉報(bào)

ID:271565 發(fā)表于 2018-1-7 14:42 | 顯示全部樓層
問一哈交通燈共陽(yáng)極的話需要改什么,我看不懂這個(gè)東西,不過我們老師又要寫設(shè)計(jì),可以講一下陽(yáng)極要改啥嗎,我問了個(gè)同學(xué)說(shuō)三個(gè)不能都設(shè)為0,只有一個(gè)設(shè)為零,其他都為1,我也不曉得怎么改。可以請(qǐng)你一下陽(yáng)極的哪些要改嗎?
回復(fù)

使用道具 舉報(bào)

ID:278570 發(fā)表于 2018-1-24 12:49 | 顯示全部樓層
魚擺擺 發(fā)表于 2018-1-4 21:17
問一下你仿真出來(lái)的數(shù)碼管沒有問題嗎,我的數(shù)碼管亂碼了

我的也亂了
回復(fù)

使用道具 舉報(bào)

ID:279302 發(fā)表于 2018-1-24 15:16 | 顯示全部樓層
能不能發(fā)一張完整接線圖?
回復(fù)

使用道具 舉報(bào)

ID:410016 發(fā)表于 2018-10-15 16:01 | 顯示全部樓層
可以私聊購(gòu)買嗎?
回復(fù)

使用道具 舉報(bào)

ID:756917 發(fā)表于 2020-5-20 21:35 | 顯示全部樓層
經(jīng)緯度 發(fā)表于 2018-1-24 15:16
能不能發(fā)一張完整接線圖?

我也想要完整的
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧洲成人av每日更新 | 国产一区二区三区免费 | 精品国产乱码久久久久久1区2区 | 日韩在线观看一区 | 国产高清视频一区二区 | www.4567| 91精品久久久久久久99 | 国产小视频在线看 | 亚洲一av | 在线观看中文字幕av | 狠狠干天天干 | 日韩一区二区福利视频 | 欧美精 | 久久国 | 日韩成人影院在线观看 | 国产精品久久久久无码av | 看a网站 | 日韩一区二区三区在线 | 国产欧美日韩精品一区二区三区 | 福利一区二区 | 亚洲一区 中文字幕 | 国产精品不卡 | 久久精品视频网站 | 久久精品视频播放 | 成人免费视频播放 | 欧产日产国产精品国产 | 喷水毛片 | 亚洲视频在线观看 | 欧美三级在线 | 国产精品成人一区二区三区夜夜夜 | 尤物在线视频 | 91麻豆产精品久久久久久 | 国产精品黄色 | av永久免费 | 国产精品揄拍一区二区久久国内亚洲精 | 精品亚洲一区二区三区四区五区高 | 男人天堂99 | 成人精品一区二区三区 | 精品久久久久久国产 | 国产毛片久久久久久久久春天 | 日韩中文一区二区三区 |