基于串行AD轉(zhuǎn)換器數(shù)字電壓表設(shè)計(jì)_第1頁
基于串行AD轉(zhuǎn)換器數(shù)字電壓表設(shè)計(jì)_第2頁
基于串行AD轉(zhuǎn)換器數(shù)字電壓表設(shè)計(jì)_第3頁
基于串行AD轉(zhuǎn)換器數(shù)字電壓表設(shè)計(jì)_第4頁
基于串行AD轉(zhuǎn)換器數(shù)字電壓表設(shè)計(jì)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、重慶三峽學(xué)院電子信息工程專業(yè)實(shí)訓(xùn)(串行A/D轉(zhuǎn)換器數(shù)字電壓表設(shè)計(jì))學(xué) 院: 年級(jí)專業(yè): 學(xué) 號(hào): 學(xué)生姓名: 指導(dǎo)教師: 完成日期 2012年11月30日基于TLC549串行A/D轉(zhuǎn)換器的簡(jiǎn)易電壓表的設(shè)計(jì)重慶三峽學(xué)院 摘要:本次設(shè)計(jì)的數(shù)字電壓表主要由AT89C51單片機(jī)、A/D轉(zhuǎn)換器TLC549、顯示電路等模塊組成。它是具有電壓測(cè)量功能的一定精度的數(shù)字電壓表。它可以測(cè)量0-5V的輸入電壓值,并在3位LED數(shù)碼管上顯示。測(cè)量最小分辨為0.020V,測(cè)量誤差約為±0.02V。以AT89C51單片機(jī)為核心,設(shè)計(jì)一個(gè)數(shù)字電壓表。用8位A/D轉(zhuǎn)換器TLC549進(jìn)行電壓信號(hào)的采集。由于系統(tǒng)構(gòu)造簡(jiǎn)

2、單,抗干擾能力較強(qiáng),具有一定的實(shí)用價(jià)值。關(guān)鍵字:?jiǎn)纹瑱C(jī);數(shù)字電壓表;A/D轉(zhuǎn)換;AT89C51;TLC549目錄第一章 設(shè)計(jì)要求3 1.1要求3第二章 數(shù)字電壓表3 2. 1數(shù)字電壓表的介紹3 2.2 數(shù)字電壓表的結(jié)構(gòu)3第三章 總體方案論證3第四章 系統(tǒng)軟件的設(shè)計(jì)4 4.1單片機(jī)控制部分4 4.1.1 單機(jī)片AT89C51內(nèi)部結(jié)構(gòu)概述44.1.2 AT89C51性能4TLC549的內(nèi)部結(jié)構(gòu)及工作原理5單機(jī)片AT89C51結(jié)構(gòu)6 4.1.5時(shí)鐘電路7 4.1.6復(fù)位電路74.1.7 總線擴(kuò)展電路和地址鎖存電路74.1.8 單片機(jī)部分總體結(jié)構(gòu)84.1.9 驅(qū)動(dòng)及顯示電路9第五章 程序設(shè)計(jì)10 5.

3、1 程序設(shè)計(jì)總方案10 5.2 系統(tǒng)子程序設(shè)計(jì)115.2.1 初始化程序115.2.2 A/D轉(zhuǎn)換子程序11 5.2.3 顯示子程序12第六章 仿真126.1 軟件調(diào)試126.2顯示結(jié)果及誤差分析136.2.1 顯示結(jié)果136.2.2 誤差分析15第七章 系統(tǒng)軟件的設(shè)計(jì)16 7.1 主程序167.2拆字子程序177.3掃描子程序17 7.4讀取字節(jié)子程序,讀出的值在ACC18 7.5標(biāo)度變換子程序19 7.6原理圖20 7.8最后結(jié)果21第八章 實(shí)訓(xùn)心得. 21參考文獻(xiàn)22附錄22致謝26第一章 設(shè)計(jì)要求1.1要求:1) 以TLC549串行A/D轉(zhuǎn)換器和AT89C51單片機(jī)設(shè)計(jì)一個(gè)5V的數(shù)字電

4、壓表,電壓值由電位器模擬。2) 采用3位LED顯示器,顯示格式為“.”V。1.2:擴(kuò)展要求:1) 顯示器采用LCD1602,顯示格式為:“.V”。采用定時(shí)采樣方式,每隔0.5秒進(jìn)行一次A/D采樣。第二章 數(shù)字電壓表2.1數(shù)字電壓表的介紹 數(shù)字電壓表(Digital Voltmeter)簡(jiǎn)稱DVM,它是采用數(shù)字化測(cè)量技術(shù),把連續(xù)的模擬量(直流輸入電壓)轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。2.2 數(shù)字電壓表的結(jié)構(gòu) 數(shù)字電壓表是諸多數(shù)字化儀表的核心與基礎(chǔ),電壓表的數(shù)字化是將連續(xù)的模擬量如直流電壓轉(zhuǎn)換成不連續(xù)的離散的數(shù)字形式并加以顯示,這有別于傳統(tǒng)的以指針加刻度盤進(jìn)行讀數(shù)的方法, 避免了讀數(shù)

5、的視差和視覺疲勞。目前數(shù)字電壓表的內(nèi)部核心部件是A/D轉(zhuǎn)換器, 轉(zhuǎn)換器的精度很大程度上影響著數(shù)字電壓表的準(zhǔn)確度,數(shù)字式電壓表是由高阻抗電壓表頭與分壓電路組成的。 各部分的功能:A/D轉(zhuǎn)換器:將輸入的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)?;鶞?zhǔn)電源:提供精密電壓,供A/D轉(zhuǎn)換器作參考電壓。譯碼器:將二-十進(jìn)制(BCD)碼轉(zhuǎn)換成七段信號(hào)。驅(qū)動(dòng)器:驅(qū)動(dòng)顯示器的a、b、c、d、e、f、g七個(gè)發(fā)光段,驅(qū)動(dòng)發(fā)光數(shù)碼管(LED)進(jìn)行顯示。顯示器:將譯碼輸出的七段信號(hào)進(jìn)行數(shù)字顯示,讀出A/D轉(zhuǎn)換結(jié)果。鍵盤:通過鍵盤輸入0-9來設(shè)置定時(shí)器的時(shí)間,進(jìn)而改變采樣時(shí)間間隔。第三章 總體方案論證 按系統(tǒng)功能實(shí)現(xiàn)要求,決定控制系統(tǒng)采用A

6、T89C51單片機(jī),A/D轉(zhuǎn)換采用TLC549,先由采樣電路對(duì)直流電壓進(jìn)行采樣,因?yàn)橐_(dá)到精度要求,所以選擇了8位AD轉(zhuǎn)換電路,然后通過單片機(jī)進(jìn)行控制,不僅可以復(fù)位控制,而且可以通過鍵盤進(jìn)行定時(shí)采樣的設(shè)置,最后在驅(qū)動(dòng)顯示電路上顯示出相關(guān)的信息。顯示采用LED七段共陰極數(shù)碼管。第四章 系統(tǒng)硬件的設(shè)計(jì)數(shù)字電壓測(cè)量電路由AT89C51單片機(jī)、A/D轉(zhuǎn)換TLC549、3位LED數(shù)碼管顯示等電路組成4.1 單片機(jī)控制部分4.1.1 單片機(jī)AT89C51內(nèi)部結(jié)構(gòu)概述它由中央處理區(qū)(CPU),內(nèi)部RAM,內(nèi)部ROM,定時(shí)器/計(jì)數(shù)器,并行I/O口,串行口,中斷控制系統(tǒng)等部分通過片內(nèi)總線連接組成。4.1.2 A

7、T89C51性能 AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含有4KB的可反復(fù)擦寫的只讀程序存儲(chǔ)器和128字節(jié)的隨機(jī)存儲(chǔ)器。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容,由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,它為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。 AT89C51功能性能:與MCS-51成品指令系統(tǒng)完全兼容;4KB可編程閃速存儲(chǔ)器;壽命:1000次寫/擦循環(huán);數(shù)據(jù)保留時(shí)間:10年;全靜態(tài)工作:0-24MHz;三級(jí)程序存儲(chǔ)器鎖定;12

8、8*8B內(nèi)部RAM;32個(gè)可編程I/O口線;2個(gè)16位定時(shí)/計(jì)數(shù)器;5個(gè)中斷源;可編程串行UART通道;片內(nèi)震蕩器和掉電模式。 4.1.3 TLC549的內(nèi)部結(jié)構(gòu)及工作原理 TLC549帶有片內(nèi)系統(tǒng)時(shí)鐘,該時(shí)鐘與IOCLOCK是獨(dú)立工作的,無需特殊的速度或相位匹配。當(dāng)CS為高時(shí),數(shù)據(jù)輸DATA OUT端處于高阻狀態(tài),此時(shí)IO CLOCK不起作用。這種CS控制作用允許在同時(shí)使用多片TLc549時(shí),共用IOcLOCK,以減少多路(片)AD使用時(shí)的IO控制端口。一組通常的控制時(shí)序操作如下: (1)將Cs置低,內(nèi)部電路在測(cè)得CS下降沿后,在等待兩個(gè)內(nèi)部時(shí)鐘上升沿和一個(gè)下降沿后,再確認(rèn)這一變化,最后自動(dòng)

9、將前一次轉(zhuǎn)換結(jié)果的最高位(D7)位輸出到DATAOUT端; (2)在前四個(gè)IO CLOCK周期的下降沿依次移出第2、3、4和第5個(gè)位(D6,D5,D4,D3),片上采樣保持電路在第4個(gè)IO CLOCK下降沿開始采樣模擬輔人: (3)接下來的3個(gè)I/O CLOCK周期的下降沿可移出第6、7、8(D2,D1,D0)各轉(zhuǎn)換位;(4)最后,片上采樣保持電路在第8個(gè)IOCLOCK周期的下降沿將移出第6、7、8(D2,D1,D0)各轉(zhuǎn)換位。然后使保持功能持續(xù)4個(gè)內(nèi)部時(shí)鐘周期,接著開始進(jìn)行32個(gè)內(nèi)部時(shí)鐘周期的AD轉(zhuǎn)換。在第8個(gè)IO cLCOK后,CS必須為高或IO LOCK保持低電平,這種狀態(tài)需要維持36個(gè)

10、內(nèi)部系統(tǒng)時(shí)鐘周期以等待保持和轉(zhuǎn)換工作的完成。如果CS為低時(shí),IO CLOCK上出現(xiàn)一個(gè)有效干擾脈沖,則微處理器,控制器將與器件的IO時(shí)序失去同步;而在cs為高時(shí)若出現(xiàn)一次有效低電平,則將使引腳重新初始化,從而脫離原轉(zhuǎn)換過程。在36個(gè)內(nèi)部系統(tǒng)時(shí)鐘周期結(jié)束之前,實(shí)施步驟(1)(4),可重新啟動(dòng)一次新的AD轉(zhuǎn)換,與此同時(shí),正在進(jìn)行的轉(zhuǎn)換將終止。但應(yīng)注意,此時(shí)的輸出是前一次的轉(zhuǎn)換結(jié)果而不是正在進(jìn)行的轉(zhuǎn)換結(jié)果。若要在特定的時(shí)刻采樣模擬信號(hào),則應(yīng)使第8個(gè)IO CLOCK時(shí)鐘的下降沿與該時(shí)刻對(duì)應(yīng)。因?yàn)樾酒m在第4個(gè)IO CLOCK時(shí)鐘的下降沿開始采樣,卻在第8個(gè)IO CLOCK的下降沿才開始保存。4.1.4

11、 單機(jī)片AT89C51結(jié)構(gòu)1)電源及時(shí)鐘引腳(4個(gè))VCC:+5 V電源。提供掉電空閑正常電壓3種模式。GND:地線。XTAL1和XTAL2:外接晶體引線端2)控制線引腳(4個(gè))RST:復(fù)位信號(hào)輸入/備用電源輸入引腳。ALE/PROG:地址鎖存控制/編程脈沖輸入信號(hào)。/PSEN:外部程序存儲(chǔ)器讀選通信號(hào)。 /EA/VPP:訪問程序存儲(chǔ)控制信號(hào)/可編程電壓輸入端。3)P0.0P0.7:P0口8位三態(tài)雙向I/O口。1)作為分時(shí)復(fù)用的低8位地址線和8位數(shù)據(jù)線。2)在不訪問外部存儲(chǔ)器時(shí),作為通用I/O口。P0端口能以吸收電流的方式驅(qū)動(dòng)負(fù)載,一般情況下是作為擴(kuò)展時(shí)候的地址數(shù)據(jù)總線使用的。 P1.0P1.

12、7:P1端口8位帶內(nèi)部上拉電阻的準(zhǔn)雙向I/O口線(有第二功能)。P2.0 P2.7:3端口8位帶內(nèi)部上拉電阻的準(zhǔn)雙向I/O口線。P3.0P3.7:P3端口8位帶內(nèi)部上拉電阻的準(zhǔn)雙向I/O口線(有第二功能)。引腳第二功能功能描述P1.0T2外部計(jì)數(shù)輸入/時(shí)鐘輸出P1.1T2EXT2的重裝/捕捉/方向控制P1.2ECIPCA 的外部時(shí)鐘輸入腳P1.3CEX0PCA模塊0捕獲/比較模式的外部I/O腳P1.4CEX1PCA模塊1捕獲/比較模式的外部I/O腳P1.5CEX2PCA模塊2捕獲/比較模式的外部I/O腳P1.6CEX3PCA模塊3捕獲/比較模式的外部I/O腳P1.7CEX4PCA模塊4捕獲/比

13、較模式的外部I/O腳4.1.5 時(shí)鐘電路單片機(jī)的時(shí)鐘信號(hào)通常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩方式。但本次只用了內(nèi)部振蕩。如圖電路中的器件選擇可以通過計(jì)算和實(shí)驗(yàn)確定,也可以參考一些典型電路的參數(shù),電路中,電容器C1和C2對(duì)震蕩頻率有微調(diào)作用,通常的取值范圍是30±10pF,在這個(gè)系統(tǒng)中選擇了33pF;石英晶振選擇范圍最高可選24MHz,它決定了單片機(jī)電路產(chǎn)生的時(shí)鐘信號(hào)震蕩頻率,在本系統(tǒng)中選擇的是12MHz,因而時(shí)鐘信號(hào)的震蕩頻率為12MHz。4.1.6 復(fù)位電路復(fù)位操作通常有兩種基本形式:上電復(fù)位和按鍵與上電復(fù)位。如圖所示上電或按鍵與上電復(fù)位要求電源接通后,單片機(jī)自動(dòng)復(fù)位,并且在

14、單片機(jī)運(yùn)行期間,用開關(guān)操作也能使單片機(jī)復(fù)位。上電后,由于電容C4的充電和反相門的作用,使RST持續(xù)一段時(shí)間的高電平。當(dāng)單片機(jī)已在運(yùn)行當(dāng)中時(shí),按下復(fù)位鍵后松開,也能使RST為一段時(shí)間的高電平,從而實(shí)現(xiàn)上電或按鍵與上電復(fù)位的操作。4.1.7總線擴(kuò)展電路和地址鎖存電路 單片機(jī)系統(tǒng)的I/O口和數(shù)據(jù)存儲(chǔ)器統(tǒng)一編址,將擴(kuò)展的I/O口看作片外的數(shù)據(jù)存儲(chǔ)器,一個(gè)I/O口占用一個(gè)片外數(shù)據(jù)存儲(chǔ)器單元的地址。擴(kuò)展I/O口也使用 、作為讀、寫控制信號(hào),使用MOVX指令進(jìn)行訪問。 擴(kuò)展的I/O口可分為不可編程(簡(jiǎn)單I/O)和可編程兩大類。 74LS240芯片:由于該芯片與74LS244類似,因此可以采用對(duì)74LS240

15、的研究來熟悉74LS2404.1.8單片機(jī)部分總體結(jié)構(gòu)單片機(jī)總體結(jié)構(gòu)部分由主芯片AT89C51、復(fù)位電路、時(shí)鐘電路及總線擴(kuò)展芯片74LS240等芯片構(gòu)成。 4.1.9 驅(qū)動(dòng)及顯示電路 數(shù)碼管由8個(gè)發(fā)光二極管構(gòu)成,可以用來顯示數(shù)字、字符等,它在家電及工業(yè)控制中有著很廣泛的應(yīng)用,例如用來顯示溫度、數(shù)量、重量、日期、時(shí)間等,具有顯示醒目、直觀的特點(diǎn),如下圖所示數(shù)碼管的內(nèi)部結(jié)構(gòu)圖 這次設(shè)計(jì)中,采用的是74LS240共陰驅(qū)動(dòng)數(shù)碼管的a .b.c.d.e.f.g七段顯示 顯示電路與驅(qū)動(dòng)電路的原理圖 第五章 程序設(shè)計(jì)5.1 程序設(shè)計(jì)總方案根據(jù)模塊的劃分原則,將該程序劃分初始化模塊,A/D轉(zhuǎn)換子程序和顯示子程

16、序,這三個(gè)程序模塊構(gòu)成了整個(gè)系統(tǒng)軟件的主程序,如圖12所示。開始初始化調(diào)用A/D轉(zhuǎn)換子程序調(diào)用顯示子程序結(jié)束圖12 數(shù)字式直流電壓表主程序框圖5.2 系統(tǒng)子程序設(shè)計(jì)5.2.1 初始化程序所謂初始化,是對(duì)將要用到的MCS_51系列單片機(jī)內(nèi)部部件或擴(kuò)展芯片進(jìn)行初始工作狀態(tài)設(shè)定,初始化子程序的主要工作是設(shè)置定時(shí)器的工作模式,初值預(yù)置,開中斷和打開定時(shí)器等9。5.2.2 A/D轉(zhuǎn)換子程序A/D轉(zhuǎn)換子程序用來控制對(duì)輸入的模塊電壓信號(hào)的采集測(cè)量,并將對(duì)應(yīng)的數(shù)值存入相應(yīng)的內(nèi)存單元,其轉(zhuǎn)換流程圖如圖13所示。開始啟動(dòng)轉(zhuǎn)換A/D轉(zhuǎn)換結(jié)束?輸出轉(zhuǎn)換結(jié)果數(shù)值轉(zhuǎn)換顯示結(jié)束圖13 A/D轉(zhuǎn)換流程圖5.2.3 顯示子程序

17、顯示子程序采用動(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)11s定時(shí),通過軟件延時(shí)程序來實(shí)現(xiàn)5ms的延時(shí)。第六章 仿真6.1 軟件調(diào)試軟件調(diào)試的主要任務(wù)是排查錯(cuò)誤,錯(cuò)誤主要包括邏輯和功能錯(cuò)誤,這些錯(cuò)誤有些是顯性的,而有些是隱形的,可以通過仿真開發(fā)系統(tǒng)發(fā)現(xiàn)逐步改正。Proteus軟件可以對(duì)基于微控制

18、器的設(shè)計(jì)連同所有的周圍電子器件一起仿真,用戶甚至可以實(shí)時(shí)采用諸如LED/LCD、鍵盤、RS232終端等動(dòng)態(tài)外設(shè)模型來對(duì)設(shè)計(jì)進(jìn)行交互仿真。Proteus支持的微處理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。Proteus可以完成單片機(jī)系統(tǒng)原理圖電路繪制、PCB設(shè)計(jì),更為顯著點(diǎn)的特點(diǎn)是可以與u Visions3 IDE工具軟件結(jié)合進(jìn)行編程仿真調(diào)試。本系統(tǒng)的調(diào)試主要以軟件為主,其中,系統(tǒng)電路圖的繪制和仿真我采用的是Proteus軟件,而程序方面,采用的是匯編語言,用Keil軟件將程序?qū)懭雴纹瑱C(jī)。6.2顯示結(jié)果及誤差分析6.2.1 顯示結(jié)果1.當(dāng)IN0口輸入電壓值為0V時(shí)

19、,顯示結(jié)果如圖14所示,測(cè)量誤差為0V。 圖14 輸入電壓為0V時(shí),LED的顯示結(jié)果2.當(dāng)IN0輸入電壓值為1.50V時(shí),顯示結(jié)果如圖15所示。測(cè)量誤差為0V。 圖15 輸入電壓為1.50V時(shí),LED的顯示結(jié)果3. 當(dāng)IN0口輸入電壓值為3.50V時(shí),顯示結(jié)果如圖16。測(cè)量誤差為0V。 圖16 輸入電壓為3.50V時(shí),LED的顯示結(jié)果6.2.2 誤差分析通過以上仿真測(cè)量結(jié)果可得到簡(jiǎn)易數(shù)字電壓表與“標(biāo)準(zhǔn)”數(shù)字電壓表對(duì)比測(cè)試表,如下表4所示:表4 簡(jiǎn)易數(shù)字電壓表與“標(biāo)準(zhǔn)”數(shù)字電壓表對(duì)比測(cè)試表標(biāo)準(zhǔn)電壓值/V簡(jiǎn)易電壓表測(cè)量值/V絕對(duì)誤差/V0.000.000.000.500.510.011.001.0

20、00.001.501.510.012.002.000.002.502.500.003.003.000.003.503.500.004.004.000.004.995.000.01 由于單片機(jī)AT89C51為8位處理器,當(dāng)輸入電壓為5.00V時(shí),TLC549輸出數(shù)據(jù)值為255(FFH),因此單片機(jī)最高的數(shù)值分辨率為0.0196V(5/255)。這就決定了電壓表的最高分辨率只能到0.0196V,從上表可看到,測(cè)試電壓一般以0.01V的幅度變化。 從上表可以看出,簡(jiǎn)易數(shù)字電壓表測(cè)得的值基本上比標(biāo)準(zhǔn)電壓值偏大0-0.01V,這可以通過校正TLC549的基準(zhǔn)電壓來解決。因?yàn)樵撾妷罕碓O(shè)計(jì)時(shí)直接用5V的供電

21、電源作為電壓,所以電壓可能有偏差。當(dāng)要測(cè)量大于5V的電壓時(shí),可在輸入口使用分壓電阻,而程序中只要將計(jì)算程序的除數(shù)進(jìn)行調(diào)整就可以了。第七章 系統(tǒng)軟件的設(shè)計(jì)71主程序;*;* 初始化程序 *;*SDA EQU P1.7 ;DATA OUTSCL EQU P1.6 ;I/O CLOCKCS EQU P1.0 ;/CS片選DP EQU P0.7MTD EQU 30H ;發(fā)送緩沖區(qū)首址MRD EQU 40H ;接收緩沖區(qū)首址;*;* 電壓表實(shí)驗(yàn)主程序 *;* ORG 0000H LJMP SE11 ORG 0590HSE11:MOV SP,#53H ;MOV p2,#0ffh ;MOV A,#81H ;

22、MOV DPTR,#0FF23H ;MOVX DPTR,A MOV 7CH,#09H ;顯示緩沖區(qū)賦初值 MOV 7BH,#14H MOV 7AH,#10H MOV 79H,#10H LO18:LCALL SSEE ;調(diào)用顯示子程序 CLR CS ;選中TLC549器件 LCALL RDBYTE ;讀取采樣/保持的數(shù)字量,并送到寄存器A SETB CS ;等待A/D轉(zhuǎn)換結(jié)束 NOP ;NOP NOP NOP NOP NOP NOP LCALL BIAODUSJMP LO18 7.3 拆字子程序ORG 05D0HPTDS:MOV R1,A ;拆送顯示緩沖區(qū) ACALL PTDS1 MOV A,R

23、1 SWAP APTDS1: ANL A,#0FH MOV R0,A INC R0 RET7.4 掃描子程序 ORG 0D50HL1:LCALL SSEESJMP L1SSEE:SETB RS1 ;換工作區(qū)MOV R5,#04HSSE2:MOV 30H,#20H;位控碼MOV 31H,#7BH;顯示緩沖區(qū)MOV R7,#03HSSE1: ; MOV R1,#20H MOV A,30HCPL A;低電平位控MOV P3,A ;字位送入MOV R0,31HMOV A,R0MOV DPTR,#DDFFMOVC A,A+DPTR ;取字形代碼JB P3.5 , LL1CLR ACC.7;MOV R1,

24、#21H;MOVX R1,A ;字形送入LL1:MOV P0 , A LCALL DELY5MSMOV A,30HRR A ;左移MOV 30H,ADEC 31HMOV A,#0ffH;MOVX R1,A ;關(guān)顯示;MOV P3 , ADJNZ R7,SSE1 ;六位顯示完了嗎?DJNZ R5,SSE2 ;8次顯示完了嗎?CLR RS1RETDDFF:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0F1H,0C6H,092H,0BFH;共陽代碼 ;DB 3FH,06H,5BH,4

25、FH,66H,6DH,7DH,07H,7FH,6FH,40H ;DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH;動(dòng)態(tài)掃描代碼DELY5MS: MOV R2, #5 D5: MOV R3,#248 DJNZ R3,$ DJNZ R2,D5 RET7.5讀取字節(jié)子程序,讀出的值在ACCRDBYTE: MOV R0,#08HRLP: SETB SDASETB SCL ;時(shí)鐘線為高,接收數(shù)據(jù)位 MOV C,SDA ;讀取數(shù)據(jù)位 MOV A,R2 CLR SCL ;將SCL拉低 RLC A ;進(jìn)行數(shù)據(jù)位的處理 MOV R2,A CLR SCL DJNZ R0,RLP

26、 ;未夠8位,再來一次 MOV A, R2 ;MODIFIED RET7.6標(biāo)度變換子程序;入口:(A)=采樣值;出口:(7CH、7BH)=BCD碼整數(shù);(7AH、79H)=BCD碼小數(shù);*BIAODU: MOV B,#5 MUL AB;高字節(jié)電壓的整數(shù)部分;低字節(jié)電壓的小數(shù)部分 MOV R2,B;暫存整數(shù)部分 LCALL HBD;BCD碼的小數(shù)部分放A中 JNC BIA1;無進(jìn)位,跳轉(zhuǎn) INC R2;有進(jìn)位,整數(shù)部分加1BIA1: MOV R0,#79H;拆送顯示緩沖區(qū)7AH,79H(小數(shù)) LCALL PTDS MOV A , R2 LCALL HBCD;BCD碼的整數(shù)部分轉(zhuǎn)換 MOV R

27、0,#7BH;拆送顯示緩沖區(qū)7AH,79H(小數(shù)) LCALL PTDS RET HBCD: MOV B,#100 ;分離出百位,存放在R3中 DIV AB MOV R3,A MOV A,#10 ;余數(shù)繼續(xù)分離十位和個(gè)位 XCH A,B DIV AB SWAP A ORL A,B ;將十位和個(gè)位拼裝成碼 RETHBD: MOV B,#100 ;原小數(shù)擴(kuò)大一百倍 MUL AB RLC A ;余數(shù)部分四舍五入 CLR A ADDC A,B MOV B,#10 ;分離出十分位和百分位 DIV AB SWAP A ADD A,B ;拼裝成單字節(jié)碼小數(shù) DA A ;調(diào)整后若有進(jìn)位,原小數(shù)接近整數(shù) RET

28、 END ; 結(jié)束程序7.7原理圖7.8最后結(jié)果第八章 實(shí)訓(xùn)心得為期兩周的實(shí)訓(xùn)已經(jīng)接近尾聲,在這2周中,我學(xué)到了很多,對(duì)單片機(jī)的認(rèn)識(shí)也進(jìn)一步加深了。通過實(shí)訓(xùn),我不僅學(xué)到了關(guān)于單片機(jī)的許多專業(yè)知識(shí),同時(shí)也讓我感覺到團(tuán)隊(duì)合作的重要性。其實(shí)如何有效和快速的找到資料也是課程設(shè)計(jì)給我的啟發(fā),利用好圖書館和網(wǎng)絡(luò),是資源的達(dá)到最好的利用。通過思考、發(fā)問、自己解惑并動(dòng)手、改進(jìn)的過程,才能真正的完成課題。我們通過相互學(xué)習(xí),相互溝通,一起研究,讓很多的實(shí)驗(yàn)都做得相當(dāng)?shù)某晒Γ闹械某删透信c自豪感油然而生。班級(jí)的那種團(tuán)結(jié)氛圍填滿了整個(gè)實(shí)訓(xùn)間。本次課程對(duì)單片機(jī)設(shè)計(jì)與應(yīng)用是我對(duì)單片技術(shù)有了更進(jìn)一步的熟悉,實(shí)踐操作和課本的

29、知識(shí)有很大聯(lián)系,但又高于課本,一個(gè)看似簡(jiǎn)單的電路,要?jiǎng)邮职阉O(shè)計(jì)出來就比較困難了,因?yàn)橐O(shè)計(jì)要求我們?cè)谝院蟮膶W(xué)習(xí)中注意這一點(diǎn),要把課本上所學(xué)到的知識(shí)和實(shí)際聯(lián)系起來,同時(shí)通過本次電路的設(shè)計(jì),不但鞏固了所學(xué)知識(shí),也是我們把理論與實(shí)踐從真正意義上結(jié)合起來,增強(qiáng)了學(xué)習(xí)的綜合能力。經(jīng)過這次課程設(shè)計(jì)的過程,我相信在以后的課程設(shè)計(jì)中我們會(huì)吸取經(jīng)驗(yàn)教訓(xùn),做出更好的設(shè)計(jì)來。我們兢兢業(yè)業(yè)的老師,也在百忙之中和我們一起忙活,看著圍在他身邊的那一圈圈的人,他也總會(huì)耐心的為我們講解,直到我們聽懂為止。雖然這門課程完了,但是單片機(jī)在我們的生活中很重要,因此,我會(huì)在以后的時(shí)間中繼續(xù)學(xué)習(xí)。為以后的工作打下基礎(chǔ);參考文獻(xiàn)1 楊

30、居義,單片機(jī)課程設(shè)計(jì)指導(dǎo)書.北京:清華大學(xué)出版社,20092 張永楓,單片機(jī)應(yīng)用實(shí)訓(xùn)教程.北京:清華大學(xué)出版社,20083 姜志紅,51單片機(jī)技術(shù)與應(yīng)用系統(tǒng)開發(fā)案例精選.北京:清華大學(xué)出版社,20084 張蔭等,單片機(jī)應(yīng)用系統(tǒng)開發(fā)綜合實(shí)例.北京:清華大學(xué)出版社,20085 謝輝,單片機(jī)原理及應(yīng)用.化學(xué)工業(yè)出版社,2010附錄;*;* 初始化程序 *;*SDA EQU P1.7 ;DATA OUTSCL EQU P1.6 ;I/O CLOCKCS EQU P1.0 ;/CS片選DP EQU P0.7MTD EQU 30H ;發(fā)送緩沖區(qū)首址MRD EQU 40H ;接收緩沖區(qū)首址;*;* 電壓表實(shí)

31、驗(yàn)主程序 *;* ORG 0000H LJMP SE11 ORG 0590HSE11:MOV SP,#53H ;MOV p2,#0ffh ;MOV A,#81H ;MOV DPTR,#0FF23H ;MOVX DPTR,A MOV 7CH,#09H ;顯示緩沖區(qū)賦初值 MOV 7BH,#14H MOV 7AH,#10H MOV 79H,#10H LO18:LCALL SSEE ;調(diào)用顯示子程序 CLR CS ;選中TLC549器件 LCALL RDBYTE ;讀取采樣/保持的數(shù)字量,并送到寄存器A SETB CS ;等待A/D轉(zhuǎn)換結(jié)束 NOP ;NOP NOP NOP NOP NOP NOP

32、LCALL BIAODUSJMP LO18 ;*;* 拆字子程序 *;* ORG 05D0HPTDS:MOV R1,A ;拆送顯示緩沖區(qū) ACALL PTDS1 MOV A,R1 SWAP APTDS1: ANL A,#0FH MOV R0,A INC R0 RET;*;* 顯示掃描子程序 *;* ORG 0D50HL1:LCALL SSEESJMP L1SSEE:SETB RS1 ;換工作區(qū)MOV R5,#04HSSE2:MOV 30H,#20H;位控碼MOV 31H,#7BH;顯示緩沖區(qū)MOV R7,#03HSSE1: ; MOV R1,#20H MOV A,30HCPL A;低電平位控MOV P3,A ;字位送入MOV R0,31HMOV A,R0MOV DPTR,#DDFFMOVC A,A+DPTR ;取字形代碼JB P3.5 , LL1CLR ACC.7;MOV R1,#21H;MOVX R1,A ;字形送入LL1:MOV P0 , A LCALL DELY5MSMOV A,30HRR A ;左移MOV 30H,ADEC 31HMOV A,#0ffH;MOVX R1,A ;關(guān)顯示;MOV P3 , ADJNZ R7,SSE1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論