找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2296|回復: 0
收起左側(cè)

單片機串口控制流水燈方向速度 Proteus仿真程序

[復制鏈接]
ID:808939 發(fā)表于 2021-7-18 20:29 | 顯示全部樓層 |閱讀模式
本次實驗是通過上上位機控制實驗一的升級,通過輸入數(shù)字來控制流水燈的速度和方向。在窗口輸入3,流水燈向右流動;在窗口輸入4,流水燈向左流動;在窗口輸入5,流水燈左右流動;在窗口輸入0,流水燈慢速流動;在窗口輸入1,流水燈中速流動;在窗口輸入2,流水燈快速流動
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
捕獲.PNG

單片機源程序如下:
  1. #include "reg51.h"
  2. #define u8 unsigned char//0--255
  3. #define u16 unsigned int//0--65535
  4. void delay16(u16 i){while(i--);}
  5. #include "uart.h"
  6. u8 code tab[15]={1,2,4,8,16,32,64,128,64,32,16,8,4,2,1};
  7. u16 sudu=20000;
  8. u8 fang=0;//0向右,1向左,2左右

  9. void loop(u8 d1,u8 d2)//流水燈效果
  10. {
  11.         u8 i=0;
  12.         for(i=d1;i<d2;i++)
  13.         {
  14.                 P1=~tab[i];
  15.                 delay16(sudu);
  16.         }
  17. }

  18. void main()
  19. {
  20.         UART1_init();
  21.         while(1)
  22.         {
  23.                 if(fang==0)loop(0,8);//向左
  24.                 if(fang==1)loop(7,15);//請補充代碼,向右
  25.                 if(fang==2)loop(0,15);//請補充代碼,左右
  26.         }
  27. }

  28. void UART_INT(void) interrupt 4//暫時只接收1個數(shù)
  29. {
  30.         u8 i=0;//獲取串口發(fā)送過來的數(shù)
  31.         if(RI)//如果是串口輸入引起的中斷
  32.         {
  33.                 i=SBUF & 0x0F;//或者if(i>0x2F && i<0x3A)i=SBUF-0x30;
  34.                 switch(i)
  35.                         {
  36.                           case 0:sudu=60000;break;
  37.                                 case 1:sudu=30000;break;
  38.                                 case 2:sudu=3000;break;
  39.                                 case 3:fang=1;break;
  40.                                 case 4:fang=0;break;
  41.                                 case 5:fang=2;break;
  42.                         }//請補充代碼,輸入0慢1中2快3右4左5左右
  43.                 RI=0;
  44.         }
  45.         else TI=0;//串口輸出引起的中斷,不管
  46. }
復制代碼

所有資料51hei提供下載:
串口控制2-控制流水燈方向速度.7z (108.79 KB, 下載次數(shù): 21)

評分

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

查看全部評分

回復

使用道具 舉報

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

本版積分規(guī)則

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

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

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