标题: Proteus模拟Arduino串口通讯点亮2路LED [打印本页]

作者: lrbm    时间: 2015-12-30 01:46
标题: 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开发板,其他不啰嗦了。






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1