

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 目錄</b></p><p> 第一章 引言…………………………………………………………………… 2</p><p> 1.1內容摘要………………………………………………………………………… …… 2</p><p> 1.2設計目的……………………………………………………………………………… 2</
2、p><p> 1.3設計任務…………………………………………………………………………… 2</p><p> 1.4課程設計過程………………………………………………………………………… 2 </p><p> 第二章數字電壓表簡介……………………………………………………… …… 3</p><p> 2.1數字電壓表的介紹…
3、…………………………………………………………… 3</p><p> 2.2數字電壓表工作原理…………………………………………………………… 3</p><p> 第三章 總體方案設計………………………………………………………………… 3</p><p> 第四章 硬件部分的設計………………………………………………………… 4</p>
4、<p> 4.1 AT89C51內部結構概述…………………………………………………… 4</p><p> 4.2 P0-P3口結構…………………………………………………………… 4 </p><p> 4.3時鐘電路和復位電路…………………………………………………… 6</p><p> 4.4顯示電路…………………………………
5、……………………………… 7</p><p> 4.5模數(A/D)轉換電路…………………………………………………… 8</p><p> 第五章 系統軟件的設計……………………………………………………… 8</p><p> 5.1主程序……………………………………………………………………… 9</p><p> 5.2
6、顯示子程序………………………………………………………………… 9</p><p> 5.3. 模/數據轉換測量子程序………………………………………………… 11 第六章 系統的調試…………………………………………………………… 13</p><p> 6.1硬件調試…………………………………………………………………… 13</p><p> 6.2軟件調
7、試…………………………………………………………………… 14</p><p> 七 心得體會…………………………………………………………………… 14</p><p> 八 參考文獻……………………………………………………………………………… 15</p><p> 九 附錄…………………………………………………………………………… 1 6</
8、p><p> 整體電路圖…………………………………………………………………………………16</p><p> 源程序清單……………………………………………………………………………… 17</p><p> 中斷延時程序清單……………………………………………………………………23 產品圖…………………………………………………………………………………… 30<
9、/p><p> 元器件清單……………………………………………………………………………… 31</p><p> 基于單片機的數字電壓表的設計</p><p><b> 第一章 引言</b></p><p> 摘要: 單片機是一種集成電路芯片,采用超大規(guī)模技術把具有數 據處理能力(如算
10、術 運算,邏輯運算,數據傳送,中斷處理)的微處理器(CPU)。隨著單片機技術的飛速發(fā)展,各種單片機蜂擁而至,單片機技術已成為一個國家現代化科技水平的重要標志。單片機可單獨地完成現代工業(yè)控制所要求的智能化控制功能,這是單片機最大的特征。</p><p> 本次設計主要解決A/D轉換、數據處理及顯示鍵盤控制等模塊。控制系統采用AT89S52單片機,A/D轉換采用ADC0809。顯示采用4位LED顯示數碼管的具有
11、電壓測量功能的具有一定精度的數字電壓表。簡易數字電壓表可以測量0~5V的3路輸入電壓值,并在四位LED數碼管上輪流顯示或單路選擇顯示。測量最小分辨為0.020V,測量誤差約為±0.02V。</p><p> 關鍵字:A/D轉換 顯示電路 AT89S52單片機 鍵盤電路</p><p><b> abstract</b></p><p&
12、gt; single chip is a round of integrated circuit chip, using the technology has several large scale according to processing power (such as arithmetic operations, logic operations, data transfer, interrupt handling) of t
13、he microprocessor (CPU). With the rapid development of the single chip microcomputer, all kinds of single chip in great Numbers, microcontroller technology has become a national modernization level of science and technol
14、ogy. SCM can complete modern industrial control alone for the int</p><p> This design mainly to solve A/D conversion, data processing and display the keyboard control module. AT89S52 SCM control system adop
15、ts, A/D conversion using ADC0809. Shows the four LED display digital tube with voltage measurement of the function has some precision of the digital voltmeter. Simple digital voltmeter can measure 0 ~ 5 V 3 road input vo
16、ltage values, and in the four LED digital display or taking turns on the single option to show. Least distinguishable for measuring 0.020 V, measure</p><p> Key words: A/D conversion display circuit AT89S52
17、 SCM keyboard circuit</p><p><b> 1、設計目的</b></p><p> 本課程的任務是使學生通過“簡易數字電壓表的設計”的設計過程,綜合所學課程,掌握目前自動化儀表的一般設計要求,工程設計方法,開發(fā)及設計工具的使用方法,通過這一設計實踐過程,鍛煉學生的動手能力和分析,解決問題的能力;積累經驗,培養(yǎng)按部就班,一絲不茍的工作個對所
18、學知識的綜合應用能力。</p><p><b> 2、設計任務及要求</b></p><p> 設計一個簡易數字電壓表,檢測電壓0—5V,檢測精度0.02V。</p><p><b> 擴展到3路巡檢。</b></p><p><b> 有鍵盤電路。</b></p
19、><p> 有適當的抗干擾措施。</p><p><b> 3、課程設計過程</b></p><p> 獨立完成系統設計,經指導老師同意進行具體方案實施。</p><p> 用DXP畫出PCB圖。</p><p><b> 做出PCB板。</b></p>
20、<p> 獨立完成軟硬件系統調試。</p><p><b> 軟硬件仿真。</b></p><p><b> 焊接電路。</b></p><p><b> 數字電壓表簡介</b></p><p> 2.1數字電壓表的介紹</p><p&g
21、t; 數字電壓表簡稱DVM,是采用數字化測量技術,把連續(xù)的模擬量轉換成不連續(xù)的,離散的的數字形式并加以顯示的儀表。與傳統的模擬儀表比較,具有顯示直觀,讀數準確,測量范圍寬,擴展功能強等優(yōu)點。適合于數學實驗演示及測控設備儀表等多種場合。數字電壓表是諸多數字化儀表的核心與基礎,電壓表的數字化是將連續(xù)的模擬量如直流電壓轉換成不連續(xù)的離散數字形式并加以顯示這有別于傳統的以指針加刻度盤進行讀數的方法,避免了讀數的視差和視覺疲勞。目前數字萬用表的
22、內部核心部件是A/D轉換器,轉換器的精度很大程度上影響著數字萬用表的準確度。</p><p> 2.2 數字電壓表的基本結構及工作原理</p><p> 數字電壓表是諸多數字化儀表的核心與基礎,電壓表的數字化是將連續(xù)的模擬量如直流電壓轉換成不連續(xù)的離散的數字形式并加以顯示,這有別于傳統的以指針加刻度盤進行讀數的方法, 避免了讀數的視差和視覺疲勞。目前數字電壓表的內部核心部件是A/D轉換
23、器, 轉換器的精度很大程度上影響著數字電壓表的準確度,數字式電壓表是由高阻抗電壓表頭與分壓電路組成的。 </p><p><b> 1.各部分的功能</b></p><p> 位A/D轉換器:將輸入的模擬信號轉換成數字信號。</p><p> 基準電源:提供精密電壓,供A/D轉換器作參考電壓。</p><p>
24、譯碼器:將二-十進制(BCD)碼轉換成七段信號。</p><p> 驅動器:驅動顯示器的a、b、c、d、e、f、g七個發(fā)光段,驅動發(fā)光數碼管(LED)進行顯示。</p><p> 顯示器:將譯碼輸出的七段信號進行數字顯示,讀出A/D轉換結果。</p><p> 第三章 總體方案設計</p><p> 按系統功能實現要求,決定控制系統采
25、用AT89S52單片機,A/D轉換采用ADC0809,顯示采用LED七段共陽極數碼管。系統除能確保實現單/多路選擇,通道號選擇,復位控制的功能外,還可以方便地進行其它8路模擬量的測量。簡易數字電壓表設計方案框圖如圖1</p><p> 圖1簡易數字電壓表設計方案</p><p> 第四章 硬件部分的設計</p><p> 簡易數字電壓測量電路由A/D轉換、數
26、據處理及顯示控制等組成,電路原理圖如圖所示(見附錄圖一)。A/D轉換由集成電路0809完成。0809具有8路模擬輸入端口,地址線(23~- 25腳)可決定對哪一路模擬輸入作A/D轉換。22腳為地址鎖存控制,當輸入為高電平時,對地址信號進行鎖存。6腳為測試控制,當輸入一個2uS寬高電平脈沖時,就開始A/D轉換。7腳為A/D轉換結束標志,當A/D轉換結束時,7腳輸出高電平。9腳為A/D轉換數據輸出允許控制,當OE腳為高電平時,A/D轉換數據
27、從該端口輸出。10腳為0809的時鐘輸入端,利用單片機30腳的六分頻晶振頻率再通過14024二分頻得到1MHz時鐘。單片機的P1、P3.0~P3.3端口作為四位LED數碼管顯示控制。P3.5端口用作單路顯示/循環(huán)顯示轉換按鈕,P3.6端口用作單路顯示時選擇通道。P0端口作A/D轉換數據讀入用,P2端口用作0809的A/D轉換控制。</p><p> 4.1 AT89S52內部結構概述</p>&
28、lt;p><b> 概述:</b></p><p> AT89S52是低電壓高性能的8位CMOS微控制器,8K字節(jié)可在線編程(ISP)的flash存儲區(qū)。AT89S52采用Atmel高密度非易失性存儲技術,兼容80C51指令集和管腳。片上flash支持ISP和傳統的flash編程器進行重新編程。通用的8位CPU外加在線編程,Atemel借此提供了一個靈活、高效的嵌入式應用解決方案。
29、 AT89S52有以下優(yōu)點:8K flash,256B RAM,32個I/O接口,看門狗,三個十六位定時器/計數器,六個中斷矢量、兩級優(yōu)先權,一個全雙工的串行口,片上的振蕩器和時鐘電路(不懂,好像沒有這些東西)。另外,AT89S52設計了靜態(tài)邏輯(不懂),可以將時鐘頻率降低到0Hz.用軟件可以設置兩種省電模式:1.低電壓空閑模式(The idle model),cpu不在工作,但是RAM、定時器/計數器、串行口、中斷系統一直工作;2
30、.電源睡眠模式(The power-down model)只保存RAM中的內容,但是停止振蕩器,其他片上功能失效直到中斷喚醒或硬件重啟。 </p><p><b> 基本參數:</b></p><p> 類別:集成電路 (IC) </p><p> 家庭:嵌入式 - 微控制器 </p><p><b>
31、 系列:89S </b></p><p> 核心處理器:8051</p><p><b> 芯體尺寸:8-位 </b></p><p><b> 速度:24MHz </b></p><p> 連通性:UART/USART </p><p> 外圍設備:W
32、DT </p><p> 輸入/輸出數:32 </p><p> 程序存儲器容量:8KB (8K x 8</p><p> 程序存儲器類型:FLASH </p><p> RAM 容量:256 x 8 </p><p> 電壓 - 電源 (Vcc/Vdd):4 V ~ 5.5 V </p>
33、;<p><b> 振蕩器型:內部 </b></p><p> 工作溫度:-40°C ~ 85°C </p><p> 封裝/外殼:40-DIP </p><p><b> 包裝:管件 </b></p><p><b> 主要特征:</
34、b></p><p> 1.兼容MCS-51指令 </p><p> 2.8K字節(jié)支持在線編程的flash存儲區(qū),可以進行1000次擦寫 </p><p> 工作電壓4.0v-5.5v(有待驗證,呵呵) </p><p> 4.256x8bit片內RAM </p><p> 5.三個16B
35、it定時器/計數器 </p><p> 6.8個中斷源 </p><p> 7.全雙工UART串行通道 </p><p> 8.低電壓空閑模式和電源睡眠模式 </p><p> 9.電源睡眠模式下,中斷觸發(fā)返回原狀態(tài) </p><p> 10.兩個數據指針DP </p><p&
36、gt; 11.電源關閉標志 </p><p> 12.fast Programming Time快速編程 </p><p> 13.綠色包裝(無鉛及鹵化物) </p><p><b> P0-P3口結構</b></p><p> P0口功能 :P0口具有兩種功能:第一,P0口可以作為通用I/O接口使用,P0
37、.7—P0.0用于傳送CPU的輸入/輸出數據。輸出數據時可以得到鎖存,不需外接專用鎖存器,輸入數據可以得到緩沖。第二,P0.7—P0.0在CPU訪問片外存儲器時用于傳送片外存儲器de低8位地址,然后傳送CPU對片外存儲器的讀寫</p><p> P1口 功能 :P1口的功能和P0口de第一功能相同,僅用于傳遞I/O輸入/輸出數據。 </p><p> P2口的功能 :P2口
38、的第一功能和上述兩組引腳的第一功能相同,即它可以作為通用I/O使用。它的第二功能和P0口引腳的第二功能相配合,作為地址總線用于輸出片外存儲器的高8位地址。 </p><p> P3口功能 :P3口有兩個功能:第一功能與其余三個端口的第一功能相同;第二功能作控制用,每個引腳都不同。</p><p> 表2.1 P3口第二功能</p><p><b>
39、如圖所示</b></p><p> 4.2時鐘電路和復位電路</p><p> 單片機的時鐘信號用來提供單片機內各種微操作的時間基準;復位操作則使單片機的片內電路初始化,使單片機從一種確定的狀態(tài)開始運行。</p><p><b> 1. 時鐘電路</b></p><p> 單片機的時鐘信號通常用兩種電
40、路形式得到:內部振蕩和外部振蕩方式。</p><p><b> 圖2 內部振蕩電路</b></p><p> 圖2.1 外部振蕩電路</p><p><b> 2 復位電路</b></p><p> 當MCS-5l系列單片機的復位引腳RST(全稱RESET)出現2個機器周期以上的高電平時,根
41、據應用的要求,復位操作通常有兩種基本形式:上電復位和上電或開關復位。</p><p> 上電復位要求接通電源后,自動實現復位操作。</p><p><b> 圖2.2 上電復位</b></p><p><b> 圖2.3 開關復位</b></p><p> 上電或開關復位要求電源接通后,單片
42、機自動復位,并且在單片機運行期間,用開關操作也能使單片機復位。上電后,由于電容C3的充電和反相門的作用,使RST持續(xù)一段時間的高電平。當單片機已在運行當中時,按下復位鍵K后松開,也能使RST為一段時間的高電平,從而實現上電或開關復位的操作。</p><p><b> 4.3顯示電路</b></p><p> led數碼管(LED Segment Displays)
43、是由多個發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內部連接完成,只需引出它們的各個筆劃,公共電極。led數碼管常用段數一般為7段有的另加一個小數點,還有一種是類似于3位“+1”型。位數有半位,1,2,3,4,5,6,8,10位等等....,led數碼管根據LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因為不同類型的數碼管,除了它們的硬件電路有差異外,編程方法也是不同的。圖2是共陰和共陽極數碼管的內部
44、電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。顏色有紅,綠,藍,黃等幾種。led數碼管廣泛用于儀表,時鐘,車站,家電等場合。選用時要注意產品尺寸顏色,功耗,亮度,波長等。下面將介紹常用LED數碼管內部引腳圖片 圖1 這是一個7段兩位帶小數點 10引腳的LED數碼管 圖2 引腳定義 每一筆劃都是對應一個字母表示 DP是小數點</p><p> 每一筆劃都是對應一個字母表示 DP是小數點. &l
45、t;/p><p> LED數碼管引腳定義</p><p> 10引腳的LED數碼管</p><p><b> 驅動方式</b></p><p><b> 概述</b></p><p> 數碼管要正常顯示,就要用驅動電路來驅動數碼管的各個段碼,從而顯示出我們要的數字,因此
46、根據數碼管的驅動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。 </p><p><b> 靜態(tài)顯示驅動</b></p><p> 靜態(tài)驅動也稱直流驅動。靜態(tài)驅動是指每個數碼管的每一個段碼都由一個單片機的I/O端口進行驅動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅動。靜態(tài)驅動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅動5個數碼管靜態(tài)顯示則需要5
47、15;8=40根I/O端口來驅動,要知道一個89S51單片機可用的I/O端口才32個呢:),實際應用時必須增加譯碼驅動器進行驅動,增加了硬件電路的復雜性。</p><p><b> 動態(tài)顯示驅動</b></p><p> 數碼管動態(tài)顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態(tài)驅動是將所有數碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp&q
48、uot;的同名端連在一起,另外為每個數碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數碼管都接收到相同的字形碼,但究竟是那個數碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。通過分時輪流控制各個數碼管的的COM端,就使各個數碼管輪流受控顯示,這就是動態(tài)驅動。在輪流顯示過程中,每位數碼管的點
49、亮時間為1~2ms,由于人的視覺暫留現象及發(fā)光二極管的余輝效應,盡管實際上各位數碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數據,不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。 </p><p><b> 主要參數</b></p><p><b> 8字高度</b></
50、p><p> 8字上沿與下沿的距離。比外型高度小。通常用英寸來表示。范圍一般為0.25-20英寸。 </p><p><b> 長*寬*高</b></p><p> 長——數碼管正放時,水平方向的長度;寬——數碼管正放時,垂直方向上的長度;高——數碼管的厚度。 </p><p><b> 時鐘點</b
51、></p><p> 四位數碼管中,第二位8與第三位8字中間的二個點。一般用于顯示時鐘中的秒。 </p><p> 數碼管使用的電流與電壓</p><p><b> 電流</b></p><p> 靜態(tài)時,推薦使用10-15mA;動態(tài)時,16/1動態(tài)掃描時,平均電流為4-5mA,峰值電流50-60mA。 &
52、lt;/p><p><b> 電壓</b></p><p> 數量是多少?當紅色與黃綠色時,使用1.9V乘以每段的芯片串聯的個數;當綠色/藍色時,使用3.1V乘以每段的芯片串聯的個數。 </p><p><b> 74ls244</b></p><p> 74LS244為3態(tài)8位緩沖器,一般用作
53、總線驅動器。74LS244沒有鎖存的功能。地址鎖存器就是一個暫存器,它根據控制信號的狀態(tài),將總線上地址代碼暫存起來。8086/8088數據和地址總線采用分時復用操作方法,即用同一總線既傳輸數據又傳輸地址。</p><p> 簡介 當微處理器與存儲器交換信號時,首先由CPU發(fā)出存儲器地址,同時發(fā)出允許鎖存信號ALE給鎖存器,當鎖存器接到該信號后將地址/數據總線上的地址鎖存在總線上,隨后才能傳輸數據。 </p
54、><p><b> 74ls244圖例</b></p><p> 鎖存器是一個很普通的時序電路。一般的,它在時鐘上升沿或者下降沿來的時候鎖存輸入,然后產生輸出,在其他的時候輸出都不跟隨輸入變化,這就是所謂邊緣觸發(fā)的D觸發(fā)器。 通常用作單片機的地址鎖存器的芯片有74LS373、8282、74LS273、74HC373等。 </p><p&g
55、t;<b> 74ls244</b></p><p> 74LS244、74LS273、74LS373、74LS377等芯片都能組成輸入、輸出接口。</p><p><b> 用途</b></p><p> 它主要用于三態(tài)輸出,作為地址驅動器、時鐘驅動器、總線驅動器和定向發(fā)送器等。其真值表如下:74Ls244真值表
56、 </p><p> 74LS244真值表</p><p><b> [1]</b></p><p> L表示低電平 H表示高電平 X表示不定狀態(tài) Z表示高阻態(tài) </p><p><b> 技術參數</b></p><p> 74Ls244技術參數
57、 </p><p> 本次設計采用數碼管,數碼管是最常用的一種顯示器件,它是由幾個發(fā)光二極管組成的8字段顯示器件,其特點是價格非常的便宜,使用也非常的方便,顯示效果非常的清楚。小電流下可以驅動每光,發(fā)光響應時間極短,體積小,重量輕,抗沖擊性能好,壽命長。但數碼管只能是顯示0——9的數據。不能夠顯示字符。這也是數碼管的不足之處。(見圖3)</p><p><b> 圖3
58、共陽數碼管</b></p><p> 這次設計中,采用的是74LS244中的1Y1到2Y4的輸出信號驅動數碼管的a .b.c.d.e.f.g七段顯示。(如圖4)</p><p><b> 圖4 顯示電路</b></p><p> 4.4模數(A/D)轉換電路</p><p><b> AD
59、C0809概述</b></p><p> ADC0809是美國國家半導體公司生產的CMOS工藝8通道,8位逐次逼近式A/D模數轉換器。其內部有一個8通道多路開關,它可以根據地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉換。是目前國內應用最廣泛的8位通用A/D芯片 </p><p><b> 1.主要特性</b></p>
60、<p> 1)8路輸入通道,8位A/D轉換器,即分辨率為8位。 </p><p> 具有轉換起??刂贫?。</p><p> 3)轉換時間為100μs(時鐘為640kHz時),130μs(時鐘為500kHz時)</p><p> 4)單個+5V電源供電 </p><p> 5)模擬輸入電壓范圍0~+5V,不需零點和滿刻
61、度校準。</p><p> 6)工作溫度范圍為-40~+85攝氏度</p><p> 7)低功耗,約15mW。 </p><p><b> 2.內部結構</b></p><p> ADC0809是CMOS單片型逐次逼近式A/D轉換器,內部結構如圖所示,它由8路模擬開關、地址鎖存與譯碼器、比較器、8位開關樹型A/D
62、轉換器、逐次逼近寄存器、邏輯控制和定時電路組成。</p><p> 3.外部特性(引腳功能)</p><p> ADC0809芯片有28條引腳,采用雙列直插式封裝,如圖所示。</p><p> 下面說明各引腳功能。 </p><p> IN0~IN7:8路模擬量輸入端。 </p><p> 2-1~2-8
63、:8位數字量輸出端。 </p><p> ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路 </p><p> ALE:地址鎖存允許信號,輸入,高電平有效。</p><p> START: A/D轉換啟動脈沖輸入端,輸入一個正脈沖(至少100ns寬)使其啟動(脈沖上升沿使0809復位,下降沿啟動A/D轉換)。 </p&g
64、t;<p> EOC: A/D轉換結束信號,輸出,當A/D轉換結束時,此端輸出一個高電平(轉換期間一直為低電平)。 </p><p> OE:數據輸出允許信號,輸入,高電平有效。當A/D轉換結束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數字量。 </p><p> CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。 </p><p&g
65、t; REF(+)、REF(-):基準電壓。 </p><p> Vcc:電源,單一+5V。 </p><p><b> GND:地。 </b></p><p> ADC0809的工作過程</p><p> 首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經譯碼選通8路模擬輸入之一到比較器
66、。START上升沿將逐次逼近寄存器復位。下降沿啟動 A/D轉換,之后EOC輸出信號變低,指示轉換正在進行。直到A/D轉換完成,EOC變?yōu)楦唠娖?,指示A/D轉換結束,結果數據已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平 時,輸出三態(tài)門打開,轉換結果的數字量輸出到數據總線上。 轉換數據的傳送 A/D轉換后得到的數據應及時傳送給單片機進行處理。數據傳送的關鍵問題是如何確認A/D轉換的完成,因為只有確認完成后,才能進行傳送。為此可
67、采用下述三種方式。 </p><p> 定時傳送方式 對于一種A/D轉換器來說,轉換時間作為一項技術指標是已知的和固定的。例如ADC0809轉換時間為128μs,相當于6MHz的MCS-51單片機共64個機器周期??蓳嗽O計一個延時子程序,A/D轉換啟動后即調用此子程序,延遲時間一到,轉換肯定已經完成了,接著就可進行數據傳送。 </p><p> ( 2 )查詢方式 A
68、/D轉換芯片由表明轉換完成的狀態(tài)信號,例如ADC0809的EOC端。因此可以用查詢方式,測試EOC的狀態(tài),即可確認轉換是否完成,并接著進行數據傳送。 </p><p> 中斷方式 把表明轉換完成的狀態(tài)信號(EOC)作為中斷請求信號,以中斷方式進行數據傳送。 不管使用上述哪種方式,只要一旦確定轉換完成,即可通過指令進行數據傳送。首先送出口地址并以信號有效時,OE信號即有效,把轉換數據送上數據總線,供單片
69、機接受。</p><p> 因為AD0809是8位逐次逼近型A/D轉換器,它是由一個8路的模擬開關、一個地址鎖存譯碼器、一個A/D 轉換器和一個三態(tài)輸出鎖存器組成。多路開關可選通8個模擬通道,允許8 路模擬量分時輸入,共用A/D 轉換器進行轉換。些A/D轉換器是的特點是8位精度,屬于并行口,如果輸入的模擬量變化大快,必須在輸入之前增加采樣電路。(如圖5)</p><p> 圖5 A/
70、D轉換電路</p><p> 第五章 系統軟件的設計</p><p><b> 5.1主程序</b></p><p> 在剛上電時,系統默認為循環(huán)顯示8個通道的電壓值狀態(tài)。當進行一次測量后,將顯示每一通道的A/D轉換值,每個通道的數據顯示時間為1S左右。主程序在調用顯示子程序和測試之程序之間循環(huán),主程序流程圖見圖。(整體電路圖見附錄1)&
71、lt;/p><p><b> 主程序流程圖</b></p><p> ;* </p><p><b> 。</b></p><p><b> A/D轉換流程圖</b></p><p> 數字電壓表程序清單(見附錄2)<
72、/p><p> #include<reg52.h></p><p> #include<intrins.h></p><p> #define uchar unsigned char </p><p> #define uint unsigned int</p><p> sbit ST=
73、P2^3;</p><p> sbit OE =P2^5;</p><p> sbit EOC =P3^2;</p><p> sbit clk=P3^3;</p><p> sbit key1=P3^6;</p><p> sbit AT=P2^0;</p><p> sbit B
74、T=P2^1;</p><p> sbit CT=P2^2;</p><p> sbit seg1=P3^0;</p><p> sbit seg2=P3^1;</p><p> sbit seg3=P3^7;</p><p> sbit seg4=P2^4;</p><p><
75、;b> uint dat;</b></p><p> uint dianya;</p><p> uint a1,a2,a3,a4;</p><p> code unsigned char tab[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};//小數部分 </p>
76、<p> //code unsigned char tab1[]={0x02,0x9e,0x24,0x0c,0x98,0x48,0x40,0x1e,0x00,0x08};//整數部分</p><p> void delay(uint z ) //延時微妙級函數</p><p><b> {</b></p><p> wh
77、ile(z--);</p><p><b> }</b></p><p> void delayms(uint n)//延時nms程序</p><p><b> {</b></p><p><b> uint i,j;</b></p><p>
78、 for(i=n;i>0;i--)</p><p> for(j=110;j>0;j--);</p><p><b> }</b></p><p> void clock() //時鐘函數</p><p><b> {</b></p><p> T
79、MOD=0X20;</p><p><b> TH1=0xce;</b></p><p><b> TL1=0xce;</b></p><p><b> EA=1;</b></p><p><b> ET1=1;</b></p>&l
80、t;p><b> TR1=1;</b></p><p><b> }</b></p><p> void zhuanhuan()//adc0809轉換函數</p><p><b> {AT=0;</b></p><p><b> BT=0;<
81、;/b></p><p><b> CT=0;</b></p><p><b> OE=0;</b></p><p><b> ST=1;</b></p><p> delay(800);</p><p><b> ST=0;&
82、lt;/b></p><p> delayms(5);</p><p> while(EOC==0);</p><p><b> OE=1;</b></p><p><b> dat=P0;</b></p><p> dianya=dat*2;</p&g
83、t;<p> a1=dianya%1000/100;</p><p> a2=dianya%100/10;</p><p> a3=dianya%10;</p><p> a4=dianya/1000;</p><p><b> }</b></p><p> void d
84、isp(a1,a2,a3,a4)//數碼管顯示函數</p><p><b> {</b></p><p> P1=tab[a4];</p><p><b> seg1=0;</b></p><p> delay(200);</p><p><b> se
85、g1=1;</b></p><p> P1=tab[a1]; </p><p><b> seg2=0;</b></p><p> delay(200);</p><p><b> seg2=1;</b></p><p> P1=tab[a2];<
86、/p><p><b> seg3=0;</b></p><p> delay(200);</p><p><b> seg3=1;</b></p><p> P1=tab[a3];</p><p><b> seg4=0;</b></p>
87、;<p> delay(200);</p><p><b> seg4=1;</b></p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p><
88、b> clock();</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> zhuanhuan();</p><p> disp(a1,a2,a3,a4);</p><p><b
89、> }</b></p><p><b> }</b></p><p> void timer1(void) interrupt 3 //定時器1</p><p><b> {</b></p><p><b> TH1=0xce;</b></
90、p><p><b> TL1=0xce;</b></p><p><b> clk=~clk;</b></p><p><b> }</b></p><p><b> 第六章 系統的調試</b></p><p> 完成了系統的
91、硬件設計,制作和軟件編程之后,要使系統能夠按設計意圖正常運行,必須進行系件和軟件調統調試。調試分了硬試</p><p><b> 6.1 硬件的調試</b></p><p> 硬件調試的主要任務是排除硬件故障,其中包括設計的錯誤和工藝性故障等。</p><p> 1.檢查所設計的硬件電路板所有的器件和引腳是否正確,尤其是電源的連接是否正確
92、;檢查各總線是否有短路的故障。檢查開關/按鍵是否正常,是否連接正確,為了保護芯片,應先對各IC座電位進行檢查,確認無誤后再插入芯片。</p><p> a.第一步,我們用數字萬用表進行了逐一對點的檢查,檢查各導線間是否有短路與開路的故障。(檢測導線導通-連接無誤)</p><p> b.第二步測輸入5V電源(0V地)線是否與電路中的對應點的電源(地)線相連接是否正確;及檢查開關/按鍵是
93、否正常,是否連接正確。(檢測導線導通-連接無誤-按鍵正常)</p><p> c.測芯片管座與芯片管座之間用導線連接起來的對應腳是否導通與截止。(檢測對應腳的導線連接導通-連接正常)</p><p> 2.將40芯片的仿真插頭插入單片機插座進行調試,檢查各接口是否滿足設計的要求,有正常的程序測試硬件電路的好壞。。</p><p> 3.將顯示子程序經過keil
94、l軟件仿真生成(.hex)文件,用編程器將生成的(.hex)文件寫入AT89S52芯片。</p><p> 4.將寫入顯示程序的芯片AT89C51插入硬件電路單片機管座,觀看顯示電路的4路數碼管是否正常發(fā)光?!緮荡a管發(fā)光正常-電路能運行】</p><p> 5.將整機程序生成的(.hex)文件寫入AT89s52芯片,插入單片機插座進行調試,檢查各接口是否滿足設計的要求,有正常的程序測試
95、硬件電路的好壞。當我們把前幾步準備工作都做完以后通電進行總調。</p><p> a.通道號為0時,測ADC0809的26腳(IN0)顯示電路顯示通道號與電壓值為02.95,對可變電位器進行調試,顯示電壓變動,用萬用表檢測ADC0809的28腳對地電壓,與設計的顯示器上的值相差無幾。</p><p> b.通道號為1時,測ADC0809的27腳(IN1)顯示電路顯示通道號與電壓值為12
96、.45,對可變電位器進行調試,顯示電壓變動,萬用表測試正常。</p><p> c. 通道號為2時,測ADC0809的28腳(IN2)顯示電路顯示通道號與電壓值為24.45,對可變電位器進行調試,顯示電壓變動,萬用表測試正常。</p><p> d.當按下【單路/多路巡檢】時,通道號與電壓值同步改變正常,再按一下【單路/多路巡檢】時通道號與電壓固定不再變動。因為我們做的是3路巡檢,所以
97、當顯示電路的通道號為2時,下一步顯示電路的通道號將變?yōu)?。</p><p> e.按下【通道選擇】時,每當按一下時變一通道,在按一下時又變一個通道,即完成通道號的選擇。</p><p> f.按下【復位】按鍵時,通道號將變成0通道,電壓也為初始值。</p><p> g.硬件電路調試與測試均正常。</p><p> ?。ㄓ布{試結果見附
98、錄4)</p><p><b> 6.2 軟件的調試</b></p><p> 軟件調試的任務是利用開發(fā)工具進行在線仿真調試,發(fā)現和糾正程序的錯誤,同時也能發(fā)現硬件的故障。軟件調試是一個模塊一個模塊進行的。首先單獨調試各子程序是否能夠按照預期的功能,接口電路的控制是否正常。最后調試整個程序。尤其注意的是各模塊間能否正確的傳遞參數。</p><p
99、> 1. 檢查LED顯示模塊程序。觀察在LED上是否能夠顯示相應的字符。</p><p> 2. 檢查按鍵模塊程序。</p><p> 3. 檢查A/D轉換模塊程序??梢栽谟布娐返妮斎攵溯斎胍阎膸讉€電壓,分別觀察LED上是否顯示相應的電壓值。(軟件調試結果見附錄4)</p><p> 4.所有程序運行正常后,在這個程序中加入中斷延時50ms。(軟件
100、調試后加入中斷程序清單見附錄3)</p><p><b> 七、 心得體會</b></p><p> 經過將近兩周的單片機設計實訓,終于完成了數字電壓表的設計,這次設計基本達到設計要求,這是我們團隊合作的結果,在這次實訓中我們分工合作,發(fā)揮團隊精神最后完成了設計??粗O計出來的產品內心無比高興,同時通過這次的實訓我也明白了很多。</p><p&
101、gt; 在本次設計的過程中,我發(fā)現很多的問題,雖然以前還做過這樣的設計但這次設計讓我增長很多知識。對于這次的單片機設計,是把硬件和軟件結合起來的設計,這也是我們第一次做這樣的硬軟件結合的設計。在這次設計中,其硬件電路是比較簡單的,但也需要足夠的耐心加細心,同時也需要一定的硬件知識基礎。只有這樣才能保證電路的成功。而且在這次設計中硬件是基礎,只有把基礎打好才會有更高的設計。硬件工作完成了就是解決程序設計的問題,程序設計是一個很靈活的東西
102、,它反映了我們解決問題的邏輯思維和創(chuàng)新能力,它是一個設計的靈魂所在。因此在整個設計過程中大部分時間是用在程序上面的。很多子程序是可以借鑒書本上的,但怎樣銜接各個子程序才是關鍵的問題所在,這需要對單片機的結構很熟悉。通過我們努力和老師的指導最終完成了程序設計。</p><p> 要設計一個成功的電路,必須要有耐心,要有堅持的毅力。在整個電路的設計過程中,花費時間最多的是各個單元電路的連接及電路的細節(jié)設計上,如在多
103、種方案的選擇中,我們仔細比較分析其原理以及可行的原因。這就要求我們對硬件系統中各組件部分有充分透徹的理解和研究,并能對之靈活應用。通過這次實訓,我在書本理論知識的基礎上又有了更深層次的理解。</p><p> 在兩周的實訓中,收獲知識的同時,還收獲了閱歷,收獲了成熟與合作。我們通過查找大量資料,請教老師,以及不懈的努力,不僅培養(yǎng)了獨立思考的能力還培養(yǎng)了動手操作能力。更重要的是我們學會了學習的方法,這是日后最實用
104、的。面對社會的挑戰(zhàn),只有通過不斷的學習和實踐才能完成知識的積累,才能更好的提高自己取得更好的成績。</p><p><b> 致謝</b></p><p> 通過這一階段的努力,我的畢業(yè)論文《基于單片機的數字電壓表的設計》終于完成了, 這意味著大學生活即將結束。在大學階段,我在學習上和思想上都受益非淺,這 除了自身的努力外,與各位老師、同學和朋友的關心、支持和鼓勵
105、是分不開的。 </p><p> 在本論文的寫作過程中, 我的導師xx 老師傾注了大量的心血, 從選題到開 題報告,從寫作提綱,到一遍又一遍地指出每稿中的具體問題,嚴格把關,循循 善誘,在此我表示衷心感謝。同時我還要感謝在我學習期間給我極大關心和支持 的各位老師以及關心我的同學和朋友。 寫作畢業(yè)論文是一次再系統學習的過程,畢業(yè)論文的完成,同樣也意味著新 的學習生活的開始。我將銘記我曾是一名 西華師范大學 學子,
106、在今后的工作中把xx大學 的優(yōu) 良傳統發(fā)揚光大。 </p><p> 感謝各位專家的批評指導!</p><p><b> 八、參考文獻</b></p><p> 1、 余錫存 曹國華 《單片機原理及接口技術》 (第二版)[M] 西安電子科技大學出版社</p><p> 2、蔡明文 馮先成 《單片機課程設
107、計 》 [M] 北京: 華中科技大學出版社 2007年12月</p><p> 3、零點工作室 劉剛 彭榮群《 Protel DXP 2004 SP2 》 [M] 北京: 電子工業(yè)出版社</p><p> 4譚浩強 《C程序設計》(第三版) [M] 北京: 清華大學出版社</p><p> ?。掂嵗颉《瓬Y 《C++語言程序設計》(第3版)
108、 [M] 北京: 清華大學出版社</p><p><b> 附錄一</b></p><p><b> 附錄2</b></p><p><b> 失敗的PCB板</b></p><p><b> 成功的PCB板</b></p>&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設計---基于單片機的數字電壓表
- 單片機的數字電壓表畢業(yè)設計
- 畢業(yè)設計--單片機數字電壓表的設計
- 基于單片機的數字電壓表的畢業(yè)設計
- 畢業(yè)設計--基于單片機的數字電壓表的設計
- 基于單片機的數字電壓表的設計-畢業(yè)設計
- 基于單片機的數字電壓表畢業(yè)設計論文
- 基于單片機的數字電壓表設計畢業(yè)設計論文
- 基于單片機的數字電壓表的設計畢業(yè)設計論文
- 畢業(yè)設計(論文)-基于單片機的簡易數字電壓表設計
- 數字電壓表單片機畢業(yè)設計
- 數字電壓表畢業(yè)論文--基于51單片機的數字電壓表設計
- 基于單片機的數字電壓表設計
- 數字電壓表單片機畢業(yè)設計
- 數字電壓表單片機畢業(yè)設計
- 基于單片機的數字電壓表設計設計
- 單片機課程設計---基于單片機的數字電壓表設計
- 數字電壓表課程設計--基于單片機的簡易數字電壓表的設計
- 基于單片機的數字電壓表的設計
- 基于單片機的數字電壓表的設計
評論
0/150
提交評論