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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC89C52單片機交通燈(計數(shù)器實現(xiàn))+Proteus仿真

[復(fù)制鏈接]
ID:1097346 發(fā)表于 2024-5-8 11:31 | 顯示全部樓層 |閱讀模式
  1. #include <REGX52.H>
  2. void YellowShan2();
  3. void YellowShan1();
  4. void delay_s(num);
  5. void delay_ms(num);
  6. void delay_us(num);
  7. void NBX();
  8. void DXX();
  9. void Timer0_Init();
  10. sbit r1=P1^2;
  11. sbit y1=P1^3;
  12. sbit g1=P1^4;
  13. sbit r2=P1^5;
  14. sbit y2=P1^6;
  15. sbit g2=P1^7;
  16. unsigned int num1=0;
  17. unsigned int num2;

  18. void main()
  19. {
  20.         Timer0_Init();
  21.         r1=0;
  22.         y1=0;
  23.         g1=0;
  24.         r2=0;
  25.         y2=0;
  26.         g2=0;
  27.         while(1)
  28.         {
  29.                 if (num2==0)
  30.                 {
  31.                         NBX();
  32.                 }
  33.                 else if (num2==1)
  34.                 {
  35.                         YellowShan1();
  36.                 }
  37.                 else if (num2==2)
  38.                 {
  39.                         DXX();
  40.                 }
  41.                 else if (num2==3)
  42.                 {
  43.                         YellowShan2();
  44.                 }
  45.         }
  46. }
  47. void YellowShan1()
  48. {
  49.                 r1=1;
  50.                 y1=0;
  51.                 g1=0;
  52.                 r2=0;
  53.                 y2=1;
  54.                 g2=0;
  55.                 delay_ms(25);
  56.                 r1=1;
  57.                 y1=0;
  58.                 g1=0;
  59.                 r2=0;
  60.                 y2=0;
  61.                 g2=0;
  62.                 delay_ms(25);
  63. }
  64. void YellowShan2()
  65. {
  66.                 r1=0;
  67.                 y1=1;
  68.                 g1=0;
  69.                 r2=1;
  70.                 y2=0;
  71.                 g2=0;
  72.                 delay_ms(25);
  73.                 r1=0;
  74.                 y1=0;
  75.                 g1=0;
  76.                 r2=1;
  77.                 y2=0;
  78.                 g2=0;
  79.                 delay_ms(25);
  80. }
  81. void delay_us(unsigned int num)
  82. {
  83.         unsigned int i=0,j=0;        
  84.         for(i=0;i<num;i++)
  85.         {
  86.                 for(j=0;j<20;j++);
  87.         }
  88. }
  89. void delay_ms(unsigned int num)
  90. {
  91.         while(num--!=0)         
  92.         {
  93.                 delay_us(100);
  94.         }
  95. }
  96. void delay_s(unsigned int num)
  97. {
  98.         while(num--!=0)         
  99.         {
  100.                 delay_ms(60);
  101.         }
  102. }
  103. void NBX()
  104. {
  105.         r1=1;
  106.         y1=0;
  107.         g1=0;
  108.         r2=0;
  109.         y2=0;
  110.         g2=1;
  111. }
  112. void DXX()
  113. {
  114.         r1=0;
  115.         y1=0;
  116.         g1=1;
  117.         r2=1;
  118.         y2=0;
  119.         g2=0;
  120. }
  121. void Timer0_Init()  // 定時器0初始化函數(shù)  
  122. {  
  123.     TMOD &= 0xF0;  // 清除Timer0模式位  
  124.     TMOD |= 0x01;  // 設(shè)置Timer0為模式1(16位定時/計數(shù)器模式)  
  125.     TH0 = (65536 - 50000) / 256;  // 設(shè)置定時器初值,這里設(shè)置為50ms溢出一次  
  126.     TL0 = (65536 - 50000) % 256;  
  127.     ET0 = 1;  // 使能Timer0中斷  
  128.     EA = 1;  // 使能全局中斷  
  129.     TR0 = 1;  // 啟動Timer0  
  130. }
  131. void Timer0_ISR (void) interrupt 1  // Timer0中斷服務(wù)程序  
  132. {  
  133.                 static unsigned int count = 0;  // 靜態(tài)變量,用于計數(shù)  
  134.     TH0 = (65536 - 50000) / 256;  // 重新加載定時器初值  
  135.     TL0 = (65536 - 50000) % 256;  
  136.     count++;  // 計數(shù)器加1  
  137.     if (count >= 5)  // 如果計數(shù)到20,即1秒到達  
  138.     {  
  139.         count = 0;  // 清零計數(shù)器  
  140.         // 在這里添加需要每秒執(zhí)行的操作,例如更新LED狀態(tài)、打印日志等  
  141.                         
  142.                  num1++;
  143.                 if(num1==50)
  144.                         {
  145.                                 num2=1;
  146.                         }
  147.                 else if(num1==60)
  148.                         {
  149.                                 num2=2;
  150.                         }
  151.                 else if(num1==110)
  152.                         {
  153.                                 num2=3;
  154.                         }        
  155.                 else if(num1==120)
  156.                         {
  157.                                 num2=0;
  158.                                 num1=0;
  159.                         }               
  160.         }
  161. }
復(fù)制代碼

Proteus仿真是8.17版本的,其他版本打開會報錯: 交通燈.7z (193.18 KB, 下載次數(shù): 12)
回復(fù)

使用道具 舉報

ID:961114 發(fā)表于 2024-5-8 17:27 | 顯示全部樓層
還得是STC8H8K64U 帶硬件USB,可以USB仿真 USB下載   
軟件仿真可以淘汰了
回復(fù)

使用道具 舉報

ID:406814 發(fā)表于 2024-6-7 00:51 | 顯示全部樓層
STC89C52 的庫文件可以分享一下嗎? 我不缺例子,我缺的是STC89C52 的proteus使用的lib文件
回復(fù)

使用道具 舉報

ID:253767 發(fā)表于 2024-6-7 06:11 | 顯示全部樓層
durongze 發(fā)表于 2024-6-7 00:51
STC89C52 的庫文件可以分享一下嗎? 我不缺例子,我缺的是STC89C52 的proteus使用的lib文件

我也是這樣。請樓主給予分享。謝謝。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久国产精品 | 亚洲免费av一区 | 国产精品99久久久久久人 | 欧美久久国产 | 久草网址 | 中文字幕日韩欧美一区二区三区 | 国产精品久久久久久久久久东京 | 日本福利在线观看 | 亚洲精品一区二区三区蜜桃久 | 中文字幕亚洲精品 | 国产乱一区二区三区视频 | 国产精品日日做人人爱 | 国产精品视频网址 | 看av网| 狠狠干天天干 | 国产精品九九 | av在线免费观看网址 | 亚洲精品一区二区在线观看 | 亚洲欧美中文日韩在线v日本 | av国产精品| 精品国产免费一区二区三区演员表 | 一区二区国产在线 | 99精品久久久国产一区二区三 | 久久在线 | 国产精品99视频 | 日本免费黄色一级片 | 涩涩视频网站在线观看 | 日韩精品久久久 | 国产精品成人一区 | 免费在线观看av网站 | 欧美激情国产日韩精品一区18 | 91麻豆精品国产91久久久更新资源速度超快 | 日韩欧美国产精品一区二区 | 久草视频在线播放 | 亚洲天堂av在线 | 狠狠操婷婷 | 国产视频第一页 | 欧美日韩国产精品一区二区 | 国产日韩欧美二区 | 久久久99精品免费观看 | 国产精品2 |