單片機實驗報告終稿_第1頁
單片機實驗報告終稿_第2頁
單片機實驗報告終稿_第3頁
單片機實驗報告終稿_第4頁
單片機實驗報告終稿_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機實驗報告 組 員:陳崇任 20111980:陳東彥 20111982:馮培晏 20111979:李 瑤 20111984:張 敏 20111992 班 級:電氣201102班 實驗七 P1口輸入、輸出實驗一、實驗目的1、學習P1口的使用方法2、學習延時子程序的編寫和使用二、實驗說明P1口是準雙向口,它作為輸出口時與一般的雙向口使用方法相同。由準雙向口結構可知當P1口用為輸入口時,必須先對它置“1”。若不先對它置“1”,讀入的數據是不正確的。三、實驗內容及步驟實驗(一):用P1口做輸出口,接八位邏輯電平顯示,程序功能使發(fā)光二極管從右到左輪流循環(huán)點亮。1、使用單片機最小應用系統(tǒng)1模塊。關閉該

2、模塊電源,用扁平數據線連接單片機P1口與八位邏輯電平顯示模塊。2、安裝好仿真器,用串行數據通信線連接計算機與仿真器,把仿真頭插到模塊的單片機插座中,打開模塊電源,打開仿真器電源。3、啟動計算機,打開偉福仿真軟件,進入仿真環(huán)境。首先進行仿真器的設置,選擇仿真器型號、仿真頭型號、CPU類型。選擇通信端口,點擊測試串行口,通信成功既可退出設置,進行仿真。4、打開TH7A.ASM源程序,進行編譯。編譯無誤后,點擊全速執(zhí)行按鈕運行程序,觀察發(fā)光二極管顯示情況。發(fā)光二極管單只從右到左輪流循環(huán)點亮。5、把源程序編譯成OBJ文件,再燒錄到89C51芯片中。實驗(二):用P1.0、P1.1作輸入接兩個撥斷開關,

3、P1.2、P1.3作輸出接兩個發(fā)光二極管。程序讀取開關狀態(tài),并在發(fā)光二極管上顯示出來。1、用導線連接P1.0、P1.1到兩個撥斷開關,P1.2、P1.3到兩個發(fā)光二極管。2、打開TH7B.ASM源程序,編譯無誤后,全速運行程序,撥動撥斷開關,觀察發(fā)光二極管的亮滅情況。向上撥為點亮,向下?lián)転橄纭?、把源程序編譯成OBJ文件,再燒錄到89C51芯片中。四、流程圖及源程序 1流程圖開始P1.0,P1.1置一讀入P1.0口值將讀入的值輸出到P1.2讀入P1.1口值將讀入的值輸出到P1.3開始設置初始值設移位次數數據輸出左一位延時移位次數完成?是否 (A)P1口循環(huán)點燈程序框圖(B)P1口輸入輸出程序

4、框圖2源程序:(一)實驗一ORG 0LOOP: MOV A, #0FEH MOV R2,#8OUTPUT: MOV P1,A RL A ACALL DELAY DJNZ R2,OUTPUT LJMP LOOPDELAY: MOV R6,#0 MOV R7,#0DELAYLOOP: ;延時程序 DJNZ R6,DELAYLOOP DJNZ R7,DELAYLOOP RET END(二)實驗二KEYLEFT BIT P1.0 ;定義 KEYRIGHT BIT P1.1LEDLEFT BIT P1.2LEDRIGHT BIT P1.3 ORG 0SETB KEYLEFT ;欲讀先置一 SETB KE

5、YRIGHTLOOP: MOV C,KEYLEFT MOV LEDLEFT,C MOV C,KEYRIGHT MOV LEDRIGHT,C LJMP LOOP END五、思考題(1)對于本實驗延時子程序Delay: MOV R6,0 MOV R7, 0DelayLoop:DJNZ R6,DelayLoop DJNZ R7,DelayLoop RET本模塊使用12MHz晶振,粗略計算此程序的執(zhí)行時間為多少?解:機器周期=1/12MHz*12=1us, 此程序的執(zhí)行時間=(256*256us)*10(-6)=0.065536s實驗八 繼電器控制實驗一、實驗目的1.學習I/O端口的使用方法2.掌握繼

6、電器控制的基本方法3.了解用弱電控制強電的方法二、實驗說明現代自動控制設備中,都存在一個電子電路的互相連接問題,一方面要使電子電路的控制信號能控制電氣電路的執(zhí)行元件(電動機,電磁鐵,電燈等),另一方面又要為電子線路和電氣電路提供良好的電氣隔離,以保護電子電路和人身的安全,繼電器便能完成這一任務。繼電器電路中一般都要在繼電器的線圈兩頭加一個二極管以吸收繼電器線圈斷電時產生的反電勢。本電路的控制端為高電平時,繼電器常開觸點吸合,LED燈被點亮當控制端口為低電平時,繼電器不工作。三、實驗內容及步驟用P1.0作為控制輸出口,接繼電器電路,使繼電器重復吸合與斷開。本實驗需要用到單片機最小應用系統(tǒng)(F1區(qū)

7、)、十六位邏輯電平顯示(I4區(qū))和繼電器模塊(A5區(qū))。1.使用單片機最小應用系統(tǒng)模塊,用導線連接P1.0端口到繼電器CONTROL,OPEN1/OPEN2接十六位邏輯電平顯示的任意一個口, MID1/MID2接GND。2.用串行數據通信線連接計算機與仿真器,把仿真器插到模塊的鎖緊插座中,請注意仿真器的方向:缺口朝上。3.打開Keil uVision2仿真軟件,首先建立本實驗的項目文件,接著添加源程序,進行編譯,直到編譯無誤。4.全速運行程序,觀察二極管亮滅情況和聽繼電器開合的聲音,繼電器重復延時吸合與延時斷開。5.也可以把源程序編譯成可執(zhí)行文件,把可執(zhí)行文件用ISP燒錄器燒錄到89S52/8

8、9S51芯片中運行。(ISP燒錄器的使用查看附錄二)四、流程圖及源程序1.流程圖繼電器吸合延時繼電器斷開開始延時2.實驗參考程序(見光盤中的程序文件夾)實驗程序:MIAN: CLR P1.0 LCALL DELAY SETB P1.0 LCALL DELAYDELAY: MOV R6,#20DELAY1: MOV R5,#0C3H MOV R4,#50HDELAY2: DJNZ R4,$ DJNZ R5,DELAY2 DJNZ R6,DELAY1 RET END 五、思考題試用單片機的其他輸入輸出口控制繼電器。MIAN: CLR P3.5 LCALL DELAY SETB P3.5 LCALL

9、 DELAYDELAY: MOV R6,#20DELAY1: MOV R5,#0C3H MOV R4,#50HDELAY2: DJNZ R4,$ DJNZ R5,DELAY2 DJNZ R6,DELAY1 RET END 六、電路圖實驗十 定時器實驗一、實驗目的1.學習80C51內部計數器的使用和編程方法2.進一步掌握中斷處理程序的編寫方法二、實驗說明關于內部計數器的編程主要是定時常數的設置和有關控制寄存器的設置。內部計數器在單片機中主要有定時器和計數器兩個功能。本實驗使用的是定時器,定時為一秒鐘。CPU運用定時中斷方式,實現每一秒鐘輸出狀態(tài)發(fā)生一次反轉,即發(fā)光管每隔一秒鐘亮一次。定時器有關的

10、寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于設置定時器/計數器的工作方式0-3,并確定用于定時還是用于計數。TCON主要功能是為定時器在溢出時設定標志位,并控制定時器的運行或停止等。內部計數器用作定時器時,是對機器周期計數。每個機器周期的長度是12個振蕩器周期。因為實驗系統(tǒng)的晶振是12MHZ,本程序使用定時器T1,工作于方式(1或)2 定時方式,即8位自動重裝方式定時器, 定時器100uS中斷一次, 所以定時常數的設置可按以下方法計算:機器周期=12÷12MHz=1uS(256-定時常數)×1uS=100uS定時常數=156。然后對100uS中斷次數計數

11、10000次,就是1秒鐘。在本實驗的中斷處理程序中,因為中斷定時常數的設置對中斷程序的運行起到關鍵作用,所以在置數前要先關對應的中斷,置數完之后再打開定時器T1的中斷。三、實驗內容及步驟本實驗需要用到單片機最小應用系統(tǒng)模塊(F1區(qū))和十六位邏輯電平顯示模塊(I4區(qū))。1.使用單片機最小應用系統(tǒng)模塊,用導線將P1.0接到十六位邏輯電平顯示的任意一只發(fā)光二極管上。2.安裝好仿真器,用串行數據通信線連接計算機與仿真器,把仿真頭插到模塊的單片機插座中,打開模塊電源,插上仿真器電源插頭(USB線)。3.打開Keil uVision2仿真軟件,首先建立本實驗的項目文件,接著添加源程序,編譯無誤后。4.全速

12、運行程序,發(fā)光二極管隔一秒點亮一次,點亮時間為一秒。5.也可以把源程序編譯成可執(zhí)行文件,把可執(zhí)行文件用ISP燒錄器燒錄到89S52/89S51芯片中運行。(ISP燒錄器的使用查看附錄二)四、實驗框圖以及源程序(見光盤中的程序文件夾) 1.流程圖是 否中斷返回定時中斷入口狀態(tài)位取反保護現場恢復現場秒計數值減1重新設置秒計數值是否到一秒開始輸出狀態(tài)位中斷允許設置秒計數值設置初始狀態(tài)位設置定時常數置T1中斷工作方式等待中斷主程序框圖定時中斷子程序框圖實驗程序:MIAN: MOV SP,#0EFH MOV TL0,#9CH ;T0初始化 MOV TMOD,#1 ;定時器工作于方式1 MOV IP,#2

13、 ;定義定時器T0中斷定義為最高優(yōu)先級 MOV IE,#82H ;中斷初始化 SETB TR0 ;允許T0計數 MOV 30H,#06H ;Y0溢出中斷次數計數單元初始化為10000(0625H) MOV 31H,#25H;中斷服務程序PTF0: ORL TL0,#9CH DJNZ 30H,PTF0R DJNZ 31H,PTF0R MOV 30H,#06H ;恢復中斷次數技術單元值 MOV 31H,#25H CPL P1.0 ;P1.0求反PTF0R: RETIEND五、思考題1.如何將LED的狀態(tài)間隔改為2秒,程序如何改寫?答:對100uS中斷次數計數20000次即可,程序改為如下:MIAN

14、: MOV SP,#0EFH MOV TL0,#9CH ;T0初始化 MOV TMOD,#1 ;定時器工作于方式1 MOV IP,#2 ;定義定時器T0中斷定義為最高優(yōu)先級 MOV IE,#82H ;中斷初始化 SETB TR0 ;允許T0計數 MOV 30H,#12H ;Y0溢出中斷次數計數單元初始化為20000(1250H) MOV 31H,#50H;中斷服務程序PTF0: ORL TL0,#9CH DJNZ 30H,PTF0R DJNZ 31H,PTF0R MOV 30H,#12H ;恢復中斷次數技術單元值 MOV 31H,#50H CPL P1.0 ;P1.0求反PTF0R: RETI

15、END2.如果更換不同頻率的晶振,會出現什么現象?如何調整程序?答:若更換不同頻率的晶振,則機器周期改變,需要重新計算和修改定時常數。六、電路圖 實驗十二 計數器實驗一、實驗目的1.學習8051內部定時/計數器使用方法2.學習計數器各種工作方式的用法二、實驗說明1.8051內部有兩個16位的定時/計數器T0和T1,16位是指定時/計數器內的計數器是16位的,由2個8位計數器組成。本實驗用的是T0,它的2個8位計數器是TH0和TL0,TH0是高8位,TL0是低八位。所謂加法計數器,指其計數的方法是對計數脈沖每次加1。8051內部的計數器是加法計數器,需先設置計數器的初值,本實驗設置計數器初值為0

16、,然后對計數脈沖每次加1,加到計數器滿后溢出。2.本實驗中內部計數器起計數器的作用。外部事件計數脈沖由P3.4引入定時器T0。單片機在每個機器周期采樣一次輸入波形,因此單片機至少需要兩個機器周期才能檢測到一次跳變。這就要求被采樣電平至少維持一個完整的機器周期,以保證電平在變化之前即被采樣。這就決定了輸入波形的頻率不能超過機器周期頻率。三、實驗內容及步驟本實驗需要用到單片機最小應用系統(tǒng)模塊(F1區(qū))、單次脈沖源(A6區(qū))和十六位邏輯電平顯示模塊(I4區(qū))。P3.4接外部脈沖輸入,P0口接十六位邏輯電平顯示模塊的,脈沖個數以二進制形式顯示出來。1.使用單片機最小應用系統(tǒng)模塊,用扁平數據線連接P0口

17、JD4F與十六位邏輯電平顯示模塊JD2I,P3.4端口接單次脈沖電路的輸出端。2.安裝好仿真器,用串行數據通信線連接計算機與仿真器,把仿真頭插到模塊的單片機插座中,打開模塊電源,插上仿真器電源插頭(USB線)。3.打開Keil uVision2仿真軟件,首先建立本實驗的項目文件,接著添加源程序,編譯無誤后全速運行程序,連續(xù)按動單次脈沖的按鍵,十六位邏輯電平顯示按鍵次數。4.也可以把源程序編譯成可執(zhí)行文件,把可執(zhí)行文件用ISP燒錄器燒錄到89S52/89S51芯片中運行。(ISP燒錄器的使用查看附錄二)四、流程圖及源程序(見光盤中的程序文件夾)1.流程圖開始計數設置工作方式計數,輸出計數值開始實

18、驗程序:ORG 0START:MOV TMOD,#05HMOV TH0,#0 MOV TL0,#0SETB TR0 LOOP:MOV A,TL0XRL A,#0FFHMOV P0,AAJMP LOOPEND五、思考題1.由功能、計數啟動條件、重復啟動條件等諸方面比較80C51的各種方式。 答:工作方式0:TMOD中M1=0,M0=0。計數寄存器由13位組成。寄存器進行計數時,TLIi的低5位溢出后向 THi進位,THi溢出后將TFi置位,并向CPU申請中斷。此時內部硬件清TFi位。 工作方式1:M1=0,M0=1。計數器由16位組成??刂品绞脚c1相同。 工作方式2:M1=1,M0=0

19、。將16位的計數寄存器分為兩個8位寄存器,組成一個可以重裝入的8位計數 寄存器。TLi作為8位計數寄存器,THi作為初值寄存器。TLi計數溢出時,一方面將TFi置位,并向CPU申請 中斷;另一方面將THi的內容重新裝入TLi中,繼續(xù)計數。 工作方式3:M1=1,M0=1。只適用于定時/計數器T0,將T0分為一個8位定時/計數器和一個8位定時器。 2.80C51單片機的最高計數頻率為多少? 答:兩個機器周期對應的頻率。 六、實驗電路圖實驗二十三 74LS164串轉并實驗一、實驗目的1、掌握89C51串行口方式0工作方式及編程方法2、掌握89C51的P1口的I/O功能輸出3、掌握利用串行口入I/O

20、口,擴展I/O通道的方法二、實驗說明本實驗是用74LS164把輸入的串行數轉換成并行數輸出,74LS164為串行輸入并行輸出移位寄存器,其引腳圖及功能如下:A、B:串行輸入端;QAQH:并行輸出端;CLR:清零端,低電平有效;CLK:時鐘脈沖輸入端,上升沿有效。實驗采用單片機串行工作方式0和P1端口兩種方式串行輸出數據。串行口工作方式0時,數據為8位,從RXD端輸出,TXD端輸出移位信號,其波特率固定為Fosc/12。在CPU將數據寫入SBUF寄存器后,立即啟動發(fā)送。待8位數據輸完后,硬件將狀態(tài)寄存器的TI位置1,TI必須由軟件清零。串行口工作方式0數據/時鐘是自動移位輸出,用P1端口輸出數據時,要編程位移數據,每輸出一個數據位,再輸出一個移位脈沖。三、實驗內容及步驟本實驗需要用到單片機最小系統(tǒng)(F1區(qū))、十六位邏輯電平顯示(I4區(qū))和74LS164(G3區(qū))。1、選用89C51單片機最小應用系統(tǒng)模塊,用八位數據線連接74LS164的并行輸出JD5G與十六位邏輯電平顯示模塊JD2I,將74LS164的串行輸入端A/B(1和2腳)接到RXD上,CLK接到TXD上,CLR接INT0。2、用串行數據通信線連接計算機與

溫馨提示

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

評論

0/150

提交評論