張杰
(天津輕工職業技術學院,天津300000)
隨著電子技術的迅速發展,電子產品已深入地滲透到我們的生活中,單片機在其中得到了廣泛的應用,但單片機的內容比較抽象,相對于模擬電路、數字電路,單片機的開發和調試更為復雜,需要更多的調試設備,但這些設備價格不菲,英國的Labcenter公司推出了具有單片機系統仿真功能的Proteus軟件,Proteus是模擬電路、數字電路、模/數混合電路的設計與仿真平臺;更是單片機系統先進的設計與仿真平臺。它真正實現了在計算機上完成從原理圖與電路設計、電路分析與仿真、單片機代碼級調試與仿真、系統測試與功能驗證到形成PCB的完整的設計與仿真過程。
Proteus軟件主要由ISIS和ARES兩部分組成,ISIS的主要功能是原理圖設計及電路原理的交互仿真,ARES主要用于印制電路板的設計。其中Proteus ISIS可以仿真51系列、AVR,PIC,ARM等常用的MCU,并提供周邊設備的仿真,下面介紹一下ISIS的主要功能。
2.1 Proteus介紹
Proteus實現了單片機仿真和Spice電路仿真相結合。具有模擬電路仿真、數字電路仿真、單片機及其外圍電路組成的系統的仿真、RS 232動態仿真、I2C調試器、SPI調試器、鍵盤和LCD系統仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發生器等。支持主流單片機系統的仿真。目前支持的單片機類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。提供軟件調試功能。在硬件仿真系統中具有全速、單步、設置斷點等調試功能,同時可以觀察各個變量、寄存器等的當前狀態,因此在該軟件仿真系統中,也必須具有這些功能;同時支持第三方的軟件編譯和調試環境,如Keil C51μVision 2等軟件。
2.2 單片機數字時鐘系統硬件的搭建
單片機、按鍵、74LS254芯片、LED數碼管等是組合是單片機數字時鐘的最基本的元件。在開發實際的單片機數字時鐘系統時,"人機對話"部分主要靠這個系統來實現。在編寫這部分程序時要進行頻繁的測試從而更改一些參數使系統達到良好的工作狀態,常見的問題有:顯示界面的布局、菜單層次的設置、按鍵靈敏度和防抖的參數等。有了下面介紹的Proteus仿真,這些測試和一些經驗值的調整就可以不需要進行頻繁的硬件測試了,而只需要改動源程序中的一些函數調用。這個系統可以稍加改動輕松應用于其他各類系統的輸入和輸出部分,具有普遍意義。
數碼管介紹
在數字系統中,經常需要將測量、時鐘或數值運算結果等字符顯示出來,便于人們監視數字系統的工作情況。可見,數字顯示電路是數字設備中不可或缺的組成部分。
7段熒光數碼管屬于分段式半導體顯示器件。每個數碼管都由7個發光段組成(小數點不包括在內)。這7個發光段其實就是7個發光二極管,它的PN結是由一種特殊的半導體材料——磷砷化鎵做成。當外加正向電壓時,發光二極管可以將電能轉換為光能,從而能夠發出清瑩悅目的光線,數碼管的分類
共陰極數碼管
7段熒光數碼管有公共的地,即7個發光二極管的負極全部連接在了一起,只要給想點亮的二極管高電平就可以使其發光。這樣做的好處是可以免去布線、相互間的干擾等很多麻煩。這種連接方式的數碼管叫做共陰極數碼管。
共陽極數碼管
可以給出共同的正向電壓,然后通過控制負極的電壓來控制二極管的發光或者熄滅。要電器特性參數和芯片的驅動能力準許,完全可以通過控制負極的電壓來控制二極管的發光或者熄滅。這種連接方式的數碼管又叫做共陽極數碼管。
對應前面介紹的兩種數碼管可以采用灌電流和拉電流兩種連接方法,如果采用了灌電流連接,就要相對應地選擇共陽極數碼管;反之,如果采用了拉電流連接,就要相應選擇共陰極數碼管。實際使用中可以根據器件的特性參數做出合適的選擇。
下面通過單片機數字時鐘系統的開發來具體闡釋Proteus在單片機開發系統中的應用。
仿真電路。數碼管將從12-00-00開始顯示時間,小時按鍵和分鐘按鍵可用于調整小時與分鐘,在調整過程中,時鐘以新的時間為起點繼續顯示,數碼管采用動態掃描顯示的方式。
仿真程序
時分秒程序部分
void Increase_Hour()
{
if(++h>23)h=0;
DSY_BUFFER[0]=DIS_CODE[h/10];
DSY_BUFFER[1]=DIS_CODE[h%10];
}
void Increase_Minute()
{
if(++m>60)
{m=0;Increase_Hour();}
DSY_BUFFER[3]=DIS_CODE[m/10];
DSY_BUFFER[4]=DIS_CODE[m%10];
}
void Increase_Second()
{
if(++s>59)
{s=0;Increase_Minute();}
DSY_BUFFER[6]=DIS_CODE[s/10];
DSY_BUFFER[7]=DIS_CODE[s%10];
}
程序初始化部分
P0=P3=0xff;
TMOD=0X11;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
TH1=0xDC;
TL1=0;
TCON=0x01;
EA=1;ET0=1;
ET1=1;
仿真結果。仿真電路及仿真結果如圖1所示。

單片機技術是現代電子工業中不可缺少的一項技術,掌握單片機技術是產品開發的重要條件,Proteus在單片機應用產品研發中有著非常重要的作用。是產品研發的高效、經濟、可靠的單片機系統設計與仿真平臺。基于Proteus的單片機虛擬開發環境有利于提高產品的開發效率;利用仿真系統,不但可以節約開發時間和開發成本,而且還具有很大的靈活性和可擴展性,相信隨著越來越多的人對Proteus的了解和使用,它會對我們的學習、科研和工作帶來越來越多的幫助。
[1]彭偉.單片機C語言程序設計實訓100例:基于8051+Proteus仿真[J].電子工業出版社.
[2]張靖武,周靈彬.單片機系統的PROTEUS設計與仿真[J].電子工業.
[3]周潤景.基于PROTEUS的電路及單片機系統設計與仿真[J].北京航空航天大學出版社.
[4]張迎新.單片機初級教程:單片機基礎[J].北京航空航天大學出版社.
[5]單片機典型模塊設計實例導航(第2版)求是科技[J].人民郵電出版社.