【Keil+Proteus模擬】51微控制器實現心形流水燈?

初學51微控制器時,常常有一些想法想去實現,但又擔心實現不了而造成浪費(畢竟要花錢買一些硬體)。所以一直在想,如果能有個什麼東西來模擬一下就好了,於是後來發現了Proteus這個模擬軟體。相信大家對這個軟體並不陌生,這裡呢,我就分享一下如何使用Keil和Proteus實現一個心形流水等燈,希望能和大家多多交流,如有什麼不當之處,還望指正。

【Keil+Proteus模擬】51微控制器實現心形流水燈

【Keil+Proteus模擬】51微控制器實現心形流水燈

工具/原料

Keil和Proteus軟體。

第一步:在Proteus中搭建模擬硬體電路

放置微控制器晶片(這裡我選擇的是AT89C52)。首先在搜尋框中以關鍵字來搜尋,然後再搜尋結果中找到並選中“AT89C52”,接著單擊“OK”按鈕,最後回到繪圖介面中單擊左鍵即可放置微控制器。具體操作如下圖所示:

【Keil+Proteus模擬】51微控制器實現心形流水燈

【Keil+Proteus模擬】51微控制器實現心形流水燈

【Keil+Proteus模擬】51微控制器實現心形流水燈

放置LED燈。同樣,先在搜尋框中輸入“LED”來搜素,再在搜尋結果中選擇LED-BIBY(當然你也可以選擇其他的),最後放置在繪圖區內合適的地方並擺成心形圖樣,具體情況如下圖所示:

【Keil+Proteus模擬】51微控制器實現心形流水燈

【Keil+Proteus模擬】51微控制器實現心形流水燈

給LED燈連線導線。在Proteus中不用連結GND,只需連結VCC即可。這裡我們使用16個LED,分別使用微控制器的P0口和P2口,具體情況如下圖所示:

【Keil+Proteus模擬】51微控制器實現心形流水燈

第二步:在Keil中編寫實現程式

建立工程。其中LED.c檔案用於存放各個功能的子函式,而delay.c檔案則用於存放延時函式,最後主函式直接呼叫前面的兩個檔案中的子函式即可。具體操作如下圖所示:

【Keil+Proteus模擬】51微控制器實現心形流水燈

在LED.c原始檔中編寫功能子函式,分別為turn_on(int i)、turn_off(int i)和turn_on_Only(int i)。turn_on(int i)實現的功能是點亮對應位的LED燈,如turn_on(1)表示點亮第一個LED燈;turn_off(int i)實現的功能是熄滅對應位的LED燈,如turn_off(1)表示熄滅第一個LED燈;turn_on_Only(int i)實現的功能是僅點亮對應位的LED燈,其他燈不亮,如turn_on_Only(1)表示僅點亮第一個LED燈。具體情況如圖:

【Keil+Proteus模擬】51微控制器實現心形流水燈

【Keil+Proteus模擬】51微控制器實現心形流水燈

【Keil+Proteus模擬】51微控制器實現心形流水燈

在delay.c原始檔中編寫延時函式。具體情況如下圖所示:

【Keil+Proteus模擬】51微控制器實現心形流水燈

在main.c檔案主函式中呼叫各個子函式來實現流水燈功能。具體情況如下圖所示:

【Keil+Proteus模擬】51微控制器實現心形流水燈

第三步:將Keil編譯後生成的hex檔案下載到微控制器中

在Keil中編寫完所有程式碼後,進行編譯,使其生成hex檔案。具體操作情況如下圖:

【Keil+Proteus模擬】51微控制器實現心形流水燈

【Keil+Proteus模擬】51微控制器實現心形流水燈

在Proteus中雙擊微控制器晶片,在彈出來的對話方塊中將生成的hex檔案下載到微控制器。具體操作情況如下圖:

【Keil+Proteus模擬】51微控制器實現心形流水燈

執行模擬電路,觀察效果。具體操作情況如下圖:

【Keil+Proteus模擬】51微控制器實現心形流水燈

尾聲:

如何使用Keil和Proteus實現一個心形流水燈,這裡已經介紹完了,如果大家覺得還不錯的話,記得給好評哦!

軟體, 硬體, 心形, 微控制器, 流水燈,
相關問題答案