版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目五模/數(shù)轉(zhuǎn)換接口及應(yīng)用
任務(wù)1數(shù)字電壓表的設(shè)計(jì)
任務(wù)2簡(jiǎn)易數(shù)控電源任務(wù)1數(shù)字電壓表的設(shè)計(jì)
知識(shí)目標(biāo):了解和掌握單片機(jī)的外圍基本芯片的搭接,掌握轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊及顯示模塊。
能力目標(biāo):A/D轉(zhuǎn)換采用ADC0808對(duì)輸入的模擬信號(hào)進(jìn)行轉(zhuǎn)換,控制核心AT89C51再對(duì)轉(zhuǎn)換的結(jié)果進(jìn)行運(yùn)算處理,最后驅(qū)動(dòng)輸出裝置LED顯示數(shù)字電壓信號(hào)。
1.任務(wù)要求
(1)以MCS-51系列單片機(jī)為核心器件,組成一個(gè)簡(jiǎn)單的直流數(shù)字電壓表。
(2)采用一路模擬量輸入,能夠測(cè)量0~5V之間的直流電壓值。
(3)電壓顯示用4位一體的LED數(shù)碼管顯示,至少能夠顯示兩位小數(shù)。
(4)盡量使用較少的元器件。
2.硬件電路的設(shè)計(jì)與制作
1)設(shè)計(jì)方案
硬件電路設(shè)計(jì)由6個(gè)部分組成:A/D轉(zhuǎn)換電路、AT89C51單片機(jī)、LED顯示系統(tǒng)、時(shí)鐘電路、復(fù)位電路以及測(cè)量電壓輸入電路。硬件電路設(shè)計(jì)框圖如圖5-1所示。圖5-1數(shù)字電壓表系統(tǒng)硬件設(shè)計(jì)框圖復(fù)位電路設(shè)計(jì):?jiǎn)纹瑱C(jī)在啟動(dòng)運(yùn)行時(shí)都需要復(fù)位,使CPU和系統(tǒng)中的其他部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。MCS-51單片機(jī)有一個(gè)復(fù)位引腳RST,采用施密特觸發(fā)輸入。當(dāng)振蕩器起振后,只要該引腳上出現(xiàn)2個(gè)機(jī)器周期以上的高電平即可確保使器件復(fù)位。復(fù)位完成后,如果RST端繼續(xù)保持高電平,MCS-51就一直處于復(fù)位狀態(tài),只有RST恢復(fù)低電平后,單片機(jī)才能進(jìn)入其他工作狀態(tài)。單片機(jī)的復(fù)位方式有上電自動(dòng)復(fù)位和手動(dòng)復(fù)位兩種,圖5-2是51系列單片機(jī)系統(tǒng)常用的上電復(fù)位和手動(dòng)復(fù)位組合電路,只要Vcc上升時(shí)間不超過(guò)1ms,它們都能很好的工作。時(shí)鐘電路設(shè)計(jì):電路中的器件選擇可以通過(guò)計(jì)算和實(shí)驗(yàn)確定,也可以參考一些典型電路的參數(shù)。如圖5-3所示時(shí)鐘電路中,電容器C1和C2對(duì)振蕩頻率有微調(diào)作用,通常的取值范圍是30pF?±?10pF,在這個(gè)系統(tǒng)中選擇了33pF;石英晶振選擇范圍最高可選24MHz,它決定了單片機(jī)電路產(chǎn)生的時(shí)鐘信號(hào)振蕩頻率,在本系統(tǒng)中選擇的是12MHz,因而時(shí)鐘信號(hào)的振蕩頻率為12MHz。圖5-2復(fù)位電路圖5-3時(shí)鐘電路
2)硬件電路的總體設(shè)計(jì)
數(shù)字電壓表硬件電路總體設(shè)計(jì)如圖5-4所示。此電路的工作原理是:+5V模擬電壓信號(hào)通過(guò)變阻器VR1分壓后,由ADC0808的IN0通道進(jìn)入(由于使用的IN0通道,所以ADDA、ADDB、ADDC均接低電平);經(jīng)過(guò)模/數(shù)轉(zhuǎn)換后,產(chǎn)生相應(yīng)的數(shù)字量經(jīng)過(guò)其輸出通道D0~D7傳送給AT89C51芯片的P1口,AT89C51負(fù)責(zé)把接收到的數(shù)字量經(jīng)過(guò)數(shù)據(jù)處理,產(chǎn)生正確的7段數(shù)碼管的顯示段碼傳送給四位LED,同時(shí)它還通過(guò)其四位I/O口P2.0、P2.1、P2.2、P2.3產(chǎn)生位選信號(hào)控制數(shù)碼管的亮滅。此外,AT89C51還控制ADC0808的工作。其中,單片機(jī)AT89C51通過(guò)定時(shí)器中斷從P2.4輸出方波接到ADC0808的CLOCK,P2.6發(fā)正脈沖啟動(dòng)A/D轉(zhuǎn)換,P2.5檢測(cè)A/D轉(zhuǎn)換是否完成,轉(zhuǎn)換完成后,P2.7置高,從P1口讀取轉(zhuǎn)換結(jié)果送給LED顯示出來(lái)。圖5-4硬件電路總體設(shè)計(jì)簡(jiǎn)易數(shù)字直流電壓表的硬件電路已經(jīng)設(shè)計(jì)完成,就可以選取相應(yīng)的芯片和元器件,利用Proteus軟件繪制出硬件的原理,并仔細(xì)地檢查修改,直至形成完善的硬件原理圖。但要真正實(shí)現(xiàn)電路對(duì)電壓的測(cè)量和顯示的功能,還需要有相應(yīng)的軟件配合,才能達(dá)到設(shè)計(jì)要求。
3.應(yīng)用程序設(shè)計(jì)
根據(jù)模塊的劃分原則,將該程序劃分為初始化模塊、A/D轉(zhuǎn)換子程序和顯示子程序,這三個(gè)程序模塊構(gòu)成了整個(gè)系統(tǒng)軟件的主程序,如圖5-5所示。圖5-5數(shù)字式直流電壓表主程序框圖
1)初始化程序
所謂初始化,是對(duì)將要用到的MCS-51系列單片機(jī)內(nèi)部部件或擴(kuò)展芯片進(jìn)行初始工作狀態(tài)設(shè)定,初始化子程序的主要工作是設(shè)置定時(shí)器的工作模式、初值預(yù)置、開中斷和打開定時(shí)器等。
2)?A/D轉(zhuǎn)換子程序
A/D轉(zhuǎn)換子程序用來(lái)控制對(duì)輸入的模塊電壓信號(hào)的采集測(cè)量,并將對(duì)應(yīng)的數(shù)值存入相應(yīng)的內(nèi)存單元,其轉(zhuǎn)換流程圖如圖5-6所示。圖5-6A/D轉(zhuǎn)換流程圖
3)顯示子程序
顯示子程序采用動(dòng)態(tài)掃描實(shí)現(xiàn)四位數(shù)碼管的數(shù)值顯示,在采用動(dòng)態(tài)掃描顯示方式時(shí),要使得LED顯示的比較均勻,又有足夠的亮度,需要設(shè)置適當(dāng)?shù)膾呙桀l率,當(dāng)掃描頻率在70Hz左右時(shí),能夠產(chǎn)生比較好的顯示效果,一般可以采用間隔10ms對(duì)LED進(jìn)行動(dòng)態(tài)掃描一次,每一位LED的顯示時(shí)間為1ms。
在本設(shè)計(jì)中,為了簡(jiǎn)化硬件設(shè)計(jì),主要采用軟件定時(shí)的方式,即用定時(shí)器0溢出中斷功能實(shí)現(xiàn)11μs定時(shí),通過(guò)軟件延時(shí)程序來(lái)實(shí)現(xiàn)5ms的延時(shí)。
4.系統(tǒng)調(diào)試
軟件調(diào)試的主要任務(wù)是排查錯(cuò)誤,錯(cuò)誤主要包括邏輯和功能錯(cuò)誤,這些錯(cuò)誤有些是顯性的,而有些是隱性的,可以通過(guò)仿真開發(fā)系統(tǒng)發(fā)現(xiàn)并逐步改正。Proteus軟件可以對(duì)基于微控制器的設(shè)計(jì)連同所有的周圍電子器件一起仿真,用戶甚至可以實(shí)時(shí)采用諸如LED/LCD、鍵盤、RS232終端等動(dòng)態(tài)外設(shè)模型來(lái)對(duì)設(shè)計(jì)進(jìn)行交互仿真。Proteus支持的微處理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80系列等。Proteus可以完成單片機(jī)系統(tǒng)原理圖電路繪制、PCB設(shè)計(jì),更為顯著的特點(diǎn)是可以與μVisions3IDE工具軟件結(jié)合進(jìn)行編程仿真調(diào)試[8]。本系統(tǒng)的調(diào)試主要以軟件為主,其中,系統(tǒng)電路圖的繪制和仿真采用的是Proteus軟件,而程序方面,采用的是匯編語(yǔ)言,用Keil軟件產(chǎn)生、Hex文件并通過(guò)燒錄軟件將程序?qū)懭雴纹瑱C(jī)。
1)顯示結(jié)果分析
(1)當(dāng)IN0口輸入電壓值為0V時(shí),顯示結(jié)果如圖5-7所示,測(cè)量誤差為0V。
(2)當(dāng)IN0輸入電壓值為1.50V時(shí),顯示結(jié)果如圖5-8所示,測(cè)量誤差為0.01V。
(3)當(dāng)IN0口輸入電壓值為3.50V時(shí),顯示結(jié)果如圖5-9所示,測(cè)量誤差為0V。圖5-7輸入電壓為0V時(shí)LED的顯示結(jié)果圖5-8輸入電壓為1.50V時(shí)LED的顯示結(jié)果圖5-9輸入電壓為3.50V時(shí)LED的顯示結(jié)果
2)誤差分析
通過(guò)以上仿真測(cè)量結(jié)果可得到簡(jiǎn)易數(shù)字電壓表與“標(biāo)準(zhǔn)”數(shù)字電壓表對(duì)比測(cè)試表,如表5-1所示。
由于單片機(jī)AT89C51為8位處理器,當(dāng)輸入電壓為5.00V時(shí),ADC0808輸出數(shù)據(jù)值為255(FFH),因此單片機(jī)最高的數(shù)值分辨率為0.0196V(5/255)。這就決定了電壓表的最高分辨率只能到0.0196V,從上表可看出,測(cè)試電壓一般以0.01V的幅度變化。表5-1簡(jiǎn)易數(shù)字電壓表與“標(biāo)準(zhǔn)”數(shù)字電壓表對(duì)比測(cè)試表
從表5-1可以看出,簡(jiǎn)易數(shù)字電壓表測(cè)得的值基本上比標(biāo)準(zhǔn)電壓值偏大0~0.01V,這可以通過(guò)校正ADC0808的基準(zhǔn)電壓來(lái)解決。因?yàn)樵撾妷罕碓O(shè)計(jì)時(shí)直接用5V的供電電源作為電壓,所以電壓可能有偏差。當(dāng)要測(cè)量大于5V的電壓時(shí),可在輸入口使用分壓電阻,而程序中只要將計(jì)算程序的除數(shù)進(jìn)行調(diào)整就可以了。
程序清單:
ORG 0000H
SJMP MAIN
ORG 0003H
LJMP PINT0
MAIN: MOV 50H,#19H
MOV 54H,#78H
MOV DPTR,#7FF8H
MOV 51H,DPH
MOV 52H,DPL
MOV R0,#04H
MOV 53H,#00H
MOV R7,#00H
SETB EA
SETB IT0
SETB EX0
L4: MOV R1,#00H;R1存放十六進(jìn)制轉(zhuǎn)換成十進(jìn)制后的低兩位
MOV R2,#00H;R2存放十六進(jìn)制轉(zhuǎn)換成十進(jìn)制后的高兩位
MOV R3,#0FFH ;循環(huán)顯示十進(jìn)制數(shù)
MOV R4,#00H ;存放A/D轉(zhuǎn)換后的十六進(jìn)制數(shù)
MOV R5,#00H ;存放0.5相加后的數(shù)
MOVX @DPTR,A ;開始A/D轉(zhuǎn)換
LCALL DELAY ;調(diào)用延時(shí)大于A/D轉(zhuǎn)換的時(shí)間
MOVX A,@DPTR ;取A/D轉(zhuǎn)換后的十六進(jìn)制數(shù)
INC DPTR ;A/D轉(zhuǎn)換芯片的地址加一
PUSH DPL ;壓入堆棧
PUSH DPH
DEC R0 ;4路轉(zhuǎn)換的次數(shù)減一
JZ SB2 ;判斷是否是0V
MOV R4,A
L1: MOV A,R1;進(jìn)行十六進(jìn)制到十進(jìn)制的調(diào)整
ADD A,50H ;每次加19
DA A
MOV R1,A
JC L2 ;如果溢出則跳轉(zhuǎn)到L2
MOV A,R5 ;進(jìn)行0.5V相加
ADD A,54H
DAA
MOV R5,A
JC L3;如果溢出則跳轉(zhuǎn)到L3
SB1: DJNZ R4,L1;判斷十六進(jìn)制數(shù)是否轉(zhuǎn)換完成,如果沒(méi)有則循環(huán)
MOV A,R5
SWAP A
ANL A,#0FH
MOV B,R1
ADD A,B
DA A
MOV R1,A
SB2: LCALL DISP
LCALL DJW
DJNZ R3,SB2
POP DPH
POP DPL
MOV A,53H
INC A
MOV 53H,A
CJNE R0,#00H,L4
LJMP MAIN
L2:CLR C
MOV A,R2
ADD A,#01H
DAA
MOV R2,A
LJMP SB1
L3:CLR C ;0.5V相加溢出后進(jìn)位
MOV A,R1
ADD A,#01H
DA A
MOV R1,A
LJMP SB1
DISP: MOV A,R1 ;顯示電壓子程序
SWAP A
ANL A,#0FH
MOV DPTR,#TAB1
MOVC A,@A+DPTR
CLR P3.0
MOV P1,A
LCALL DELAY
SETB P3.0
MOV A,R2
ANL A,#0FH
MOV DPTR,#TAB1
MOVC A,@A+DPTR
CLR P3.1
MOV P1,A
LCALL DELAY
SETB P3.1
MOV A,R2
SWAP A
ANL A,#0FH
MOV DPTR,#TAB2
MOVC A,@A+DPTR
CLR P3.4
MOV P1,A
LCALL DELAY
SETB P3.4
RET
DJW: MOV A,53H ;顯示第幾路轉(zhuǎn)換電壓子程序
MOV DPTR,#TAB1
MOVC A,@A+DPTR
CLR P3.5
MOV P1,A
LCALL DELAY
SETB P3.5
RET
INTV: PUSH ACC ;只顯示其中一路中斷
PUSH 53H
MOV 53H,#00H
CX2: MOV R1,#00H
MOV R2,#00H
MOV R3,#0FFH
MOV R4,#00H
MOV DPH,51H
MOV DPL,52H
MOVX @DPTR,A
LCALL DELAY
MOVX A,@DPTR
MOV R4,A
JZ SB22
L11: MOV A,R1
ADD A,50H
DA A
MOV R1,A
JC L22
MOV A,R5;進(jìn)行0.5V相加
ADD A,54H
DA A
MOV R5,A
JC L33
SB11: DJNZ R4,L11
MOV A,R5
SWAP A
ANL A,#0FH
MOV B,R1
ADD A,B
DA A
MOV R1,A
SB22: LCALL DISP
LCALL DJW
JNB P3.3,EXIT
DJNZ R3,SB22
JNB P3.2,CX1
LJMP CX2
L22: CLR C
MOV A,R2
ADD A,#01H
DA A
MOV R2,A
LJMP SB11
L33: CLR C
MOV A,R1
ADD A,#01H
DA A
MOV R1,A
LJMP SB11
CX1: INC R7
MOV A,53H
INC A
MOV 53H,A
MOV DPH,51H
MOV DPL,52H
INC DPTR
MOV 51H,DPH
MOV 52H,DPL
CJNE R7,#04H,CX2
MOV R7,#00H
MOV 53H,#01H
MOV DPTR,#7FF8H
MOV 51H,DPH
MOV 52H,DPL
LJMP CX2
EXIT: POP 53H
POP ACC
RETI
DELAY: MOV R6,#1H ;延時(shí)子程序
D1: MOV R5,#50H
D2: NOP
NOP
DJNZ R5,D2
DJNZ R6,D1
RET
TAB1: DB3FH,06H,5BH,4FH,66H ;碼表
DB6DH,7DH,07H,7FH,6FH
TAB2: DB0BFH,86H,0DBH,0CFH,0E6H;小數(shù)點(diǎn)的段碼表
DB0EDH,0FDH,87H,0FFH,0EFH
END
5.知識(shí)鏈接(本任務(wù)涉及到的新知識(shí)介紹)
1)
ADC0808的引腳及功能介紹
(1)芯片概述:ADC0808是一種典型的A/D轉(zhuǎn)換器。它是由8位A/D轉(zhuǎn)換器、一個(gè)8路模擬量開關(guān)、8位模擬量地址鎖存譯碼器和一個(gè)三態(tài)數(shù)據(jù)輸出鎖存器組成;+5?V單電源供電,轉(zhuǎn)化時(shí)間在100?μs左右;內(nèi)部沒(méi)有時(shí)鐘電路,故需外部提供時(shí)鐘信號(hào)。芯片模型如圖5-10所示。
(2)引腳簡(jiǎn)介:
①IN0~I(xiàn)N7——8路模擬量輸入端。
②D0~D7——8位數(shù)字量輸出端口。圖5-10ADC0808芯片模型③START——A/D轉(zhuǎn)換啟動(dòng)信號(hào)輸入端。
④ALE——地址鎖存允許信號(hào),高電平有效。
⑤EOC——輸出允許控制信號(hào),高電平有效。
⑥OE——輸出允許控制信號(hào),高電平有效。
⑦CLOCK——時(shí)鐘信號(hào)輸入端。
⑧A、B、C——轉(zhuǎn)換通道地址,控制8路模擬通道的切換。A、B、C分別與地址線或數(shù)據(jù)線相連,三位編碼對(duì)應(yīng)8個(gè)通道地址端口,A、B、C?=?000~111分別對(duì)應(yīng)IN0~I(xiàn)N7通道的地址端口。
(3)?ADC0808的轉(zhuǎn)換原理:ADC0808采用逐次比較的方法完成A/D轉(zhuǎn)換,由單一的+5?V電源供電。片內(nèi)帶有鎖存功能的8路選1的模擬開關(guān),由A、B、C的編碼來(lái)決定所選的通道。ADC0808完成一次轉(zhuǎn)換需100μs左右,它具有輸出TTL三態(tài)鎖存緩沖器,可直接連接到AT89C51的數(shù)據(jù)總線上。通過(guò)適當(dāng)?shù)耐饨与娐?,ADC0808可對(duì)0~5V的模擬信號(hào)進(jìn)行轉(zhuǎn)換。
2)?74LS373芯片的引腳及功能
(1)芯片概述:74LS373是一種帶有三態(tài)門的8D鎖存器,其在本設(shè)計(jì)中是鎖存P0口的低8位地址,芯片模型如圖5-11所示。
圖5-1174LS373芯片模型
(2)引腳介紹:
①D0~D7——8位數(shù)據(jù)輸入線。
②Q0~Q7——8位數(shù)據(jù)輸出線。
③G——數(shù)據(jù)輸入鎖存選通信號(hào)。當(dāng)加到該引腳的信號(hào)為高電平時(shí),外部數(shù)據(jù)選通到內(nèi)部鎖存器,負(fù)跳變時(shí),數(shù)據(jù)鎖存到鎖存器中。
④——數(shù)據(jù)輸出允許信號(hào),低電平有效。當(dāng)該信號(hào)為低電平時(shí),三態(tài)門打開,鎖存器中的數(shù)據(jù)輸出到數(shù)據(jù)輸出線上,當(dāng)該信號(hào)為高電平時(shí),輸出線為高阻態(tài)。
3)?LED數(shù)碼管的控制顯示
(1)?LED數(shù)碼管的模型如圖5-12所示。
(2)?LED數(shù)碼管的接口簡(jiǎn)介:LED的段碼端口A~G分別接至AT89C51的P1.0~P1.7口,位選端1~4分別接至P3.5、P3.4、P3.1、P3.0,如圖5-13所示。圖5-12LED數(shù)碼管模型圖5-13LED與AT89C51的硬件連線
6.任務(wù)總結(jié)
基于單片機(jī)的簡(jiǎn)易數(shù)字電壓表基本完成。但設(shè)計(jì)中的不足之處仍然存在。本次設(shè)計(jì)用Proteus實(shí)現(xiàn)了仿真。在電路設(shè)計(jì)過(guò)程中,對(duì)單片機(jī)的使用等都有了新的認(rèn)識(shí)。通過(guò)這次設(shè)計(jì),更進(jìn)一步的學(xué)習(xí)了Proteus和Keil軟件的使用方法,掌握了從系統(tǒng)的需要、方案的設(shè)計(jì)、功能模塊的劃分、原理圖的設(shè)計(jì)和電路圖的仿真的設(shè)計(jì)流程。
本次設(shè)計(jì)主要實(shí)現(xiàn)了簡(jiǎn)易數(shù)字電壓表測(cè)量1路電壓的功能,詳細(xì)說(shuō)明了從原理圖的設(shè)計(jì)、電路圖的仿真再到軟件的調(diào)試。設(shè)計(jì)中除了單片機(jī)還用到了模/數(shù)轉(zhuǎn)換芯片ADC0808,設(shè)計(jì)基本上達(dá)到了功能要求。
任務(wù)2簡(jiǎn)易數(shù)控電源
知識(shí)目標(biāo):了解和掌握單片機(jī)的外圍基本芯片的搭接,掌握數(shù)/模轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊及顯示模塊。
能力目標(biāo):?D/A轉(zhuǎn)換采用ADC0832對(duì)輸出的數(shù)字量信號(hào)進(jìn)行轉(zhuǎn)換,學(xué)習(xí)OP-07和LF356運(yùn)算放大器,TIP122和TIP127構(gòu)成閉環(huán)推挽輸出電路的運(yùn)用。
1.任務(wù)要求
(1)以MCS-51系列單片機(jī)為核心器件,組成一個(gè)簡(jiǎn)單的數(shù)控電源。
(2)采用1路數(shù)字量輸出,能夠測(cè)量0~10V之間的直流電壓值。
(3)電壓顯示用4位一體的LED數(shù)碼管顯示,至少能夠顯示三位小數(shù)。
(4)盡量使用較少的元器件。
2.硬件電路的設(shè)計(jì)
本系統(tǒng)的硬件電路設(shè)計(jì)共包括三個(gè)模塊:電源模塊、數(shù)控模塊、穩(wěn)壓輸出模塊。
1)電源模塊
設(shè)計(jì)的芯片供電的電源電路如圖5-14所示。電源部分輸入220V/50Hz交流電,輸出全機(jī)所需要的三種電壓:+5V,+15V和-15V。+5V主要供數(shù)控部分和D/A轉(zhuǎn)換芯片使用,電流最大約為400mA;+15V作為運(yùn)放的正電源,同時(shí)也是穩(wěn)壓輸出電路的主電源,最大電流約650mA;-15V作為運(yùn)放的負(fù)電源,同時(shí)也給基準(zhǔn)電壓源(LM336,-5V)供電,該電流較小,不超過(guò)50mA。
電路中,7805和7815負(fù)載重,功耗大,應(yīng)加裝散熱片。圖5-14電源模塊
(1)?±15V電源(0.6A):其電路如圖5-14所示。
對(duì)于濾波電容的選擇,要考慮三點(diǎn):整流管的壓降、7815/7915最小允許壓降Ud、電網(wǎng)波動(dòng)10%。由此而計(jì)算得允許紋波的峰-峰值:
按近似電流放電計(jì)算,并設(shè)⊙?=?00(通角),則
故選取濾波電容C?=?2200μF/30V。
(2)?+5V電源(1A):其電路如圖2-1所示。計(jì)算允許的最大紋波峰-峰值:
故選取濾波電容C?=?4700μF/16V。
2)數(shù)控模塊
該模塊主要由數(shù)字電路構(gòu)成,完成鍵盤控制、預(yù)置拔碼開關(guān)輸入控制、電壓控制字輸出、數(shù)碼管顯示控制、電流過(guò)流保護(hù)等功能。由于控制功能多,選用89S52最小應(yīng)用系統(tǒng),如圖5-15所示。
3)穩(wěn)壓輸出模塊
穩(wěn)壓輸出模塊原理圖如圖5-16所示。這部分將控制部分送來(lái)的電壓控制字?jǐn)?shù)據(jù)轉(zhuǎn)換成穩(wěn)定電壓輸出。它由數(shù)/模轉(zhuǎn)換器(DAC0832)、集成運(yùn)放OP-07、LF356、晶體三極管VT8(TIP122)、VT9(127)、VT10(9014)、VT11(9015)和基準(zhǔn)電壓源LM336-5組成。圖5-15數(shù)控模塊圖5-16穩(wěn)壓輸出模塊
(1)主電路的工作原理及參數(shù)計(jì)算。
電壓輸出范圍0~9.9V,步進(jìn)0.1V,共有100種狀態(tài),8位字長(zhǎng)的D/A轉(zhuǎn)換器具有256種狀態(tài),能滿足要求。設(shè)計(jì)中用兩個(gè)電壓控制代表0.1V,當(dāng)電壓控制字為0、2、4、…、198時(shí),電源輸出為0V、0.1V、0.2V、…、9.9V。電路選用的D/A轉(zhuǎn)換芯片是DAC0832,該芯片價(jià)廉且精度較高。DAC0832屬于電流輸出型D/A,輸出的電流隨輸入的電壓控制字線性變化。若要得到電壓,還需要外接一片運(yùn)放來(lái)實(shí)現(xiàn)電流到電壓的轉(zhuǎn)換。該運(yùn)放輸入端的輸入電流對(duì)轉(zhuǎn)換精度影響很大,DAC0832輸出的電流有幾十微安的變化,若運(yùn)放輸入端的輸入電流為0.1μA,如UA741的輸入電流約為此值,且有一定變化,則會(huì)引入相當(dāng)于1~2個(gè)電壓控制字的誤差,因此應(yīng)選用高輸入阻抗的運(yùn)放,如JFETL輸入的運(yùn)放LF356(或OP07),它的輸入電流可以忽略。DAC0832需外接基準(zhǔn)電壓,具有高穩(wěn)定度和低通方波,故選取LM336-5作為基準(zhǔn)源。當(dāng)DAC0832采用5V基準(zhǔn)電壓時(shí),D/A轉(zhuǎn)換電路的滿幅輸出為5V(電壓控制字為255)。由于實(shí)際用到的最大電壓控制字為198,因此D/A部分最大輸出電壓為V將它寫成通式,即
D/A轉(zhuǎn)換部分輸出電壓Ui作為電源功放級(jí)的輸入電壓。功率級(jí)由U9(LF356)和VT8(TIP122)、VT9(TIP127)構(gòu)成閉環(huán)推挽輸出電路。該電路屬于典型的電壓串聯(lián)負(fù)反饋電路。于是可以寫出輸出電壓Uo與輸入電壓Ui的關(guān)系式,即將式代入得
當(dāng)Ui?=?3.882V、R2?=?10kΩ、R3?=?9.1kΩ、Vo?=?9.9V時(shí),由上述方程可求得
RP1?=?6.402kΩ
現(xiàn)選取RP1?=?10kΩ的精密多圈電位器。當(dāng)CPU輸入電壓控制字(10111100)2?=?(198)10時(shí),Ui?=?3.882V,調(diào)節(jié)RP1,使Uo?=?9.9V。由圖5-16所示,VT10、VT11構(gòu)成過(guò)流保護(hù)電路。當(dāng)正常工作時(shí),VT10集成電路電壓為-15V,使VT8截止,A點(diǎn)輸出高電平,不觸發(fā)中斷。當(dāng)輸出電流過(guò)大(如Io>500mA)時(shí),取樣電阻R16上的壓降大于0.75?V。調(diào)節(jié)RP3使VT7的UBE>0.6V時(shí),VT7管會(huì)導(dǎo)通,VT7的等電極電平提高,于是VT8也導(dǎo)通,A點(diǎn)呈現(xiàn)低電平,觸發(fā)9031中斷,執(zhí)行中斷保護(hù)程序。
3.軟件設(shè)計(jì)
1)主程序流程圖
主程序流程圖如圖5-17所示。
2)電壓步進(jìn)增減流程圖
電壓步進(jìn)增減流程圖如圖5-18所示。圖5-17主程序流程圖圖5-18電壓步進(jìn)增減流程圖程序清單:
PORT EQU0FE00H
PORTA EQU0FE01H
PORTB EQU0FE02H
PORTC EQU0FE03H
DISP0 EQU30H
DISP1 EQU31H
DISP2 EQU32H
DISP3 EQU33H
DISP4 EQU34H
DISP5 EQU35H
DISP6 EQU36H
DISP7 EQU37H
WEI EQU38H ;位碼
DATB1 EQU27;乘0.54
DATB EQU50;除
PPPP EQU85
ADADH EQU0FB00H;AD地址
DAADH EQU ;DA地址
DBUFH EQU3CH;DA高四位
DBUFL EQU3DH;DA低八位
LENG1 EQU24;雙字節(jié)二進(jìn)制變BCD,40H~44H
LENG2 EQU4
LENG3 EQU3
NUMB1 EQU40H
NUMB2 EQU43H
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP LED
ORG 0013H
AJMP KEYSCAN
MAIN: CLR P1.1
SETB P1.1
CLR P1.1
MOV R0,#00H
MOV R1,#00H
MOV SP,#50H
SETB PT0
MOV TMOD,#01H
MOV TH0,#0F8H ;2ms,顯示掃描間隔
MOV TL0,#30H
SETB EA
SETB ET0
SETB TR0
SETB IT1
SETB EX1
CLR 00H ;電流千位合法位
CLR 01H ;顯示閃爍
MOV 3EH,#00H ;顯示數(shù)據(jù)
MOV 3FH,#00H
MOV 39H,#00H ;合字暫存
MOV 3CH,#00H
MOV 3DH,#00H
MOV 45H,#00H ;拆字暫存
SETB P1.0 ;過(guò)載
MOV DPTR,#PORT ;AB出C口入
MOV A,#03H
MOVX @DPTR,A
MOV DPTR,#PORTA ;列掃描輸出低電平
MOV A,#0H
MOVX @DPTR,A
MOV 3AH,#00H
MOV 3BH,#00H
MOV 30H,#0
MOV 31H,#0
MOV 32H,#0
MOV 33H,#0
MOV 34H,#0
MOV 35H,#0
MOV 36H,#0
MOV 37H,#0
MOV WEI,#00H
SETB RS0
SETB RS1
MOV R0,#DISP0;顯示指針,一定要用兩組
MOV R6,#8 ;顯示位數(shù)
MOV R1,#DISP0;鍵盤指針
MOV R7,#4 ;鍵盤位數(shù)
CLR RS0
CLR RS1
LOOP: ACALL LOOPP
ACALL DTOA
ACALL ATOD
AJMP LOOP
;******************電流設(shè)置子程序***************
LOOPP: MOV A,3AH
CJNE A,#15,PASS1
ACALL SETONE
PASS1: CJNE A,#10,PASS2
ACALL JIA
PASS2: CJNE A,#11,PASS3
ACALL JIAN
PASS3:
RET
;******************DA轉(zhuǎn)換子程序*****************
DTOA: PUSH PSW
SETB RS0
MOV R2,3CH
MOV R3,3DH
;MOV R2,#00H
;MOV R3,#00H
CLR P3.5
SETB P3.5
SETB P2.3
CLR C
CLR A
MOV A,R2
MOV R7,#4
LOOP11: RLC A
DJNZ R7,LOOP11
MOV R7,#4
LOOP22: LCALL PRD
DJNZ R7,LOOP22
CLR C
CLR A
MOV A,R3
MOV R7,#8
LOOP34: LCALL PRD
DJNZ R7,LOOP34
CPL P2.3
POP PSW
RET
PRD: RLC A
MOV P3.0,C
SETB P3.1
CPL P3.1
RET
;*****************************AD采樣子程序******************************
ATOD:
HUMID: MOV DPTR,#0FB00H
CLR A
MOVX @DPTR,A
WAIT: JNB P3.4,READ ;轉(zhuǎn)換結(jié)束信號(hào)
SJMP WAIT
READ: MOVX A,@DPTR
MOV B,#8
MUL AB
MOV 40H,A ;低位
MOV 41H,B ;高位
;MOV 40H,#0F8H
;MOV 41H,#07H
MOV 42H,#00H
;雙字節(jié)二進(jìn)制變BCD
;入口二進(jìn)制42H,41H,40H由高到低
;出口44H~43H,由高到低
MUBTD: MOV R0,#NUMB2
MOV R7,#LENG2
CLR A
LOOP18: MOV @R0,A
INC R0
DJNZ R7,LOOP18
MOV R7,#LENG1
LOOP48: MOV R1,#NUMB1
MOV R6,#LENG3
CLR C
LOOP28: MOV A,@R1
RLC A
MOV @R1,A
INC R1
DJNZ R6,LOOP28
MOV R5,#LENG2
MOV R0,#NUMB2
LOOP38: MOV A,@R0
ADDC A,@R0
DA A
MOV @R0,A
INC R0
DJNZ R5,LOOP38
DJNZ R7,LOOP48
;拆字程序*************
MOV R0,#DISP4
MOV A,44H
ACALL SEPA1
MOV R0,#DISP6
MOV A,43H
ACALL SEPA1
RET
SEPA1: MOV 45H,A
ANL A,#0F0H
SWAP A
MOV @R0,A
INC R0
MOV A,45H
ANL A,#0FH
;SWAP A
MOV @R0,A
;RET
MOV DPTR,#0FB01H
CLR A
MOVX @DPTR,A
WAIT1: JNB P3.4,READ1 ;轉(zhuǎn)換結(jié)束信號(hào)
SJMP WAIT1
READ1: MOVX A,@DPTR
CLR C
;MOV A,#68
CJNE A,#PPPP,LLI
LLI: JNC LL2 ;集電極電壓大于5V則不報(bào)警
CLR P1.0 ;負(fù)載電壓大于10V
RET
LL2: SETB P1.0
RET
;閉環(huán)*****************************
CLR C
MOV A,43H
SUBB A,3FH
MOV 46H,A ;低
MOV A,44H
SUBB A,3EH
MOV 47H,A ;高
;***********鍵盤顯示中斷程序*****************
;用定時(shí)中斷0顯示掃描,30H~37H是段碼存放地址,38H是位碼地址
;8155PB0~PB3段碼輸出,PB4~PB7位碼輸出
;用外部中斷1鍵盤掃描,PA0~PA3列掃描輸出,PC0~PC3;輸入,P2.0接CS,P2.1接IO/M
;出口數(shù)值是0~15,存在3AH中,3BH用作放鍵暫存
;用寄存器第3組
;已用R0,R2,R3,R4,R5,R6,其中R0,R6為顯示用,R1,R2,R3,R7為鍵盤用,R4,R5延時(shí)用
;*******************中斷顯示掃描子程序*****************
LED: PUSH PSW
PUSH ACC
PUSH B
PUSH DPH
PUSH DPL
SETB RS0
SETB RS1
MOV TH0,#0F8H;2MS
MOV TL0,#30H
MOV A,@R0
ADD A,WEI
MOV DPTR,#PORTB
MOVX @DPTR,A
MOV A,WEI
ADD A,#10H
MOV WEI,A
INC R0
;ACALL DELAY
DJNZ R6,LED1
MOV WEI,#00H
MOV R0,#DISP0
MOV R6,#8
LED1: POP DPL
POP DPH
POP B
POP ACC
POP PSW
RETI
;**************中斷鍵盤掃描子程序************
KEYSCAN:?PUSH PSW
PUSH ACC
PUSH B
PUSH DPH
PUSH DPL
SETB RS0
SETB RS1
ACALL DELAY1 ;消抖延時(shí)
JNB P3.3,LIST
MOV DPTR,#PORTA ;恢復(fù)B口輸出低電平
MOV A,#00H
MOVX @DPTR,A
POP DPL
POP DPH
POP B
POP ACC
POP PSW
RETI ;沒(méi)有按
LIST:MOV DPTR,#PORTC
MOVX A,@DPTR
MOV 3BH,A
MOV R2,#0FEH
MOV R3,#00H
LINE0:MOV DPTR,#PORTA
MOV A,R2
MOVX @DPTR,A
MOV DPTR,#PORTC
MOVX A,@DPTR
JB ACC.0,LINE1
MOV A,#0
AJMP TRYK
LINE1:JB ACC.1,LINE2
MOV A,#1
AJMP TRYK
LINE2:JB ACC.2,LINE3
MOV A,#2
AJMP TRYK
LINE3:JB ACC.3,NEXT
MOV A,#3
AJMP TRYK
NEXT:INC R3
MOV A,R3
ADD A,#4
MOV R3,A
MOV A,R2
JNB ACC.3,EXIT
RL A
MOV R2,A
AJMP LINE0
EXIT:MOV DPTR,#PORTA ;恢復(fù)B口輸出低電平
MOV A,#00H
MOVX @DPTR,A
POP DPL
POP DPH
POP B
POP ACC
POP PSW
RETI ;沒(méi)有按
TRYK:ADD A,R3
MOV 3AH,A
LETK:MOV DPTR,#PORTC
MOVX A,@DPTR
XRL A,3BH
JZ LETK
MOV DPTR,#PORTA ;恢復(fù)B口輸出低電平
MOV A,#00H
MOVX @DPTR,A
POP DPL
POP DPH
POP B
POP ACC
POP PSW
RETI
;*******************電流設(shè)置****************
SETONE:
SETB RS0
SETB RS1
;SETB 01H ;置顯示閃爍位
SETONE1:MOV A,3AH
CJNE A,#10,L1
L1:JNC SETONE1
JB 00H,L3
CJNE A,#2,L2 ;2000MA
MOV DISP0,#2
MOV DISP1,#0
MOV DISP2,#0
MOV DISP3,#0
;CLR 01H
CLR RS0
CLR RS1
PUSH PSW
SETB RS1
ACALL BCDHEX;十六位BCD變十六進(jìn)制
ACALL SUBBV ;*2再送DA
POP PSW
CLR A
RET
L2:MOV 3AH,#0FFH
JNC SETONE1
SETB 00H
L3:MOV @R1,A ;即時(shí)刷新顯示緩沖區(qū)
INC R1
MOV 3AH,#0FFH
DJNZ R7,SETONE
MOV R7,#4
MOV R1,#30H
CLR 00H
;CLR 01H
CLR RS0
CLR RS1
PUSH PSW
SETB RS1
ACALL BCDHEX ;16字節(jié)BCD變二進(jìn)制
ACALL SUBBV ;*5/8
POP PSW
CLR A
RET
;**********加電流
JIA:MOV 3AH,#0FFH
MOV A,DISP3
INC A
MOV DISP3,A
CJNE A,#10,OUT
MOV DISP3,#0
MOV A,DISP2
INC A
MOV DISP2,A
CJNE A,#10,OUT
MOV DISP2,#0
MOV A,DISP1
INC A
MOV DISP1,A
CJNE A,#10,OUT
MOV DISP1,#0
MOV A,DISP0
INC A
MOV DISP0,A
CJNE A,#2,OUT
MOV DISP0,#1
MOV DISP1,#9
MOV DISP2,#9
MOV DISP3,#9
OUT:PUSH PSW
SETB RS1
ACALL BCDHEX
ACALL SUBBV
POP PSW
CLR A
RET
;**********減電流
JIAN:MOV 3AH,#0FFH
MOV A,DISP3
DEC A
MOV DISP3,A
CJNE A,#0FFH,OUT1
MOV DISP3,#9
MOV A,DISP2
DEC A
MOV DISP2,A
CJNE A,#0FFH,OUT1
MOV DISP2,#9
MOV A,DISP1
DEC A
MOV DISP1,A
CJNE A,#0FFH,OUT1
MOV DISP1,#9
MOV A,DISP0
DEC A
MOV DISP0,A
CJNE A,#0FFH,OUT1
MOV DISP0,#0
MOV DISP1,#0
MOV DISP2,#0
MOV DISP3,#0OUT1:
PUSH PSW
SETB RS1
ACALL BCDHEX
ACALL SUBBV
POP PSW
CLR A
RET
BCDHEX:
MOV R7,#03H
MOV R0,#DISP0
CLR A
MOV R1,A
MOV R2,A
MOV R4,A
MOV R5,A
MOV R3,A
MOV A,@R0
MOV R1,A
CLR C
LOOP16:MOV A,R1
ADD A,R1
MOV R1,A
MOV A,R2
ADDC A,R2
MOV R2,A
MOV A,R1
MOV R3,A
MOV A,R2
MOV R4,A
MOV A,R1
ADD A,R1
MOV R1,A
MOV A,R2
ADDC A,R2
MOV R2,A
MOV A,R1
ADD A,R1
MOV R1,A
MOV A,R2
ADDC A,R2
MOV R2,A
MOV A,R1
ADD A,R3
MOV R1,A
MOV A,R2
ADDC A,R4
MOV R2,A
INC
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版品德與社會(huì)五年級(jí)上冊(cè)全冊(cè)教案
- 開發(fā)耐低溫材料保障極地工程安全
- 現(xiàn)代工程圖學(xué)習(xí)題集答案-第三版-主編楊裕根第3章
- 高一化學(xué)達(dá)標(biāo)訓(xùn)練:第一單元化學(xué)反應(yīng)速率與反應(yīng)限度
- 2024屆西安市航空六一八中學(xué)高考化學(xué)四模試卷含解析
- 2024高中語(yǔ)文第一單元第2課裝在套子里的人提升訓(xùn)練含解析新人教版必修5
- 2024高考地理一輪復(fù)習(xí)第二章地球上的大氣第三講氣壓帶和風(fēng)帶學(xué)案
- 2024高考化學(xué)一輪復(fù)習(xí)第九章有機(jī)化合物第一講甲烷乙烯苯規(guī)范演練含解析新人教版
- 貸款違約調(diào)解協(xié)議書
- 大數(shù)據(jù)時(shí)代語(yǔ)言學(xué)
- 內(nèi)科胃癌護(hù)理查房
- 2024年廣東省公務(wù)員錄用考試《行測(cè)》試題及答案解析
- 蔣詩(shī)萌小品《誰(shuí)殺死了周日》臺(tái)詞完整版
- 生涯發(fā)展展示
- 報(bào)價(jià)單(報(bào)價(jià)單模板)
- 2023年財(cái)務(wù)內(nèi)控管理模板
- 【家庭自制】 南北香腸配方及28種制作方法
- 電梯調(diào)度問(wèn)題模型(共3頁(yè))
- 廠房施工總結(jié)報(bào)告
- 公務(wù)員職務(wù)和級(jí)別工資檔次套改及級(jí)別對(duì)應(yīng)表
- GB∕T 41010-2021 生物降解塑料與制品降解性能及標(biāo)識(shí)要求
評(píng)論
0/150
提交評(píng)論