




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
嵌入式系統實驗報告
實驗1KeilC51的使用(匯編語言)實驗目的:初步掌握KeilC51(匯編語言)和ZY15MCU12BD型綜合單片機實驗箱的操作和使用,能夠輸入和運行簡單的程序。實驗設備:ZY15MCU12BD型綜合單片機實驗箱一臺、具有一個RS232串行口并安裝KeilC51的計算機一臺。實驗原理及環境:在計算機上已安裝KeilC51軟件。這個軟件既可以與硬件(ZY15MCU12BD型綜合單片機實驗箱)連接,在硬件(單片機)上運行程序;也可以不與硬件連接,僅在計算機上以虛擬仿真的方法運行程序。如果程序有對硬件的驅動,就需要與硬件連接;如果沒有硬件動作,僅有軟件操作,就可以使用虛擬仿真。實驗內容:1.掌握軟件的開發過程:1)建立一個工程項目選擇芯片確定選項。2)加入C源文件或匯編源文件。3)用項目管理器生成各種應用文件。4)檢查并修改源文件中的錯誤。5)編譯連接通過后進行軟件模擬仿真。6)編譯連接通過后進行硬件仿真。2.按以上步驟實現在P1.0輸出一個頻率為1Hz的方波。3.在2的基礎上,實現同時在P1.0和P1.1上各輸出一個頻率同為1Hz但電平狀態相反的方波。預習要求:1.熟悉使用KeilC51的步驟。2.理解實驗內容2中程序的工作原理。3.編寫實驗內容3所需要的程序。實驗步驟:以下假定你在E:\TEST文件夾下學習、運行Keil1.建立一個工程項目選擇芯片確定選項如圖1-1所示:=1\*GB3①Project→=2\*GB3②NewProject→=3\*GB3③輸入工程名test→=4\*GB3④保存工程文件(鼠標點擊保存按鈕)彈出下一界面。如圖1-2所示:=1\*GB3①選CPU廠家(Atmel)→=2\*GB3②選CPU型號(89C51),=3\*GB3③選好后確定接著選晶振頻率及生成HEX文件等。如圖1-3所示:=1\*GB3①Project→=2\*GB3②OptionsforTarget‘Target1’…→=3\*GB3③在Target中→=4\*GB3④更改CPU晶振頻率為12MHz→⑤在Output中→⑥選擇生成HEX格式其它采用缺省設置→⑦選好后確定。圖1-1創建工程名圖1-2選廠家,選CPU型號圖1-3選晶振頻率及生成HEX文件等窗口圖1-4進入編輯源文件窗口2.建立匯編源文件如圖1-4所示:=1\*GB3①File→=2\*GB3②New,=3\*GB3③彈出源文件編輯窗口。輸入以下源文件: ORG0000HAGAIN: CPLP1.0MOVR0,#10 ;延時0.5秒LOOP1: MOVR1,#100LOOP2: MOVR2,#250DJNZR2,$DJNZR1,LOOP2DJNZR0,LOOP1SJMPAGAINEND源程序編寫完后,=1\*GB3①File→=2\*GB3②SaveAs將文件以test.asm保存在E:\test目錄下,獲得匯編語言源程序。3.用項目管理器生成(編譯)各種應用文件=1\*GB3①點擊Target1前之+號→出現=2\*GB3②SourceGroup1→=3\*GB3③點擊它并按鼠標右鍵會生彈出下拉菜單見圖1-5編譯文件文件窗口→選擇=4\*GB3④AddFilestoGroup‘SourceGroup1’→=5\*GB3⑤點擊add向項目中添加Test.asm源文件→⑥點擊close關閉AddFilestoGroup‘SourceGroup1’窗口→=7\*GB3⑦在SourceGroup1前會出現一個+號→=8\*GB3⑧點擊之彈出test.asm文件名點擊該文件名→=9\*GB3⑨主窗口中會出現該程序圖1-5進入編譯文件文件窗口圖1-5硬件實時仿真調試選項窗口編譯:Project→Buildtarget就會生成一系列到文件如OBJ文件LST文件HEX文件等。4.檢查并修改源文件中的錯誤如果在源文件中存在錯誤在Output窗口中會出現錯誤提示信息,你可以在源程序中進行修改,然后存盤后重新Build觀察錯誤提示信息。5.編譯連接通過后進行軟件模擬仿真Debug→Start/StopDebugSession進入軟件模擬的仿真窗口,可使用單步、設斷點來進行調試和除錯。6.編譯連接通過后進行硬件仿真實驗箱的仿真串口必須與PC機串口連接,通電,撥位開關K10必須撥在B端,連接P10和L00,連接P11和L01,設置硬件實時仿真調試選項:Project→OptionsforTarget‘Targetl’→Debug.硬件實時仿真調試選項窗口,見圖1-5選硬件仿真選項,按確定按鈕確定。進入硬件實時調試窗口后,可打開各種觀察窗口,進行單步斷點運行到光標連續執行等操作,無誤后可連續運行觀察LED發光管的顯示效果。注意退出時須按單片機的復位按鍵SS10,在進行硬件連接前最好也先按單片機的復位按鍵SS10。7.修改以上程序,實現同時在P1.0和P1.1上各輸出一個頻率為1Hz但電平狀態相反的方波。重要提示:1.指令中的“,:;”是西文字符,切不可使用中文符號;數字“0”與字符“o”2.以上菜單操作都可以點擊工具欄中的相應圖標快速實現。3.退出硬件連接可以按SS10,在進行硬件連接前最好也按一次SS10。4.生成源文件的方法:=1\*GB3①從鍵盤上輸入源文件;=2\*GB3②用其他編輯軟件(包括MicrosoftWord)編輯源文件,然后復制到KeilC51文件窗口中,使Word文檔變為TXT文檔,這種方法最好,可方便輸入中文注釋;=3\*GB3③也可裝入在其它編輯軟件中編輯的源文件如:*.asm/*.a51/*.c...等。
實驗2十六進制與十進制的1.實驗目的:實踐匯編語言順序結構的編程方法,掌握十六進制數轉換成十進制數的編程實現,掌握單步運行程序的基本技巧。2.實驗設備:ZY15MCU12BD型綜合單片機實驗箱一臺、具有一個RS232串行口并安裝KeilC51的計算機一臺。3.實驗原理及環境:將十六進制數轉換成十進制數有多種方法,比較典型的是用待轉換數除以權值的方法,即依次除以100、10,則各次的商和最后的余數就是所需要的十進制數。4.實驗內容:將放在片內RAM30H中的2位十六進制數轉換成3位十進制數,按照從高位到低位的順序分別放入31H~33H中(即非壓縮的BCD碼)。在本實驗中,要求使用單步方式運行,以便觀察各單元的變化過程。5.程序清單ORG0000HMOVA,30HMOVB,#100HDIVABMOV31H,AMOVA,BMOVB,#10HDIVABMOV32H,AMOV33H,B6.實驗步驟:1.建立一個工程,將在預習中做好的*.asm文件加入。2.調出存儲器編輯窗口,將30H單元修改成某一值。3.在希望停下來的指令上設斷點,然后運行,在斷點處停下來后,再單步運行,可以看到各單元的變化情況。運行完最后一條指令后,在31H~33H中應獲得30H中十六進制數對應的十進制數。7.實驗結果及總結單步調試結果AB30H31H32H33H初始值00H00HDCH00H00H00H一DCH00HDCH00H00H00H二DCH64HDCH00H00H00H三02H14HDCH00H00H00H四02H14HDCH00H00H00H五14H14HDCH00H00H00H六0aH14HDCH00H00H00H七02H00HDCH02H00H00H八02H00HDCH02H02H00H九02H00HDCH02H02H00H總結:本次實驗中最重要的是單步調試的結果,每次單步調試后的結果如上所示,可以看出進制間的轉換。實驗38段LED顯示器動態顯示1實驗目的:掌握8段LED顯示器的使用及顯示程序的設計方法。2實驗設備:ZY15MCU12BD型綜合單片機實驗箱一臺、具有一個RS232串行口并安裝KeilC51的計算機一臺。3實驗原理及環境:1.實驗箱上有6位8段LED顯示器,采用動態方式驅動。即使一位LED顯示器顯示內容一段時間,然后下一位LED顯示器顯示內容一段時間……,周而復始。只要刷新頻率不小于50Hz,就可以獲得清晰穩定的顯示效果。2.MCS-51CPU通過一片8255對8段LED顯示器進行段驅動和位驅動,8255的A口、B口、C口、控制口的地址分別為片外RAM的4000H、4001H、4002H、4003H。3.LED顯示器的各段由8255的B口驅動,低電平對應段發光,高電平對應段熄滅。各段的驅動位如圖3-1,各顯示字的字形代碼如下所示:顯示字字形代碼顯示字字形代碼顯示字字形代碼
0C0H0.40H-BFH1F9H1.79H滅FFH18段LED各段控制18段LED各段控制位D4D3D6D2D1D5D0D73B0H3.30H499H4.19H592H5.12H682H6.02H7F8H7.78H880H8.00H990H9.80HA88HA.08HB83HB.03HCC6HC.46HDA1HD.21HE86HE.06HF8EHF.0EH4.LED顯示器的各位由8255的A口驅動,低電平對應位發光,高電平對應位熄滅。LED顯示器對應位口位左起第一位D0左起第二位D1左起第三位D2左起第四位D3左起第五位D4左起第六位D5實驗內容:1.編寫一個6位LED顯示器驅動子程序(在主程序中已對接口芯片8255做好必要的初始化)。字形表按0~F、0.~F.、-、滅的順序排列。該子程序的要求如下:入口:待顯示數(00H~1FH)放在20H~25H(分別對應顯示器的左起第1~第6位)中。出口:每位LED顯示0.5mS后返回。占用:R0、R1、R2、A、PSW、DPTR。2.子程序自身無法運行,為了運行這個子程序,另編寫一個主程序。這個主程序的功能是首先對8255進行初始化,然后就反復調用顯示子程序,顯示20H~25H中的待顯示內容。首先在20H起始的6個字節中置入00H~0FH,然后連續運行此程序,應顯示0~F;在20H起始的6個字節中置入10H~1FH,然后連續運行此程序,應顯示0.~F.;若置入20H、21H,則顯示-、滅。3.編寫一段程序,運行后會在顯示器上應出現連續向左移動的0~F。實驗程序:ORG0000H MOVSP,#6FH MOV20H,#00MOV21H,#00MOV22H,#00MOV23H,#00MOV24H,#00MOV25H,#00 MOVDPTR,#4003H;8255初始化MOVA,#10000001B;A口、B口方式0輸出,C口高4位輸出,低4位輸入 MOVX@DPTR,A;ACALLDELAY500MS ;延時0.5秒LOOP3:LCALLDISP ;調用顯示子程序 SJMPLOOP3DISP:MOVR0,#20HMOVR2,#0FEHDISP1:MOVA,@R0MOVDPTR,#TABMOVCA,@A+DPTRMOVDPTR,#4001HMOVX@DPTR,AMOVA,R2MOVDPTR,#4000HMOVX@DPTR,ACALLDELAY500USMOVA,#0FFHMOVX@DPTR,AMOVA,R2RLAMOVR2,AINCR0CJNER0,#26H,DISP1 RETDELAY500MS:PUSH00HMOVR0,#25 ;延時0.5秒NEXT:ACALLDELAY20MS DJNZR0,NEXT POP00H RETDELAY500US:PUSH03HMOVR3,#250DJNZR3,$ POP03HRETDELAY20MS:PUSH06HPUSH07H MOVR7,#99AGAIN:MOVR6,#100DJNZR6,$ DJNZR7,AGAIN POP07H POP06H RETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;0,1,2,3,4,5,6,7DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH;8,9,A,B,C,D,E,FDB40H,79H,24H,30H,19H,12H,2H,78H;0.,1.,2.,3.,4.,5.,6.,7.DB00H,10H,08H,03H,46H,21H,06H,0EH;8.,9.,A.,B.,C.,D.,E.,F.END實驗4矩陣鍵盤的使用實驗目的:掌握矩陣鍵盤的使用及鍵盤掃描程序的設計方法。實驗設備:ZY15MCU12BD型綜合單片機實驗箱一臺、具有一個RS232串行口并安裝KeilC51的計算機一臺。實驗原理及環境:實驗箱上有一個16鍵的矩陣鍵盤,分為4行×4列。4行分別連接到一片8255(與8段LED顯示器的段驅動和位驅動共用)的PC0~PC3,4列分別連接到8255的PC4~PC7。8255的A口、B口、C口、控制口的地址分別為片外RAM的4000H、4001H、4002H、4003H。第4列(PC7)第3列(PC6)第2列(PC5)第1列(PC4)行輸入PC300H01H02H03H第4行PC204H05H06H07H第3行PC108H09H0AH0BH第2行PC00CH0DH0EH0FH第1行00H01H02H03H列驅動圖4-1鍵盤布置及鍵值圖4-1鍵盤布置及鍵值選擇列驅動碼使某一列為低電平而其它列為高電平,再讀取行輸入,若該列有鍵按下則相應的位便是低電平。每個鍵均安排一個鍵值,如圖4-1所示。實驗內容:1.編寫一個鍵盤掃描子程序(在主程序中已對接口芯片8255做好必要的初始化)。這個程序對鍵盤作一次掃描,若無鍵按下,返回時累加器A中為FFH,若有鍵按下,返回時A中為該鍵鍵值。其中,查鍵值子程序可以自行編寫,也可以使用下面這個查鍵值子程序,這個子程序的參數如下:入口:行列關鍵值碼放在累加器A中,高4位是列驅動碼(被掃描列的對應位為0,其余位均為1),低4位是行狀態(按下鍵的對應位為0,其余位均為1)。出口:鍵碼放在A中帶出。占用:R1、A、PSW、DPTR。程序清單如下:;查鍵值子程序,起始KEY20 KEY20:PUSHACC;暫存關鍵值MOVR1,#00H;查鍵值自變量清0KEY21:JNBACC.4,KEY22;計算列數RRAINCR1SJMPKEY21KEY22:MOVA,R1;按每列4個鍵計算MOVB,#4MULABMOVR1,APOPACC;恢復關鍵值KEY23:JNBACC.0,KEY24;計算行數RRAINCR1SJMPKEY23KEY24:MOVDPTR,#KEYTAB;讀取鍵值MOVA,R1MOVCA,@A+DPTRRETKEYTAB: DB0FH,0BH,07H,03H DB0EH,0AH,06H,02H DB0DH,09H,05H,01H DB0CH,08H,04H,00H2.鍵盤掃描子程序自身無法運行,為了運行這個子程序,另編寫以下程序: ORG0000HMOVSP,#6FHMOVR0,#5 ;延時0.5秒LOOP1: MOVR1,#200LOOP2: MOVR2,#250DJNZR2,$DJNZR1,LOOP2DJNZR0,LOOP1MOVDPTR,#4003H;8255初始化MOVA,#10000001B;A口、B口方式0輸出,C口高4位輸出,低4位輸入MOVX@DPTR,ALOOP3: LCALLDISP ;調用顯示子程序DIS,設顯示子程序入口為DISP LCALLKEY ;調用鍵盤掃描子程序,設鍵盤掃描子程序入口為KEY CJNEA,#0FFH,LOOP4 ;如果有鍵按下轉 SJMPLOOP3LOOP4: MOV20H,21H MOV21H,22H MOV22H,23H MOV23H,24H MOV24H,25H MOV25H,A SJMPLOOP3其中顯示子程序使用實驗3中的顯示子程序。程序運行后,每按一鍵便從顯示器的右端移入一個對應的數。實驗5A/D轉換實驗目的:掌握用ADC0809實現A/D的方法。實驗設備:ZY15MCU12BD型綜合單片機實驗箱一臺、具有一個RS232串行口并安裝KeilC51的計算機一臺。實驗原理及環境:電位器W1將+5V電壓分壓后送入ADC0809的輸入IN4~IN7,調節電位器W1可以獲得0~+5V的電壓輸入。ADC0809的接口參數如下:輸入電壓范圍0~+5V啟動IN4A/D轉換寫任意數到8004H
取轉換結果讀8004H
EOC通過一個反相器輸出實驗內容:設計一個程序,將IN4輸入的0~+5V模擬電壓轉換成數字量,再將這個2位十六進制轉換成3位十進制數,放在LED顯示器的第四~六位顯示。其中顯示子程序可以用實驗3中的子程序。判斷轉換是否結束可以將ADC0809的EOC(經反相器)引入到P1.0,然后查詢P1.0的狀態。程序清單 ADD_8255DATA4000H ORG0000H MOVSP,#6FH MOVR0,#5 ;延時0.5秒LOOP1: MOVR1,#200LOOP2: MOVR2,#250 DJNZR2,$ DJNZR1,LOOP2 DJNZR0,LOOP1 MOVDPTR,#(ADD_8255+3) MOVA,#10000001B MOVX@DPTR,ALOOP3: LCALLDIS SJMPLOOP3DIS: MOVR0,#20H MOVR2,#0FEHLOOP10:MOVA,@R0 MOVDPTR,#TAB MOVCA,@A+DPTRMOVDPTR,#(ADD_8255+1) MOVX@DPTR,A MOVA,R2 MOVDPTR,#ADD_8255 MOVX@DPTR,A MOVR1,#250 DJNZR1,$ MOVA,#0FFH MOVX@DPTR,A MOVA,R2 RLA MOVR2,A INCR0 MOVA,R0 CJNEA,#26H,LOOP10 RETTAB:DB0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8HDB080H,090H,088H,083H,0C6H,0A1H,086H,08EHDB040H,079H,024H,030H,019H,012H,002H,078HDB000H,080H,008H,003H,046H,021H,006H,00EH DB0BFH,0FFHEND實驗結果:變化范圍為17到255,最小值存在誤差,由于電路自身存在誤差。實驗6D/A轉換實驗目的:掌握用DAC0832實現D/A轉換的方法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/GDAC 1-2024頂墻用鋁型材
- T/CACE 0129-2024竹編安全帽
- T/CGAS 033-2024物聯網智能燃氣表數據安全規范
- 房地產ERP軟件使用許可合同4篇
- T/CHTS 10158-2024公路跨海橋梁風-浪-流耦合作用指南
- 公司注冊商標出讓合同書5篇
- 抵押保證借款合同范本一2篇
- 道路關鍵工程綜合施工合同3篇
- 血管栓塞劑及栓塞材料項目績效評估報告
- 新生兒骨折查房要點解析
- 2025-2030中國保鮮盒行業市場現狀供需分析及投資評估規劃分析研究報告
- 工程勞務合作協議書
- 有責任有擔當的核心素養培養
- 專利代理師考試題庫有答案分析2024年
- 電表過戶借用協議書
- 老年人房顫的綜合管理
- 2023-2024學年四年級數學下學期開學摸底考試(A4版)(人教版)
- 私人合同協議書模板
- 《城鎮房屋租賃合同(示范文本)》(GF-2025-2614)
- 《建筑電氣工程施工》課件
- 2025年河北高考地理模擬預測試卷(含答案解析)
評論
0/150
提交評論