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

QQ登錄

只需一步,快速開始

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

51單片機(jī)實(shí)現(xiàn)仿真從左到右再?gòu)挠业阶蟮牧魉疅粼闯绦?/span>

[復(fù)制鏈接]
ID:415088 發(fā)表于 2019-11-8 15:03 | 顯示全部樓層 |閱讀模式
這是自己做的文檔中一個(gè)題目,運(yùn)用自己學(xué)習(xí)的定時(shí)器加中斷你來寫一個(gè)流水燈,主要是用來檢測(cè)自己對(duì)定時(shí)器的掌握。亮燈的代碼沒有封裝函數(shù),如有需要可以自己封裝

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png

單片機(jī)源程序如下:
  1. #include<reg51.h>

  2. /*
  3. sbit LED  = P1^0;
  4. sbit LED1 = P1^1;
  5. sbit LED2 = P1^2;
  6. sbit LED3 = P1^3;
  7. sbit LED4 = P1^4;
  8. sbit LED5 = P1^5;
  9. sbit LED6 = P1^6;
  10. sbit LED7 = P1^7;
  11. */



  12. unsigned char cnt = 0;

  13. void main(void)                          
  14. {
  15.         unsigned char i = 0;
  16.         unsigned char num = 1;
  17.        
  18.         EA = 1;
  19.         TMOD = 0x01;
  20.         TH0 = 0xFC;//1ms定時(shí)器 0xFC67
  21.         TL0 = 0x67;
  22.         TR0 = 1;
  23.         ET0 = 1;

  24.         while(1)
  25.         {       
  26.                 switch(num)
  27.                 {
  28.                         case 1:
  29.                                 if(cnt >= 100)
  30.                                 {
  31.                                         cnt  = 0;
  32.                                         P1 = ~(0x01 << i);
  33.                                         i++;
  34.                                         if(i >= 8)
  35.                                         {       
  36.                                                 i = 0;
  37.                                                 num = 0;
  38.                                         }
  39.                                 }       
  40.                                 break;
  41.                        
  42.                         case 0:
  43.                                 if(cnt >= 100)
  44.                                 {
  45.                                         cnt  = 0;
  46.                                         P1 = ~(0x80 >> i);
  47.                                         i++;
  48.                                         if(i >= 8)
  49.                                         {       
  50.                                                 i = 0;
  51.                                                 num = 1;
  52.                                         }
  53.                                 }
  54.                                 break;
  55.                        
  56.                         default:
  57.                                 break;
  58.                 }
  59.         }
  60.        
  61.         //return 0;
  62. }

  63. void InterruptTimer0() interrupt 1
  64. {
  65.                 ET0 = 0;
  66.                 TH0 = 0xFC;//1S定時(shí)器 0xFC67
  67.                 TL0 = 0x67;

  68.                 cnt++;
  69.                 ET0 = 1;
  70. }
復(fù)制代碼

所有資料51hei提供下載:
LED-CESHI.rar (80.16 KB, 下載次數(shù): 11)

回復(fù)

使用道具 舉報(bào)

ID:639666 發(fā)表于 2019-11-11 14:30 | 顯示全部樓層
我需要這個(gè)程序。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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