初學51微控制器時,常常有一些想法想去實現,但又擔心實現不了而造成浪費(畢竟要花錢買一些硬體)。所以一直在想,如果能有個什麼東西來模擬一下就好了,於是後來發現了Proteus這個模擬軟體。相信大家對這個軟體並不陌生,這裡呢,我就分享一下如何使用Keil和Proteus實現一個心形流水等燈,希望能和大家多多交流,如有什麼不當之處,還望指正。
工具/原料
Keil和Proteus軟體。
第一步:在Proteus中搭建模擬硬體電路
放置微控制器晶片(這裡我選擇的是AT89C52)。首先在搜尋框中以關鍵字來搜尋,然後再搜尋結果中找到並選中“AT89C52”,接著單擊“OK”按鈕,最後回到繪圖介面中單擊左鍵即可放置微控制器。具體操作如下圖所示:
放置LED燈。同樣,先在搜尋框中輸入“LED”來搜素,再在搜尋結果中選擇LED-BIBY(當然你也可以選擇其他的),最後放置在繪圖區內合適的地方並擺成心形圖樣,具體情況如下圖所示:
給LED燈連線導線。在Proteus中不用連結GND,只需連結VCC即可。這裡我們使用16個LED,分別使用微控制器的P0口和P2口,具體情況如下圖所示:
第二步:在Keil中編寫實現程式
建立工程。其中LED.c檔案用於存放各個功能的子函式,而delay.c檔案則用於存放延時函式,最後主函式直接呼叫前面的兩個檔案中的子函式即可。具體操作如下圖所示:
在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燈。具體情況如圖:
在delay.c原始檔中編寫延時函式。具體情況如下圖所示:
在main.c檔案主函式中呼叫各個子函式來實現流水燈功能。具體情況如下圖所示:
第三步:將Keil編譯後生成的hex檔案下載到微控制器中
在Keil中編寫完所有程式碼後,進行編譯,使其生成hex檔案。具體操作情況如下圖:
在Proteus中雙擊微控制器晶片,在彈出來的對話方塊中將生成的hex檔案下載到微控制器。具體操作情況如下圖:
執行模擬電路,觀察效果。具體操作情況如下圖:
尾聲:
如何使用Keil和Proteus實現一個心形流水燈,這裡已經介紹完了,如果大家覺得還不錯的話,記得給好評哦!