簡易數(shù)字電壓表單片機(jī)課程設(shè)計_第1頁
已閱讀1頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  一 、設(shè)計任務(wù)與要求</p><p>  1、設(shè)計任務(wù):簡易數(shù)字電壓表的設(shè)計</p><p>  2、設(shè)計要求:1)0—5V電壓</p><p><b>  2)8路輸入電壓</b></p><p>  3)4位LED或LCD顯示</p><p>  4)結(jié)果按十進(jìn)制顯示,芯

2、片自選。</p><p>  二、 硬件硬件框圖與說明(元件選擇依據(jù)即功能說明)</p><p>  根據(jù)8051單片機(jī)的內(nèi)部結(jié)構(gòu)特點(diǎn)本文提出以MCS-51單片機(jī)為核心的電壓測量系統(tǒng)。該系統(tǒng)以8051和ADC0809核心內(nèi)件,能夠在單片機(jī)的控制下監(jiān)測八路的輸入電壓值,用8位串行A/D轉(zhuǎn)換器進(jìn)行0-5V量程自動轉(zhuǎn)換,并且測量的電壓值可通過三位數(shù)碼管顯示同時用一位數(shù)碼管顯示選擇通道。整個系統(tǒng)的

3、設(shè)計過程中主要采用了模塊化的設(shè)計方法,完成了硬件電路的設(shè)計及軟件程序的編寫,還詳細(xì)的給出了相關(guān)的硬件框圖和軟件流程圖,通過最終硬件電路的調(diào)試,使該系統(tǒng)能夠在要求的條件下達(dá)到正常的測量及顯示功能。單片機(jī)8051是整個系統(tǒng)的核心,實(shí)現(xiàn)輸入端的分路選擇,模數(shù)轉(zhuǎn)換后數(shù)據(jù)的處理及在數(shù)碼管上數(shù)據(jù)的顯示等功能。正文著重給出了軟硬件系統(tǒng)的各部分電路,介紹了該系統(tǒng)的工作原理,MCS-51單片機(jī)特點(diǎn),8051的功能和應(yīng)用,ADC0809的功能和應(yīng)用等。&l

4、t;/p><p><b>  芯片介紹</b></p><p><b>  1)8051芯片</b></p><p>  8051是在8031的基礎(chǔ)上,片內(nèi)集成有4K ROM,作為程序存儲器,是一個程序不超過4K字節(jié)的小系統(tǒng)。ROM內(nèi)的程序是公司制作芯片時,代為用戶燒制的,出廠的8051都是含有特殊用途的單片機(jī)。所以8051適

5、合與應(yīng)用在程序已定,且批量大的單片機(jī)產(chǎn)品中。 </p><p><b>  8051單片機(jī)簡介</b></p><p>  8051單片機(jī)是把那些作為控制應(yīng)用所必需的基本內(nèi)容都集成在一個尺寸有限的集成電路芯片上[2]。如果按功能劃分,它由如下功能部件組成,即中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計數(shù)器、并行接口、串行接口、中斷系統(tǒng)和時種電路,其

6、基本結(jié)構(gòu)依舊是CPU加上外圍芯片的傳統(tǒng)結(jié)構(gòu)模式。但對各種功能部件的控制是采用特殊功能寄存器的集中控制方式。8051單片機(jī)的硬件結(jié)構(gòu)具有功能部件種類全,功能強(qiáng)等特點(diǎn)。特別值得一提的是該單片機(jī)CPU中的位處理器,它實(shí)際上是一個完整的1位微計算機(jī),這個一位微計算機(jī)有自己的CPU、位寄存器、I/O口和指令集。1位機(jī)在開關(guān)決策、邏輯電路仿真、過程控制方面非常有效;而8位機(jī)在數(shù)據(jù)采集,運(yùn)算處理方面有明顯的長處。MCS-51單片機(jī)中8位機(jī)和1位機(jī)的硬

7、件資源復(fù)合在一起,二者相輔相承,它是單片機(jī)技術(shù)上的一個突破,這也是MCS-51單片機(jī)在設(shè)計的精美之處。</p><p><b>  引腳及其功能</b></p><p>  MCS—51系列單片機(jī)的40個引腳中有2個專用于主電源引腳,2個外接晶振的引腳,4個控制或與其它電源復(fù)用的引腳,以及32條輸入輸出I/O引腳。</p><p>  下面按引

8、腳功能分為4個部分?jǐn)⑹鰝€引腳的功能。</p><p>  A. 電源引腳Vcc和Vss</p><p>  B.外接晶振引腳XTAL1和XTAL2</p><p>  C.控制信號或與其它電源復(fù)用引腳</p><p>  D.控制信號或與其它電源復(fù)用引腳有RST/VPD、ALE/P、PSEN和EA/VPP等4種形式。</p>&

9、lt;p>  輸入/輸出(I/O)引腳P口</p><p>  P0(39腳~22腳),P0.0~P0.7統(tǒng)稱為P0口。當(dāng)不接外部存儲器與不擴(kuò)展I/O接口時,它可作為準(zhǔn)雙向8位輸入/輸出接口。當(dāng)接有外部程序存儲器或擴(kuò)展I/O口時,P0口為地址/數(shù)據(jù)分時復(fù)用口。提供8位雙向數(shù)據(jù)總線。</p><p>  對于片內(nèi)含有EPROM的單片機(jī),當(dāng)EPROM編程時,從P0口輸入指令字節(jié),而當(dāng)檢驗(yàn)

10、程序時,則輸出指令字節(jié)。</p><p>  P1口(1腳~8腳),P1.0~P1.7統(tǒng)稱為P1口,可作為準(zhǔn)雙向I/O接口使用。對于MCS—52子系列單片機(jī),P1.0和P1.1還有第2功能:P1.0口用作定時器/計數(shù)器2的計數(shù)脈沖輸入端T2;P1.1用作定時器/計數(shù)器2的外部控制端T2EX。對于EPROM編程和進(jìn)行程序校驗(yàn)時,P0口接收輸入的低8位地址。</p><p>  P2口(21腳

11、~28腳),P2.0~P2.7統(tǒng)稱為P2口,一般可作為準(zhǔn)雙向I/O接口。當(dāng)接有外部程序存儲器或擴(kuò)展I/O接口且尋址范圍超過256個字節(jié)時,P2口用于高8位地址總線送出高8位地址。對于EPROM編程和進(jìn)行程序校驗(yàn)時,P2口接收輸入的8位地址。</p><p>  P3口(10腳~17腳),P3.0~P3.7統(tǒng)稱為P3口。它為雙功能口,可以作為一般的準(zhǔn)雙向I/O接口,也可以將每1位用于第2功能,而且P3口的每一條引腳

12、均可獨(dú)立定義為第1功能的輸入輸出或第2功能。P3口的第2功能見下表</p><p>  表 單片機(jī)P3.0管腳含義</p><p>  綜上所述,MCS—51系列單片機(jī)的引腳作用可歸納為以下兩點(diǎn):</p><p>  1、 單片機(jī)功能多,引腳數(shù)少,因而許多引腳具有第2功能;</p><p>  2、 單片機(jī)對外呈3總線形式,由P2、P0口組成

13、16位地址總線;由P0口分時復(fù)用作為數(shù)據(jù)總線。</p><p>  2)ADC0809芯片介紹</p><p>  ADC0809芯片簡介</p><p>  ADC0809是一種8路模擬輸入8路數(shù)字輸出的逐次比較型A/D轉(zhuǎn)換器。目前在8位單片機(jī)系統(tǒng)中有著廣泛的使用。ADC0809是采樣頻率為8位的、以逐次逼近原理進(jìn)行?!獢?shù)轉(zhuǎn)換的器件。其內(nèi)部有一個8通道多路開關(guān),它

14、可以根據(jù)地址碼鎖存譯碼后的信號,只選通8個單斷模擬輸入信號中的一個進(jìn)行A/D轉(zhuǎn)換。</p><p>  ADC0809的主要特性</p><p>  A、8路8位A/D轉(zhuǎn)換器,即分辨率8位。 B、具有轉(zhuǎn)換起??刂贫恕?C、轉(zhuǎn)換時間為100μs。</p><p>  D、單個+5V電源供電。E、模擬輸入電壓范圍0~+5V,不需零點(diǎn)和滿刻度校準(zhǔn)。 F、工作溫度范

15、圍為-40~+85攝氏度。 </p><p>  G、低功耗,約15mW。</p><p>  ADC0809的引腳功能</p><p>  ADC0809芯片有28條引腳,采用雙列直插式封裝,下面說明各引腳功能。 A、IN0~I(xiàn)N7:8路模擬量輸入端。B、2-1~2-8:8位數(shù)字量輸出端。C、ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入

16、中的一路D、ALE:地址鎖存允許信號,輸入,高電平有效。 E、START: A/D轉(zhuǎn)換啟動信號,輸入,高電平有效。 F、EOC: A/D轉(zhuǎn)換結(jié)束信號,輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。 G、OE:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當(dāng)A/D轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。</p><p>  H、CLK:時鐘脈沖輸入端。要求時鐘頻率不高于

17、640KHZ。</p><p>  I、REF(+)、REF(-):基準(zhǔn)電壓。 </p><p>  J、Vcc:電源,單一+5V,GND:地。</p><p>  ADC0809的工作過程是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動 A/D轉(zhuǎn)換,之后E

18、OC輸出信號變低,指示轉(zhuǎn)換正在進(jìn)行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當(dāng)OE輸入高電平 時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。</p><p>  表1.2 通道選擇表</p><p>  3)8279芯片介紹</p><p>  8279芯片在電壓表中的功能是驅(qū)動LED管顯示經(jīng)

19、單片機(jī)數(shù)據(jù)處理后的十進(jìn)制電壓值。</p><p><b>  8279功能介紹 </b></p><p>  8279是可編程的鍵盤、顯示接口芯片。它既具有按鍵處理功能,又具有自動顯示功能,在單片機(jī)系統(tǒng)中應(yīng)用很廣泛。8279內(nèi)部有鍵盤FIFO(先進(jìn)先出堆棧)/傳感器,雙重功能的8*8=64B RAM,鍵盤控制部分可控制8*8=64個按鍵或8*8陣列方式的傳感器。該芯片

20、能自動消抖并具有雙鍵鎖定保護(hù)功能。顯示RAM容量為16*8,即顯示器最大配置可達(dá)16位LED數(shù)碼顯示。 </p><p><b> ?。?)數(shù)據(jù)線 </b></p><p>  DB0→DB7是雙向三態(tài)數(shù)據(jù)總線,在接口電路中與系統(tǒng)數(shù)據(jù)總線相連,用以傳送CPU和8279之間的數(shù)據(jù)和命令。 </p><p><b> ?。?)地址線 &l

21、t;/b></p><p>  /CS=0選中8279,當(dāng)A0=1時,為命令字及狀態(tài)字地址;當(dāng)A0=0時,為片內(nèi)數(shù)據(jù)地址,故8279芯片占用2個端口地址。 </p><p><b>  (3)控制線 </b></p><p>  CLK:8279的時鐘輸入線。 </p><p>  IRQ:中斷請求輸出線,高電平有

22、效。 </p><p>  /RD、/WR:讀、寫輸入控制線。 </p><p>  SL0---SL3:掃描輸出線,用來作為掃描鍵盤和顯示的代碼輸出或直接輸出線。 </p><p>  RL0---RL7:回復(fù)輸入線,它們是鍵盤或傳感器矩陣的信號輸入線。 </p><p>  SHIFT:來自外部鍵盤或傳感器矩陣的輸入信號,它是8279鍵盤

23、數(shù)據(jù)的次高位即D6位的狀態(tài),該位狀態(tài)控制鍵盤上/下檔功能。在傳感器方式和選通方式中,該引腳無用。 </p><p>  CNTL/S:控制/選通輸入線,高電平有效。鍵盤方式時,鍵盤數(shù)據(jù)最高位(D7)的信號輸入到該引腳,以擴(kuò)充鍵功能;選通方式時,當(dāng)該引腳信號上升沿到時,把RL0---RL7的數(shù)據(jù)存入FIFO RAM中。 </p><p>  OUTA0---OUTA3:通常作為顯示信號的高4

24、位輸出線。 </p><p>  OUTB0---OUTB3:通常作為顯示信號的低4位輸出線。 </p><p>  /BD:顯示熄滅輸出線,低電平有效。當(dāng)/BD=0時將顯示全熄滅。 </p><p><b>  三、電路原理與說明</b></p><p>  四、軟件設(shè)計主要模塊流程圖,源程序清單與注釋</p&g

25、t;<p>  設(shè)計流程圖 </p><p><b>  源程序清單與解釋</b></p><p>  A_DPORT EQU 8000H ;0809通道0地址</p><p>  Z8279 EQU 08701H ;8279 狀態(tài)/命令

26、口地址</p><p>  D8279 EQU 08700H ;8279 數(shù)據(jù)口地址</p><p>  LEDMOD EQU 00H ;左邊輸入 八位字符顯示</p><p>  ;外部譯碼鍵掃描方式,雙鍵互鎖</p><p>  LEDFEQ E

27、QU 2FH ;掃描速率</p><p>  LEDCLS EQU 0C1H ;清除顯示 RAM</p><p>  LEDWR0 EQU 80H ;設(shè)定的將要寫入的顯示RAM地址</p><p>  READKB EQU 40H

28、 ;讀 FIFO RAM 地址 0 的命令字</p><p>  S1 EQU 78H</p><p>  S2 EQU 79H</p><p>  S3 EQU 7AH</p><p>  S4 EQU 7BH</

29、p><p>  TD EQU 7CH</p><p>  FLAG EQU 7DH</p><p>  ORG 0000H</p><p>  LJMP MAIN</p><p>  ORG 0003H</p><p>  LJMP

30、 INT_0</p><p>  ORG 0013H</p><p>  LJMP INT_1</p><p>  ORG 0040H</p><p>  ;*******************************************************************************

31、********</p><p><b>  MAIN: </b></p><p>  MOV SP,#60H</p><p>  MOV R0,#70H</p><p>  CLR TD</p><p>  CLR FLAG</p><p&

32、gt;  SETB IT1</p><p>  SETB EX1</p><p>  SETB EA</p><p><b>  LP0: </b></p><p>  MOV DPTR,#A_DPORT</p><p>  LCALL INIT8279</

33、p><p>  LCALL TEST</p><p>  LCALL DISPLAY </p><p>  LJMP LP0</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>

34、;<b>  NOP</b></p><p>  LJMP MAIN</p><p>  ;****************************************************************************************</p><p><b>  INT_1:</b>&

35、lt;/p><p><b>  CLR EA</b></p><p><b>  CLR EX1</b></p><p><b>  PUSH ACC</b></p><p>  MOV A,FLAG</p><p><b>  CPL A&l

36、t;/b></p><p>  MOV FLAG,A</p><p><b>  SETB EA</b></p><p><b>  SETB EX1</b></p><p><b>  POP ACC</b></p><p><b>

37、;  RETI</b></p><p>  ;***********************數(shù)據(jù)采集***********要求R0=#70H****MOV A,R1********CPL A*********</p><p><b>  TEST: </b></p><p><b>  PUSH 3</b&g

38、t;</p><p>  MOV R3,#8</p><p>  MOV R7,#0FFH ;初始化</p><p>  SETB IT0</p><p>  SETB EA</p><p>  SETB EX0 ;INT0 允許</p&

39、gt;<p>  MOV DPTR,#A_DPORT</p><p><b>  A_D: </b></p><p>  MOVX @DPTR,A ;啟動 A_D</p><p><b>  NOP</b></p><p><b>  NO

40、P</b></p><p>  CJNE R7,#00H,$ ;等待 A_D 轉(zhuǎn)換結(jié)束</p><p>  MOV @R0,A ;數(shù)據(jù)輸出</p><p>  INC R0</p><p>  MOV R7,#0FFH ;清讀數(shù)標(biāo)志</p&

41、gt;<p>  DJNZ R3,A_D</p><p>  MOV R0,#70H</p><p><b>  POP 3</b></p><p><b>  RET</b></p><p>  ;********************************

42、**********************</p><p><b>  INT_0: </b></p><p>  CLR EA</p><p>  CLR EX0</p><p>  MOVX A,@DPTR ;讀 A_D 數(shù)據(jù)</p><p><

43、b>  NOP</b></p><p><b>  NOP</b></p><p>  MOV R7,#00H ;置讀數(shù)標(biāo)志</p><p>  INC DPTR</p><p>  SETB EA</p><p>  SETB EX

44、0</p><p><b>  RETI </b></p><p>  ;************************************************************************ </p><p>  INIT8279: ;8279初始化子程序</p>

45、;<p>  PUSH DPH ;保存現(xiàn)場</p><p>  PUSH DPL</p><p>  PUSH ACC</p><p>  LCALL DELAY ;延時</p><p>  MOV DPTR ,#Z8279</p><p&g

46、t;  MOV A,#LEDMOD ;置8279工作方式</p><p>  MOVX @DPTR,A</p><p>  MOV A,#LEDFEQ ;置鍵盤掃描速率</p><p>  MOVX @DPTR,A</p><p>  MOV A,#LEDCLS ;清除 LE

47、D 顯示</p><p>  MOVX @DPTR,A</p><p>  POP ACC ;恢復(fù)現(xiàn)場</p><p>  POP DPL</p><p>  POP DPH</p><p><b>  RET</b></p><

48、p>  DELAY: ;延時子程序</p><p>  PUSH 0 ;保存現(xiàn)場</p><p><b>  PUSH 1</b></p><p>  MOV 0,#0H</p><p><b>  DELA

49、Y1:</b></p><p>  MOV 1,#0H</p><p>  DJNZ 1,$</p><p>  DJNZ 0,DELAY1</p><p>  POP 1 ;恢復(fù)現(xiàn)場</p><p><b>  POP 0</

50、b></p><p><b>  RET</b></p><p>  ;*******************************************************</p><p><b>  ;顯示字符子程序</b></p><p>  ;輸入: R4,位置 R5,值<

51、;/p><p><b>  DISLED: </b></p><p>  PUSH DPH ;保存現(xiàn)場</p><p>  PUSH DPL</p><p>  PUSH ACC</p><p>  MOV A,#LEDWR0 ;置顯示起始地址&

52、lt;/p><p>  ADD A,R4 ;加位置偏移量</p><p>  MOV DPTR,#Z8279</p><p>  MOVX @DPTR,A ;設(shè)定顯示位置</p><p>  MOV DPTR,#LEDSEG ;置顯示常數(shù)表起始位置</p><p

53、>  MOV A,R5</p><p>  MOVC A,@A+DPTR ;查表</p><p>  MOV DPTR,#D8279</p><p>  MOVX @DPTR,A ;顯示數(shù)據(jù)</p><p>  POP ACC ;恢復(fù)現(xiàn)場</p>

54、<p>  POP DPL</p><p>  POP DPH</p><p><b>  RET</b></p><p>  ;********************************************************************</p><p><b&g

55、t;  DISPLAY:</b></p><p>  MOV A,FLAG</p><p>  CJNE A,#0FFH,DISP1</p><p><b>  DISP2:</b></p><p>  MOV R0,#70H</p><p>  CLR

56、TD</p><p><b>  PUSH 3</b></p><p>  MOV R3,#8</p><p><b>  LP2:</b></p><p>  MOV A,R0</p><p>  ADD A,TD</p><

57、;p>  MOV R0,A</p><p>  LCALL ZCBCD</p><p>  MOV A,S1</p><p>  ADD A,#16</p><p>  MOV R5,A</p><p>  MOV R4,#07</p><p>

58、  LCALL DISLED </p><p>  MOV R5,S2</p><p>  MOV R4,#06</p><p>  LCALL DISLED </p><p>  MOV R5,S3</p><p>  MOV R4,#5&l

59、t;/p><p>  LCALL DISLED </p><p>  MOV R5,S4</p><p>  MOV R4,#4</p><p>  LCALL DISLED</p><p>  MOV R5,TD</p><p>  MOV

60、 R4,#1</p><p>  LCALL DISLED</p><p>  MOV A,TD</p><p><b>  INC A</b></p><p>  ANL A,#07</p><p>  MOV TD,A</p><p>

61、;  LCALL DELAY11</p><p>  DJNZ R3,LP2</p><p>  CLR TD</p><p><b>  POP 3</b></p><p>  MOV R0,#70H</p><p><b>  RET</b&g

62、t;</p><p><b>  DELAY11:</b></p><p><b>  PUSH 5</b></p><p><b>  PUSH 6</b></p><p><b>  PUSH 7</b></p><p>

63、  MOV R5,#200</p><p><b>  B2: </b></p><p>  MOV R6,#20</p><p><b>  B3:</b></p><p>  MOV R7,#248</p><p><b>  DJNZ R7,$<

64、/b></p><p>  DJNZ R6,B3</p><p>  DJNZ R5,B2</p><p><b>  POP 7</b></p><p><b>  POP 6</b></p><p><b>  POP 5</b>&

65、lt;/p><p><b>  RET</b></p><p>  ;******************************* </p><p><b>  DISP1:</b></p><p><b>  PUSH 3</b></p><

66、;p>  MOV R3,#10</p><p>  MOV R0,#70H</p><p><b>  LP1:</b></p><p>  LCALL GETKEY</p><p>  CJNE A,#0FFH,CONT </p><p>  MOV

67、A,B</p><p>  CJNE A,#30H,CONT </p><p>  LCALL CLEAR_T</p><p><b>  CONT:</b></p><p>  MOV A,R0</p><p>  ADD A,TD</p><

68、p>  MOV R0,A</p><p>  LCALL ZCBCD</p><p>  MOV A,S1</p><p>  ADD A,#16</p><p>  MOV R5,A</p><p>  MOV R4,#07</p><p> 

69、 LCALL DISLED </p><p>  MOV R5,S2</p><p>  MOV R4,#06</p><p>  LCALL DISLED </p><p>  MOV R5,S3</p><p>  MOV R4,#5<

70、;/p><p>  LCALL DISLED </p><p>  MOV R5,S4</p><p>  MOV R4,#4</p><p>  LCALL DISLED</p><p>  MOV R5,TD</p><p>  MOV

71、R4,#1</p><p>  LCALL DISLED</p><p>  LCALL DELAY10</p><p>  DJNZ R3,LP1</p><p><b>  POP 3</b></p><p>  MOV R0,#70H</p>&l

72、t;p><b>  RET</b></p><p><b>  DELAY10:</b></p><p><b>  PUSH 5</b></p><p><b>  PUSH 6</b></p><p><b>  PUSH 7&l

73、t;/b></p><p>  MOV R5,#5</p><p><b>  D2: </b></p><p>  MOV R6,#20</p><p><b>  D3:</b></p><p>  MOV R7,#248</p>

74、<p>  DJNZ R7,$</p><p>  DJNZ R6,D3</p><p>  DJNZ R5,D2</p><p><b>  POP 7</b></p><p><b>  POP 6</b></p><p><b&g

75、t;  POP 5</b></p><p><b>  RET</b></p><p>  ;**************************************************************</p><p><b>  CLEAR_T:</b></p><p&

76、gt;  PUSH ACC</p><p>  MOV A,TD</p><p><b>  INC A</b></p><p>  ANL A,#07</p><p>  MOV TD,A</p><p>  MOV R3,#10</p><

77、;p>  POP ACC</p><p><b>  RET</b></p><p>  ;************************************************************</p><p><b>  ZCBCD:</b></p><p>  MO

78、V A,@R0</p><p>  MOV B,#51</p><p><b>  DIV AB</b></p><p>  MOV S1,A</p><p>  MOV A,B</p><p><b>  CLR F0</b></p

79、><p>  SUBB A,#1AH</p><p>  MOV F0,C</p><p>  MOV A,#10</p><p><b>  MUL AB</b></p><p>  MOV B,#51</p><p><b>  DIV

80、 AB</b></p><p>  JB F0,LOOP2</p><p>  ADD A,#5</p><p><b>  LOOP2:</b></p><p>  MOV S2,A</p><p>  MOV A,B</p><p

81、><b>  CLR F0</b></p><p>  SUBB A,#1AH</p><p>  MOV F0,C</p><p>  MOV A,#10</p><p><b>  MUL AB</b></p><p>  MOV

82、B,#51</p><p><b>  DIV AB</b></p><p>  JB F0,LOOP3</p><p>  ADD A,#5</p><p><b>  LOOP3:</b></p><p>  MOV S3,A</p>

83、<p>  MOV A,B</p><p><b>  CLR F0</b></p><p>  SUBB A,#1AH</p><p>  MOV F0,C</p><p>  MOV A,#10</p><p><b>  MUL AB

84、</b></p><p>  MOV B,#51</p><p><b>  DIV AB</b></p><p>  JB F0,LOOP4</p><p>  ADD A,#5</p><p><b>  LOOP4:</b><

85、/p><p>  MOV S4,A</p><p><b>  RET</b></p><p>  ;*********************************************************</p><p><b>  ;讀取鍵盤子程序</b></p>&l

86、t;p>  ;輸入: 無 ; 輸出: B: 讀到的鍵碼 A: 按鍵的標(biāo)志</p><p><b>  GETKEY:</b></p><p>  PUSH DPH ;保存現(xiàn)場</p><p>  PUSH DPL</p><p>  PUSH PSW</p>

87、<p>  MOV DPTR,#Z8279</p><p>  MOVX A,@DPTR ;讀8279狀態(tài)</p><p>  ANL A,#07H ;屏蔽D7-D3</p><p>  JNZ GETVAL ;判斷是否有鍵輸入</p><p>  MO

88、V A,#0H ;置標(biāo)志(無鍵輸入)</p><p>  SJMP NKBHIT</p><p><b>  GETVAL:</b></p><p>  MOV A,#READKB ;讀 FIFO RAM 命令</p><p>  MOVX @DPTR,A</

89、p><p>  MOV DPTR,#D8279</p><p>  MOVX A,@DPTR ;讀鍵</p><p>  ANL A,#3FH ;屏蔽 SHIFT 和 CTRL 鍵</p><p>  MOV DPTR,#KEYCODE ;鍵碼表起始地址</p>&l

90、t;p>  MOVC A,@A+DPTR ;查表</p><p>  MOV B,A ;置返回鍵值</p><p>  MOV A,#0FFH ;置標(biāo)志(有鍵輸入)</p><p><b>  NKBHIT:</b></p><p>  PO

91、P PSW ;恢復(fù)現(xiàn)場</p><p>  POP DPL</p><p>  POP DPH</p><p><b>  RET</b></p><p>  ;*********************************************************&

92、lt;/p><p><b>  ;LED顯示常數(shù)表</b></p><p><b>  LEDSEG: </b></p><p>  DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7'</p><p>  DB

93、7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'</p><p>  DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH ;0,1,2,3,4,5,</p><p><b>  ;鍵盤鍵碼表</b></p><p><b>  K

94、EYCODE:</b></p><p>  DB 30H,31H,32H,33H,34H,35H,36H,37H ;'0,1,2,3,4,5,6,7'</p><p>  DB 38H,39H,3AH,3BH,3CH,3DH,3EH,3FH ;'8,9,A,B,C,D,E,F'</p><p><

95、b>  END</b></p><p><b>  五、小結(jié)</b></p><p>  此次簡易數(shù)字電壓表的設(shè)計可準(zhǔn)確得測得0—5V的電壓值,通過5個LED數(shù)碼管顯示測得的電壓值和所測的電壓通道。主要有用到8051單片機(jī)、8279芯片、ADC0809芯片、LED數(shù)碼管等元器件,通過8051單片機(jī)對各芯片的控制實(shí)現(xiàn)電壓的測量。</p>

96、<p>  本次課程設(shè)計的主要任務(wù)有:對硬件的設(shè)計及其原理圖的繪制、軟件的設(shè)計、系統(tǒng)的調(diào)試。在這兩個星期的時間里很好得完成了任務(wù),雖然說在這期間遇到不少問題,但在全組人員的努力和老師的指導(dǎo)下很快地將問題解決。</p><p>  通過這次的簡易數(shù)字電壓表的課程設(shè)計,加深看我對單片機(jī)這門學(xué)科的認(rèn)識,提高了我對單片機(jī)的興趣,明白了單片機(jī)在工業(yè)控制很其他領(lǐng)域的重要作用。鍛煉了我的動手和自學(xué)能力。</p&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論