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