宋昕一,萬宏飛
(上海理工大學(xué),上海,200093)
隨著社會(huì)的不斷進(jìn)步與發(fā)展,不同類型與性能的數(shù)碼管相繼發(fā)明出現(xiàn)。數(shù)碼管可以顯示數(shù)字與相應(yīng)信息,其亮度高、控制簡單、性能穩(wěn)定、呈現(xiàn)速度即時(shí)等諸多優(yōu)點(diǎn),使得數(shù)碼管在電子設(shè)計(jì)應(yīng)用中得到廣泛應(yīng)用。本文運(yùn)用Proteus仿真軟件,利用匯編語言進(jìn)行編碼,將程序?qū)懭氩⒕幾g仿真實(shí)現(xiàn)數(shù)碼管的動(dòng)態(tài)顯示與設(shè)計(jì)。
Proteus是一款高性能的EDA工具軟件,配置有完善的電子設(shè)計(jì)開發(fā)環(huán)境,器件庫齊全,功能形象??蛇M(jìn)行原理圖設(shè)計(jì)、搭建、仿真,PCB設(shè)計(jì)等多功能操作。支持C51、ARM、DSP諸多處理器。在軟件中進(jìn)行虛擬仿真,力求實(shí)證現(xiàn)實(shí);在Proteus軟件中可直接在原理圖搭建完成后,進(jìn)行編譯輸出得到結(jié)果,進(jìn)行實(shí)時(shí)電路分析與實(shí)物仿真。Proteus軟件大大縮短了設(shè)計(jì)時(shí)間,降低器件損耗的開發(fā)成本,途徑靈活,仿真結(jié)果準(zhǔn)確,在實(shí)際開發(fā)與教學(xué)中得到廣泛應(yīng)用。
定時(shí)器T0/T1的結(jié)構(gòu)如圖1所示,其中振蕩器經(jīng)12分頻后作為定時(shí)器的時(shí)鐘脈沖,T1引腳為外部計(jì)數(shù)脈沖輸入端,通過開關(guān)進(jìn)行選擇。反相器,或門,與門共同構(gòu)成啟/??刂菩盘?hào)。TH和TL為加1計(jì)數(shù)器,TF為中斷標(biāo)志。每接收到一個(gè)脈沖,加1計(jì)數(shù)器自動(dòng)加1,當(dāng)計(jì)數(shù)器中的數(shù)被加為0時(shí)產(chǎn)生溢出標(biāo)志,TF將被置1。計(jì)數(shù)器工作方式的選擇和功能的實(shí)現(xiàn)需要配置相應(yīng)的寄存器TMOD和TCON。
圖1 定時(shí)器T0(T1)結(jié)構(gòu)圖
利用單片機(jī)U1 P3.0口進(jìn)行脈沖的輸出,通過定時(shí)器模式選擇與初值的設(shè)定,完成定時(shí)器定時(shí)功能的實(shí)現(xiàn)。運(yùn)用定時(shí)器進(jìn)行端口定時(shí)控制,實(shí)現(xiàn)每1ms高低電平變換。就可以實(shí)現(xiàn)一個(gè)占空比為50%的矩形脈沖輸出。
利用單片機(jī)U1 P3.0口輸出的脈沖連接到單片機(jī)U2的中斷INT0口P3.2,通過脈沖的高低電平變換觸發(fā)中斷0,進(jìn)行脈沖個(gè)數(shù)的計(jì)數(shù),再通過數(shù)碼管顯示出數(shù)字信息。中斷INT0口P3.2連接有示波器可觀察脈沖波形的高低變化。
此設(shè)計(jì)中主要使用兩片AT89C51單片機(jī),利用中斷實(shí)現(xiàn)對(duì)8個(gè)集成共陽級(jí)LED燈數(shù)碼管的動(dòng)態(tài)顯示與計(jì)數(shù)。
如圖2所示,通過按下U1機(jī)的中斷INT0口P3.2連接的按鍵開始進(jìn)行脈沖的產(chǎn)生與計(jì)數(shù),單片機(jī)U1產(chǎn)生脈沖并通過數(shù)碼管顯示脈沖產(chǎn)生數(shù);單片機(jī)U2接收脈沖同時(shí)也通過數(shù)碼管顯示脈沖接收數(shù)字。當(dāng)按下按鍵時(shí)開始產(chǎn)生并傳送脈沖,通過一個(gè)VSM counter timer進(jìn)行計(jì)數(shù)驗(yàn)證的準(zhǔn)確與否。按下按鍵后發(fā)現(xiàn)兩個(gè)多位數(shù)碼管同時(shí)顯示并跳轉(zhuǎn)同樣的數(shù)字,并且計(jì)數(shù)器也顯示。
圖2 電路設(shè)計(jì)圖
如圖3所示,還可修改電路設(shè)計(jì),使單片機(jī)U1顯示所有高低脈沖產(chǎn)生數(shù),調(diào)整單片機(jī)U2功能,使其顯示高脈沖的產(chǎn)生數(shù),即單片機(jī)U1對(duì)應(yīng)數(shù)碼管的計(jì)數(shù)值為U2的2倍。
圖3 修改后計(jì)數(shù)效果
通過調(diào)整定時(shí)器的模式與初值設(shè)定,改變定時(shí)器定時(shí)功能,進(jìn)行端口定時(shí)控制,即可修改脈沖高低電平變換的時(shí)間,從而能夠根據(jù)實(shí)際需求進(jìn)行不同時(shí)間模式的計(jì)數(shù)。
最后通過示波器驗(yàn)證觀察所產(chǎn)生的脈沖是否正確,通過調(diào)節(jié)示波器上的時(shí)間和幅度旋鈕可以觀察到矩形方波的產(chǎn)生。如圖4所示。
圖4 示波器脈沖波形
本文所設(shè)計(jì)的數(shù)碼管動(dòng)態(tài)顯示及計(jì)數(shù)的流程圖如圖5、如圖6所示。
圖5 主程序流程圖
圖6 計(jì)數(shù)顯示流程圖
本文利用Proteus軟件設(shè)計(jì)并仿真了數(shù)碼管的動(dòng)態(tài)顯示與計(jì)數(shù)。仿真表明,該設(shè)計(jì)可通過調(diào)節(jié)脈沖時(shí)間實(shí)現(xiàn)不同模式的時(shí)間計(jì)數(shù)顯示,且電路設(shè)計(jì)簡單,控制穩(wěn)定,可廣泛應(yīng)用于電子設(shè)計(jì)的顯示電路中。