單片機雙路顯示電壓表課程設計_第1頁
已閱讀1頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  目錄</b></p><p>  一、設計任務---------------------------------------------------1</p><p>  二、總體方案設計與方案論證------------------------------3</p><p>  三、總框圖及總體軟件設計說明---

2、------------------------6</p><p>  四、系統(tǒng)資源分配說明---------------------------------------11</p><p>  五、局部程序框圖及其設計說明---------------------------12</p><p>  六、系統(tǒng)功能與操作說明---------------------

3、---------------18</p><p>  七、調試記錄及調試結果------------------------------------18</p><p>  八、課程設計總結----------------------------------------------21</p><p>  九、源程序清單(詳細注釋)----------------

4、---------------22</p><p><b>  一、設計任務</b></p><p>  設計課題:智能雙路數字電壓表</p><p>  設計目的:通過小型微機應用產品的設計與調試過程,運用《微機原理及接口技術》課程所學的基本知識,在設計中加以應用,進而得到理解、鞏固和提高,學習掌握分析與解決實際問題的方法與手段,提高設計、編

5、程與調試的實際動手能力,作為工程技術工作的一次基本訓練。</p><p>  設計任務:設計一個以單片機為核心的智能雙路數字電壓表,通過多選一電子模擬開關及A/D轉換器巡回采集兩路被測電壓的數據,進行信號處理及標度變換,以一定的節(jié)拍時間交替顯示,應有顯見的符號標示被測信號源回路,并可通過按鈕開關操控凍結或切換顯示,可通過鍵盤進行參數設定,編程并在單片機實驗板上模擬調試實現。</p><p>

6、;<b>  基本設計要求:</b></p><p>  1、八位LED 7段數碼管顯示當前檢測回路的標識、電壓值及其單位或其他界面信息。</p><p>  2、電壓測量范圍0V~4.96V,應有輸入被測電壓超量程判斷及提示。</p><p>  3、應采取數字濾波技術提高測量與顯示的穩(wěn)定性。</p><p>  4、

7、基本顯示模式為:兩路被測電壓值按設定的節(jié)拍交替測量與顯示,電壓值保留二位小數。</p><p>  5、設置一個“凍結”按鈕開關以操控進入或退出當前回路的凍結顯示方式,凍結顯示期間每約0.5S更新一次測量值。</p><p>  6、設置一個“切換”按鈕開關以操控強行切換顯示下一檢測回路數據。</p><p>  7、對開關量輸入信號須進行軟件消抖動處理。</

8、p><p>  8、鍵盤設定交替測量顯示的節(jié)拍范圍為0.5S~5.0 S,設定分辨率0.1V,設定界面應有醒目的當前修改位提示。</p><p>  9、無操作時間超過30秒鐘后自動恢復為基本的運行狀態(tài)。</p><p>  功能擴展提示:(選做)</p><p>  1、開機進行接口部件及數碼顯示器、指示燈、訊響器等自檢。</p>

9、<p>  2、每隔一定的時間,穿插顯示實時鐘信息一定的時間,通過鍵盤設定其間隔參數。</p><p>  3、擴展顯示模式二:同時顯示兩路電壓測量數據,每約0.5S更新一次測量值,電壓值保留一位小數。設置一個“模式”撥動開關以選擇兩種顯示模式之一。</p><p>  4、超上限告警功能,通過鍵盤設定電壓上限值范圍為0V~4.96V ,監(jiān)測到某回路電壓超上限時有相應顯示內容的

10、閃爍提示、超上限LED指示燈亮、訊響告警及繼電器觸點輸出控制功能。</p><p>  5、實現帶有回差的超上限告警功能,通過鍵盤設定回差值的范圍為±0 .10V~±0.50V,設定回差分辨率0.01V。</p><p>  6、添加超下限告警功能。</p><p>  7、添加多擋量程功能,如1.24V量程、0.31V量程。</p>

11、<p><b>  8、其他功能擴展。</b></p><p>  二、總體方案設計與方案論證</p><p>  本次課程設計是要設計出一個智能雙路數字電壓表,能符合實際應用且充分考慮到客戶的需求。基于基本的設計要求,我采取了先設計出若干個具有不同功能的子模塊,再由主流程不斷循環(huán)調用,同時各個子模塊之間還可以通過設定標志位或調用同一單元進行彼此的相互關

12、聯,采用這種模塊化的設計方式是為了使能使各個程序塊分工明確,設計思路清晰明了,降低程序復雜度,使程序設計、調試和維護等操作簡單化。</p><p>  由設計要求,將程序分為以下十四個模塊,分別是系統(tǒng)初始化、開關輸入與消抖、標度轉換、拆字送顯緩、鍵盤掃描、顯示更新、AD采集與數據滾存、交替顯示、凍結控制、切換控制、設定節(jié)拍、節(jié)拍位閃爍、設定模式下無操作控制、時鐘顯示。同時還增加一個主流程模塊,用于在后十三個模塊之

13、間不斷循環(huán)。實現電壓表的工作正常進行。</p><p>  由于電壓表具有不同的工作模式,在不同的模式下數碼管的顯示內容是不同的,因此設計了一個進程代碼單元,使得在不同進程代碼下拆字送顯緩的內容是不同的,同時由于某些功能只有在某個進程時方可以實現,也可以通過判斷這個進程代碼單元的內容來決定是否可以執(zhí)行該功能。采取這種控制方案便可以實現電壓表不同模式的顯示和控制。</p><p>  在模塊

14、化的程序結構和用代碼單元來代表不同模式的大方案下,一下是每個模塊的具體方案:</p><p><b>  系統(tǒng)總初始化模塊</b></p><p>  在系統(tǒng)初始化模塊中需要向82C55芯片和A/D0809芯片的控制端口送入對應的控制字,實現數碼管與鍵盤接口等的初始化,完成各PB按鍵、SW電平開關等端口的輸入輸出設定,同時還要在系統(tǒng)初始化模塊中給一些變量或存儲單元賦初

15、值,為系統(tǒng)開始工作做好準備。</p><p>  2.開關輸入與消抖模塊</p><p>  對PB口采用滾動濾波法實現開關消抖,將29H到2EH共7個單元作為開關輸入狀</p><p>  的存儲單元。其中2EH為新態(tài),2FH為前態(tài),29H、2AH、2BH、2CH、2DH存儲的是最近五次的電平值,通過比較近五次的電平值是否相等,若相等則將該值存入新態(tài)單元中,供后面

16、的其他模塊子程序調用。不相等則繼續(xù)存儲比較。同時在后面的其他模塊調用時,通過比較2EH與2FH的內容就可以對開關的各種狀態(tài)進行判斷,同時還很好的消除了抖動的影響。</p><p><b>  3.標度轉換模塊</b></p><p>  在標度轉換模塊這里有兩種方案可供選擇:</p><p>  一種是首先判斷高位66H單元中式1還是0,若是1

17、,則對BCD碼的百位存放單元賦值2,而后對低位67H單元中的值除以一百取到百位值,加到BCD碼百位存放單元中,而后取余數除以十,整數加到十位存放單元中并判定若是和值超過10則百位加一,之后取除以十以后的余數加到個位單元中,然后再次判斷十位單元是否需要加1,乃至百位單元是否需要加1。但由于此種方法過于繁瑣,因此在調試模塊中改用xx老師提供的辦法寫出另一種實現方式的程序。</p><p>  高位依舊判斷是0還是1,

18、是1則低位的值應加上256,所以只需在高位加2,而低位先加上56,再進行進位判斷。具體程序在調試報告中說明,但由于新寫好的程序未有機會調試,因此在程序清單部分中還是采用老方法。</p><p><b>  4.拆字送顯緩模塊</b></p><p>  在拆字送顯緩模塊中,需要對數碼管不同的顯示模式分開拆字送顯緩,因此進程代碼在這里就起到了很好的區(qū)別對待作用了。分別用

19、01,02,03,10,11代表進程模式為顯示第一路、顯示第二路、顯示時鐘、設定節(jié)拍整數位以及設定節(jié)拍小數位。同時在基本模式即第一第二路電壓值顯示狀態(tài)下,對數碼管其他位固定賦值“U1= V”“U2= V”即可,僅需對由標度轉換后的單元拆字送到需要顯示電壓值的四個數碼管對應的顯緩單元中。而節(jié)拍設定模式下僅顯示兩位節(jié)拍值與節(jié)拍單位。</p><p><b>  5.鍵盤掃描模塊</b><

20、;/p><p>  鍵盤掃描方法共有線反轉法和掃描法。掃描法的思想是先把某一位置為低電平,其余位為高電平,然后檢查各電平的變化。弱某行線電平為低電平,則可確定此行列交叉點為按下鍵。但由于此方法需要多次掃描,過于麻煩,因而我們采用的是線反轉法。</p><p>  線反轉法就是通過兩步:第一步使列線全為輸出低電平,行線輸入,則行線由高變低所在行為按鍵所在行;第二步使使行線全為輸出低電平,列線輸入

21、,則列線由高變低所在列為按鍵所在列。</p><p>  同時設定兩個單元62H與61H為舊態(tài)單元與新態(tài)單元。判斷出鍵盤按下的鍵號存入61H中,可以通過比較61H與62H的內容判斷鍵盤按鍵的狀態(tài)。并在其他子模塊中調用61H中的值實現不同按鍵的不同操作。</p><p><b>  6.顯示更新模塊</b></p><p>  本模塊的功能是將拆

22、字后顯示緩沖單元所存的內容通過查表得相應字段碼一一送往各個數碼管顯示,其中有包括對基本模式下電壓值的小數點以及節(jié)拍設定數據個位小數點的處理。</p><p>  7.AD采集與數據滾存模塊</p><p>  由于有雙路數據,采用主流程循環(huán)奇數次對第一路進行采集并滾存,偶數次為另一路。同時由于AD轉換需要一定的轉換時間,所以采用先讀取某一路上一次轉換的結果,設四個單元滾存數據,然后再啟動另

23、外一路下一次轉換的流程。每一路都滾存四個單元并求取其平均值,這羊能夠提高數據測量與顯示的穩(wěn)定性</p><p><b>  8.交替顯示模塊</b></p><p>  該模塊僅在進程模式為基本工作模式下進行,通過引入定時器中斷程序中的一個計時單元來判斷時間是否與設定節(jié)拍的時間相一致,一致時則切換到另一路顯示的進程中。</p><p><

24、b>  9.凍結控制模塊</b></p><p>  凍結控制是通過PB口上的按鍵PB2來控制的,當PB2處于按下狀態(tài)就進入凍結模式,凍結模式下是能夠保持顯示此時的工作模式,沒有交替顯示,持續(xù)顯示第一路、第二路或時鐘模式,凍結模式下可以進行強制手動切換,但不能進入設定模式。</p><p>  10.強制切換控制模塊</p><p>  強制切換模

25、式是在進程代碼為01或者02即顯示第一路和第二路電壓的基本模式時方可實現的,由PB3按鍵控制,按下PB3按鍵能夠由當前顯示的這一路立刻跳轉到顯示另一路電壓值。凍結模式下亦可強制切換。</p><p>  11. 節(jié)拍設定模塊</p><p>  節(jié)拍設定也是由PB口上的兩個按鍵來控制的,PB7鍵按下進入節(jié)拍設定模式,按下鍵盤上的數字鍵進行對節(jié)拍整數位和小數位的設定,同時設置兩個存儲單元一個

26、為臨時節(jié)拍單元用于拆字顯示,一個為確定節(jié)拍單元,用于交替顯示比較。PB0為確定鍵,當確定鍵按下后將設定完的節(jié)拍值送入確定節(jié)拍單元,作為之后交替顯示的節(jié)拍時間。</p><p>  12.節(jié)拍位閃爍模塊</p><p>  此模塊是當進入節(jié)拍設定時用于提示當前為哪一位修改,其實現原理是將定時器中斷中的1S計時單元拿來分段,某一段中讓數碼管亮,而某一段對數碼管當前位關顯示。當整數位設定時有數字

27、鍵按下后立刻跳到小數位閃爍,不斷循環(huán)。</p><p>  13.設定時無操作控制模塊</p><p>  無操作是在設定模式下當一定時間內PB口與鍵盤上均無任意鍵按下時即跳轉回基本工作模式。通過引入定時器中斷中的一個計時單元來與設定的時間進行判斷,同時在鍵盤與PB口掃描程序中對案件有否按下進行判斷,按下則對該計時單元清零,由此實現無操作控制。</p><p>&l

28、t;b>  14.時鐘顯示模塊</b></p><p>  時鐘顯示模式的進程代碼為03,在定時器中斷子程序中能實現實時鐘功能,因此我們只需在交替顯示模塊中沒交替幾輪后便使進程代碼跳為顯示時鐘的模式,而后由拆字子程序拆存放時鐘時分秒值的那幾個單元便可以在數碼管上每幾個輪回顯示一次實時鐘。</p><p>  三、總框圖及總體軟件設計說明</p><p&

29、gt;  1.總體軟件模塊圖如下所示:</p><p><b>  設定節(jié)拍控制 </b></p><p>  設定節(jié)拍位閃爍控制 </p><p>  設定模式下定時實現無操作</p><p><b>  時鐘顯示</b></p><p><b>  總體軟件設計

30、說明:</b></p><p>  單片板一上電后首先進行系統(tǒng)的初始化,對兩片82C55芯片的控制口寫入控制字,完成各端口的輸入輸出設定,定義82C55(U3)為數碼管顯示與矩陣鍵盤接口</p><p>  A和B口輸出字段字位,C口輸入。82C55(U5)為LED顯示,開關,按鍵接口,A口輸出驅動L8-15,B口輸入按鍵P0-7,C口輸入電平開關SW0-7。同時給一些變量或存

31、儲單元賦初值,開T0中斷,初始化T0定時方式為方式2,TH0、TL0均賦初值為48H。</p><p>  在進入主循環(huán)之前,先進行九輪調用AD采集子模塊,目的是為了讓四個滾存單元先存好AD轉換的值以便在第一次調用標度轉換時就可以以準確的AD轉換值進行計算,保證了測量的穩(wěn)定性。</p><p>  之后進入主循環(huán),首先調用的是開關輸入及消抖子程序,放在最開始的目的是為了方便后續(xù)子模塊對PB

32、口按鍵開關的使用,本次設計普遍采用按鍵下降沿有效,因此后續(xù)模塊只需判斷弱前態(tài)為高電平,新態(tài)為低電平即按鍵按下,進行操作即可。</p><p>  接下來調用的是標度轉換子模塊,之所以要將標度轉換放在主流程調用的前端是為了能夠在第一輪就有AD轉換后轉成可顯示的BCD碼電壓值輸出顯示,標度轉換約每0.5s調用一次,因此在子程序開頭應有判斷主流程循環(huán)50次后方進行一次標度轉換。</p><p>

33、  接下來調用的是拆字送顯緩模塊,拆字送顯緩中每次對進程代碼單元內的內容進行判斷,根據各個不同進程代碼進入到相應的拆字模塊中進行不同的拆字,在拆字送顯緩模塊中還應對基本工作模式下的第一路和第二路電壓值進行判斷,看是否有超過最大量程4.96V,若有超量程應有超量程提示,此時數碼管會顯示出’“UI=1---V”或“U2=1---V”。</p><p>  拆字送顯緩模塊調用完后進入鍵盤掃描模塊,鍵盤掃描模塊即用線反轉

34、法判斷出哪個鍵號按下,鍵號存入61H單元中以供后用。而后進入顯示更新模塊中,本模塊的功能是將顯緩單元中的內容通過查表得相應字段碼一一送往對應的顯示緩沖單元顯示,該模塊包括對電壓值的個位小數點的處理,當判斷查表轉到33H單元時,就將33H中的內容附上小數點。</p><p>  接下來是AD采集模塊,AD采集模塊中分兩路輪流采集,主流程循環(huán)奇次采集U1電壓,偶次循環(huán)采集U2電壓,每次采集都讀取一次AD轉換后的值存到

35、四個滾存單元的最外層,同時四個滾存單元滾存一輪,則每個單元的值都滾到下一單元,而最內側單元的值是最早讀取的則被覆蓋。然后再啟動另一路電壓的AD轉換,用主流程10ms的時間作為轉換的延時時間。因此AD采集是每10MS采集一次。</p><p>  而后是交替顯示模塊,除了基本的實現按照節(jié)拍設定的時間來交替顯示外,為保證一輪交替后能夠立刻顯示最新的電壓值,因此在一輪交替后會將標度轉換子程序開頭的計數單元賦值1,從而能

36、夠在隨后調用標度轉化時立刻減一開始標度轉換。同時在一輪交替完也會進行對27H計數單元加一,以實現達到一定交替次數后進行一次時鐘顯示。</p><p>  凍結模塊是PB口上的PB2按鍵控制,按下凍結當前路顯示,再次按下退出。強制切換模式是由PB3按鍵控制,按下就會強制跳到另一路的電壓顯示,這兩種控制在跳轉到另一路時都要對交替顯示中的計時單元置零,使之能正常的進行交替顯示,否則當該計時單元超過設定節(jié)拍單元后會一直增

37、加到FFH,再回到00H,這樣會使得某一路顯示得特別長時間。</p><p>  設定與閃爍模塊的工作模式是,按下PB7,則設定節(jié)拍單元將初始節(jié)拍值送臨時節(jié)拍單元,則此時數碼管會顯示臨時節(jié)拍單元的節(jié)拍值,同時整數位閃爍,表示此時數字鍵按下會改變整數位值,當有數字鍵按下則小數位立刻開始閃爍,此時進入設定小數位,當有數字鍵按下后又會返回到整數位的設定,而按下的鍵號都會立刻送到臨時節(jié)拍單元,直到確定鍵PB0按下,便會將

38、此時臨時節(jié)拍單元存的值送回確定節(jié)拍單元中。這便是新的節(jié)拍。而在設定完成后回到基本工作模式也要對標度轉換的計數單元賦值為1.</p><p>  無操作模塊子程序主要是執(zhí)行計時單元與設定時間相一致時返回基本工作模式,而具體判斷有否按鍵按下則主要在鍵盤掃描與PB口開關消抖子模塊中判定。</p><p>  四、系統(tǒng)資源分配說明</p><p>  AT89S51片內存儲

39、單元分配:</p><p>  五、局部程序框圖及其設計說明</p><p>  之前的介紹都是按照主流程調用模塊的順序來介紹,接下來為方便了解整體的工作思路,將按照電壓表工作模式來介紹。</p><p><b>  AD采集模塊</b></p><p>  實現輪流采集AN0,AN1兩路AD轉換后的值并滾存到四個滾存單

40、元中,同時啟動另一路的轉換</p><p>  奇次 偶次</p><p>  讀取AN0(U1) AD轉 讀取AN0(U1) AD轉</p><p>  換的值,進行一次滾存,

41、 換的值,進行一次滾存,</p><p>  啟動AN1的AD轉換 啟動AN1的AD轉換</p><p><b>  2.標度轉換模塊</b></p><p>  實現將4個滾存單元中的值相加求平均值,然后轉換成BCD碼輸出顯示到數碼管上</p><

42、p><b>  否</b></p><p><b>  67H單元加1</b></p><p>  是 </p><p>  將四個滾存單元內的值</p><p><b>  相加,和的高位存入</b></p><p>

43、  4AH,低位存入4BH</p><p>  將存低位的4BH中的值乘上</p><p>  125,乘完后高位存64H</p><p>  高位存65H,此為低位乘法</p><p>  將存高位的4AH中的值乘上</p><p>  125,乘完后高位存66H,</p><p>  高位存

44、67H,此為高位乘法</p><p>  4AH與4BH乘完125后的</p><p>  值進行錯位相加,即64H加</p><p>  上67H,值存入67H中</p><p>  是 否</p><p><b>  66H加1</b></p>&l

45、t;p><b>  3.節(jié)拍設定模塊</b></p><p>  節(jié)拍設定模塊就是當設定鍵(PB7)按下后進入節(jié)拍設定模式,確定鍵(PB0)退出</p><p><b>  開關消抖子模塊</b></p><p>  實現對PB口采用滾動濾波法實現開關消抖,將29H到2EH共7個單元作為開關輸入狀</p>

46、<p>  的存儲單元。其中2EH為新態(tài),2FH為前態(tài)同時在后面的其他模塊調用時,通過比較2EH與2FH的內容就可以對開關的各種狀態(tài)進行判斷,同時還很好的消除了抖動的影響。</p><p><b>  交替顯示模塊</b></p><p>  通過引入定時器中斷程序中的一個計時單元來判斷時間是否與設定節(jié)拍的時間相一致,一致時則切換到另一路顯示的進程中。&

47、lt;/p><p>  當計時單元與確定節(jié) 當計時單元與確定節(jié)拍單</p><p>  拍單元的值相等時 ,對 元的值相等時,對20H單元</p><p>  20H單元賦值為02 賦值為01</p>

48、<p><b>  6.凍結模塊</b></p><p>  凍結控制是通過PB口上的按鍵PB2來控制的,當PB2處于按下狀態(tài)就進入凍結模式,凍結模式下是能夠保持顯示此時的工作模式,沒有交替顯示,持續(xù)顯示第一路、第二路或時鐘模式</p><p><b>  7.無操作模塊</b></p><p>  無操作是在設

49、定模式下當一定時間內PB口與鍵盤上均無任意鍵按下時即跳轉回基本工作模式。通過引入定時器中斷中的一個計時單元來與設定的時間進行判斷,同時在鍵盤與PB口掃描程序中對案件有否按下進行判斷,按下則對該計時單元清零,由此實現無操作控制</p><p><b>  8.強制切換模塊</b></p><p>  強制切換模式是在進程代碼為01或者02即顯示第一路和第二路電壓的基本模

50、式時方可實現的,由PB3按鍵控制,按下PB3按鍵能夠由當前顯示的這一路立刻跳轉到顯示另一路電壓值。</p><p>  六、系統(tǒng)功能與操作說明</p><p><b>  系統(tǒng)功能</b></p><p>  本次設計的是一個以單片機為核心的雙路巡回采集電壓表系統(tǒng)。顯示儀表是8個數碼管,每路的電壓值在通過A/D轉換巡回采集以及進行數據的處理和變

51、換后,能以一定的節(jié)拍時間(2S)在數碼管上巡回顯示且不斷更新每一路的最新電壓值,其中數碼管的最高兩位顯示當前采集并轉換的電壓值,最低位顯示電壓的符號V,左數第三位顯示等號,左數第四.五、六、七位顯示電壓值??刹僮鞴δ苡校?lt;/p><p>  1.可通過按動PB按鍵上的PB2與PB3進行對電壓顯示的凍結和強行切換;</p><p>  2.按鍵PB7可以控制進入交替顯示的節(jié)拍設定模式,PB0

52、是確定鍵控制電壓表按照設定的節(jié)拍進行交替顯示,當初在設定模式下,若是30秒內無任意鍵按下,將會自動返回到基本工作模式。</p><p>  同時該電壓表會在每交替顯示5次后穿插顯示一次時鐘,且由于該電壓表量程為0~4.96V,當超過最大值4.96V時會有超上限顯示</p><p><b>  操作說明</b></p><p>  單板機上電以后

53、,先要等待約1S的時間等待芯片上電復位結束,然后進入主程序流程,在數碼管上可以看到能以一定的節(jié)拍時間(2S)在數碼管上依序顯示兩路電壓的序號及電壓值,其中數碼管的最高兩位顯示當前采集并轉換的電壓值,最低位顯示電壓的符號V,左數第三位顯示等號,左數第四.五、六、七位顯示電壓值。同時每交替顯示5輪后將會出現一次實時鐘,顯示當前時間。</p><p>  PB7與PB0按鍵是分別用來控制設定節(jié)拍與節(jié)拍設定結束的確定按鍵

54、。通過按下PB7按鍵進入節(jié)拍設定的整數位設定,此時可以看到節(jié)拍的整數位開始閃爍,按下鍵盤上的數字鍵后整數位值立刻被改變,同時小數位閃爍,表示進入小數位的設定,再按下任意數字鍵,將會再次返回到整數位的設定,直到PB0確定鍵按下后,系統(tǒng)將會回到基本工作模式,同時按照設定好的節(jié)拍進行交替顯示。若是進入設定模式按下確定鍵之前,沒有任意鍵按下則30S內會自動回到基本工作模式下。</p><p>  PB2按鍵是控制進入與退

55、出凍結模式,凍結模式將會靜止在當前電壓的顯示路上,同時每0.5s更新顯示值。PB3按鍵是實現強制切換,按下可以是現在兩路電壓之間不斷切換顯示。</p><p>  在基本工作模式下,旋轉AN0與AN1上的電位器,可以觀察到兩路電壓值均會發(fā)生變化,從0V~4.96V,AN0電位器對應U1路的顯示值,AN1電位器對應U2路顯示,由于最大值為4.96V,所以當旋轉電位器時值大于4.96V后,將會出現超量程提示。<

56、/p><p>  七、調試記錄及調試結果</p><p>  在設計的最初兩天,我們一接到老師布置的設計任務書,就開始緊鑼密鼓的構思程序的設計了,在老師提示的用一個進程單元存放不同代碼以區(qū)別不同顯示模式的思路下,我們首先便有了一個大致的框架,因此我先編寫出了系統(tǒng)初始化,拆字送顯緩模塊,顯示更新模塊和交替顯示模塊,在第一天調試我就成功實現已編寫程序的功能,當下感到備受鼓舞,而之后我便開始啃節(jié)拍設

57、定以及鍵盤掃描程序這塊相對較難啃的骨頭,結果第二天調試來調試去始終毫無斬獲,沮喪之余便轉而改寫凍結或外切換功能,待這兩個功能實現后方才又重新回去調試節(jié)拍設定與鍵盤功能。</p><p>  在節(jié)拍設定編寫的一開始,我犯了一個常識性錯誤,以為在整數位設定完后按下確定鍵方才進行小數位的設定,而小數位設定完后再按下確定鍵才把節(jié)拍值送到確定單元中。而事實上在生產實際中,均是在整數與小數位之間不斷巡回,直到最終確定鍵按下才

58、送入確定單元中,因此我對自己的設計思路重新進行了修正。另外在拆字送顯緩模塊中將整數位的設定模式與小數位的設定模式歸為一類使得一開始始終無法進入到設定的界面中。一分開后就能夠正常的實現了。</p><p>  另外在我進行退出凍結模式,或者是設定完后返回基本工作模式時,總是要等很長時間才會進入2S的交替顯示狀態(tài),而后在老師的提示下我才明白原來是在要返回時沒有對交替顯示的計時單元清零,因此那個單元一直在進行加運算,自

59、然會延時很長的時間。</p><p>  而后無操作模塊中,調試的時候我設定的是無按鍵按下開始算起10S后回到基本工作模式,可是事實上變成從已進入設定模式無論有無按鍵按下均10S后自動跳回,究其原因原來是對按鍵按下的判定錯誤導致無法實現從最后一次按鍵按下之后開始延時。</p><p>  以上便是第一周調試時出現的比較記憶深刻的問題,第二周開始調試AD采集與滾存以及標度轉換模塊。我先調試標

60、度轉換子模塊,由于邊度轉換子模塊要實現較多的功能,因此我將這個子模塊下面又分成幾個小塊,并分塊進行調試,直至所有小塊均調試成功后才合并在一起最終調試。但是一開始我沒弄明白AD采集與標度轉換的關系,以為是每一路的標度轉換也是按照主流程循環(huán)奇次或者偶次決定哪一路進行標度轉換,因此程序編寫有誤。在最終求出的二進制電壓平均值要轉換成BCD碼的變換程序中,我采用的方法是首先判斷高位66H單元中式1還是0,若是1,則對BCD碼的百位存放單元賦值2,

61、而后對低位67H單元中的值除以一百取到百位值,加到BCD碼百位存放單元中,而后取余數除以十,整數加到十位存放單元中并判定若是和值超過10則百位加一,之后取除以十以后的余數加到個位單元中,然后再次判斷十位單元是否需要加1,乃至百位單元是否需要加1。但由于此種方法過于繁瑣,因此改用xx老師提供的辦法,高位依舊判斷是0還是1,是1則低位的值應加上256,所以只需在高位加2,而低位先加上56,再進行進位判斷,這樣步驟便變得簡單了許多。</

62、p><p><b>  以下是修改程序:</b></p><p>  MOV A,66H ;對66H單元判斷是1還是0</p><p>  CJNE A,#01,ZB11;不相等跳轉</p><p>  MOV 68H,#2 ;是1的話,百位賦值為2</p><p>  MOV A,67H ;取出低字

63、節(jié)單元內容</p><p>  MOV B,#100 ;對B賦值100</p><p>  DIV AB除以100</p><p>  ADD A,#02H;商值加2</p><p>  MOV 68H,A;送68H單元</p><p>  MOV A,B;余數送A</p><p>  ADD

64、A,#56;余數加56</p><p>  MOV B,#100;對B賦值100</p><p>  DIV AB;余數加56后除以100</p><p>  ADD A,68H;商值與高字節(jié)68H單元相加</p><p>  ZB11:MOV 68H,A;高字節(jié)值送68H單元</p><p>  MOV A,B;取出

65、余數(低字節(jié)值)</p><p>  MOV B,#10;對B賦值10</p><p>  DIV AB;余數除以10</p><p>  MOV 69H,A;商值送69H單元</p><p>  MOV 6AH,B;余數值送6AH單元</p><p><b>  ZBT: RET</b><

66、/p><p><b>  八、課程設計總結</b></p><p>  大學的課程設計是從大三開始的,而印象中最深的莫過于數字電子的課程設計與這次微機的課程設計了,還記得上學期數字電子的課程設計那兩周時間內,熬夜布線畫圖,洗板是遇到質量問題接連換了三塊板,而后期在調試時也是充滿了各種緊張與挫折。經歷了上學期的歷練,我感覺這次的課程設計我會相對更沉穩(wěn)一些,設計與調試中也會更

67、加有自信與有把握一些了,但是由于在第一周的周末急需回家辦理赴海外考試的手續(xù),為怕耽誤設計我在第一周也盡量抓緊將程序設計妥當,以至于晚上也去調試,后來才知道實驗室老師是因為我要去才留下來值班,真的是十分過意不去,辛苦了這位實驗室的老師了。</p><p>  在第一周的調試時,我進行的比較順利,因此在老師提供AD采集與標度轉換的方法之前我已將其他功能調試妥當,而之后第二周的調試就略顯緊張與急躁了,在發(fā)現問題時我不夠

68、冷靜,沒有盡力去思索如何發(fā)現問題,而是總想求助于同學和老師,這點是不可取的,但是它又有一個好處就是當我求助于班級里的高手或者是詢問老師時會發(fā)現有時候一個高手在你身邊為你指出錯誤還不如教你如何排查并找出這個錯誤, 通過詢問我也學會了如何更加全面的運用KEIL軟件以及如何迅速的縮小范圍以及找出錯誤點,這點是在平時上課時學不到的,收獲確實很大。另外,在設計時在我思路卡殼的時候,我也會求助于班上已經設計出來了的同學,并且學到了不少好的設計思路與

69、好的想法,這也要得益于大家在這兩周的時間都是全情投入且始終樂于交流彼此的想法并熱于幫助他人解答疑惑,這種氛圍真的很美妙,我想這也是課程設計的真諦之一吧,促進大家一同來進行頭腦風暴,并搭建一個互相交流研究的平臺,以促進我們更好的進步。</p><p>  兩周的實習收獲著實很大,當然也有很痛苦的時候,比如一整天都對著電腦,眼睛會很疲勞,也有研究程序到半夜一兩點的,但身邊的人的這種熱情確實讓我真實的感受到了一種工科人

70、對工作的認真的投入精神,兩周的實習老師也陪伴了我們兩周,xx老師的治學嚴謹,要求嚴格甚至較苛刻與平時的和藹可親和循循善誘的反差也給我們留下了深刻的印象,現在“有錯就改”已經成為了我們生活中的口頭禪了。我還記得在上單片機的第一節(jié)課的時候xx老師說要給我們洗腦,洗成一個合格的工科人,我想經過一學期的學習我確實深刻的感受到了這一點,記得在大一大二的時候我總認為自己學不來這個專業(yè),學不來工科,但是現在我其實已經完完全全的拋棄了這個想法并且總是能

71、積極的投入到每一門學科的學習中去,我想這和我們系里對與人才的培養(yǎng)以及每一位教過我的老師的優(yōu)秀的教學方法和嚴格要求是分不開關系的。因此當xx老師在答辯時問我說喜不喜歡挑戰(zhàn),我的答案是是的,現在我會珍惜每一次挑戰(zhàn),因為在大學里的每一次挑戰(zhàn)就是在我們進入社會之前的每一塊奠基石。在此謝謝老師對我的歷練,培養(yǎng)以及幫助,還有實驗室老師的幫助,還有在這兩周內幫助過我的同學們。感謝xx老師對我們用心的栽培,還有</p><p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論