- 電子設計案例教程:基于Flowcode的流碼編程
- 陳鐵主編
- 8字
- 2020-04-29 14:59:27
第二部分 基礎項目
項目一 輸出
知識目標:了解E-blocks的LED硬件模板,會將其組裝在主控制板的A、B、C、D、E端口。了解Flowcode模塊化編程方法,會編程控制LED模板模擬流水燈。
硬件組裝
第一步:取出E-blocks套件中的主控制板、電源適配器、LED模板、USB連線。
第二步:將LED模板插入主控制板的“B口”。
第三步:將電源適配器輸入端插入供電插座,輸出端插入主控制板電源插孔,此時,電源指示燈亮。
第四步:用USB連線將主控制板和電腦連接起來。
第五步:設置主控制板跳線(僅對EB006),見表2-1-1、表2-1-2。
表2-1-1 主控制板跳線參數

表2-1-2 主板設置參數

任務一 點亮1個LED燈
1.程序編寫
點亮LED模板上最低位的編號為D0的LED燈。
第一步:雙擊桌面上的Flowcode程序圖標,進入Flowcode流程圖選擇框,如圖2-1-1所示。

圖2-1-1 Flowcode流程圖選擇框
選中“創新Flowcode流程圖”,點擊“確定”進入“選擇目標”框,如圖2-1-2所示。

圖2-1-2 “選擇目標”框圖
選擇控制器型號“16F877A”,點擊“確定”進入Flowcode程序設計編輯界面,如圖2-1-3所示。

圖2-1-3 Flowcode程序設計編輯界面
第二步:用鼠標指向“輸出模塊”,按住鼠標左鍵,將其拖入
模塊下方,如圖2-1-4所示;雙擊
模塊,進入該模塊的編輯框,如圖2-1-5所示。

圖2-1-4 拖入“輸出模塊”

圖2-1-5 輸出模塊編輯框
根據硬件設置,LED模板被插入主控制板的“端口B”,因此,在“埠”欄通過彈出按鈕選擇“端口B”,如圖2-1-6所示。點擊“確定”,設定主控制板從“端口B”輸出程序。

圖2-1-6 選擇端口B
由于E-blocks組件中的LED模塊,在電路設計時LED采用共負極(又稱共陰極接法,即D7~D08個LED的負極均與電源的負極連接)。這種方式下,在主控制器PIC16F877A的引腳上輸出一個數字信號“1”時,可以使LED發亮(引腳上輸出“1”或“0”由程序指令控制);輸出數字信號“0”時則LED不發亮。主控制器PIC16F877A只能輸出信號“0”或“1”,它們稱為數字信號。
因此,為了點亮LED燈,在“變量或數值”框中應給“1”,通過彈出按鈕選擇或直接在框中輸入數據“1”,如圖2-1-7所示。點擊“確定”則“輸出模塊”
的值變為“1”,如圖2-1-8所示。

圖2-1-7 輸入數據“1”

圖2-1-8 端口B輸出數據“1”
由于只點亮一個LED燈,在“導出至”中可以選擇“單一的位”來進行(控制器中的輸入輸出每個端口有8個引腳,每個引腳稱為一個位;一組二進制數如10101010是8位數,單獨一個數就是一個“位”,從右往左數,編號是第0位,第1位,……,第7位;第0位是最低位,第7位是最高位)。
本操作的任務是點亮編號為“D0”的LED燈,即B端口的最低位;故通過彈出按鈕選擇“0”(D7~D0 8個LED燈在程序設計最高位是D7,最低位是D0,編號是7~0;如需要點亮的是D5,則選擇“5”,依此類推,必須一一對應)。點擊“確定”,設置完成,如圖2-1-9所示。

圖2-1-9 “單一的位”設置和輸出
第三步:將延時模塊拖至“輸出模塊”下方,雙擊打開設置對話框,默認延時時間(即燈亮時間)為1毫秒,由于時間太短,人眼觀察不到燈發亮(人所能觀察到的燈亮時間至少要大于0.02秒)。雙擊圖標
,彈出對話框,進行設置,設延時時間為1秒,如圖2-1-10所示,點擊“確定”完成設置。至此,程序設計完成。

圖2-1-10 延時1秒時間設置
第四步:保存文件。在主菜單“檔案”中選擇“另存為”,將編寫的程序文件(取名為Flowcode-LED)保存在事先建立的文件夾中,可以自己命名文件名或者按系統給出的文件名進行保存。
2.程序編譯
只有編譯后的程序主控制器才能識別。選擇主菜單工具欄中的編譯按鈕,出現如圖2-1-11所示界面,系統即對程序進行編譯。

圖2-1-11 程序編譯
編譯完成會出現提示信息“FINISHED”,點擊“關閉”,完成編譯。
3.程序仿真
在現代自動控制設計技術中,仿真是重要的一步。仿真(Simulation)技術,或稱為模擬技術,是用一個系統模仿另一個真實系統的技術。在Flowcode軟件中,有虛擬仿真面板,如圖2-1-12所示。

圖2-1-12 虛擬仿真界面
第一步:點擊菜單,點擊“LED”選項,在虛擬仿真區即出現一個虛擬的LED燈(由于系統是向外輸出信號來控制LED燈,選擇“OUT”,故選擇
輸出模塊;反之,選擇“IN”,選擇
模塊),如圖2-1-13所示。

圖2-1-13 LED燈輸出
鼠標指向LED燈,點擊鼠標右鍵彈出“指定組件管腳連接點”對話框進行管腳連接設置,如圖2-1-14所示。

圖2-1-14 指定組件管腳連接點
由于LED燈(D0)被指定連接在端口B的第0位,在對話框中一一設定,如圖2-1-15所示。

圖2-1-15 端口B的第0位連接與設置
設置完畢,點擊“完成”。
第二步:開始仿真。點擊主界面上的工具欄中的“開始-暫停-停止”按鈕,仿真開始,LED燈被點亮。也可以點擊
或
按鈕進行“步進”或“步過”對程序進行逐步仿真,這種方法可以方便地檢查到程序出錯位置。如圖2-1-16所示。

圖2-1-16 程序仿真
4.程序下載
編譯后的程序只有下載到主控制器芯片中才能通過芯片運算程序實現對外的控制。
第一步:用USB線將電腦和主控制板連接起來。需要準備器件有主板、LED燈板、USB線、電源和已安裝有Flowcode圖形編程軟件的電腦,如圖2-1-17所示。

圖2-1-17 電腦和主控制板連接圖
第二步:點擊“流程圖編譯下載至芯片”按鈕,主控制板上數據傳輸指示燈(黃燈)閃爍,程序被載入主控制器PIC16F877A中。按下主控制板上的“REST”復位鍵,程序開始在主控制器中運行,D0號LED燈點亮。如圖2-1-18所示。

圖2-1-18 D0號LED燈點亮
同理,可以點亮LED板上的任何一個LED燈。當LED板插接在其他端口時,只需要對輸出端口進行設置。
任務二 同時點亮或熄滅LED模板上的8個LED燈
1.程序編寫
此處需利用“埠”的“屏蔽”功能。如圖2-1-19所示進行參數設置。

圖2-1-19 利用屏蔽功能端口設置
變量或數值:0xff或255(十六進制數ff、十進制數255均為二進制數11111111,每個1點亮對應的LED燈)。
埠:端口B。
使用屏蔽:√(選擇√的對應位燈亮)。
2.程序仿真
如圖2-1-20所示。

圖2-1-20 同時點亮多個LED燈仿真程序下載
3.程序下載
點擊“流程圖編譯下載至芯片”按鈕,主控制板上數據傳輸指示燈(黃燈)閃爍,程序被載入主控制器PIC16F877A中。同時點亮多個LED燈實物圖。如圖2-1-21所示。

圖2-1-21 同時點亮多個LED燈實物圖
任務三 LED燈間隔發亮
1.編寫程序
從端口B依次輸出點亮D1位、D3位、D5位、D7位和點亮D0位、D2位、D4位、D6位的兩種不同信號值,相鄰間隔1秒,從而完成LED的間隔閃亮,程序流程如圖2-1-22所示,點亮奇數位LED端口設置如圖2-1-23所示。

圖2-1-22 程序流程圖

圖2-1-23 點亮奇數位LED端口設置
變量或參數:0xaa。
十六進制數aa為二進制數10101010,“1”點亮對應“位”上的燈,“0”則表示對應“位”上的燈不亮;二進制數10101010轉化為十進制數是27+06+25+04+23+02+21+00=128+0+32+0+8+0+2+0=170,表2-1-3~表2-1-5是十進制、二進制十六進制在1~10的換算表。
表2-1-3 十進制與二進制對應關系

表2-1-4 二進制換算成十進制

表2-1-5 十進制、二進制、十六進制對應關系

點亮偶數位LED端口設置,如圖2-1-24所示。

圖2-1-24 點亮偶數位LED端口設置
變量或參數:0x55。
十六進制數55為二進制數01010101,“1”點亮對應“位”上的燈,“0”則表示對應“位”上的燈不亮;二進制數10101010轉化為十六進制數是07+26+05+24+03+22+01+20=0+64+0+16+0+4+0+1=85。
2.虛擬仿真
用“步進”功能逐步仿真。點擊“步進”仿真按鈕,奇數位和偶數位LED點亮仿真效果。分別見圖2-1-25和圖2-1-26。

圖2-1-25 奇數位LED點亮仿真效果

圖2-1-26 偶數位LED點亮仿真效果
3.程序下載
點擊“流程圖編譯下載至芯片”按鈕,主控制板上數據傳輸指示燈(黃燈)閃爍,程序被載入主控制器PIC16F877A中,如圖2-1-27所示。

圖2-1-27 實物效果圖
任務四 流水燈
1.程序編寫
利用循環模塊,將其拖入
的下方,程序如圖2-1-28所示。

圖2-1-28 流水燈程序框圖
2.程序仿真
LED亮、滅現象與上例相同,但處于不斷循環之中,模擬流水狀,如圖2-1-29所示。

圖2-1-29 流水燈仿真效果
3.程序下載
點擊“流程圖編譯下載至芯片”按鈕,主控制板上數據傳輸指示燈(黃燈)閃爍,程序被載入主控制器PIC16F877A中。圖2-1-30、圖2-1-31為不同參數下的實物效果圖。

圖2-1-30 參數為0xaa的流水燈實物效果圖

圖2-1-31 參數為0x55的流水燈實物效果圖
任務五 用LED模板上的8個燈模擬跑馬燈
1.工作原理
讓每個燈依次點亮一段時間,效果即流水狀。
2.程序編寫
因程序長,主界面不能顯示全部流程圖,在此僅編寫4個燈的程序,其他可依此類推,如圖2-1-32所示。

圖2-1-32 跑馬燈程序框圖
點擊菜單右側的選擇按鈕
,點擊“LEDarray”選項,在虛擬仿真區出現一個虛擬的8個LED燈面板。鼠標指向8個LED仿真燈模板,點擊右鍵打開“連接設置框”,選擇端口B。
3.程序仿真
仿真效果如圖2-1-33所示。

圖2-1-33 4個LED的跑馬燈仿真圖
4.程序下載
點擊“流程圖編譯下載至芯片”按鈕,主控制板上數據傳輸指示燈(黃燈)閃爍,程序被載入主控制器PIC16F877A中,如圖2-1-34所示。

圖2-1-34 跑馬燈實物圖
練習
1.僅奇數的燈亮。
2.僅偶數的燈亮。
3.點亮4~7位的燈。
4.使用數值點亮端口PB7小燈。
5.使用單一的位點亮PB7小燈。
6.使用屏蔽點亮PB7小燈
7.編寫一個至少20個輸出,使用不同輸出值到B端口的程序,一個接一個,然后查看仿真結果。使用以下4種方法進行練習:16進制、10進制、單一的位、屏蔽埠。降低仿真速度,按照步進模式查看每步輸出的值。
8.用LED模板模擬自由落體水滴。