官术网_书友最值得收藏!

第二部分 基礎(chǔ)項(xiàng)目

項(xiàng)目一 輸出

知識(shí)目標(biāo):了解E-blocks的LED硬件模板,會(huì)將其組裝在主控制板的A、B、C、D、E端口。了解Flowcode模塊化編程方法,會(huì)編程控制LED模板模擬流水燈。

硬件組裝

第一步:取出E-blocks套件中的主控制板、電源適配器、LED模板、USB連線。

第二步:將LED模板插入主控制板的“B口”。

第三步:將電源適配器輸入端插入供電插座,輸出端插入主控制板電源插孔,此時(shí),電源指示燈亮。

第四步:用USB連線將主控制板和電腦連接起來(lái)。

第五步:設(shè)置主控制板跳線(僅對(duì)EB006),見(jiàn)表2-1-1、表2-1-2。

表2-1-1 主控制板跳線參數(shù)

表2-1-2 主板設(shè)置參數(shù)

任務(wù)一 點(diǎn)亮1個(gè)LED燈

1.程序編寫(xiě)

點(diǎn)亮LED模板上最低位的編號(hào)為D0的LED燈。

第一步:雙擊桌面上的Flowcode程序圖標(biāo),進(jìn)入Flowcode流程圖選擇框,如圖2-1-1所示。

圖2-1-1 Flowcode流程圖選擇框

選中“創(chuàng)新Flowcode流程圖”,點(diǎn)擊“確定”進(jìn)入“選擇目標(biāo)”框,如圖2-1-2所示。

圖2-1-2 “選擇目標(biāo)”框圖

選擇控制器型號(hào)“16F877A”,點(diǎn)擊“確定”進(jìn)入Flowcode程序設(shè)計(jì)編輯界面,如圖2-1-3所示。

圖2-1-3 Flowcode程序設(shè)計(jì)編輯界面

第二步:用鼠標(biāo)指向“輸出模塊”,按住鼠標(biāo)左鍵,將其拖入模塊下方,如圖2-1-4所示;雙擊模塊,進(jìn)入該模塊的編輯框,如圖2-1-5所示。

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

圖2-1-5 輸出模塊編輯框

根據(jù)硬件設(shè)置,LED模板被插入主控制板的“端口B”,因此,在“埠”欄通過(guò)彈出按鈕選擇“端口B”,如圖2-1-6所示。點(diǎn)擊“確定”,設(shè)定主控制板從“端口B”輸出程序。

圖2-1-6 選擇端口B

由于E-blocks組件中的LED模塊,在電路設(shè)計(jì)時(shí)LED采用共負(fù)極(又稱(chēng)共陰極接法,即D7~D08個(gè)LED的負(fù)極均與電源的負(fù)極連接)。這種方式下,在主控制器PIC16F877A的引腳上輸出一個(gè)數(shù)字信號(hào)“1”時(shí),可以使LED發(fā)亮(引腳上輸出“1”或“0”由程序指令控制);輸出數(shù)字信號(hào)“0”時(shí)則LED不發(fā)亮。主控制器PIC16F877A只能輸出信號(hào)“0”或“1”,它們稱(chēng)為數(shù)字信號(hào)。

因此,為了點(diǎn)亮LED燈,在“變量或數(shù)值”框中應(yīng)給“1”,通過(guò)彈出按鈕選擇或直接在框中輸入數(shù)據(jù)“1”,如圖2-1-7所示。點(diǎn)擊“確定”則“輸出模塊”的值變?yōu)椤?”,如圖2-1-8所示。

圖2-1-7 輸入數(shù)據(jù)“1”

圖2-1-8 端口B輸出數(shù)據(jù)“1”

由于只點(diǎn)亮一個(gè)LED燈,在“導(dǎo)出至”中可以選擇“單一的位”來(lái)進(jìn)行(控制器中的輸入輸出每個(gè)端口有8個(gè)引腳,每個(gè)引腳稱(chēng)為一個(gè)位;一組二進(jìn)制數(shù)如10101010是8位數(shù),單獨(dú)一個(gè)數(shù)就是一個(gè)“位”,從右往左數(shù),編號(hào)是第0位,第1位,……,第7位;第0位是最低位,第7位是最高位)。

本操作的任務(wù)是點(diǎn)亮編號(hào)為“D0”的LED燈,即B端口的最低位;故通過(guò)彈出按鈕選擇“0”(D7~D0 8個(gè)LED燈在程序設(shè)計(jì)最高位是D7,最低位是D0,編號(hào)是7~0;如需要點(diǎn)亮的是D5,則選擇“5”,依此類(lèi)推,必須一一對(duì)應(yīng))。點(diǎn)擊“確定”,設(shè)置完成,如圖2-1-9所示。

圖2-1-9 “單一的位”設(shè)置和輸出

第三步:將延時(shí)模塊拖至“輸出模塊”下方,雙擊打開(kāi)設(shè)置對(duì)話框,默認(rèn)延時(shí)時(shí)間(即燈亮?xí)r間)為1毫秒,由于時(shí)間太短,人眼觀察不到燈發(fā)亮(人所能觀察到的燈亮?xí)r間至少要大于0.02秒)。雙擊圖標(biāo),彈出對(duì)話框,進(jìn)行設(shè)置,設(shè)延時(shí)時(shí)間為1秒,如圖2-1-10所示,點(diǎn)擊“確定”完成設(shè)置。至此,程序設(shè)計(jì)完成。

圖2-1-10 延時(shí)1秒時(shí)間設(shè)置

第四步:保存文件。在主菜單“檔案”中選擇“另存為”,將編寫(xiě)的程序文件(取名為Flowcode-LED)保存在事先建立的文件夾中,可以自己命名文件名或者按系統(tǒng)給出的文件名進(jìn)行保存。

2.程序編譯

只有編譯后的程序主控制器才能識(shí)別。選擇主菜單工具欄中的編譯按鈕,出現(xiàn)如圖2-1-11所示界面,系統(tǒng)即對(duì)程序進(jìn)行編譯。

圖2-1-11 程序編譯

編譯完成會(huì)出現(xiàn)提示信息“FINISHED”,點(diǎn)擊“關(guān)閉”,完成編譯。

3.程序仿真

在現(xiàn)代自動(dòng)控制設(shè)計(jì)技術(shù)中,仿真是重要的一步。仿真(Simulation)技術(shù),或稱(chēng)為模擬技術(shù),是用一個(gè)系統(tǒng)模仿另一個(gè)真實(shí)系統(tǒng)的技術(shù)。在Flowcode軟件中,有虛擬仿真面板,如圖2-1-12所示。

圖2-1-12 虛擬仿真界面

第一步:點(diǎn)擊菜單,點(diǎn)擊“LED”選項(xiàng),在虛擬仿真區(qū)即出現(xiàn)一個(gè)虛擬的LED燈(由于系統(tǒng)是向外輸出信號(hào)來(lái)控制LED燈,選擇“OUT”,故選擇輸出模塊;反之,選擇“IN”,選擇模塊),如圖2-1-13所示。

圖2-1-13 LED燈輸出

鼠標(biāo)指向LED燈,點(diǎn)擊鼠標(biāo)右鍵彈出“指定組件管腳連接點(diǎn)”對(duì)話框進(jìn)行管腳連接設(shè)置,如圖2-1-14所示。

圖2-1-14 指定組件管腳連接點(diǎn)

由于LED燈(D0)被指定連接在端口B的第0位,在對(duì)話框中一一設(shè)定,如圖2-1-15所示。

圖2-1-15 端口B的第0位連接與設(shè)置

設(shè)置完畢,點(diǎn)擊“完成”。

第二步:開(kāi)始仿真。點(diǎn)擊主界面上的工具欄中的“開(kāi)始-暫停-停止”按鈕,仿真開(kāi)始,LED燈被點(diǎn)亮。也可以點(diǎn)擊按鈕進(jìn)行“步進(jìn)”或“步過(guò)”對(duì)程序進(jìn)行逐步仿真,這種方法可以方便地檢查到程序出錯(cuò)位置。如圖2-1-16所示。

圖2-1-16 程序仿真

4.程序下載

編譯后的程序只有下載到主控制器芯片中才能通過(guò)芯片運(yùn)算程序?qū)崿F(xiàn)對(duì)外的控制。

第一步:用USB線將電腦和主控制板連接起來(lái)。需要準(zhǔn)備器件有主板、LED燈板、USB線、電源和已安裝有Flowcode圖形編程軟件的電腦,如圖2-1-17所示。

圖2-1-17 電腦和主控制板連接圖

第二步:點(diǎn)擊“流程圖編譯下載至芯片”按鈕,主控制板上數(shù)據(jù)傳輸指示燈(黃燈)閃爍,程序被載入主控制器PIC16F877A中。按下主控制板上的“REST”復(fù)位鍵,程序開(kāi)始在主控制器中運(yùn)行,D0號(hào)LED燈點(diǎn)亮。如圖2-1-18所示。

圖2-1-18 D0號(hào)LED燈點(diǎn)亮

同理,可以點(diǎn)亮LED板上的任何一個(gè)LED燈。當(dāng)LED板插接在其他端口時(shí),只需要對(duì)輸出端口進(jìn)行設(shè)置。

任務(wù)二 同時(shí)點(diǎn)亮或熄滅LED模板上的8個(gè)LED燈

1.程序編寫(xiě)

此處需利用“埠”的“屏蔽”功能。如圖2-1-19所示進(jìn)行參數(shù)設(shè)置。

圖2-1-19 利用屏蔽功能端口設(shè)置

變量或數(shù)值:0xff或255(十六進(jìn)制數(shù)ff、十進(jìn)制數(shù)255均為二進(jìn)制數(shù)11111111,每個(gè)1點(diǎn)亮對(duì)應(yīng)的LED燈)。

埠:端口B。

使用屏蔽:√(選擇√的對(duì)應(yīng)位燈亮)。

2.程序仿真

如圖2-1-20所示。

圖2-1-20 同時(shí)點(diǎn)亮多個(gè)LED燈仿真程序下載

3.程序下載

點(diǎn)擊“流程圖編譯下載至芯片”按鈕,主控制板上數(shù)據(jù)傳輸指示燈(黃燈)閃爍,程序被載入主控制器PIC16F877A中。同時(shí)點(diǎn)亮多個(gè)LED燈實(shí)物圖。如圖2-1-21所示。

圖2-1-21 同時(shí)點(diǎn)亮多個(gè)LED燈實(shí)物圖

任務(wù)三 LED燈間隔發(fā)亮

1.編寫(xiě)程序

從端口B依次輸出點(diǎn)亮D1位、D3位、D5位、D7位和點(diǎn)亮D0位、D2位、D4位、D6位的兩種不同信號(hào)值,相鄰間隔1秒,從而完成LED的間隔閃亮,程序流程如圖2-1-22所示,點(diǎn)亮奇數(shù)位LED端口設(shè)置如圖2-1-23所示。

圖2-1-22 程序流程圖

圖2-1-23 點(diǎn)亮奇數(shù)位LED端口設(shè)置

變量或參數(shù):0xaa。

十六進(jìn)制數(shù)aa為二進(jìn)制數(shù)10101010,“1”點(diǎn)亮對(duì)應(yīng)“位”上的燈,“0”則表示對(duì)應(yīng)“位”上的燈不亮;二進(jìn)制數(shù)10101010轉(zhuǎn)化為十進(jìn)制數(shù)是27+06+25+04+23+02+21+00=128+0+32+0+8+0+2+0=170,表2-1-3~表2-1-5是十進(jìn)制、二進(jìn)制十六進(jìn)制在1~10的換算表。

表2-1-3 十進(jìn)制與二進(jìn)制對(duì)應(yīng)關(guān)系

表2-1-4 二進(jìn)制換算成十進(jìn)制

表2-1-5 十進(jìn)制、二進(jìn)制、十六進(jìn)制對(duì)應(yīng)關(guān)系

點(diǎn)亮偶數(shù)位LED端口設(shè)置,如圖2-1-24所示。

圖2-1-24 點(diǎn)亮偶數(shù)位LED端口設(shè)置

變量或參數(shù):0x55。

十六進(jìn)制數(shù)55為二進(jìn)制數(shù)01010101,“1”點(diǎn)亮對(duì)應(yīng)“位”上的燈,“0”則表示對(duì)應(yīng)“位”上的燈不亮;二進(jìn)制數(shù)10101010轉(zhuǎn)化為十六進(jìn)制數(shù)是07+26+05+24+03+22+01+20=0+64+0+16+0+4+0+1=85。

2.虛擬仿真

用“步進(jìn)”功能逐步仿真。點(diǎn)擊“步進(jìn)”仿真按鈕,奇數(shù)位和偶數(shù)位LED點(diǎn)亮仿真效果。分別見(jiàn)圖2-1-25和圖2-1-26。

圖2-1-25 奇數(shù)位LED點(diǎn)亮仿真效果

圖2-1-26 偶數(shù)位LED點(diǎn)亮仿真效果

3.程序下載

點(diǎn)擊“流程圖編譯下載至芯片”按鈕,主控制板上數(shù)據(jù)傳輸指示燈(黃燈)閃爍,程序被載入主控制器PIC16F877A中,如圖2-1-27所示。

圖2-1-27 實(shí)物效果圖

任務(wù)四 流水燈

1.程序編寫(xiě)

利用循環(huán)模塊,將其拖入的下方,程序如圖2-1-28所示。

圖2-1-28 流水燈程序框圖

2.程序仿真

LED亮、滅現(xiàn)象與上例相同,但處于不斷循環(huán)之中,模擬流水狀,如圖2-1-29所示。

圖2-1-29 流水燈仿真效果

3.程序下載

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

圖2-1-30 參數(shù)為0xaa的流水燈實(shí)物效果圖

圖2-1-31 參數(shù)為0x55的流水燈實(shí)物效果圖

任務(wù)五 用LED模板上的8個(gè)燈模擬跑馬燈

1.工作原理

讓每個(gè)燈依次點(diǎn)亮一段時(shí)間,效果即流水狀。

2.程序編寫(xiě)

因程序長(zhǎng),主界面不能顯示全部流程圖,在此僅編寫(xiě)4個(gè)燈的程序,其他可依此類(lèi)推,如圖2-1-32所示。

圖2-1-32 跑馬燈程序框圖

點(diǎn)擊菜單右側(cè)的選擇按鈕,點(diǎn)擊“LEDarray”選項(xiàng),在虛擬仿真區(qū)出現(xiàn)一個(gè)虛擬的8個(gè)LED燈面板。鼠標(biāo)指向8個(gè)LED仿真燈模板,點(diǎn)擊右鍵打開(kāi)“連接設(shè)置框”,選擇端口B。

3.程序仿真

仿真效果如圖2-1-33所示。

圖2-1-33 4個(gè)LED的跑馬燈仿真圖

4.程序下載

點(diǎn)擊“流程圖編譯下載至芯片”按鈕,主控制板上數(shù)據(jù)傳輸指示燈(黃燈)閃爍,程序被載入主控制器PIC16F877A中,如圖2-1-34所示。

圖2-1-34 跑馬燈實(shí)物圖

練習(xí)

1.僅奇數(shù)的燈亮。

2.僅偶數(shù)的燈亮。

3.點(diǎn)亮4~7位的燈。

4.使用數(shù)值點(diǎn)亮端口PB7小燈。

5.使用單一的位點(diǎn)亮PB7小燈。

6.使用屏蔽點(diǎn)亮PB7小燈

7.編寫(xiě)一個(gè)至少20個(gè)輸出,使用不同輸出值到B端口的程序,一個(gè)接一個(gè),然后查看仿真結(jié)果。使用以下4種方法進(jìn)行練習(xí):16進(jìn)制、10進(jìn)制、單一的位、屏蔽埠。降低仿真速度,按照步進(jìn)模式查看每步輸出的值。

8.用LED模板模擬自由落體水滴。

主站蜘蛛池模板: 阳春市| 古浪县| 水城县| 宜春市| 琼海市| 册亨县| 永平县| 思南县| 古蔺县| 泸州市| 繁昌县| 徐水县| 宣武区| 都兰县| 英吉沙县| 海原县| 荆州市| 玛沁县| 德保县| 永清县| 安陆市| 基隆市| 宁都县| 西吉县| 昌平区| 富源县| 黑河市| 桂阳县| 崇文区| 佳木斯市| 大足县| 湾仔区| 乾安县| 衢州市| 南陵县| 合肥市| 井冈山市| 阆中市| 古蔺县| 禹州市| 体育|