基于Proteus軟件的單片機(jī)仿真與PCB設(shè)計(jì)
隨著科學(xué)技術(shù)的發(fā)展,單片機(jī)技術(shù)在產(chǎn)品的人機(jī)交互設(shè)計(jì)中扮演著越來越重要的角色,而單片機(jī)仿真和PCB設(shè)計(jì)成為其重要分支。Proteus軟件在單片機(jī)和外圍器件方面卓越的仿真能力使其成為目前最好的仿真工具之一,而該軟件還可在仿真原理圖的基礎(chǔ)上設(shè)計(jì)PCB。此論文以AT80C51為芯片的流水燈為實(shí)例,基于Proteus軟件和Keil uVision2軟件論述了整個(gè)電路原理圖的繪制與仿真和PCB設(shè)計(jì)流程,旨在為單片機(jī)初學(xué)者提供一種有效地學(xué)習(xí)方法。
1.引言
單片機(jī)是將CPU芯片,存儲(chǔ)器芯片,I/O接口芯片和簡單的I/O設(shè)備裝配在一塊印刷電路板上,再配上存儲(chǔ)在ROM中的監(jiān)控程序,這便構(gòu)成了一臺(tái)單板微型計(jì)算機(jī)。傳統(tǒng)的單片機(jī)開發(fā)都是采用硬件實(shí)驗(yàn)箱或?qū)嶒?yàn)板方式,硬件投資成本相對(duì)較高;這種定式的環(huán)境很容易將開發(fā)者的思維禁錮在小小的實(shí)驗(yàn)箱里,不利于創(chuàng)新思維實(shí)現(xiàn),對(duì)于初學(xué)者還會(huì)造成認(rèn)知上的誤區(qū),即所謂的單片機(jī)就是在一個(gè)箱子里穿針引線,這極不利于后續(xù)的開發(fā)。
目前,具有電路仿真功能的軟件比較多,性能比較好的有Multisim、Protel、O r C A D等,但這些對(duì)單片機(jī)的仿真無能為力。到目前為止,只有Proteus軟件能夠提供完善的單片機(jī)芯片及嵌入式系統(tǒng)的仿真。
2.單片機(jī)仿真所需實(shí)驗(yàn)配置
2.1選用Proteus軟件作為單片機(jī)仿真軟件
Proteus軟件是英國Lab Center Electronics公司開發(fā)的EDA工具軟件。它不僅是模擬電路、數(shù)字電路、模/數(shù)混合電路的設(shè)計(jì)平臺(tái),更是目前世界上最先進(jìn),最完整的多種型號(hào)微處理器系統(tǒng)的設(shè)計(jì)與仿真平臺(tái),真正實(shí)現(xiàn)了在計(jì)算機(jī)上完成原理圖設(shè)計(jì),電路分析與仿真,微處理器程序設(shè)計(jì)與仿真,系統(tǒng)測(cè)試與功能驗(yàn)證,到形成PCB的完整電子設(shè)計(jì)、研發(fā)過程。
Proteus軟件由ISIS和ARES兩個(gè)軟件構(gòu)成,其中ISIS是一款智能原理圖輸入系統(tǒng)軟件,可作為電子系統(tǒng)仿真平臺(tái),ARES是一款高級(jí)布線編輯軟件,用于設(shè)計(jì)PCB.
2.2選用Keil uVision2軟件對(duì)程序進(jìn)行編譯和調(diào)試
Proteus仿真中的單片機(jī)芯片,與單片機(jī)硬件的試驗(yàn)臺(tái)中單片機(jī)芯片一樣,需要下載編譯好的機(jī)器語言文件,這樣就需要匯編語言和C語言的編譯器。KeiluVision2是51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),使用接近于傳統(tǒng)C語言的語法來開發(fā),它還能嵌入?yún)R編,您可以在關(guān)鍵的位置嵌入,同時(shí)可移植性強(qiáng),使程序達(dá)到接近于匯編的工作效率。此外,Keil uVision2軟件還支持眾多不同公司的單片機(jī)芯片,集編輯、編譯和程序調(diào)試于一體,之后將生成的。HEX文件,下載到單片機(jī)芯片里,這就完成了程序的固化。
3.基于Proteus軟件含有AT80C51芯片的流水燈仿真與PCB制作
3.1 Proteus單片機(jī)仿與PCB制作的實(shí)驗(yàn)流程(如圖1所示)
3.2用ISIS軟件繪制含有AT80C51單片機(jī)芯片的原理圖
1)打開ISIS Professional軟件,執(zhí)行“File”→“New Design”,在彈出窗口中選擇默認(rèn)模板“DEFAULT”,點(diǎn)擊“OK”,然后保存,命名為“liushuideng.DSN”。
2)“System”→“Set Sheet Sizes…”,彈出“Sheet Size Configuration”對(duì)話框,設(shè)定圖紙為A4,單擊“OK”。
3)添加元器件。
具體數(shù)值見圖3.在工具欄中執(zhí)行菜單命令“Library”→“Pick Device/Symbol…”,彈出對(duì)話框在“Keywords”欄里輸入所需元器件,右側(cè)欄將顯示,此時(shí)只需選擇自己需要的元器件,點(diǎn)擊“OK”,然后在列表中選中元器件(所用元件如下表1所示),在原理圖編輯窗口合適位置單擊鼠標(biāo)完成放置,按此方法將列表中的所有元器件添加進(jìn)去。
4)放置電源和地:單擊左側(cè)工具箱中圖標(biāo),在對(duì)象選擇器中單擊“POWER”,使其出現(xiàn)藍(lán)色條,再在原理圖編輯窗口合適位置單擊鼠標(biāo),就將“電源”放置在原理圖中;單擊“GROUND”,用同樣方法,將“地”放置在原理圖中。
5)布線:在ISIS原理圖編輯窗口中沒有專門的布線按鈕,但系統(tǒng)默認(rèn)自動(dòng)布線有效,因此,可直接畫線,布線如圖2所示。
4.C語言編程
4.1建立工程文件
1)打開K e i l u V i s i o n 2軟件,點(diǎn)擊“Project”→“New Project”,命名為“liushuideng”,然后保存,在彈出的對(duì)話框“Data base”欄中選擇“Atmel”→“89C51”→“確定”;然后點(diǎn)擊“File”
→“New File”。
2)點(diǎn)擊“Save”→文件命名為“liushuideng.
c“→”保存“,本程序利用C語言編程后綴必須是”。c“。
3)點(diǎn)擊“Target 1”→“Sour Group1”
→“Add Files to Group”Sour Group 1“”,在彈出的對(duì)話框中選擇剛建的文件,然后點(diǎn)擊“Add”,添加完成后點(diǎn)擊“Close”;到此工程建立完畢。
4.2利用C語言編寫流水燈的程序源代碼
#include #include
#define uint unsigned int
#define uchar unsigned char
uchar temp;void delay(uint);
void main()
{temp=0xfe;P0=temp;while(1)
{temp=_crol_(temp,1);delay(600);
P0=temp;} }
void delay(uint z)
{ u i n t x , y ; f o r(x = 1 0 0 ; x > 0 ; x - -)
for(y=z;y>0;y-);}
4.3調(diào)試程序
經(jīng)調(diào)試本程序,下邊狀態(tài)欄顯示“0Errors,0 Warning”,表示“0”錯(cuò)誤,“0”警告。
4.4生成。HEX目標(biāo)文件
選中“Target 1”單擊右鍵→“Optionfor Target Target 1‘”,在彈出的對(duì)話框中,單擊“Output”→“Create HEX File”打鉤,再次運(yùn)行程序即可生成。HEX目標(biāo)文件。
5.原理圖仿真
(1)在Proteus ISIS中,雙擊AT89C51單片機(jī)芯片,在彈出的“Edit Component”
對(duì)話框的“P r o g r a m F i l e”欄中選擇“liushuideng.hex”,然后點(diǎn)擊“OK”。
(2)在Proteus ISIS編輯窗口左下方點(diǎn)擊播放按鈕,或者在“Debug”菜單下選擇“Execute”,可以看到,首先P0.0點(diǎn)亮LED燈,等待一秒后熄滅,同時(shí)P0.1點(diǎn)亮另一只LED燈,同樣等待一秒后熄滅,P0.2點(diǎn)亮LED燈┄┄當(dāng)P0.7點(diǎn)亮LED燈等待一秒后熄滅后,P0.0點(diǎn)亮LED燈┄┄如此循環(huán),間隔時(shí)間可在delay函數(shù)中自行設(shè)定,在運(yùn)行結(jié)果如圖2所示。
LED燈左側(cè)的點(diǎn)呈現(xiàn)藍(lán)色時(shí),表示點(diǎn)亮狀態(tài),紅色時(shí),表示熄滅狀態(tài)。
6.PCB的制作
6.1統(tǒng)計(jì)電路原理圖中使用的元器件
在ISIS中執(zhí)行菜單命令“Tools”→“Billof Materials”→“2 ASCII Output”,生成元器件清單,如圖3所示:
6.2導(dǎo)入網(wǎng)絡(luò)表
在I S I S中,雙擊開關(guān)“K”,會(huì)彈出“Edit Component”對(duì)話框,將“Excludefrom PCB Layout”前的“√”去掉,點(diǎn)擊“OK”;執(zhí)行菜單命令“Tools”→“Netlistto ARES”,系統(tǒng)自動(dòng)打開ARES軟件。在ISIS中有些元器件沒有指定封裝形式,因此系統(tǒng)會(huì)自動(dòng)彈出“Package Selector”對(duì)話框,在“Package”欄中輸入相應(yīng)的封裝形式,對(duì)于發(fā)光二極管的封裝形式為“LED”,按鈕“K”的封裝形式為“SW-PUSH1”。
6.3放置元器件
完成元器件封裝后,進(jìn)入A R E S操作界面,先要點(diǎn)擊主工具箱中圖標(biāo),此為2DGroaphics框體模式,在左下角下拉框中選擇當(dāng)前板層為“Board Edge”(黃色),在工作區(qū)內(nèi)單擊不放,拉出來個(gè)黃框,按需要設(shè)定大小,那就是PCB編輯板層。在元器件不多的情況下,為了達(dá)到自己想要的設(shè)計(jì)效果,采用手動(dòng)布置元器件的方法,在主工具箱中單擊元件模式圖標(biāo),在元器件列表中選擇某個(gè)元器件,然后在編輯區(qū)中合適位置單擊鼠標(biāo)左鍵,即可放置好該元器件;如果元器件比較多,采用自動(dòng)布置元器件和手動(dòng)布置元器件相結(jié)合的方法,可以大大提高制板效率。元器件放置完畢后,且右下角顯示“No DRC errors”,無設(shè)計(jì)規(guī)則錯(cuò)誤。
6.4布線
ARES提供了交互手工布線和自動(dòng)布線兩種方式,通常結(jié)合使用以提高效率,并使PCB具有更好的電氣特性,也更加美觀。執(zhí)行菜單命令“Tools”→“Auto Router”,彈出“Shape Based Auto Router”對(duì)話框,按需要自行設(shè)定各參數(shù),然后點(diǎn)擊“OK”,開始自動(dòng)布線,然后進(jìn)行手工調(diào)整,結(jié)果如圖4所示:
6.5規(guī)則檢查
CRC檢查:點(diǎn)擊“Tools”→“ConnectivityChecker”,系統(tǒng)進(jìn)行連接性檢查,下邊狀態(tài)框提示“0 CRC violationsfound”,表示無CRC錯(cuò)誤且無DRC錯(cuò)誤。
6.6敷銅
1)頂層敷銅:點(diǎn)擊“Tools”→“PowerPlane Generator”,彈出“Power PlaneG e n e r a t o r”對(duì)話框,在此對(duì)話框中的“Net”欄中選擇“GND=POWRE”,“Layer”
欄中選擇“Top Copper”,“Boundary”欄中選擇“T10”,設(shè)置好后,點(diǎn)擊“OK”,進(jìn)行頂層敷銅。
2)底層敷銅:只需在“Layer”欄中選擇“Bottom Copper”,其它操作同頂層敷銅。
6.7 3D效果顯示
點(diǎn)擊“Output”→“3D Visualizati o n”,顯示3 D效果如圖5所示,通過“View”的下拉菜單可以顯示不同的3D效果。
6.8輸出光繪文件
點(diǎn)擊“Output”→“IDF ManufacturingOutput”,按PCB生產(chǎn)要求設(shè)置參數(shù),點(diǎn)擊“Generate”,生成相應(yīng)的光繪文件。將導(dǎo)出的光繪文件和相應(yīng)鉆孔文件,發(fā)送到PCB廠家就可以進(jìn)行制板了。也可以自己購買原材料,動(dòng)手制作一塊流水燈的PCB板,這樣更能加深對(duì)單片機(jī)開發(fā)過程和工作原理的理解。
7.結(jié)束語
本論文以Proteus軟件為仿真工具,Keil uVision2軟件為程序編輯器,相對(duì)完整的論述了單片機(jī)的仿真和制作PCB的流程,同時(shí)流水燈的制作也是單片機(jī)入門典型實(shí)例;這將讓廣大單片機(jī)初學(xué)者對(duì)其開發(fā)流程有大致了解。利用Proteus軟件進(jìn)行單片機(jī)仿真實(shí)驗(yàn),不僅減少了原材料的損耗,還彌補(bǔ)了實(shí)驗(yàn)儀器和元器件缺乏帶來的不足。初學(xué)者通過仿真實(shí)驗(yàn),可以了解單片機(jī)系統(tǒng)的開發(fā)方法,這非常有助于培養(yǎng)其綜合分析能力、排除故障能力和開發(fā)、創(chuàng)新能力。