版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 單片機(jī)課程設(shè)計(jì)</b></p><p> 簡(jiǎn)易數(shù)字電壓表的設(shè)計(jì)</p><p><b> 目 錄</b></p><p> 第一章 課程設(shè)計(jì)任務(wù)書(shū)2</p><p> 1.1 設(shè)計(jì)題目2</p><p> 1.2 設(shè)計(jì)目的2
2、</p><p> 1.3 設(shè)計(jì)任務(wù)及要求2</p><p> 1.4 設(shè)計(jì)時(shí)間及進(jìn)度安排2</p><p> 第二章 課程設(shè)計(jì)說(shuō)明書(shū)3</p><p> 2.1 目前發(fā)展?fàn)顩r3</p><p> 2.2 設(shè)計(jì)方案3</p><p> 2.3 系統(tǒng)硬件電路的設(shè)計(jì)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è)計(jì)14</p><p> 2.6 精度測(cè)試15</p><p> 第三章 心得體會(huì)16</p><p><b>
9、 參考文獻(xiàn)17</b></p><p><b> 源程序17</b></p><p> 簡(jiǎn)易數(shù)字電壓表的設(shè)計(jì)</p><p> 課程設(shè)計(jì)目的和要求:</p><p> 對(duì)簡(jiǎn)易數(shù)字電壓表的設(shè)計(jì),掌握目前自動(dòng)儀表的一般設(shè)計(jì)要求,工程設(shè)計(jì)方法,開(kāi)發(fā)及設(shè)計(jì)工具的使用方法。</p><p
10、><b> 功能要求:</b></p><p> 可以測(cè)量0---5V的8路輸入電壓值;</p><p> 可在四位LED數(shù)碼管上輪流顯示或單路選擇顯示;</p><p> 測(cè)量最小分辨率為0.019V;</p><p> 測(cè)量誤差約為0.02V</p><p><b>
11、 帶有一定的擴(kuò)展功能</b></p><p><b> 設(shè)計(jì)內(nèi)容:</b></p><p><b> 1.元器件選型:</b></p><p> A/D轉(zhuǎn)換器芯片ADC0809,AT89C52單片機(jī),4位共陽(yáng)極數(shù)碼管</p><p><b> 2.系統(tǒng)方案確定:<
12、;/b></p><p> 按系統(tǒng)功能實(shí)現(xiàn)要求,決定控制系統(tǒng)采用AT89C52單片機(jī),A/D轉(zhuǎn)換采用ADC0809。系統(tǒng)除能確保實(shí)現(xiàn)要求的功能外,還可以方便地進(jìn)行8路其他A/D轉(zhuǎn)換量的測(cè)量、遠(yuǎn)程測(cè)量結(jié)果傳送等擴(kuò)展功能。數(shù)字電壓表系統(tǒng)設(shè)計(jì)方案框圖如圖。</p><p> P0:地址數(shù)據(jù)低8位口 P1:普通I/O口 P2:地址高8位口 P3:特殊功能口</p>&
13、lt;p> 晶振電路保證信號(hào)傳輸同步,串口通信是與外界進(jìn)行信息交換的一種方式, 按鍵電路中一個(gè)按鍵是單路和輪流顯示的選擇,一個(gè)按鍵是單路時(shí)的通道選擇。</p><p><b> 實(shí)現(xiàn)過(guò)程:</b></p><p> 當(dāng)外部0~5V的模擬信號(hào)輸入時(shí),首先通過(guò)ADC8090轉(zhuǎn)換模塊進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換成數(shù)字信號(hào)并進(jìn)入通道進(jìn)行選擇后,將信號(hào)傳入AT89C52單片機(jī)時(shí),
14、單片機(jī)通過(guò)按鍵電路中的一個(gè)按鍵來(lái)選擇單路還是8路,另一個(gè)按鍵作單路顯示時(shí)選擇通道,當(dāng)選擇完畢后將數(shù)據(jù)送入到顯示器,通過(guò)P3特殊功能口經(jīng)三極管驅(qū)動(dòng)輸出控制位。</p><p><b> 系統(tǒng)硬件部分:</b></p><p> 1. AT89C52單片機(jī):</p><p> AT89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k
15、 bytes的可反復(fù)擦寫(xiě)的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,功能強(qiáng)大的AT89C52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場(chǎng)合。</p><p> AT89C52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)
16、16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫(xiě)口線,AT89C52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫(xiě)的Flash存儲(chǔ)器可有效地降低開(kāi)發(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位漏極開(kāi)路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8個(gè)TTL邏輯門(mén)電路,對(duì)端口P0寫(xiě)“1”時(shí),可作為高阻抗輸入端用。<
18、;/p><p> 在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問(wèn)期間激活內(nèi)部上拉電阻。</p><p> 在Flash編程時(shí),P0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。</p><p> P1口:P1是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL
19、邏輯門(mén)電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流</p><p> 與AT89C51不同之處是,P1.0和P1.1還可分別作為定時(shí)/計(jì)數(shù)器2的外部計(jì)數(shù)輸入.flash編程和程序校驗(yàn)期間,P1接收低8位地址。(P1.0/T2)和輸入(P1.1/T2EX),</p><p> P2口
20、:P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門(mén)電路。對(duì)端口P2寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流</p><p> 在訪問(wèn)外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX@DPTR指令)時(shí),P2口送出高8位地址數(shù)據(jù)。在訪問(wèn)8位地址的外部數(shù)據(jù)
21、存儲(chǔ)器(如執(zhí)行MOVX@RI指令)時(shí),P2口輸出P2鎖存器的內(nèi)容。</p><p> P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門(mén)電路。對(duì)P3口寫(xiě)入“1”時(shí),它們被內(nèi)部上位電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3口將用上拉電阻輸出電流</p><p> P3口除了作為一般的I/O口線外,更重要的用途是它的第二功
22、能,</p><p> P3口還接收一些用于Flash閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。</p><p> RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片復(fù)位。</p><p> ALE/PROG:當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1
23、/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE脈沖?!?duì)Flash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。</p><p> 如有必要,可通過(guò)對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置AL
24、E禁止位無(wú)效。</p><p> PSEN:程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次RSEN信號(hào)。</p><p> EA/VPP:外部訪問(wèn)允許。欲使CPU僅訪問(wèn)外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端必須保持低電平
25、(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令?!lash存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電源VPP,當(dāng)然這必須是該器件是使用12V編程電壓VPP。</p><p> XTAL1:振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。</p><p> XTAL2:振蕩器反相放大器的輸出端。
26、</p><p> 2.外部時(shí)鐘:輸入端接在XTAL1</p><p> 輸出端接在XTAL2</p><p> 晶體可以在1.2mhz-12mhz之間任選,電容可以在20-60uf之間選擇。</p><p> 3.74ls244:是一個(gè)緩沖輸入口,同時(shí)也是一個(gè)單向驅(qū)動(dòng)器一減輕總線負(fù)擔(dān)。</p><p> 4
27、.mc14024:用與二進(jìn)制計(jì)數(shù)。</p><p> 5.ADC0809:A/D轉(zhuǎn)換器:</p><p> ADC0809是采樣頻率為8位的、以逐次逼近原理進(jìn)行?!獢?shù)轉(zhuǎn)換的器件。其內(nèi)部有一個(gè)8通道多路開(kāi)關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號(hào),只選通8個(gè)單斷模擬輸入信號(hào)中的一個(gè)進(jìn)行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)換時(shí)間為100μs</p><p> 4)單個(gè)+5V電源供電 </p><p> 5)模擬輸入電壓范圍0~+5V,不需零點(diǎn)和滿(mǎn)刻度校準(zhǔn)。 </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路模擬開(kāi)關(guān)、地址鎖存與譯碼器、比較器、8位開(kāi)關(guān)樹(shù)型D/A轉(zhuǎn)換器、逐次逼近 </p&g
30、t;<p> 3.外部特性(引腳功能) </p><p> ADC0809芯片有28條引腳,采用雙列直插式封裝,如圖所示。下面說(shuō)明各引腳功能。 </p><p> IN0~I(xiàn)N7:8路模擬量輸入端。</p><p> 2-1~2-8:8位數(shù)字量輸出端。</p><p> ADDA、ADDB、ADDC:3位地址輸入線,用
31、于選通8路模擬輸入中的一路</p><p> ALE:地址鎖存允許信號(hào),輸入,高電平有效。 </p><p> START: A/D轉(zhuǎn)換啟動(dòng)信號(hào),輸入,高電平有效。 </p><p> EOC: A/D轉(zhuǎn)換結(jié)束信號(hào),輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平(轉(zhuǎn)換期間一直為低電平)。 </p><p> OE:數(shù)據(jù)輸出允許信號(hào),輸入
32、,高電平有效。當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸入一個(gè)高電平,才能打開(kāi)輸出三態(tài)門(mén),輸出數(shù)字量。</p><p> CLK:時(shí)鐘脈沖輸入端。要求時(shí)鐘頻率不高于640KHZ。 </p><p> REF(+)、REF(-):基準(zhǔn)電壓。 </p><p> Vcc:電源,單一+5V。 </p><p><b> GND:地。 </b
33、></p><p> ADC0809的工作過(guò)程是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動(dòng) A/D轉(zhuǎn)換,之后EOC輸出信號(hào)變低,指示轉(zhuǎn)換正在進(jìn)行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖剑甘続/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號(hào)可用作中斷申請(qǐng)。當(dāng)OE輸入高電平 時(shí),輸出三態(tài)門(mén)打開(kāi),轉(zhuǎn)換結(jié)果的數(shù)
34、字量輸出到數(shù)據(jù)總線上。</p><p> 圖中多路開(kāi)關(guān)可選通8個(gè)模擬通道,允許8路模擬量分時(shí)輸入,共用一個(gè)A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換,這是一種經(jīng)濟(jì)的多路數(shù)據(jù)采集方法。地址鎖存與譯碼電路完成對(duì)A、B、C 3個(gè)地址位進(jìn)行鎖存和譯碼,其譯碼輸出用于通道選擇,其轉(zhuǎn)換結(jié)果通過(guò)三態(tài)輸出鎖存器存放、輸出,因此可以直接與系統(tǒng)數(shù)據(jù)總線相連,下圖為通道選擇表。 </p><p> 系統(tǒng)硬件電路的設(shè)計(jì):</
35、p><p> 簡(jiǎn)易數(shù)字電壓測(cè)量電路由A/D轉(zhuǎn)換、數(shù)據(jù)處理及顯示控制等組成,電路原理圖如圖所示。A/D轉(zhuǎn)換由集成電路0809完成。0809具有8路模擬輸入端口,地址線(23~ 25腳)可決定對(duì)哪一路模擬輸入作A/D轉(zhuǎn)換。22腳為地址鎖存控制,當(dāng)輸入為高電平時(shí),對(duì)地址信號(hào)進(jìn)行鎖存。6腳為測(cè)試控制,當(dāng)輸入一個(gè)2uS寬高電平脈沖時(shí),就開(kāi)始A/D轉(zhuǎn)換。7腳為A/D轉(zhuǎn)換結(jié)束標(biāo)志,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),7腳輸出高電平。9腳為A/D
36、轉(zhuǎn)換數(shù)據(jù)輸出允許控制,當(dāng)OE腳為高電平時(shí),A/D轉(zhuǎn)換數(shù)據(jù)從該端口輸出。10腳為0809的時(shí)鐘輸入端,利用單片機(jī)30腳的六分頻晶振頻率再通過(guò)14024二分頻得到1MHz時(shí)鐘。單片機(jī)的P1、P3.0~P3.3端口作為四位LED數(shù)碼管顯示控制。P3.5端口用作單路顯示/循環(huán)顯示轉(zhuǎn)換按鈕,P3.6端口用作單路顯示時(shí)選擇通道。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:二進(jìn)制計(jì)數(shù)器 (仿真用觸發(fā)器代替)</p><p> 74LS244:是一個(gè)緩沖輸入口,同時(shí)也是一個(gè)單向驅(qū)動(dòng)器以減輕總線
38、負(fù)擔(dān)</p><p><b> 主程序</b></p><p> 在剛上電時(shí),系統(tǒng)默認(rèn)為循環(huán)顯示8個(gè)通道的電壓值狀態(tài)。當(dāng)進(jìn)行一次測(cè)量后,將顯示每一通道的A/D轉(zhuǎn)換值,每個(gè)通道的數(shù)據(jù)顯示時(shí)間為1S左右。主程序在調(diào)用顯示子程序和測(cè)試之程序之間循環(huán),主程序流程圖見(jiàn)圖。</p><p> 附錄 簡(jiǎn)易數(shù)字電壓表的單片機(jī)控制源程序</p>
39、;<p> *********************</p><p> * 簡(jiǎn)易數(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 ;測(cè)量一次</p><p> LCALL
49、 DISPLAY ;顯示數(shù)據(jù)一次</p><p><b> AJMPMAIN</b></p><p> NOP;PC值出錯(cuò)處理</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路信號(hào)循環(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 ;每路顯示時(shí)間控制
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 ;每路顯示時(shí)間控制 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運(yùn)算</p><p> MOV B,#51 ;</p><p> DIV AB
60、 ;</p><p> MOV 7AH,A ;個(gè)位數(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> ;共陽(yáng)顯示子程序,顯示內(nèi)容在78H—7BH</p><p><b> ;</b></p><p> DISP: MOV R1,#78H ;共陽(yáng)顯示子程序,顯示內(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ù)點(diǎn)處理</p><p> CLR P1.7 ;小數(shù)點(diǎn)顯示(顯示格式為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、 延時(shí)程序 *</p><p> ;*************************************</p><p><b> ;</b></p><p> DL10MS: MOV R6,#0D0H ;10MS延時(shí)子程序</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> ;* ? 電壓測(cè)量(A/D)子程序 *</p><p> ;*********************
76、****************</p><p> ; 一次測(cè)量數(shù)據(jù)8個(gè),依次放入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 ;啟動(dòng)測(cè)試</p><p> WAIT: JB P3.7,MOVD ;等A/D轉(zhuǎn)換結(jié)束信號(hào)</p><p
78、> AJMP WAIT</p><p><b> ;</b></p><p> TESTART: SETB P2.3 ;測(cè)試啟動(dòng)</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é)束恢復(fù)端口</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> ;* ? 按鍵檢測(cè)子程序 *</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 ;延時(shí)消抖</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 ;鍵釋放等待時(shí)顯示用</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 ;延時(shí)消抖用</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 ;鍵釋放等待時(shí)顯示用</p><p> AJMP WAIT22</p><p><b> ;</b></p><p><b> END</b>
93、</p><p><b> 三 心得體會(huì)</b></p><p> 作為一個(gè)測(cè)控專(zhuān)業(yè)的大三的學(xué)生, 我覺(jué)得做單片機(jī)課程設(shè)計(jì)是十分有意義的,而且是十分必要的。我們?cè)谡n堂上掌握的僅僅是專(zhuān)業(yè)課的理論知識(shí),如何去鍛煉我們的實(shí)踐能力?如何把我們所學(xué)的專(zhuān)業(yè)基礎(chǔ)課理論知識(shí)運(yùn)用到實(shí)踐中去呢?我想做類(lèi)似的課程設(shè)計(jì)就為我們提供了良好的實(shí)踐平臺(tái)。</p><p>
94、; 這次課程設(shè)計(jì)歷時(shí)兩周,在這兩周中我發(fā)現(xiàn)我們不僅學(xué)習(xí)到了課堂上不能學(xué)到的最主要的是學(xué)會(huì)了團(tuán)隊(duì)合作。在這次任務(wù)中我們組十個(gè)人都有明確的分工:有編程序的,有畫(huà)電路圖的,我的任務(wù)是讀程序,就是找出程序中的錯(cuò)誤。</p><p> 這次課程設(shè)計(jì)我們的題目是做一個(gè)簡(jiǎn)易的數(shù)字電壓表的設(shè)計(jì),其中要求簡(jiǎn)易數(shù)字電壓表可以測(cè)量0到5V范圍內(nèi)的8路輸入電壓值,并在4位LED數(shù)碼管上輪流顯示或單路選擇顯示,而且要求測(cè)量最小分辨率為
95、0.02V。</p><p> 通過(guò)這次的單片機(jī)課程設(shè)計(jì)不僅使我們學(xué)習(xí)到了課本以外的知識(shí),最主要的是這次的課程設(shè)計(jì)將我們以前所學(xué)的課程都串了起來(lái),比如模擬電路,數(shù)字電路等等,使我們對(duì)以前的知識(shí)又復(fù)習(xí)了一遍,同時(shí)也使我們發(fā)現(xiàn)我們前面所學(xué)的知識(shí)是多么的淺薄,比如雖然知道這是用數(shù)電或者模電的知識(shí),但是還是跟沒(méi)學(xué)的一樣,當(dāng)我們真正用的時(shí)候卻發(fā)現(xiàn)問(wèn)題還是一大堆,尤其是在連接電路圖的時(shí)候</p><p&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 簡(jiǎn)易數(shù)字電壓表課程設(shè)計(jì)
- 簡(jiǎn)易數(shù)字電壓表 課程設(shè)計(jì)
- 簡(jiǎn)易數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)--基于單片機(jī)的簡(jiǎn)易數(shù)字電壓表的設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)--基于單片機(jī)的簡(jiǎn)易數(shù)字電壓表的設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表設(shè)計(jì)-課程設(shè)計(jì)
- 課程設(shè)計(jì)---數(shù)字電壓表設(shè)計(jì)
- 數(shù)字電壓表設(shè)計(jì)課程設(shè)計(jì)
- 數(shù)字電壓表設(shè)計(jì)-課程設(shè)計(jì)
- 數(shù)字電壓表的課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì) (2)
評(píng)論
0/150
提交評(píng)論