找回密码
 立即注册

QQ登录

只需一步,快速开始

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

Proteus模拟Arduino串口通讯点亮2路LED

[复制链接]
跳转到指定楼层
楼主
不啰嗦,直接上图:


代码:
  1. //Proteus虚拟Arduino串口通讯测试 - 说:没有注释的代码不是好代码!
  2. int Cmd,Power1,Power2;//定义3个整型变量:Cmd为接收串口数据,Power1和Power2分别储存两个小灯的工作状态
  3. int Led_Left = 6;//定义左边小灯对应arduino的IO口
  4. int Led_Right = 7;//定义右边小灯对应arduino的IO口
  5. int Power_Led = 13;//定义电源指示灯
  6. //初始化arduino
  7. void setup() {
  8.   Serial.begin(9600);//定义串口波特率
  9.   pinMode(Power_Led, OUTPUT);//定义左边小灯IO口的工作模式为输出
  10.   pinMode(Led_Left, OUTPUT);//定义左边小灯IO口的工作模式为输出
  11.   pinMode(Led_Right, OUTPUT);//定义右边小灯IO口的工作模式为输出
  12. }
  13. //arduino主循环函数
  14. void loop() {
  15.   digitalWrite(Power_Led,HIGH);//点亮电源灯
  16.   Cmd = Serial.read();/*读取串口缓冲区数据*/
  17.   //处理读取到的数据
  18.   if(Cmd != -1){
  19.     Serial.print("Get Command:"); Serial.println((char)Cmd);
  20.   }  
  21.   switch(Cmd){
  22.   //判断指令数据,并反馈
  23.     case '1':Power1 = 1;Serial.println("The Led_Left Trun On!");break;
  24.     case '2':Power1 = 0;Serial.println("The Led_Left Trun Off!");break;
  25.     case '3':Power2 = 1;Serial.println("The Led_Right Trun On!");break;
  26.     case '4':Power2 = 0;Serial.println("The Led_Right Trun Off!");break;
  27.     default: break;
  28.    }
  29.   //处理小灯的工作状态
  30.   switch(Power1){
  31.     case 0:digitalWrite(Led_Left,LOW);break;
  32.     case 1:digitalWrite(Led_Left,HIGH); break;
  33.     default: break;
  34.     }
  35.   switch(Power2){
  36.     case 0:digitalWrite(Led_Right,LOW);break;
  37.     case 1:digitalWrite(Led_Right,HIGH);break;
  38.     default: break;
  39.    }
  40. }
复制代码

poeteus8.3Sp2 可以直接创建Arduino开发板,其他不啰嗦了。

评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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