找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

Proteus模擬Arduino串口通訊點亮2路LED

[復(fù)制鏈接]
ID:101164 發(fā)表于 2015-12-30 01:46 | 顯示全部樓層 |閱讀模式
不啰嗦,直接上圖:

原理圖

原理圖

效果圖

效果圖


代碼:
  1. //Proteus虛擬Arduino串口通訊測試 - 說:沒有注釋的代碼不是好代碼!
  2. int Cmd,Power1,Power2;//定義3個整型變量:Cmd為接收串口數(shù)據(jù),Power1和Power2分別儲存兩個小燈的工作狀態(tài)
  3. int Led_Left = 6;//定義左邊小燈對應(yīng)arduino的IO口
  4. int Led_Right = 7;//定義右邊小燈對應(yīng)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主循環(huán)函數(shù)
  14. void loop() {
  15.   digitalWrite(Power_Led,HIGH);//點亮電源燈
  16.   Cmd = Serial.read();/*讀取串口緩沖區(qū)數(shù)據(jù)*/
  17.   //處理讀取到的數(shù)據(jù)
  18.   if(Cmd != -1){
  19.     Serial.print("Get Command:"); Serial.println((char)Cmd);
  20.   }  
  21.   switch(Cmd){
  22.   //判斷指令數(shù)據(jù),并反饋
  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.   //處理小燈的工作狀態(tài)
  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. }
復(fù)制代碼

poeteus8.3Sp2 可以直接創(chuàng)建Arduino開發(fā)板,其他不啰嗦了。

評分

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

查看全部評分

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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