找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1813|回复: 0
打印 上一主题 下一主题
收起左侧

单片机串口控制流水灯方向速度 Proteus仿真程序

[复制链接]
跳转到指定楼层
楼主
本次实验是通过上上位机控制实验一的升级,通过输入数字来控制流水灯的速度和方向。在窗口输入3,流水灯向右流动;在窗口输入4,流水灯向左流动;在窗口输入5,流水灯左右流动;在窗口输入0,流水灯慢速流动;在窗口输入1,流水灯中速流动;在窗口输入2,流水灯快速流动
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  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个数
  29. {
  30.         u8 i=0;//获取串口发送过来的数
  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, 下载次数: 21)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表