鄭麗敏
摘 要:在Proteus仿真軟件與Keil編程軟件的基礎(chǔ)上設(shè)計(jì)了基于AT89C51單片機(jī)為控制核心的八位LED花樣流水燈的控制電路。最終通過(guò)硬件電路的仿真,驗(yàn)證了電路設(shè)計(jì)的正確性,整個(gè)電路的設(shè)計(jì)過(guò)程,實(shí)現(xiàn)了將Proteus與Keil的完美結(jié)合,為單片機(jī)控制電路的設(shè)計(jì)提供了一種設(shè)計(jì)思想。
關(guān)鍵詞:Proteus和Keil 流水燈 控制電路
中圖分類(lèi)號(hào):TP369.2 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2017)07(b)-0055-02
1 Proteus與KeilμVision4簡(jiǎn)介
英國(guó)Labcenter Electronics公司研發(fā)的Proteus軟件,是一種模擬單片機(jī)外圍器件的工具,包含ARES、ISIS等軟件模塊,是一種電路設(shè)計(jì)與仿真軟件。ARES模塊的主要功能是進(jìn)行PCB電路的設(shè)計(jì),制作電路板,而ISIS模塊的主要功能是在系統(tǒng)中進(jìn)行電路原理圖的繪制與仿真。PROTEUS的軟件仿真基于VSM技術(shù),最大的優(yōu)勢(shì)是它能仿真大量的單片機(jī)芯片,如MCS-51、PIC系列等,以及單片機(jī)外圍電路,如鍵盤(pán)、LED等。
美國(guó)Keil Software公司出品的Keil C51,是一種兼容匯編和C語(yǔ)言的軟件開(kāi)發(fā)系統(tǒng),是基于Windows的開(kāi)發(fā)界面,界面友好,內(nèi)涵非常多的庫(kù)函數(shù)以及調(diào)試工具,功能強(qiáng)大,易學(xué)易用。Keil μVision4通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境將包括C/C++編譯器、宏匯編、連接/定位器和HEX文件生成器等一套完整的開(kāi)發(fā)設(shè)計(jì)方案組合在一起的應(yīng)用軟件。Keil軟件的運(yùn)行要求在WIN98、NT、WIN2000、WINXP、WIN7等操作系統(tǒng)的環(huán)境下。
2 系統(tǒng)設(shè)計(jì)
2.1 任務(wù)目標(biāo)
用AT89C51單片機(jī)的P1口控制8個(gè)LED燈,使其先從上到下D1到D8依次點(diǎn)亮,循環(huán)2次,然后從下到上D8到D1依次點(diǎn)亮,循環(huán)2次,接著8等全部點(diǎn)亮、全部熄滅,變化時(shí)間間隔為0.2 s,這樣完成一次完整的循環(huán),再重新第二次循環(huán),并用Proteus軟件和Keil軟件仿真,進(jìn)行聯(lián)機(jī)調(diào)試。
2.2 硬件電路設(shè)計(jì)
該文是利用Proteus與Keil軟件結(jié)合來(lái)實(shí)現(xiàn)電路設(shè)計(jì)與仿真的。Proteus主要負(fù)責(zé)電路硬件的設(shè)計(jì)與搭建,而Keil軟件主要是利用C語(yǔ)言對(duì)Proteus中的80C51單片機(jī)進(jìn)行編程,實(shí)現(xiàn)相關(guān)的指令控制。
該電路硬件結(jié)構(gòu)由一片AT89C51單片機(jī)、8個(gè)LED燈、8個(gè)電阻等組成,其中單片機(jī)的八位P1口連接八位LED燈,外圍電路包括輸入電源電路、電源濾波電路、復(fù)位電路和LED指示電路。該設(shè)計(jì)中LED信號(hào)燈電路采用發(fā)光二極管,陽(yáng)極通過(guò)限流電阻R與+5 V電源連接,陰極連接到單片機(jī)的P1口8個(gè)引腳,如圖1所示。要實(shí)現(xiàn)LED燈點(diǎn)亮,依據(jù)二極管的單向?qū)щ娦?,以及電路設(shè)計(jì)可以使P1口引腳輸出低電平(邏輯0)即可,要熄滅它,P1口引腳輸出高電平(邏輯1)即可。
2.3 程序設(shè)計(jì)分析
對(duì)單片機(jī)AT89C51寫(xiě)入對(duì)應(yīng)指令和相關(guān)數(shù)據(jù)后,來(lái)實(shí)現(xiàn)LED流水燈閃亮的任務(wù)目標(biāo)。整個(gè)過(guò)程是在Keil μVision4軟件編譯環(huán)境下,應(yīng)用C語(yǔ)言進(jìn)行程序設(shè)計(jì)的,8個(gè)LED燈從上到下依次點(diǎn)亮、循環(huán)等通過(guò)數(shù)組可以實(shí)現(xiàn)。任務(wù)中要求LED燈點(diǎn)亮0.2 s,熄滅0.2 s。MCS-51單片機(jī)晶振頻率為12 MHz,則一個(gè)機(jī)器周期是為1μs。由于單片機(jī)中多數(shù)指令都是單周期指令,因此執(zhí)行一條指令的時(shí)間為一個(gè)機(jī)器周期,任務(wù)要求時(shí)間間隔為0.2 s,程序編寫(xiě)中用循環(huán)語(yǔ)句來(lái)完成計(jì)數(shù)和時(shí)間延遲。延時(shí)程序如下:
void delay(void)
{
unsigned char m,n,s;
for(m=20;m>0;m--) //m每減去一次
for(n=20;n>0;n--) //n要執(zhí)行20次,n減到0為止
for(s=248;s>0;s--); //n每減去一次,執(zhí)行一次for(s=248;s>0;s--)}
m減到0退出循環(huán),單片機(jī)的時(shí)鐘頻率為12 MHz,在keil C中獲得最為準(zhǔn)確的延時(shí)函數(shù)將是void delay(unsigned char t),反匯編執(zhí)行DJNZ指令需要2個(gè)機(jī)器周期,具體延時(shí)時(shí)間為1×1+20×1+400×1+99200×2+400×2+20×2=199661個(gè)機(jī)器周期,199 661μs,約0.2s,滿(mǎn)足任務(wù)要求。
2.4 仿真
在Proteus7.8 軟件環(huán)境下將生成的.HEX十六進(jìn)制文件下載到AT89C51單片機(jī)中,將Keil所編譯的程序通過(guò)Proteus 軟件進(jìn)行仿真,驗(yàn)證是否滿(mǎn)足功能設(shè)計(jì)要求,通過(guò)應(yīng)用Proteus 軟件,最終驗(yàn)證了程序設(shè)計(jì)的正確性,整個(gè)仿真電路及單步執(zhí)行效果如圖2所示。
3 結(jié)語(yǔ)
該文以AT89C51單片機(jī)為控制核心,以八位LED燈為顯示載體,來(lái)設(shè)計(jì)花樣流水燈的硬件和軟件電路,并詳細(xì)分析了延時(shí)子程序。整個(gè)流水燈程序設(shè)計(jì)簡(jiǎn)單,功能可擴(kuò)展性強(qiáng),將Proteus和Keil仿真軟件聯(lián)調(diào)應(yīng)用到單片機(jī)程序開(kāi)發(fā)設(shè)計(jì)電路中,極大地縮減了單片機(jī)開(kāi)發(fā)設(shè)計(jì)流程,具有一定的理論與現(xiàn)實(shí)意義。
參考文獻(xiàn)
[1] 陳玉樓.單片機(jī)原理與應(yīng)用技術(shù)[M].北京:科學(xué)出版社,2015.
[2] 楊延寧,劉立軍,張志勇.基于Proteus的單片機(jī)漢字點(diǎn)陣顯示電路設(shè)計(jì)[J].液晶與顯示,2009,24(1):98-101.
[3] 吳曉蘇.單片機(jī)原理與接口技術(shù)[M].人民郵電出版社,2009.