數(shù)字電壓表課程設(shè)計--簡易數(shù)字電壓表的設(shè)計_第1頁
已閱讀1頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  單片機課程設(shè)計</b></p><p>  簡易數(shù)字電壓表的設(shè)計</p><p><b>  目 錄</b></p><p>  第一章 課程設(shè)計任務(wù)書2</p><p>  1.1 設(shè)計題目2</p><p>  1.2 設(shè)計目的2

2、</p><p>  1.3 設(shè)計任務(wù)及要求2</p><p>  1.4 設(shè)計時間及進度安排2</p><p>  第二章 課程設(shè)計說明書3</p><p>  2.1 目前發(fā)展狀況3</p><p>  2.2 設(shè)計方案3</p><p>  2.3 系統(tǒng)硬件電路的設(shè)計4<

3、/p><p>  2.31 原理圖文件································

4、;···························· </p><p>  pcb圖文件···&#

5、183;····································

6、···················</p><p>  成品圖片·············&

7、#183;····································

8、;·······</p><p>  2.4 主要元件選型及相關(guān)功能介紹6</p><p>  2.5 系統(tǒng)軟件設(shè)計14</p><p>  2.6 精度測試15</p><p>  第三章 心得體會16</p><p><b> 

9、 參考文獻17</b></p><p><b>  源程序17</b></p><p>  簡易數(shù)字電壓表的設(shè)計</p><p>  課程設(shè)計目的和要求:</p><p>  對簡易數(shù)字電壓表的設(shè)計,掌握目前自動儀表的一般設(shè)計要求,工程設(shè)計方法,開發(fā)及設(shè)計工具的使用方法。</p><p

10、><b>  功能要求:</b></p><p>  可以測量0---5V的8路輸入電壓值;</p><p>  可在四位LED數(shù)碼管上輪流顯示或單路選擇顯示;</p><p>  測量最小分辨率為0.019V;</p><p>  測量誤差約為0.02V</p><p><b>

11、  帶有一定的擴展功能</b></p><p><b>  設(shè)計內(nèi)容:</b></p><p><b>  1.元器件選型:</b></p><p>  A/D轉(zhuǎn)換器芯片ADC0809,AT89C52單片機,4位共陽極數(shù)碼管</p><p><b>  2.系統(tǒng)方案確定:<

12、;/b></p><p>  按系統(tǒng)功能實現(xiàn)要求,決定控制系統(tǒng)采用AT89C52單片機,A/D轉(zhuǎn)換采用ADC0809。系統(tǒng)除能確保實現(xiàn)要求的功能外,還可以方便地進行8路其他A/D轉(zhuǎn)換量的測量、遠程測量結(jié)果傳送等擴展功能。數(shù)字電壓表系統(tǒng)設(shè)計方案框圖如圖。</p><p>  P0:地址數(shù)據(jù)低8位口 P1:普通I/O口 P2:地址高8位口 P3:特殊功能口</p>&

13、lt;p>  晶振電路保證信號傳輸同步,串口通信是與外界進行信息交換的一種方式, 按鍵電路中一個按鍵是單路和輪流顯示的選擇,一個按鍵是單路時的通道選擇。</p><p><b>  實現(xiàn)過程:</b></p><p>  當外部0~5V的模擬信號輸入時,首先通過ADC8090轉(zhuǎn)換模塊進行轉(zhuǎn)換,轉(zhuǎn)換成數(shù)字信號并進入通道進行選擇后,將信號傳入AT89C52單片機時,

14、單片機通過按鍵電路中的一個按鍵來選擇單路還是8路,另一個按鍵作單路顯示時選擇通道,當選擇完畢后將數(shù)據(jù)送入到顯示器,通過P3特殊功能口經(jīng)三極管驅(qū)動輸出控制位。</p><p><b>  系統(tǒng)硬件部分:</b></p><p>  1. AT89C52單片機:</p><p>  AT89C52是一個低電壓,高性能CMOS 8位單片機,片內(nèi)含8k

15、 bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,功能強大的AT89C52單片機可為您提供許多較復雜系統(tǒng)控制應(yīng)用場合。</p><p>  AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,3個

16、16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,AT89C52可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發(fā)成本。</p><p>  AT89C52有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。</p><p><b>  引腳功能:<

17、/b></p><p><b>  Vcc: 電源電壓</b></p><p><b>  GND:地</b></p><p>  P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8個TTL邏輯門電路,對端口P0寫“1”時,可作為高阻抗輸入端用。<

18、;/p><p>  在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復用,在訪問期間激活內(nèi)部上拉電阻。</p><p>  在Flash編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。</p><p>  P1口:P1是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL

19、邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流</p><p>  與AT89C51不同之處是,P1.0和P1.1還可分別作為定時/計數(shù)器2的外部計數(shù)輸入.flash編程和程序校驗期間,P1接收低8位地址。(P1.0/T2)和輸入(P1.1/T2EX),</p><p>  P2口

20、:P2是一個帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口P2寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流</p><p>  在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX@DPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)

21、存儲器(如執(zhí)行MOVX@RI指令)時,P2口輸出P2鎖存器的內(nèi)容。</p><p>  P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”時,它們被內(nèi)部上位電阻拉高并可作為輸入端口。此時,被外部拉低的P3口將用上拉電阻輸出電流</p><p>  P3口除了作為一般的I/O口線外,更重要的用途是它的第二功

22、能,</p><p>  P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。</p><p>  RST:復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片復位。</p><p>  ALE/PROG:當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1

23、/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖?!lash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。</p><p>  如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置AL

24、E禁止位無效。</p><p>  PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次RSEN信號。</p><p>  EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平

25、(接地)。需注意的是:如果加密位LB1被編程,復位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令?!lash存儲器編程時,該引腳加上+12V的編程允許電源VPP,當然這必須是該器件是使用12V編程電壓VPP。</p><p>  XTAL1:振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。</p><p>  XTAL2:振蕩器反相放大器的輸出端。

26、</p><p>  2.外部時鐘:輸入端接在XTAL1</p><p>  輸出端接在XTAL2</p><p>  晶體可以在1.2mhz-12mhz之間任選,電容可以在20-60uf之間選擇。</p><p>  3.74ls244:是一個緩沖輸入口,同時也是一個單向驅(qū)動器一減輕總線負擔。</p><p>  4

27、.mc14024:用與二進制計數(shù)。</p><p>  5.ADC0809:A/D轉(zhuǎn)換器:</p><p>  ADC0809是采樣頻率為8位的、以逐次逼近原理進行?!獢?shù)轉(zhuǎn)換的器件。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8個單斷模擬輸入信號中的一個進行A/D轉(zhuǎn)換。</p><p><b>  1.主要特性</b>&

28、lt;/p><p>  1)8路8位A/D轉(zhuǎn)換器,即分辨率8位。 </p><p>  2)具有轉(zhuǎn)換起??刂贫?。 </p><p>  3)轉(zhuǎn)換時間為100μs</p><p>  4)單個+5V電源供電 </p><p>  5)模擬輸入電壓范圍0~+5V,不需零點和滿刻度校準。 </p><p>

29、;  6)工作溫度范圍為-40~+85攝氏度 </p><p>  7)低功耗,約15mW。 </p><p><b>  2.內(nèi)部結(jié)構(gòu) </b></p><p>  ADC0809是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,內(nèi)部結(jié)構(gòu)如圖13.22所示,它由8路模擬開關(guān)、地址鎖存與譯碼器、比較器、8位開關(guān)樹型D/A轉(zhuǎn)換器、逐次逼近 </p&g

30、t;<p>  3.外部特性(引腳功能) </p><p>  ADC0809芯片有28條引腳,采用雙列直插式封裝,如圖所示。下面說明各引腳功能。 </p><p>  IN0~IN7:8路模擬量輸入端。</p><p>  2-1~2-8:8位數(shù)字量輸出端。</p><p>  ADDA、ADDB、ADDC:3位地址輸入線,用

31、于選通8路模擬輸入中的一路</p><p>  ALE:地址鎖存允許信號,輸入,高電平有效。 </p><p>  START: A/D轉(zhuǎn)換啟動信號,輸入,高電平有效。 </p><p>  EOC: A/D轉(zhuǎn)換結(jié)束信號,輸出,當A/D轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。 </p><p>  OE:數(shù)據(jù)輸出允許信號,輸入

32、,高電平有效。當A/D轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。</p><p>  CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。 </p><p>  REF(+)、REF(-):基準電壓。 </p><p>  Vcc:電源,單一+5V。 </p><p><b>  GND:地。 </b

33、></p><p>  ADC0809的工作過程是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿啟動 A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖剑甘続/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平 時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)

34、字量輸出到數(shù)據(jù)總線上。</p><p>  圖中多路開關(guān)可選通8個模擬通道,允許8路模擬量分時輸入,共用一個A/D轉(zhuǎn)換器進行轉(zhuǎn)換,這是一種經(jīng)濟的多路數(shù)據(jù)采集方法。地址鎖存與譯碼電路完成對A、B、C 3個地址位進行鎖存和譯碼,其譯碼輸出用于通道選擇,其轉(zhuǎn)換結(jié)果通過三態(tài)輸出鎖存器存放、輸出,因此可以直接與系統(tǒng)數(shù)據(jù)總線相連,下圖為通道選擇表。 </p><p>  系統(tǒng)硬件電路的設(shè)計:</

35、p><p>  簡易數(shù)字電壓測量電路由A/D轉(zhuǎn)換、數(shù)據(jù)處理及顯示控制等組成,電路原理圖如圖所示。A/D轉(zhuǎn)換由集成電路0809完成。0809具有8路模擬輸入端口,地址線(23~ 25腳)可決定對哪一路模擬輸入作A/D轉(zhuǎn)換。22腳為地址鎖存控制,當輸入為高電平時,對地址信號進行鎖存。6腳為測試控制,當輸入一個2uS寬高電平脈沖時,就開始A/D轉(zhuǎn)換。7腳為A/D轉(zhuǎn)換結(jié)束標志,當A/D轉(zhuǎn)換結(jié)束時,7腳輸出高電平。9腳為A/D

36、轉(zhuǎn)換數(shù)據(jù)輸出允許控制,當OE腳為高電平時,A/D轉(zhuǎn)換數(shù)據(jù)從該端口輸出。10腳為0809的時鐘輸入端,利用單片機30腳的六分頻晶振頻率再通過14024二分頻得到1MHz時鐘。單片機的P1、P3.0~P3.3端口作為四位LED數(shù)碼管顯示控制。P3.5端口用作單路顯示/循環(huán)顯示轉(zhuǎn)換按鈕,P3.6端口用作單路顯示時選擇通道。P0端口作A/D轉(zhuǎn)換數(shù)據(jù)讀入用,P2端口用作0809的A/D轉(zhuǎn)換控制。</p><p><b

37、>  原理圖文件</b></p><p><b>  PCB圖文件</b></p><p><b>  成品照片</b></p><p>  MC14024:二進制計數(shù)器 (仿真用觸發(fā)器代替)</p><p>  74LS244:是一個緩沖輸入口,同時也是一個單向驅(qū)動器以減輕總線

38、負擔</p><p><b>  主程序</b></p><p>  在剛上電時,系統(tǒng)默認為循環(huán)顯示8個通道的電壓值狀態(tài)。當進行一次測量后,將顯示每一通道的A/D轉(zhuǎn)換值,每個通道的數(shù)據(jù)顯示時間為1S左右。主程序在調(diào)用顯示子程序和測試之程序之間循環(huán),主程序流程圖見圖。</p><p>  附錄 簡易數(shù)字電壓表的單片機控制源程序</p>

39、;<p>  *********************</p><p>  * 簡易數(shù)字電壓表 *</p><p>  **********************</p><p>  主程序和中斷程序入口 *</p><p>  ;*

40、 *</p><p>  ;*************************************</p><p>  ORG 0000H</p><p>  LJMP START</p><p>  ORG 0003H</p><p><b>  RETI</b><

41、;/p><p>  ORG 000BH</p><p><b>  RETI</b></p><p>  ORG 0013H</p><p><b>  RETI</b></p><p>  ORG 001BH</p><p>&l

42、t;b>  RETI</b></p><p>  ORG 0023H</p><p><b>  RETI</b></p><p>  ORG 002BH</p><p><b>  RETI</b></p><p><b>  ;

43、</b></p><p>  ;*************************************</p><p>  ;* *</p><p>  ;* 初始化程序中的各變量 *</p><p>  ;*

44、 *</p><p>  ;*************************************</p><p>  CLEARMEMIO: CLR A</p><p>  MOV P2,A</p><p>  MOV R0,#70H</p>&l

45、t;p>  MOV R2,#0DH</p><p>  LOOPMEM: MOV @R0,A</p><p>  INC R0</p><p>  DJNZ R2,LOOPMEM</p><p>  MOV 20H,#00H</p><p>  MOV

46、A,#0FFH</p><p>  MOV P0,A</p><p>  MOV P1,A</p><p>  MOV P3,A</p><p><b>  RET</b></p><p><b>  ;</b></p><p>

47、;  ;*************************************</p><p>  ;* *</p><p>  ;* 主 程 序 *</p><p>  ;* *<

48、/p><p>  ;*************************************</p><p>  START: LCALL CLEARMEMIO ;初始化</p><p>  MAIN: LCALL TEST ;測量一次</p><p>  LCALL

49、 DISPLAY ;顯示數(shù)據(jù)一次</p><p><b>  AJMPMAIN</b></p><p>  NOP;PC值出錯處理</p><p><b>  NOP</b></p><p><b>  NOP</b></p><

50、p>  LJMPSTART</p><p><b>  ;</b></p><p>  ;*************************************</p><p>  ;* 顯 示 控 制 程 序 *</p><p>  ;**********************

51、***************</p><p><b>  ;</b></p><p>  DISPLAY: JB 00H,DISP11 ;</p><p>  MOV R3,#08H ;8路信號循環(huán)顯示控制</p><p>  MOV R0,#70H

52、 ;顯示數(shù)據(jù)初址70H~77H</p><p>  MOV 7BH,#00H ;顯示通道路數(shù)初值</p><p>  DISLOOP1: LCALL TUNBCD ;顯示數(shù)據(jù)轉(zhuǎn)為三位BCD碼存入7AH、79H、78H(最大5.00v)</p><p>  MOV R2,#0FFH ;每路顯示時間控制

53、4MS*255</p><p>  DISLOOP2: LCALL DISP ;調(diào)四位顯示程序</p><p>  LCALL KEYWORK1 ;</p><p>  DJNZ R2,DISLOOP2 ;</p><p>  INC R0 ;顯示下一路&

54、lt;/p><p>  INC 7BH ;通道顯示數(shù)加一</p><p>  DJNZ R3,DISLOOP1</p><p><b>  RET</b></p><p><b>  ;</b></p><p>  DISP11:

55、 MOV A,7BH ;</p><p>  SUBB A,#01H ;</p><p>  MOV 7BH,A ;</p><p>  ADD A,#70H ;</p><p>  MOV R0,A ;</p>

56、<p>  DISLOOP11: LCALL TUNBCD ;顯示數(shù)據(jù)轉(zhuǎn)為三位BCD碼存入7AH、79H、78H(最大5.00v)</p><p>  MOV R2,#0FFH ;每路顯示時間控制 4MS*25</p><p>  DISLOOP22: LCALL DISP ;調(diào)四位顯示程序</

57、p><p>  LCALL KEYWORK2 ;</p><p>  DJNZ R2,DISLOOP22</p><p>  INC 7BH ;通道顯示數(shù)加一</p><p><b>  RET</b></p><p><b>  ;</

58、b></p><p>  ;*************************************</p><p>  ;* 顯示數(shù)據(jù)轉(zhuǎn)為三位BCD碼程序 *</p><p>  ;*************************************</p><p>  ;顯示數(shù)據(jù)轉(zhuǎn)為三位BCD碼存入7AH、7

59、9H、78H(最大值5.00v)</p><p><b>  ;</b></p><p>  TUNBCD: MOV A,@R0 ;255/51=5.00V運算</p><p>  MOV B,#51 ;</p><p>  DIV AB

60、 ;</p><p>  MOV 7AH,A ;個位數(shù)放入7AH</p><p>  MOV A,B ;余數(shù)大于19H,F0為1,乘法溢出,結(jié)果加5</p><p>  CLR F0</p><p>  SUBB A,#1AH</p>

61、<p>  MOV F0,C</p><p>  MOV A,#10 ;</p><p>  MUL AB ;</p><p>  MOV B,#51 ;</p><p>  DIV AB</p><p&g

62、t;  JB F0,LOOP2 ;</p><p>  ADD A,#5</p><p>  LOOP2: MOV 79H,A ;小數(shù)后第一位放入79H</p><p>  MOV A,B</p><p>  CLR F0</p>&l

63、t;p>  SUBB A,#1AH</p><p>  MOV F0,C</p><p>  MOV A,#10 ;</p><p>  MUL AB ;</p><p>  MOV B,#51 ;</p><p&

64、gt;  DIV AB</p><p>  JB F0,LOOP3 ;</p><p>  ADD A,#5</p><p>  LOOP3: MOV 78H,A ;小數(shù)后第二位放入78H</p><p><b>  RET</b>&l

65、t;/p><p><b>  ;</b></p><p>  ;*************************************</p><p>  ;* ? 顯?示 程 序 *</p><p>  ;*************************************&l

66、t;/p><p>  ;共陽顯示子程序,顯示內(nèi)容在78H—7BH</p><p><b>  ;</b></p><p>  DISP: MOV R1,#78H ;共陽顯示子程序,顯示內(nèi)容在78H—7BH</p><p>  MOV R5,#0FEH ;數(shù)據(jù)在P1輸出

67、,列掃描在P3.0-P3.3</p><p>  PLAY: MOV P1,#0FFH</p><p>  MOV A,R5</p><p>  ANL P3,A</p><p>  MOV A,@R1</p><p>  MOV DPTR,#TAB</p&

68、gt;<p>  MOVC A,@A+DPTR</p><p>  MOV P1,A</p><p>  JB P3.2,PLAY1 ;小數(shù)點處理</p><p>  CLR P1.7 ;小數(shù)點顯示(顯示格式為XX.XX)</p><p>  PLAY1: L

69、CALL DL1MS</p><p><b>  INC R1</b></p><p>  MOV A,P3</p><p>  JNB ACC.3,ENDOUT</p><p><b>  RL A</b></p><p>  MOV R5

70、,A</p><p>  MOV P3,#0FFH</p><p>  AJMP PLAY</p><p>  ENDOUT: MOV P3,#0FFH</p><p>  MOV P1,#0FFH</p><p><b>  RET</b></p>

71、;<p>  TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH</p><p><b>  ;</b></p><p>  ;*************************************</p><p>  ;* ? ?

72、 延時程序 *</p><p>  ;*************************************</p><p><b>  ;</b></p><p>  DL10MS: MOV R6,#0D0H ;10MS延時子程序</p><p>  DL1:

73、 MOV R7,#19H</p><p>  DL2: DJNZ R7,DL2</p><p>  DJNZ R6,DL1</p><p><b>  RET</b></p><p><b>  ;</b></p><p>  DL1

74、MS: MOV R4,#0FFH ;513+513=1MS</p><p>  LOOP11: DJNZ R4,LOOP11</p><p>  MOV R4,#0FFH</p><p>  LOOP22: DJNZ R4,LOOP22</p><p><

75、b>  RET</b></p><p><b>  ;</b></p><p>  ;*************************************</p><p>  ;* ? 電壓測量(A/D)子程序 *</p><p>  ;*********************

76、****************</p><p>  ; 一次測量數(shù)據(jù)8個,依次放入70H-77H單元中</p><p><b>  ;</b></p><p>  TEST: CLR A ;模數(shù)轉(zhuǎn)換子程序</p><p>  MOV P2,A</p>

77、<p>  MOV R0,#70H ;轉(zhuǎn)換值存放首址</p><p>  MOV R7,#08H ;轉(zhuǎn)換8次控制</p><p>  LCALL TESTART ;啟動測試</p><p>  WAIT: JB P3.7,MOVD ;等A/D轉(zhuǎn)換結(jié)束信號</p><p

78、>  AJMP WAIT</p><p><b>  ;</b></p><p>  TESTART: SETB P2.3 ;測試啟動</p><p><b>  NOP</b></p><p><b>  NOP</b></p&

79、gt;<p>  CLR P2.3</p><p>  SETB P2.4</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  CLR P2.4</p><p><b>  

80、NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  RET</b></p><p><b&

81、gt;  ;</b></p><p>  MOVD: SETB P2.5 ;取A/D轉(zhuǎn)換數(shù)據(jù)</p><p>  MOV A,P0</p><p>  MOV @R0,A</p><p>  CLR P2.5</p><p>  INC

82、R0</p><p>  MOV A,P2 ;通道地址加1</p><p><b>  INC A</b></p><p>  MOV P2,A</p><p>  CJNE A,#08H,TESTEND ;等8路A/D轉(zhuǎn)換結(jié)束</p><p>  

83、TESTEND: JC TESTCON</p><p>  CLR A ;結(jié)束恢復端口</p><p>  MOV P2,A</p><p>  MOV A,#0FFH</p><p>  MOV P0,A</p><p>  MO

84、V P1,A</p><p>  MOV P3,A</p><p><b>  RET</b></p><p><b>  ;</b></p><p>  TESTCON: LCALL TESTART</p><p>  LJMP WA

85、IT</p><p><b>  ;</b></p><p>  ;*************************************</p><p>  ;* ? 按鍵檢測子程序 *</p><p>  ;*************************************

86、</p><p><b>  ;</b></p><p>  KEYWORK1: JNB P3.5,KEY1</p><p>  KEYOUT: RET</p><p><b>  ;</b></p><p>  KEY1:

87、 LCALL DISP ;延時消抖</p><p>  JB P3.5,KEYOUT</p><p>  WAIT11: JNB P3.5,WAIT12</p><p>  CPL 00H</p><p>  MOV R2,#01H</p><p&

88、gt;  MOV R3,#01H</p><p><b>  RET</b></p><p><b>  ;</b></p><p>  WAIT12: LCALL DISP ;鍵釋放等待時顯示用</p><p>  AJMP WAIT11<

89、/p><p><b>  ;</b></p><p>  KEYWORK2: JNB P3.5,KEY1</p><p>  JNB P3.6,KEY2</p><p><b>  RET</b></p><p><b>  ;</b&

90、gt;</p><p>  KEY2: LCALL DISP ;延時消抖用</p><p>  JB P3.6,KEYOUT</p><p>  WAIT22: JNB P3.6,WAIT21</p><p>  INC 7BH</p><

91、p>  MOV A,7BH</p><p>  CJNE A,#08H,KEYOUT11</p><p>  KEYOUT11: JC KEYOUT1</p><p>  MOV 7BH,#00H</p><p>  KEYOUT1: RET</p><p&g

92、t;<b>  ;</b></p><p>  WAIT21: LCALL DISP ;鍵釋放等待時顯示用</p><p>  AJMP WAIT22</p><p><b>  ;</b></p><p><b>  END</b>

93、</p><p><b>  三 心得體會</b></p><p>  作為一個測控專業(yè)的大三的學生, 我覺得做單片機課程設(shè)計是十分有意義的,而且是十分必要的。我們在課堂上掌握的僅僅是專業(yè)課的理論知識,如何去鍛煉我們的實踐能力?如何把我們所學的專業(yè)基礎(chǔ)課理論知識運用到實踐中去呢?我想做類似的課程設(shè)計就為我們提供了良好的實踐平臺。</p><p>

94、;  這次課程設(shè)計歷時兩周,在這兩周中我發(fā)現(xiàn)我們不僅學習到了課堂上不能學到的最主要的是學會了團隊合作。在這次任務(wù)中我們組十個人都有明確的分工:有編程序的,有畫電路圖的,我的任務(wù)是讀程序,就是找出程序中的錯誤。</p><p>  這次課程設(shè)計我們的題目是做一個簡易的數(shù)字電壓表的設(shè)計,其中要求簡易數(shù)字電壓表可以測量0到5V范圍內(nèi)的8路輸入電壓值,并在4位LED數(shù)碼管上輪流顯示或單路選擇顯示,而且要求測量最小分辨率為

95、0.02V。</p><p>  通過這次的單片機課程設(shè)計不僅使我們學習到了課本以外的知識,最主要的是這次的課程設(shè)計將我們以前所學的課程都串了起來,比如模擬電路,數(shù)字電路等等,使我們對以前的知識又復習了一遍,同時也使我們發(fā)現(xiàn)我們前面所學的知識是多么的淺薄,比如雖然知道這是用數(shù)電或者模電的知識,但是還是跟沒學的一樣,當我們真正用的時候卻發(fā)現(xiàn)問題還是一大堆,尤其是在連接電路圖的時候</p><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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論