




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.綜合創(chuàng)新訓練研究報告數字電壓表的訓練 綜合創(chuàng)新訓練研究報告研究題目:單片機實現數字電壓表的訓練2013年 12 月20日工程訓練中心一、實驗題目3二、實驗要求與任務31.實驗要求:32.實驗任務:3三、EXP96教學實驗箱、仿真器的用途簡單說明3四、實驗電路及說明(硬件設計)31.硬件設計方案(電路圖基本工作原理)32.8255的基本工作原理33.8255與單片機的連接及電路譯碼34.鍵盤與8255的連接方式及鍵盤判別原理35.時鐘系統的工作原理及時鐘功能的實現方法36.A/D的工作原理3五、程序編制及說明31.主程序設計及說明31.1主程序功能說明31.2主程序流程圖:32.各子程序設計及
2、說明32.1顯示子程序:32.2判鍵、鍵碼轉換子程序32.3存時間子程序:32.4時鐘顯示子程序:32.5A/D采集程序的實現:3六、程序調試及問題、解決方法:31、程序編寫中的問題:32、顯示子程序調試問題分析:33、電壓測量程序的問題:3七、實驗結果及結果分析31、標準數據與測量數據表(電壓表):32、誤差分析:3八、結論和創(chuàng)新點31、實驗課題完成情況:32、課題創(chuàng)新點或新思路33、收獲與總結:3九、簡易數字電壓表操作手冊3十、附錄:(全部程序)3:42一、 實驗題目80C196單片機EXP96教學實驗箱數字電壓表訓練程序設計與調試二、 實驗要求與任務1. 實驗要求:在實驗室已有單片機實驗
3、系統及仿真器的硬件基礎支持下,編程完成一個帶時鐘功能的單片機控制的模擬信號采集系統(數字電壓表的設計)。2. 實驗任務:、熟悉實驗箱上鍵盤、LED顯示器與單片機的電路連接、熟悉仿真器的作用及文件建立、現場調試等軟件的使用、熟悉80C196的匯編語言程序的編制、編譯與調試。、完成實驗箱鍵盤上LED顯示器程序的設計與調試、利用80C196的定時器完成時鐘程序的調試。、完成雙通道數字電壓表(含時鐘功能)程序的編制與調試。(要求實現鍵盤的判別及鍵盤數據的顯示,A/D數據采集,數字電壓表的實現,要實現程序的主、從結構,程序調試完成后全速運行中可以任意鍵入鍵盤數據,并實時刷新顯示數據,程序運行過程中不得死
4、機)。通過鍵盤實現時鐘的校時(校時要求實現:小時、分、秒)、電壓采集通道的轉換、不同功能(時鐘與電壓表)的切換運行,鍵盤功能利用鍵盤已經提供的09數字鍵和AF功能鍵自行定義。、編制簡易操作手冊。三、 EXP96教學實驗箱、仿真器的用途簡單說明實驗箱是集單片機應用技術、在線調試、在線仿真等功能于一體的開發(fā)系統。仿真器是用以實現硬件仿真的硬件。仿真器可以實現替代單片機對程序的運行進行控制,例如單步,全速,查看資源斷點等。盡管軟件仿真具有無需搭建硬件電路就可以對程序進行驗證的優(yōu)點,但無法完全反映真實硬件的運行狀況,因此還要通過硬件仿真來完成最終的設計。 目前的開發(fā)過程中硬件仿真是必需的。本實驗系統包
5、括AEDK196W仿真機和EXP96實驗箱。實驗箱自帶電源,仿真機AEDK196W由仿真機主機、仿真電纜和仿真插頭三部分組成,可以通過EXP96實驗箱上的XC1兩芯電源插座供電。進行實驗時,實驗箱需要和仿真機配合使用。仿真機通過仿真電纜接至實驗箱上的仿真插座。具體參看圖一。四、 實驗電路及說明(硬件設計)1. 硬件設計方案(電路圖基本工作原理)實驗箱配備了豐富的硬件電路,和詳細的實驗內容,同時模塊化、 積木化的結構支持用戶自己開發(fā)實驗,以滿足INTEL 96系列單片機教學培訓需要。硬件的配備使本實驗系統可以工作在二種狀態(tài),使用跳線XB3(位于實驗箱右下部)切換: (1)短路套XB3打在右端(V
6、CC),實驗機上64K程序空間完全供用戶使用。 (2)短路套XB3打在左端(GND),實驗機上提供16KRAM,3/4K I/O,37.25K ROM空間。實驗箱電路中各接口芯片占用單片機地址如下:ROM(27512)空間地址: 00000BCFFHRAM(6264) 空間地址: 0C0000FFFFHD/A轉換芯片0832片選地址:0BD000BDFFH并行擴展芯片244 : 0BE000BEFFH并行擴展芯片8255的PA口地址: 0BF00H并行擴展芯片8255的PB口地址: 0BF02H并行擴展芯片8255的PC口地址: 0BF04H并行擴展芯片8255的控制寄存器地址:0BF06H仿
7、真器中晶體振蕩器參數:晶體振蕩器:11.0592MHz仿真器在進行系統初始參數設置時,按以下數據進行設置:CPU類型:缺?。?0C196KB)總線寬度:8位ALE管腳:ALE仿真器:AEDK96W通訊:COM12. 8255的基本工作原理8255在單片機應用系統中被廣泛用于可編程外部I/O擴展接口使用,其構成如下(見圖2):數據總線緩沖(驅動)器:用于和單片機的數據總線(D-BUS)連接,以實現單片機與8255芯片的數據傳送。并行I/O接口:8位的ABC口。這三個8位I/O接口功能通過編程決定其輸入/輸出功能讀/寫控制邏輯,用于管理8255所有數據、控制字、狀態(tài)字的傳送。l :片選控制, =0
8、: 8255選通l :讀控制, =0:允許單片機從8255讀取各口數據或狀態(tài)字l :寫控制, =0:允許單片機向8255各口寫入數據或向控制寄存器寫入命令字lA0A1口地址選擇00選通寄存器A(A口)01選通寄存器B(B口)01選通寄存器C(C口)11控制寄存器(控制口)l RESET:復位引腳,RESET=1 8255復位,控制寄存器清零,所有接口(A、B、C)被設置為輸入方式3. 8255與單片機的連接及電路譯碼8255占用CPU的地址如下 : PA8255 EQU 0BF00H ;8255的PA口地址 PB8255 EQU 0BF02H ;8255的PB口地址 PC8255 EQU 0B
9、F04H ;8255的PC口地址 C8255 EQU 0BF06H ;8255的控制字地址4. 鍵盤與8255的連接方式及鍵盤判別原理實驗箱上由16個鍵構成了鍵盤,該16個鍵分別與8255的PB口及PC0、PC1連接。其中, PB口用于讀入鍵值,稱為行線,PC口用于輸出鍵盤掃描信號,稱為列線。 當PC0、PC1輸出均為1,鍵盤封鎖 當PC0、PC1分別為0,則可掃描鍵盤。通過PB口讀入數據,判斷所操作的鍵值。 PC0=0 PC1=1 PB0PB7分別為0,表示所操作的鍵碼為07鍵 PC0=1 PC1=0 PB0PB7分別為0,表示所操作的鍵碼為8F鍵 鍵碼組合關系: 00000010b 111
10、11110B ( 20H FEH) 0 00000010b 11111101B ( 20H FDH) 1 . . 00000010b 01111111B ( 20H 7FH) 7 00000001b 11111110B ( 01H FEH) 8 00000001b 11111101B ( 01H FDH) 9 . . 00000001b 01111111B ( 01H 7FH) F5. LED的顯示方法(共陰型的工作原理、顯示碼的形成)及其與8255的連接,動態(tài)掃描顯示原理。結構圖及工作原理(試驗箱采用共陰LED數碼管): 顯示代碼 建立在標準連接方式下的顯示代碼(ah連接D0D7):顯示字符
11、 0 1 2 3 4 5 6 7段選碼 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 顯示字符 8 9 A B C D E F段選碼 7FH 6FH 77H 7CH 39H 5EH 79H 71H動態(tài)掃描顯示:每一瞬間只有一位顯示器處于點亮狀態(tài)試驗箱電路設計: PA口:與各個LED段碼引腳連接(注意:PA0PA7連接LED ha ) 由此產生的數碼管字形表為: ;*字形表* LED: DB 0FCH,60H,0DAH,0F2H,66H ;0、1、2、3、4 DB 0B6H,0BEH,0E0H,0FEH,0F6H ;5、6、7、8、9 需通過二十轉換程序將二進制碼轉換為LED段
12、碼。在段碼表中查找獲取需要顯示的數字或字母。送顯: 將段碼送到8255的PA口地址 PA8255EQU 0BF00H ;8255的PA口地址 STB AX,PA82550 ;段碼AX送入8255 PA口位控: PC5PC7通過74LS138譯碼器與各個LED位控引腳連接 C B A (PC7 PC6 PC5) 0 0 0 最低位LED選通 0 0 1 次低位LED選通 . 1 1 1 最高位LED選通6. 時鐘系統的工作原理及時鐘功能的實現方法本實驗中選擇了使用軟件定時器的方法實現時鐘功能,以下是軟件定時器實現時鐘功能計算參數: t1min=(2*8/11.059) us=1447ns N1=
13、50ms/1447ns=34554(定時50ms 每50毫秒中斷一次 soft_t 加載數值) N2=1000/50=20 (1s 對應的中斷次數)存儲數值或單元定義:定義常數 t_vt:定標50ms中斷一次,soft_T“1”秒=20。軟件定時器中斷次數,常數值(非通用寄存器),改變此值,改變定時時間,顯示時間的快慢將發(fā)生變化。 soft_n:對應50ms所需要的T1的定時常數:34554定義存儲單元 T_count:定時中斷計數器(一個字節(jié)單元。裝載T1或軟件定時器達到1秒所需的溢出次數或中斷次數) DIS_BUF_P:顯示代碼存放緩沖區(qū)(8個字節(jié)單元,對應實驗箱上的8個LED顯示器) d
14、_buf:40h45h 十進制數暫存緩沖區(qū)(使用5個字節(jié)單元。秒、分、時 二-十進制轉換使用,分存萬、千、百、十、個位) t_buf:4ah4fh 十進制數 時、分、秒單元(6個字節(jié)單元。分別存儲兩位的時、分、秒)YYYN=24?時分秒清零恢復現場中斷返回分單元+1=60?分單元數據 二十轉換分單元清0時單元+1時單元數據 二十轉換軟件定時器中斷保護現場重裝軟件定時器命令軟件定時器中斷保護現場重裝軟件定時器命令、數據時鐘計數器重賦值秒單元+1、數據秒單元數據 二十轉換時鐘計數器重賦值秒單元+1秒單元清0YNNN s_buf:二進制數秒單元(一個字節(jié)單元) m_buf:二進制數分單元(一個字節(jié)單
15、元) h_buf:二進制數時單元(一個字節(jié)單元) 時鐘計數器-1=0?主程序設堆棧指針內存單元清零8255初始化裝軟件定時器命令、數據設基準時鐘計數器初值(根據軟件定時器中斷時間決定50mx=20次達到1s)開放軟件定時器中斷EI時鐘顯示=60?7. A/D的工作原理A/D轉換器:將被測的外部模擬信號轉換為計算機所能接受的數字量。硬件結構:A/D轉換原理(逐次逼近、對分搜索、雙積分):工作原理:8通道10位逐次逼近A/D轉換器 標準電壓Vref(5120mv)經過內部的256個梯形電阻網絡分壓(20mv),再經過電容分壓至1024個標準電壓(5mv). 啟動A/D轉換后,經過88個狀態(tài)周期(T
16、s),完成轉換并將轉換碼存入AD結果單元。 AD的分辨率=Vref/1023被測電壓計算: Vin= AD的分辨率*N =(Vref/1023)*N 轉換時間:88Ts 11.059MHz晶體振蕩器: 轉換時間: 88Ts=15.915usA/D的控制及轉換結果處理: A/D命令寄存器(AD_COMMAND):通道號:D2 D1 D00 0 0 ACH00 0 1 ACH10 1 0 ACH20 1 1 ACH31 0 0 ACH41 0 1 ACH51 1 0 ACH61 1 1 ACH7GO:啟動位 GO=1:立即啟動AD轉換 A/D結果寄存器 與結果的讀出包含兩部分內容:S:狀態(tài)檢測位
17、S=1 正在轉換 S=0 轉換結束通道號:正在轉換的通道AD轉換結果:10位,存在結果寄存器的高10位結果處理:根據公式:被測輸入電壓:Vin= AD的分辨率*N=(Vref/1023)*N (N為AD的轉換碼:000H3FFH)目前的結果存放方式:相當于 N被擴大了64倍,在計算Vin之間,必須對N值做還原處理,縮小64倍,方法:除以64(右移6位)五、 程序編制及說明1. 主程序設計及說明1.1 主程序功能說明在程序的開始對8255進行初始化,調用清內存子程序,清理時間單元緩沖區(qū)的內存;然后設定PB口輸入,PA、PC口輸出;最后裝軟件定時器命令與參數,并開放軟件定時器中斷。當進入主程序后,
18、調用顯示子程序,從00-00-00開始計時。在顯示過程中,同時進行鍵盤掃描,若A鍵按下則進入測電壓子程序,若D鍵按下則進入設定時間初值子程序。若無鍵按下或有其他鍵按下,繼續(xù)顯示時間。 A鍵按下后,進入選擇測量電壓通道的子程序。若6鍵按下,選擇6通道開始測電壓;若7鍵按下,選擇7通道開始測電壓;若5鍵按下,選擇6、7兩通道循環(huán)采集。其他鍵按下沒有作用。B鍵按下后,進入設定時間初值子程序。1.2 主程序流程圖:2. 各子程序設計及說明一、二、22.1 顯示子程序:(1)動態(tài)顯示原理:共有8個LED數碼顯示器,每一瞬間只有一位顯示器處于點亮狀態(tài)。利用視覺暫留的原理,為了讓人眼睛觀察到連續(xù)顯示的效果,
19、需要連續(xù)對8位數碼顯示器進行循環(huán)掃描。即只有在循環(huán)顯示的程序中才會看到8位顯示器同時顯示程序賦給的值。顯示的值是要通過8255與LED相連,確定位選后將待顯示的值經過二十進制轉換并在段碼表中找出相應的段碼并送入8255PA口進行顯示。經過8位的循環(huán)之后,又由于視覺暫留效應會看到8位LED數碼顯示器會顯示出待顯示的值。(2)顯示程序流程圖:2.2 判鍵、鍵碼轉換子程序(1)判鍵、鍵碼轉換子程序原理:判鍵、鍵碼轉換子程序是通過先給8255PC口設掃描列線數據BL初值,02H或是、01H,然后通過判斷8255PB口的數據AL的值來判斷是否有鍵按下,并且經過、一系列的移位,最終通過AL+BL判斷出是哪
20、一行鍵被按下來提取鍵碼,并將其鍵碼轉換成十六進制碼。(2)判鍵、鍵碼轉換子程序:;*判鍵子程序*RD_KB: LDB B1L,#02H ;準備掃描第一列鍵 07 STB B1L,PC82550 SKIP SKIP LDB A1L,PB82550 ;讀鍵碼 XORB A1L,#0FFH ;判斷是否有鍵按下? JNE KEYVAL ;有鍵按下,轉KEYVAL LDB B1L,#01H ;無鍵按下,換列操作 STB B1L,PC82550 SKIP SKIP LDB A1L,PB82550 XORB A1L,#0FFH JNE KEYVAL ;有鍵按下,轉KEYVAL JE NOKEY;*鍵碼轉換子
21、程序*KEYVAL: ANDB B1L,#01H ;列線高位清0,保留低位 SHL B1L,#03H ;當為第二列鍵碼時,數字加“8”,第二列數字的權值,獲得(8F) LDB A1H,A1L LDB A1L,#0FFHSHIFT: INCB A1L ;鍵碼轉換為:0F SHRB A1H,#01H ;通過鍵碼右移,"C=0",鍵碼加1,C=1,鍵碼轉換完成。 JNC SHIFT ORB A1L,B1L ;A1L+B1L=0F 鍵碼 LCALL KEY STB A1L,F1X+ ST A1L,I1X+ SCALL DELAYKBNOKEY: LDB A1L,#10HKBEXIT
22、: RETdelaykb: LD D1X,#0000H ;判鍵延時子程序delaykb1:DEC D1X JNE delaykb1 RET(3)判鍵、鍵碼轉換子程序流程圖:2.3 存時間子程序:(1)存時間子程序原理:在主程序中按B鍵進入設定時間初值子程序。在設定時間初值子程序中中斷關閉,每次按下一個數字鍵,會依次存入小時高位、小時低位、分鐘高位、分鐘低位、秒鐘高位、秒鐘低位等6個存儲單元中,并且會把按下的數字顯示在相應的LED位上。即可以實現輸入時間值的實時顯示。而且只要輸入的小時數大于24或分鐘數大于60或秒鐘數大于60,就會把之前輸進去的時間值清零,等待重新輸入6個時間值。 在設定時間的
23、過程中,按下E鍵會開中斷,并返回主程序中,從設定的時間初值開始計時。按下其他鍵則沒有作用。(2)存時間子程序流程圖:2.4 時鐘顯示子程序:(1)功能說明:將時鐘十進制數值送入顯示緩沖區(qū),尋找各自相應的顯示代碼,經過顯示移位,通過對8255PA口和PC口的控制,實現動態(tài)顯示時鐘基本功能。(2)時鐘顯示子程序:2.5 A/D采集程序的實現:(1)功能說明:在主程序中按A鍵后進入測電壓程序。按6鍵進入6通道采集電壓,按7鍵進入7通道采集電壓,按5鍵則巡檢6、7通道電壓值。將A/D采集到的電壓數值顯示在低五位的顯示器,同時判定所采集的通道號,顯示在最高位顯示器上。(2)A/D采集程序流程圖:六、 程
24、序調試及問題、解決方法:1、 程序編寫中的問題:本學期的創(chuàng)新訓練單片機課程從一開始的時候由于我們課內的微機原理課程是同步進行的,開始的時候對于這個實驗內容不是很了解,匯編語言也是掌握不熟。編寫程序上出現了或多或少的錯誤,最后隨著微機原理的學習,以及對于這門課理解的不斷加深,最后解決了這些錯誤。2、 顯示子程序調試問題分析:(1) 顯示子程序中延時的影響:若延時時間過短,顯示亮度高,但是難以分辨,難以讀數;若延時時間過長,顯示亮度低,數碼顯示閃爍過快,因此示數不穩(wěn)定,難以讀數。經過反復的調整能找到一個合適的延時時間,使顯示碼清晰可辨,而且穩(wěn)定,亮度適宜。(2) 在設定時間初值子程序中,最困難的問
25、題是在LED數碼顯示器上不斷更新當前輸入的數值,而其他顯示位不變。經過不斷地調試之后發(fā)現可以依次用六個循環(huán)顯示子程序,第零個顯示程序顯示00-00-00,輸入第一個數值的時候更改顯示的小時高位值,程序跳到第一個循環(huán)顯示子程序顯示小時高位,其他位保持0不變。依次類推。輸入六個數字后,按下E鍵就可以跳出設定時間初值子程序,開中斷,返回主程序,從設定的值開始計時。但是這樣的程序會有一個問題就是當輸入錯了的時候沒法改正,只有當輸入的時超過24或分鐘、秒超過60的時候才會清零,這個問題到最后還是沒有解決這個問題。3、 電壓測量程序的問題:(1)電壓測定子程序讀取電壓的方法可以用中斷法,也可以用檢查電壓轉
26、換完成標志的方法??紤]到與計時程序的兼容問題,我選擇了后者。(2)最初我們想借鑒老師所提供的演示程序中的思路,使用定時器1和HIS中斷實現電壓循環(huán)采集功能,但是后來因為我電壓測量程序以及時鐘程序并沒有使用定時器1和HIS中斷,但在編程的過程中,我們發(fā)現使用這種思路會加入很多變量,很難實現所要求的雙通道巡檢功能。因此最終我們通過添加延時子程序AD56和AD57實現了雙通道巡檢。使程序在AD6和AD7的功能中循環(huán),我們不斷調整循環(huán)次數來改變6、7兩通道巡檢的時間間隔,使得其間隔達到最佳巡檢時間,完成了最終的實驗要求。七、 實驗結果及結果分析1、 標準數據與測量數據表(電壓表):序號標準電壓(mv)
27、測量電壓誤差備注ACH6 ACH7ACH6ACH7100000最小測量值25045055100.2%1.2%31002100410090.2%0.70%41501150315080.13%0.47%51990199319930.15%0.15%62500249725020.12%0.08%73000299730020.10%0.067%83490349234970.06%0.20%94000400140060.025%0.15%104500450145060.022%0.13%114720471647210.08%0.021%最大測量值2.誤差分析:從整體上看,本實驗的誤差是很小的,絕對誤差值
28、相差不多,而相對誤差值是隨著電壓的增大而減小,高電壓下更為準確。但總體上來說,這個誤差是可以被接受的。分析誤差來源可知以下幾點:首先從實驗數據表格中可以看出,基本上有著7通道電壓值比6通道電壓值大5mv的規(guī)律關系,這是由于系統內的6、7兩個通道是會有略微差別的,因此顯示出來的結果或有細微不同,而現實的分辨率是5mv左右,因此兩通道之間有時可能會差上個5mv。其次,系統存在這系統誤差是不可避免的,這主要由A/D轉換自身的誤差決定,這是無法消除的;還有是由A/D基準電壓不是標準的5.12V所致,若輸入為5.12V,則輸入電壓計算公式為:Vout= 51201023脳N(其中N為從A/D結果寄存器中
29、取出的結果),理論A/D的分辨率約為5mv,但若實際的A/D參考電壓與標準值相差較大時就會帶來較大的誤差,這一誤差可通過測量真實的參考電壓,求得實際的分辨率來提高精度。最后一點是測量儀器(標準數字電壓表)本身存在誤差,這一誤差也無法消除。八、 結論和創(chuàng)新點1、 實驗課題完成情況:經過一個學期的程序調試,我們小組基本上已經完成了本次實驗課題的全部要求,能夠實現時鐘功能,并且可以任意設定有效時鐘,還完成了Ach6、Ach7雙通道電壓測量功能,并且可以兩個通道循環(huán)采集。同時期間也嘗試了修改老師已給的程序。同時還對整個系統進行了多次改進和優(yōu)化,用較少數目的按鍵實現了所有功能,并且各按鍵功能獨立,互不干
30、擾,這樣既提高了按鍵的利用率,又有利于系統的進一步擴展。2、 課題創(chuàng)新點或新思路本次實驗課題中的電壓測量由于系統內部的A/D基準電壓不一定是標準電壓5.12V,而且相差越多,電壓測量誤差越大,鑒于這個現象,我們小組通過改變電壓計算過程中所確定的分辨率的大小,并測量計算對應的誤差大小,通過比較后最終找到最佳的分辨率,從而將誤差減小到最低。以下是我們小組測量計算的6通道電壓數據和結果:當分辨率為5.000mv時,幾組數據:V(伏)1234V標準1.002.003.004.00V測量1.0202.0503.0504.080誤差2%2.5%1.67%2%當分辨率為4.950mv時,幾組數據:V(伏)1
31、234V標準1.002.003.004.00V測量1.0042.0143.0344.044誤差0.4%0.7%1.1%1.1%當分辨率為4.898mv時,幾組數據:V(伏)1234V標準1.002.003.004.00V測量1.0022.0032.9974.001誤差0.2%0.15%0.1%0.025%當分辨率為4.850mv時,幾組數據:V(伏)1234V標準1.002.003.004.00V測量0.9841.9782.9633.952誤差1.6%1.1%1.2%1.2%不同分辨率最大誤差:參數值5000495048984850最大誤差2.5%1.1%0.2%1.6%不同分辨率最大誤差圖像
32、:從圖像中可以看出,當分辨率接近4.900mv時,相對誤差最小,并且進一步測量得出當為4.898mv時,相對誤差最小,因此我們實驗中的程序設計就去的是這一個值:MULU DX,#4898 DIVU DX,#10003、 收獲與總結:經過了一個學期的課程學習,我在這門綜合創(chuàng)新實習課程上學習到了很多的知識,在自己學習應用單片機匯編語言的寶貴經歷中,獲得了很多難得的經驗。一個學期的學習后,我得到了一份充實的經歷作為我的寶貴財富。在這學期里,我們雖然面臨了很多困難,但也通過自己的努力解決了不少問題,能夠最終將課程要求的題目完成,單片機上運行起了自己的程序,我有了不小的成就感。回顧這學期的課程,我對單片
33、機和匯編語言的學習大概分為了:課程理論的學習,演示程序的理解,程序的調試三個階段(第一和第二兩部分很長時間同時進行)。在課程的開始老師給我們講解了關于單片機與匯編語言的基礎知識,雖然老師講解得很仔細,但是說實話我并沒有在那時學得很好。因為這學期的創(chuàng)新實習所用到的大量是微機原理課程中的知識,我在這學期剛開始學習微機原理,微原的進行在很大程度上與創(chuàng)新實習是并行開展的,所以開始遇到了不少困難。由于缺少微原的知識,課程開始的那段時間,我們的項目進行地非常的緩慢,在不少時候我甚至懷疑我們能不能將項目完成。但當我們開始靜下心來,從演示程序入手,一點一點的對照書本和演示程序進行理解,并且微原課開始深入的時候
34、,我們的工作效率提高了。雖然在此之后還是遇到了各種各樣的困難,但是在經過了前一段時間的鍛煉,我們獨立解決困難,自主進行學習的能力得到了提高后,我們還是解決了大部分困難。這也是我這學期除了知識以外最大收獲。我想在以后的學習生活中,一定也會遇到類似的問題,當我再遇到這些困難的時候,我會因為這次的經歷而有信心解決將來的困難。在這學期的學習中,我們還在解決問題的過程中,學會了相互協作,我們小組常與其他小組討論,當我們遇到問題時,常常會有其他同學幫助我們一同思考解決,如開始時我們對字操作和字節(jié)操作一直分得不是太清楚,但是經過其他小組同學的提醒,我們在之后的編程中就注意到這個問題。當其他小組有困難時,我們
35、也常常與他們討論。有不少時候,我們會面臨同樣的問題,如果是我們小組已經解決的問題,我們樂意與其他小組一起分享我們的經驗。我想,這是團隊協作中非常重要的意識。最后再回望一下這學期這門課,感嘆時間過得真快,課題能做出來真不錯。還要謝謝陳老師的講解和指導,每次向老師請教的時候,老師找出問題的速度都非常快而且非常準,這給我們問題的解決提供了很大的幫助。這學期學到很多,感謝創(chuàng)新實習這門課! 九、 簡易數字電壓表操作手冊運行主程序后從00-00-00開始計時功能備注A按下后沒有顯示,等待用戶選擇電壓通道按下A鍵后,再按6、7鍵選擇電壓通道,按5鍵6、7通道巡檢,按其他鍵沒有作用;按下B鍵,設定初值后,再按
36、E鍵可以開始計時,按其他鍵沒有作用;6按下后顯示ach6通道的輸入電壓值7按下后顯示ach7通道的輸入電壓值5按下后巡檢ach6、 ach7通道的輸入電壓值B按下后關中斷,顯示00-00-00,等待設定時間初值按數字鍵依次輸入時(24小時計)、分、秒的六位數字若輸入有誤,需重新輸入時間值E按下后顯示當前時間十、 附錄:(全部程序); soft_T_CLOCK PRO; 計算 t1min=(2*8/11.059) us=1447ns; soft_t 加載 數值 N1=50ms/1447ns=34554 50ms中斷一次; 1s 對應的中斷次數 N2=1000/50=20 C8255 EQU 0B
37、F06H ;8255命令口地址PA8255 EQU 0BF00H ;8255 PA口地址PB8255 EQU 0BF02H ;8255 PB口地址PC8255 EQU 0BF04H ;8255 PC口地址hso_time equ 04hAX EQU 1AH ;wordAL EQU 1AH ;low BYTEAH EQU 1BH ;high BYTEbx equ 1CHbl equ 1CHbh equ 1DHCX EQU 1EH ;DW 1cl equ 1EHch equ 1FH DX EQU 20H ;DW 1DL EQU 20H ;BYTEDH EQU 21H ;BYTEex equ 22H
38、el equ 22Heh equ 23Hcount0 equ 2Ah ;通用計數器1count1 equ 2Bh ;通用計數器2T_count equ 2Ch ;定時計數器(裝載T1達到1秒所需的溢出次數)t_vt equ 20 ;定標50ms中斷一次,soft_T“1”秒=20。軟件定時器中斷次數,常數值(非通用寄存器),改變此值,變化顯示時間的快慢soft_n equ 34554 DIS_BUF_P equ 30h ;顯示代碼存放緩沖區(qū)d_buf equ 40h ;40h49h 十進制數暫存緩沖區(qū)t_buf equ 4ah ;4ah4fh 十進制數 時、分、秒單元s_buf equ 50H
39、 ;二進制數秒單元m_buf equ 52h ;二進制數分單元h_buf equ 54h ;二進制數時單元fx equ 5ChFL EQU 5CHFH EQU 5DH A1L EQU 60H ;鍵值A1H EQU 61HB1X EQU 62HB1L EQU 62HC1L EQU 64h D1X EQU 66HD1L EQU 66HE1X EQU 68HE1L EQU 68H F1X EQU 6cHG1X EQU 6eH ;判斷六位I1X EQU 70HHH EQU 72H ;小時高位HL EQU HH+1 ;小時低位MH EQU 74HML EQU MH+1SH EQU 76HSL EQU S
40、H+1J1X EQU 78H HOURH EQU 80H ;小時高低位合成HOURL EQU 82HMINUTEH EQU 84HMINUTEL EQU 86H SECONDH EQU 88HSECONDL EQU 8AHDT1 EQU 7CH;*GX EQU 56HGL EQU GXGH EQU 57HAD_BUF EQU 90HAD_DISP EQU 0A0HPX EQU 0B0HPL EQU 0B0HPH EQU 0B1HADDRESS EQU 5EHCOUNT3 EQU 60HAD_COMMAND EQU 02HAD_RESULT_L EQU 02HAD_RESULT_H EQU 03
41、H;*org 200ah ;soft定時器中斷向量dw 2800hORG 2080H ;*程序初始化* LD SP,#100Hclrb s_bufclrb m_bufclrb h_buflcall clr_ramLDB A1L,#82H ;PB口輸入,PA,PC口輸出STB A1L,C82550nopldb T_count,#T_VT ;t1溢出次數ldb hsocom,#18H ;加載軟件定時器命令與參數add hsotim,timer1,#soft_nclrb int_pending ldb int_mask,#20h ;開放軟件定時器中斷ei ;*主程序* LOOP: LCALL TIM
42、EDISPLAY LDBFH,#11100001B STB FH,PC8255 LDB FL,PB8255 CMP FX,#0E1F7H ;B JE SET00 CMP FX,#0E1FBH ;A JE K20 SJMP LOOPSET00: LCALL DELAYKB LJMP SET0K20: LJMP AD_CHANGNEL;*時間顯示子程序*TIMEDISPLAY: LDB COUNT1,#6 ld cx,#t_buf ;取時間顯示位 ld ex,#dis_buf_pdis_lp0:ldb dl,cx+ clrb dh add dx,#LED ;尋找顯示代碼 LDb al,dx ;存顯
43、示代碼stb al,ex+djnz count1,dis_lp0ld ax,#dis_buf_pldb bl,5ax ;顯示移位 12位顯示秒,3位顯示小數點,45位顯示分,6位顯示小數點,78位顯示時stb bl,7ax ldb bl,4axstb bl,6axldb bl,3axstb bl,4ax ldb bl,2axstb bl,3axldb bl,#02h ;2位與5位顯示一橫杠stb bl,2axstb bl,5axld ex,#dis_buf_p ;dis_buf_p內容送顯示LDB COUNT1,#8LDB AH,#00000000B ;位控譯碼dis_lp1:LD BX,#0BF00HLDB AL,ex+STB AL,BXLD BX,#0BF04HSTB AH,BXlcall delaytimeaddb ah,#20h ;指向下一位顯示器djnz count1,dis_lp1ret ;*time清內存子程序*clr_ram:ldb count1,#24h ld ax,#0030h clr bxloopt_0: st bx,ax+ djnz count1,loopt_0 ret ;*time二-十轉換子程序* ;功
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市交通需求預測咨詢重點基礎知識點
- 應對工作中突發(fā)事件的預案計劃
- 資源共享在班級工作中的重要性計劃
- 搶先獲取2025年VB考試核心試題及答案
- 倉庫成本控制與管理策略計劃
- 2024年惠州市博羅縣建工集團有限公司招聘真題
- 班級輪值制度的設計與實施計劃
- 2024年安徽省農業(yè)農村廳下屬事業(yè)單位真題
- 2024年河南循環(huán)科技產業(yè)集團招聘筆試真題
- 2024年赤峰中色鋅業(yè)有限公司招聘筆試真題
- 涂裝工考試:中級涂裝工考點(三)
- 醫(yī)院重癥監(jiān)護室感染監(jiān)控指南
- 2024年高中英語衡水體書法練字字帖
- 融資融券實務
- 人教版二年級下冊口算題天天練1000道可打印帶答案
- 2022北京東城六年級畢業(yè)考英語試題含答案
- 《藥物分析與檢驗技術》課件-異煙肼中游離肼的檢查方法
- 手術室的健康教育
- 海水的淡化技術及應用
- 食堂餐飲服務方案
- 中職學校設計說明
評論
0/150
提交評論