《單片機(jī)技術(shù)及應(yīng)用項(xiàng)目化教程》課件第5章_第1頁(yè)
《單片機(jī)技術(shù)及應(yīng)用項(xiàng)目化教程》課件第5章_第2頁(yè)
《單片機(jī)技術(shù)及應(yīng)用項(xiàng)目化教程》課件第5章_第3頁(yè)
《單片機(jī)技術(shù)及應(yīng)用項(xiàng)目化教程》課件第5章_第4頁(yè)
《單片機(jī)技術(shù)及應(yīng)用項(xiàng)目化教程》課件第5章_第5頁(yè)
已閱讀5頁(yè),還剩119頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論