版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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> 8路輸入模擬信號(hào)數(shù)值顯示電路</p><p><b> 摘 要</b></p><p> 本系統(tǒng)是基于AT89S52單片機(jī)設(shè)計(jì)的,由具有8通道的模數(shù)轉(zhuǎn)換芯片ADC0809采集模擬信號(hào),并將采集到的數(shù)據(jù)送入AT89S52進(jìn)行處理,其中ADC0
2、809的1MHZ時(shí)鐘脈沖直接由單片機(jī)的ALE腳輸出的六分頻時(shí)鐘信號(hào)經(jīng)過74LS74二分頻得到。在設(shè)計(jì)中采用了精簡(jiǎn)電路及充分利用軟件資源為原則,采用了軟件譯碼,并利用三極管擴(kuò)流來驅(qū)動(dòng)數(shù)碼管。同時(shí)兼顧系統(tǒng)的性能指標(biāo),采用了四位數(shù)碼管進(jìn)行動(dòng)態(tài)顯示,分別顯示模擬通道數(shù)以及采集到的模擬電壓的數(shù)值。本系統(tǒng)經(jīng)設(shè)計(jì)調(diào)試達(dá)到了預(yù)期的設(shè)計(jì)要求,能夠標(biāo)準(zhǔn)地自動(dòng)輪流顯示8路模擬電壓數(shù)值量,精度為0.02V,誤差系數(shù)為0.01。</p><p
3、><b> 關(guān) 鍵 詞</b></p><p> 模擬信號(hào); AT89S52; ADC0809; 數(shù)值顯示</p><p><b> 目錄</b></p><p> 一、設(shè)計(jì)任務(wù)及要求5</p><p> 二、 總體設(shè)計(jì)方案5</p>&
4、lt;p> 三、 硬件電路設(shè)計(jì)6</p><p> 1、模擬信號(hào)采集電路:6</p><p> 2、數(shù)據(jù)處理模塊電路7</p><p> 3、數(shù)碼顯示模塊電路8</p><p><b> 四、 軟件設(shè)計(jì)9</b></p><p><b> 1、主程序9&l
5、t;/b></p><p><b> 2、初始化程序9</b></p><p><b> 3、顯示子程序9</b></p><p> 4、模數(shù)轉(zhuǎn)換測(cè)量子程序9</p><p> 五、 檢測(cè)與調(diào)試10</p><p> 六、 系統(tǒng)改進(jìn)設(shè)想11</
6、p><p><b> 七、 總結(jié)12</b></p><p><b> 參考文獻(xiàn)12</b></p><p> 附件一:總的電路原理圖13</p><p> 附件二:程序清單14</p><p> 附件三:數(shù)值量模擬量轉(zhuǎn)換對(duì)照表(ADC0809的參考電壓為5V)
7、19</p><p> 附件四:元件清單21</p><p><b> 設(shè)計(jì)任務(wù)及要求</b></p><p> 設(shè)計(jì)一個(gè)8路輸入模擬信號(hào)數(shù)值顯示電路,具體要求如下:</p><p> a.8路模擬信號(hào)輸入;</p><p> b.自動(dòng)輪流顯示8個(gè)通道模擬信號(hào)的數(shù)值;</p&g
8、t;<p> c.最小分辨率為0.02V;</p><p> d.最大顯示數(shù)值為255;</p><p> f.測(cè)量電壓最大值為5V。</p><p><b> 二、 總體設(shè)計(jì)方案</b></p><p> 8路輸入模擬信號(hào)數(shù)值顯示電路由A/D轉(zhuǎn)換、數(shù)據(jù)處理及顯示控制等組成。根據(jù)設(shè)計(jì)要求,要求能同
9、時(shí)輸入8路模擬信號(hào),故在本設(shè)計(jì)中采用了8路的模數(shù)轉(zhuǎn)換器AD0809;由單片機(jī)AT89C52提供控制信號(hào)控制AD0809,并對(duì)采集到的數(shù)據(jù)進(jìn)行處理,通過軟件編程實(shí)現(xiàn)8路模擬信號(hào)電壓數(shù)值自動(dòng)輪流顯示;為得到8路模擬信號(hào)的數(shù)值進(jìn)行輪流顯示,本設(shè)計(jì)中采用了四個(gè)數(shù)碼管,通過軟件直接譯碼,間接驅(qū)動(dòng)4個(gè)共陽極數(shù)碼管,并通過動(dòng)態(tài)顯示來輪流顯示4個(gè)數(shù)碼管。系統(tǒng)總體框圖設(shè)計(jì)如下圖所示:</p><p> 圖一 系統(tǒng)總體設(shè)計(jì)框圖&
10、lt;/p><p> 三、 硬件電路設(shè)計(jì)</p><p> 1、模擬信號(hào)采集電路:</p><p> 模擬信號(hào)采集需要用到模數(shù)轉(zhuǎn)換器,而ADC0809具有較高的轉(zhuǎn)換速度和精度,分辨率為8位,且受溫度影響較小,能較長(zhǎng)時(shí)間保證精度,重現(xiàn)性好,功耗較低,且具有8路模擬開關(guān),滿足本電路的設(shè)計(jì)要求,故在該電路模塊中采用了ADC0809進(jìn)行8路模擬信號(hào)采集,模數(shù)轉(zhuǎn)換器ADC
11、0809各引腳功能如圖二所示:</p><p> IN7~IN0:8個(gè)模擬量輸入端;</p><p> START:?jiǎn)?dòng)信號(hào),當(dāng)START為高電平時(shí),A/D轉(zhuǎn)換開始;</p><p> EOC:轉(zhuǎn)換結(jié)束信號(hào),當(dāng)A/D轉(zhuǎn)換結(jié)束后,發(fā)出一個(gè)正脈沖,表示A/D轉(zhuǎn)換完畢。此信號(hào)可用做A/D轉(zhuǎn)換是否結(jié)束的檢測(cè)信號(hào),或向CPU申請(qǐng)中斷的信號(hào);</p><
12、;p> ENABLE:輸出允許信號(hào)。當(dāng)此信號(hào)有效時(shí),允許從A/D轉(zhuǎn)換器的鎖存器中讀取數(shù)字量。此信號(hào)可作為ADC0809的片選信號(hào),高電平有效;</p><p> CLOCLK:實(shí)時(shí)時(shí)鐘,可通過外接RC電路改變時(shí)鐘頻率; </p><p> ALE:地址鎖存允許,高電平有效。當(dāng)ALE為高電平時(shí),允許C,B,A所示的通道被選中,并把該通道的模擬量接入A/D轉(zhuǎn)換器;</p>
13、;<p> C,B,A:通道號(hào)選擇端子。C為最高位,A為最低位;</p><p> D7~D0:數(shù)字量輸出端;</p><p> VREF(+),VREF(-):參考電壓端子。用以提供D/A轉(zhuǎn)換器權(quán)電阻的標(biāo)準(zhǔn)電平。對(duì)于一般單極性模擬量輸入信號(hào),VREF(+)=+5V,VREF(-)=0V;</p><p> VCC:電源端子,接+5V;<
14、/p><p><b> GND:接地端。</b></p><p> ADC0809是由單一電源,+5V供電,模擬電壓的輸入范圍為0~5V,故本設(shè)計(jì)允許輸入的模擬電壓最大值為5V。該電路模塊的工作過程:第22腳ALE為地址鎖存控制,當(dāng)輸入為高電平時(shí),對(duì)地址信號(hào)進(jìn)行鎖存;6腳START為測(cè)試控制,當(dāng)輸入一個(gè)2us寬高電平脈沖時(shí),就開始A/D轉(zhuǎn)換;7腳EOC為A/D轉(zhuǎn)換結(jié)束
15、標(biāo)志,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),7腳輸出高電平;9腳ENABLE為A/D轉(zhuǎn)換數(shù)據(jù)輸出允許控制,當(dāng)ENABLE腳為高電平時(shí),A/D轉(zhuǎn)換數(shù)據(jù)從端口輸出;則可讀出數(shù)據(jù)。ADC0809的轉(zhuǎn)換速度取決于芯片的時(shí)鐘頻率,要求時(shí)鐘頻率范圍為:10~1280KHZ,在本設(shè)計(jì)中我們采用了由單片機(jī)ALE腳的六分頻晶振信號(hào)再通過14024二分頻得到,故ADC0809的工作頻率為1MHZ,轉(zhuǎn)換時(shí)間為1US。</p><p> 圖二 模
16、擬信號(hào)采集電路</p><p> 2、數(shù)據(jù)處理模塊電路</p><p> 該電路主要完成將接受到的ADC0809轉(zhuǎn)換輸出的二進(jìn)制數(shù)值進(jìn)行BCD碼的轉(zhuǎn)換,并根據(jù)設(shè)計(jì)要求完成8路數(shù)值輪流顯示的功能,故需借助單片機(jī)來完成編程功能。</p><p> 在本設(shè)計(jì)中,采用了AT89S52單片機(jī),AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程
17、Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,由單片機(jī)P0口接收二進(jìn)制數(shù)據(jù)。</p><p> 設(shè)計(jì)中單片機(jī)中的I/O口都用做普通的輸入輸出口,由P1口接受AD0809送來的二進(jìn)制數(shù)值,P0口是數(shù)碼管數(shù)值輸出口,P3.0~P3
18、.3作為數(shù)碼管的位驅(qū)動(dòng)口。為得到AD0809的時(shí)鐘信號(hào),在設(shè)計(jì)中,利用了單片機(jī)的ALE端口。ALE/PROG:地址鎖存控制信號(hào)(ALE)是訪問外部程序存儲(chǔ)器時(shí),鎖存低8 位地址的輸出脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖, 為了得到1MHZ的時(shí)鐘頻率,在電路中采用了74LS74帶預(yù)置和清除端的雙D觸發(fā)器74LS74,通過總原理圖的接法,可以得到二分頻器,連接至ALE端之后,可以得到滿足AD0809轉(zhuǎn)換的時(shí)鐘脈沖。7
19、4LS74的引腳功能表如下表一所示。</p><p> 表一 74LS74功能表</p><p> 單片機(jī)的P2口輸出控制信號(hào),以此來控制ADC0809的轉(zhuǎn)換。具體的數(shù)據(jù)處理過程,將在軟件設(shè)計(jì)中進(jìn)行詳細(xì)介紹。</p><p> 3、數(shù)碼顯示模塊電路</p><p> 根據(jù)設(shè)計(jì)要求,要求自動(dòng)輪流顯示模擬通道數(shù),以及8路模擬電壓數(shù)值,根
20、據(jù)功能要求,結(jié)合實(shí)際的布局布線復(fù)雜程度及調(diào)試的難易程度,為簡(jiǎn)化電路起見,在設(shè)計(jì)中我們采用了動(dòng)態(tài)顯示,并用四個(gè)連接的共陽數(shù)碼管取代了單個(gè)的數(shù)碼管,以做到調(diào)試簡(jiǎn)單,實(shí)現(xiàn)容易。由于根據(jù)數(shù)碼管的參數(shù)要求,要求其驅(qū)動(dòng)電流在10MA~20MA之間,在電路中采用9012三極管進(jìn)行擴(kuò)流來驅(qū)動(dòng)四個(gè)數(shù)碼管;在本設(shè)計(jì)中段碼顯示是由P0口進(jìn)行輸出,為防止數(shù)碼管灌入單片機(jī)的電流超出了允許的電流范圍,在數(shù)碼管與單片機(jī)的P1口之間接入了510歐姆的電阻。硬件電路圖如
21、圖 所示。</p><p> 同樣為了簡(jiǎn)化電路,且充分利用單片機(jī)的資源,采用了軟件譯碼代替硬件譯碼的方式,來進(jìn)行數(shù)值顯示。由于人眼的視覺暫留時(shí)間為0.1S(100MS),所以每位顯示的間隔不能超過20MS,并保持延時(shí)一段時(shí)間,以造成視覺暫留效果,給人看上去每個(gè)數(shù)碼管總在亮,在本設(shè)計(jì)中每位數(shù)值的顯示時(shí)間為1MS,一個(gè)通道的數(shù)值顯示包括了通道數(shù)及電壓數(shù)值輪流顯示,共輪番顯示255次,所以每個(gè)通道的停留時(shí)間為1S。
22、</p><p> 圖三 數(shù)碼顯示模塊電路</p><p> 由于本設(shè)計(jì)中顯示的數(shù)值不是實(shí)際的模擬電壓值,而只是由AD0809采集的到模擬電壓顯示的二進(jìn)制數(shù),為使使用者能夠通過數(shù)值得到實(shí)際的模擬電壓數(shù)值,可以通過下表進(jìn)行查閱,例如:如果數(shù)碼管顯示的數(shù)值為2136,則表示,模擬通道IN2的電壓值為由數(shù)值量136代表的模擬電壓2.6656V。詳細(xì)轉(zhuǎn)換情況見附件三。</p>
23、<p><b> 四、 軟件設(shè)計(jì)</b></p><p><b> 1、主程序</b></p><p> 當(dāng)進(jìn)行一次測(cè)量后,將顯示出每一通道的A/D轉(zhuǎn)換值。每個(gè)通道的數(shù)據(jù)顯示時(shí)間在1s左右。主程序在調(diào)用顯示程序和測(cè)試程序之間循環(huán),其流程圖如圖四所示。</p><p><b> 2、初始化程序&
24、lt;/b></p><p> 系統(tǒng)上電時(shí),將70H~77H內(nèi)存單元清零,P2口置零。</p><p><b> 3、顯示子程序</b></p><p> 采用動(dòng)態(tài)掃描法實(shí)現(xiàn)四位數(shù)碼管的數(shù)值顯示。測(cè)量所得的A/D轉(zhuǎn)換數(shù)據(jù)放在70H~77H內(nèi)存單元中。測(cè)量數(shù)據(jù)在顯示時(shí)需經(jīng)過轉(zhuǎn)換成為十進(jìn)制BCD碼放在78H~7BH中,其中7BH存放通道
25、標(biāo)志數(shù)。寄存器R3用來作為8路循環(huán)控制,R0用做顯示數(shù)據(jù)地址指針。 </p><p> 4、模數(shù)轉(zhuǎn)換測(cè)量子程序</p><p> 模數(shù)轉(zhuǎn)換測(cè)量子程序是用來控制對(duì)0809 8路模擬輸入電壓的A/D轉(zhuǎn)換,并將對(duì)應(yīng)的數(shù)值移入70H~77H內(nèi)存單元,其程序流程如圖五所示。</p><p> 具體程序清單見附件二。</p><p> 圖四
26、主程序流程圖 圖五 A/D轉(zhuǎn)換測(cè)量程序流程圖</p><p><b> 程序的資源分配:</b></p><p> 內(nèi)部RAM70H~77H是8路模擬信號(hào)經(jīng)過AD轉(zhuǎn)換得到的二進(jìn)制數(shù)存儲(chǔ)單元,78H~7BH是分別作為數(shù)碼管的的模擬通道數(shù),電壓數(shù)值的百位、十位、個(gè)位。</p><p><b>
27、五、 檢測(cè)與調(diào)試</b></p><p> 按照總的電路圖進(jìn)行布局和布線,焊接完成之后,進(jìn)行了系統(tǒng)檢測(cè),本電路的檢測(cè)步驟如下:</p><p> a.在通電之前,先檢查電源與地端之間的電阻大小,在正常情況下,電阻值為無窮大,但實(shí)際情況為幾千歐姆。如果電阻小,則說明電路中存在短路現(xiàn)象,可通過定點(diǎn)與動(dòng)點(diǎn)結(jié)合的試觸法進(jìn)行測(cè)試,檢查短路的引腳,并矯正。</p><
28、;p> b.通電之后,檢測(cè)單片機(jī)是否工作正常,通過檢測(cè)單片機(jī)的30腳ALE看是否有正弦波輸出,且其電壓值是否為電源電壓的一半。如果單片機(jī)沒工作,則看振蕩電路是否正常,檢測(cè)18,19腳的電壓是否在2.2V左右。</p><p> c.檢測(cè)復(fù)位電路是否工作正常,按下復(fù)位開關(guān)之后,單片機(jī)的第9腳是否有高電平。如果沒有,則檢查復(fù)位電路是否連接正確。</p><p> d.檢測(cè)各集成芯片
29、是否工作正常,即檢測(cè)各芯片的電源端是否有電壓。</p><p> 經(jīng)檢測(cè)完畢無異常情況之后,可以通過燒寫器下載程序進(jìn)行調(diào)試。</p><p> 以下是在本次調(diào)試過程當(dāng)中遇到的問題:</p><p> a.數(shù)碼管只亮了后面兩個(gè),經(jīng)檢測(cè)數(shù)碼管是好的,通過檢測(cè)電路焊接情況,由于存在虛焊的情況,經(jīng)矯正之后數(shù)碼管亮了三個(gè),為檢查唯一一個(gè)不亮的數(shù)碼管,采用了程序檢測(cè)與硬件
30、檢測(cè)相結(jié)合的方法,最后得出結(jié)論三極管是壞的,換掉三極管之后,數(shù)碼管工作完全正常。</p><p> b.在數(shù)碼管顯示時(shí),發(fā)現(xiàn)數(shù)碼管在初次采樣顯示為00,經(jīng)調(diào)節(jié)程序的順序并修改,從程序上電之初就開始輪流采集八路模擬電壓,通過數(shù)碼管顯示,可以得到標(biāo)準(zhǔn)的電壓數(shù)值量。</p><p> c.為檢測(cè)得到的電壓數(shù)值量與其代表的模擬電壓是否相一致,用數(shù)字電壓表測(cè)量模擬量與理論計(jì)算得到的模擬量進(jìn)行比較
31、,在開始檢測(cè)時(shí)出現(xiàn)了較大的差值,經(jīng)過檢測(cè)發(fā)現(xiàn),電壓輸入端存在虛焊的現(xiàn)象,經(jīng)矯正,得到的測(cè)量值與理論值之間的誤差為0.01左右,滿足題目的精度要求。</p><p><b> 六、 系統(tǒng)改進(jìn)設(shè)想</b></p><p> 本設(shè)計(jì)可進(jìn)一步進(jìn)行指標(biāo)和性能的完善,比如:可以擴(kuò)大電壓的量程范圍,可以通過自動(dòng)量程轉(zhuǎn)換來實(shí)現(xiàn);可以采用C語言來編寫,提高顯示數(shù)值顯示精度,并可顯示
32、模擬電壓的實(shí)際值。</p><p><b> 七、 總結(jié)</b></p><p> 在本系統(tǒng)的設(shè)計(jì)制作過程中,經(jīng)過兩人的合作與努力,雖然在設(shè)計(jì)與制作過程中出現(xiàn)了各種各樣的問題和情況,但是我們都能夠冷靜地進(jìn)行硬件和軟件檢測(cè),并針對(duì)性地進(jìn)行糾正,在進(jìn)行了全面檢測(cè)及反復(fù)調(diào)試之后,該系統(tǒng)已經(jīng)完全實(shí)現(xiàn)了所有功能,并達(dá)到了預(yù)期的所有指標(biāo)。</p><p&g
33、t;<b> 參考文獻(xiàn)</b></p><p> [1]李朝青.單片機(jī)原理及接口技術(shù).北京.1998166。</p><p> [2]閻石.?dāng)?shù)字電子技術(shù)基礎(chǔ).北京.1998.12.150。</p><p> [3]藩新民,王燕芳.微型計(jì)算機(jī)控制技術(shù).北京.2005.3.52。</p><p> 附件一:總的電路
34、原理圖</p><p><b> 附件二:程序清單</b></p><p> 主程序和中斷程序入口</p><p> ORG 0000H ;程序執(zhí)行開始地址</p><p> LJMP START ;跳至START執(zhí)行</p><p> ORG 0003H
35、 ;外中斷0中斷入口地址</p><p> RETI ;中斷返回(不開中斷)</p><p> ORG 000BH ;定時(shí)器T0中斷入口地址</p><p> RETI ;中斷返回(不開中斷)</p><p> ORG 0013H ;外中斷1中斷入口地址</p
36、><p> RETI ;中斷返回(不開中斷)</p><p> ORG 001BH ;定時(shí)器T1中斷入口地址</p><p> RETI ;中斷返回(不開中斷)</p><p> ORG 0023H ;串行口中斷入口地址</p><p> RET
37、I ;中斷返回(不開中斷)</p><p> ORG 002BH ;定時(shí)器T2中斷入口地址</p><p> RETI ;中斷返回(不開中斷)</p><p> ;初始化程序中的各變量</p><p> CLEARMEMIO:CLR A ;</p>&l
38、t;p> MOV P2,A ;P2口置0</p><p> MOV R0,#70H ;內(nèi)存循環(huán)清0(70H~7BH)</p><p> MOV R2,#0CH </p><p> LOOPMEM: MOV @R0,A </p><p> INC R0 </p>
39、<p> DJNZ R2,LOOPMEM </p><p> MOV A,#0FFH </p><p> MOV P0,A ;P0,P1,P3端口置1</p><p> MOV P1,A </p><p> MOV P3,A </p><p> RET
40、 ;子程序返回</p><p><b> ;主程序</b></p><p> START: LCALL CLEARMEMIO ;初始化</p><p> MAIN: LCALL TEST ;測(cè)量一次</p><p> LCALL DISP
41、LAY ;顯示數(shù)據(jù)一次</p><p> AJMP MAIN ;返回MAIN循環(huán)</p><p> NOP ;PC值出錯(cuò)處理</p><p> NOP ;空操作</p><p> NOP ;空
42、操作</p><p> LJMP START ;重新復(fù)位啟動(dòng)</p><p> DISPLAY: MOV R3,#08H ;8路信號(hào)循環(huán)顯示控制</p><p> MOV R0,#70H ;顯示數(shù)據(jù)初址(70H~77H)</p><p> MOV 7BH,#00H
43、 ;顯示通道路數(shù)(0~7)</p><p> DISLOOP1: MOV A,@R0 ;顯示數(shù)據(jù)轉(zhuǎn)為三位十進(jìn)制BCD碼存入</p><p> MOV B,#100 ;7AH,79H,78H顯示單元內(nèi)</p><p> DIV AB ;顯示數(shù)據(jù)除100</p><p> MOV
44、7AH,A ;商入7AH</p><p> MOV A,#10 ;A放入數(shù)10</p><p> XCH A,B ;余數(shù)與數(shù)10交換</p><p> DIV AB ;余數(shù)除10</p><p> MOV 79H,A ;商入79H</p>
45、<p> MOV 78H,B ;余數(shù)入78H</p><p> MOV R2,#0FFH ;每路顯示時(shí)間控制4ms*255</p><p> DISLOOP2: LCALL DISP ;調(diào)四位LED顯示程序</p><p> DJNZ R2,DISLOOP2 ;每路顯示時(shí)間控制</p>
46、<p> INC R0 ;顯示下一路</p><p> INC 7BH ;通道顯示數(shù)值加1</p><p> DJNZ R3,DISLOOP1 ;8路顯示未完轉(zhuǎn)DISLOOP1再循環(huán)</p><p> RET ;8路顯示完子程序結(jié)束</p><p&g
47、t; ;LED共陽顯示子程序,顯示內(nèi)容在78H~7BH,數(shù)據(jù)在P1輸出,列掃描在P3.0~P3.3口</p><p> DISP: MOV R1,#78H ;賦顯示數(shù)據(jù)單元首址</p><p> MOV R5,#0FEH ;掃描字</p><p> PLAY: MOV P1,#0FFH ;關(guān)顯示&l
48、t;/p><p> MOV A,R5 ;取掃描字</p><p> ANL P3,A ;開顯示</p><p> MOV A,@R1 ;取顯示數(shù)據(jù)</p><p> MOV DPTR,#TAB ;取段碼表首址</p><p> MOVC A,
49、@A+DPTR ;查顯示數(shù)據(jù)對(duì)應(yīng)段碼</p><p> MOV P1,A ;段碼放入P1口</p><p> LCALL DL1MS ;顯示1ms</p><p> INC R1 ;指向下一地址</p><p> MOV A,P3 ;取P3口
50、掃描字 </p><p> JNB ACC.3,ENDOUT ;四位顯示完轉(zhuǎn)ENDOUT結(jié)束</p><p> RL A ;掃描字循環(huán)右移</p><p> MOV R5,A ;掃描字放入R5暫存</p><p> MOV P3,#0FFH ;顯示暫停
51、</p><p> AJMP PLAY ;轉(zhuǎn)PLAY循環(huán)</p><p> ENDOUT: MOV P3,#0FFH ;顯示結(jié)束,端口置1</p><p> MOV P1,#0FFH </p><p> RET ;子程序返回</p><p>
52、 ;LED數(shù)碼顯示管用共陽段碼表,分別對(duì)應(yīng)0~9,最后一個(gè)是"熄滅符"</p><p> TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH</p><p> ;1ms延時(shí)子程序,LED顯示用</p><p> DL1ms: MOV R6,#14H</p
53、><p> DL1: MOV R7,#19H</p><p> DL2: DJNZ R7,DL2</p><p> DJNZ R6,DL1</p><p><b> RET</b></p><p> ;模數(shù)轉(zhuǎn)換測(cè)量子程序</p><p>
54、; TEST: CLR A ;清累加器A</p><p> MOV P2,A ;清P2口</p><p> MOV R0,#70H ;轉(zhuǎn)換值存放首址</p><p> MOV R7,#08H ;轉(zhuǎn)換8次控制</p><p> LCALL TESTART
55、 ;啟動(dòng)測(cè)試</p><p> WAIT: JB P3.7,MOVD ;等A/D轉(zhuǎn)換結(jié)束后轉(zhuǎn)MOVD</p><p> AJMP WAIT ;P3.7為0等待</p><p> TESTART: SETB P2.3 ;鎖存測(cè)試通道地址</p><p> NOP
56、 ;延時(shí)2us</p><p> NOP </p><p> CLR P2.3 ;測(cè)試通道地址鎖存完畢</p><p> SETB P2.4 ;啟動(dòng)測(cè)試,發(fā)開始脈沖</p><p> NOP ;延時(shí)2us</p><p>
57、 NOP </p><p> CLR P2.4 ;發(fā)啟動(dòng)脈沖完畢</p><p> NOP ;延時(shí)4us</p><p> NOP </p><p> NOP </p><p> NOP
58、 </p><p> RET ;子程序調(diào)用結(jié)束</p><p> ;取A/D轉(zhuǎn)換數(shù)據(jù)至70H~77H內(nèi)存單元</p><p> MOVD: SETB P2.5 ;0809輸出允許</p><p> MOV A,P0 ;將A/D轉(zhuǎn)換值移入A</p>
59、<p> MOV @R0,A ;放入內(nèi)存單元</p><p> CLR P2.5 ;關(guān)閉0809輸出</p><p> INC R0 ;內(nèi)存地址加1</p><p> MOV A,P2 ;通道地址移入A</p><p> INC A ;
60、通道地址加1</p><p> MOV P2,A ;通道地址送0809</p><p> CLR C ;清進(jìn)位標(biāo)志</p><p> CJNE A,#08H,TESTCON ;通道地址不等于8轉(zhuǎn)TESTCONT再測(cè)試</p><p> JC TESTCON ;通道地址小于8轉(zhuǎn)TESTC
61、ONT再測(cè)試</p><p> CLR A ;大于或等于8,A/D轉(zhuǎn)換結(jié)束,恢復(fù)端口</p><p> MOV P2,A ;P2口置1</p><p> MOV A,#0FFH ;</p><p> MOV P0,A ;P0置1</p><p>
62、 MOV P1,A ;P1置1</p><p> MOV P3,A ;P3置1</p><p> RET ;取A/D轉(zhuǎn)換數(shù)據(jù)結(jié)束</p><p> TESTCON: LCALL TESTART ;再發(fā)測(cè)試啟動(dòng)脈沖</p><p> LJMP WAIT ;跳至
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)-基于單片機(jī)的8路輸入模擬信號(hào)數(shù)值顯示電路設(shè)計(jì)
- 8路輸入模擬信號(hào)數(shù)值顯示器的方案畢業(yè)方案論文
- 單片機(jī)課程設(shè)計(jì)--顯示電路
- 模擬信號(hào)數(shù)字化傳輸系統(tǒng)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---兩路模擬量采樣與顯示
- 單片機(jī)雙路顯示電壓表課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的擴(kuò)展8個(gè)輸入端口的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--模擬交通燈電路課程設(shè)計(jì)
- lcd顯示設(shè)計(jì)單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-- 8路搶答器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--- 單片機(jī)動(dòng)態(tài)掃描顯示
- 單片機(jī)鍵盤輸入課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)(led顯示管)
- 基于單片機(jī)模擬量數(shù)字顯示課程設(shè)計(jì)
- 單片機(jī)lcd系統(tǒng)顯示課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)數(shù)字顯示溫度計(jì)
- 壓力顯示課程設(shè)計(jì)--基于51單片機(jī)的壓力測(cè)量電路
- 單片機(jī)課程設(shè)計(jì)--矩陣鍵盤 led顯示
- led顯示屏單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)----led點(diǎn)陣漢字顯示
評(píng)論
0/150
提交評(píng)論