天天看點

《例說8051:單片機程式設計案例教程》——1-4 執行個體演練

本節書摘來異步社群《例說8051:單片機程式設計案例教程》一書中的第1章,第1.4節,作者:張義和,陳敵北,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

例說8051:單片機程式設計案例教程

單片機系統的設計中,軟體與硬體息息相關,采用不同的電路設計,程式可能就不太一樣。是以,在編寫程式之前,必須确定電路的連接配接狀态,例如要利用8051的port 2來控制8個led,讓這8個led分成兩組(高四位與低四位),互動閃爍,其設計步驟如下:

如圖1-19所示的電路中,當port 2的引腳輸出低電平(0)時,其所連接配接的led因正向導通而亮;若将引腳輸出高電平(1)時,其所連接配接的led因反向截止而不亮。是以,我們的程式設計就要讓port 2輸出為“00001111”,使左邊四個led亮,右邊四個led不亮。隔一段時間後,再将輸出反相,即左邊四個led不亮,右邊四個led亮,……如此周而複始。

有了電路和思路後,随即可畫出流程圖,如圖1-20所示。

《例說8051:單片機程式設計案例教程》——1-4 執行個體演練

除簡單的程式外,根據流程圖來編寫程式是一個較容易且保險的方法。若要編寫程式,則進入文本編輯程式後,按行輸入,其中每行“;”右邊的部分是注釋,是對該條指令的說明,隻提供備注資訊,不會影響源程式運作。在此建議盡量要求自己對自己所編寫的程式進行注釋,一方面可以增加該程式的可讀性,另一方面則可養成良好的程式編寫習慣。

通常我們會将所有開發工具都放在一個檔案夾裡(如d:8051),包括pe2、x8051、link、avsim51、test.bat(前面所介紹的自動批處理檔案),以及所編輯的源程式。當源程式編輯完成且存盤(ch1.asm)後,在指令提示符下輸入:

《例說8051:單片機程式設計案例教程》——1-4 執行個體演練

螢幕将出現一連串操作,最後停止,如圖1-21所示。

《例說8051:單片機程式設計案例教程》——1-4 執行個體演練

此時産生了*.hex檔案,可進一步進行軟體仿真,同樣是在指令提示符下輸入:

《例說8051:單片機程式設計案例教程》——1-4 執行個體演練

螢幕出現如圖1-22所示畫面。

此時按鍵即可進入軟體仿真環境,如圖1-23所示。

《例說8051:單片機程式設計案例教程》——1-4 執行個體演練

緊接着載入剛才編譯完成的檔案,按、鍵,再輸入ch1.hex,按鍵即可載入ch1.hex,如圖1-24所示。

《例說8051:單片機程式設計案例教程》——1-4 執行個體演練

此時螢幕左上角将顯示所下載下傳的程式,隻要按

《例說8051:單片機程式設計案例教程》——1-4 執行個體演練

鍵即可進行仿真,這時要注意看右下方“p2”的變化,如圖1-25所示。

若要停止模拟,則

《例說8051:單片機程式設計案例教程》——1-4 執行個體演練

按鍵兩下;若要結束程式,則按

《例說8051:單片機程式設計案例教程》——1-4 執行個體演練

鍵即可。

《例說8051:單片機程式設計案例教程》——1-4 執行個體演練