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

下載本文檔

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

文檔簡介

單片機最小系統(tǒng)設計及應用摘要STC89C52ADC0804,LED顯示,鍵盤,RS232LED顯示程序設計,鍵盤程序設通信程序設計等。實現(xiàn)了單片機的各個程序的各個功能。對仿真軟件keil的應用提升了一個新的高度。單片機體積小、成本低、使用方便,所以被廣通過本實驗的學習,可以讓學生掌握真正對單片機應用的理解。關鍵詞:單片機;智能;最小系統(tǒng);ADC;RS232;顯示;STC89C52第1章概述I/OCPURAMROMI/OA/D)集成到一塊硅片上構成的一個小而完善的微型計算機系CPUCPU體積要求嚴格的控制設備當中?,F(xiàn)代人類生活中所用的幾乎每件電子和機械產(chǎn)品中都會集成有單片機。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及鼠標等電腦配件中都配有1-240PC第2章實驗內容單片機集成開發(fā)環(huán)境應用實驗目的1Keil介紹及開發(fā)流程建立您的第一個項目點擊Project菜單選擇彈出的下拉式菜單中的New如圖1-2接著彈出一個標準Windows文件對話窗口,如圖1-3,用法技巧也不是這里要說的以后的章節(jié)中出現(xiàn)類似情況將不再說明在“文件名”中輸入您的第一C程序項目名稱這里我們用這是筆者慣用的名稱大家不必照搬是了,只要符合Windows文件規(guī)則的文件名都行?!氨4妗焙蟮奈募U展名為uv2,這是KEIL uVision2項目文件擴展名,以后我們可以直接點擊此文件以打開先前做的項目。選擇所要的單片機選擇所要的單片機,這里我們選擇常用的AtemlAT89C51。此時屏幕1-4所示。AT89C51在項目中創(chuàng)建新的程序文件或加入已經(jīng)存在的程序文件KEIL在這里我們還是以一個CC2如果沒有已經(jīng)存在的程序文件,新建、保存1-53File-Save或快捷鍵CTRL+S1-3test1.c,保存在項目所在的目錄中,這時您會發(fā)現(xiàn)程KEILC1-6鼠標在屏SourceGroup1文件夾圖標上右擊彈出菜單,在這里可以做在項目中增加減少文件等操作。我們選“AddFiletoGroup‘SourceGroup1’”彈出ADD按鈕,關閉文件窗,程序文件已加到SourceGroup1文件夾圖標左邊出現(xiàn)了一個小+號說明,文件組中有了文件,點擊它可以展開查看。編譯調試CHEX文件。要生成用于芯片燒寫的HEXCreatHEXFile3351.2.34中可以看到編譯的錯誤信息和使6是有一個小放大鏡的按\關閉調試模式的按鈕,它也存在于菜單Debug-Start\StopDebugSession6)HEX1-81為運行,當程序3擬芯片的復位,程序回到最開頭處執(zhí)行。3、下載到單片機的內部運行KEILHEX步驟:①點擊Project菜單,選擇彈出的下拉式菜單中的NewProject。②選擇所要的單片機,如選擇常用的Ateml公司的AT89C51。③在項目中創(chuàng)建新的程序文件或加入已經(jīng)存在的程序文件。④如果沒有已經(jīng)存在的程序文件,新建、保存。⑤編譯⑥調試、生成HEX文件下載ISPKEILHEXflashP1.0P1.6不能被短接。ISP使用STC-ISP軟件,操作方法見前面。ISP下載步驟:①選擇器件②裝載HEX文件③下載程序運行KEILHEXflash機的內部的程序實驗內容Keil.ASMC.C,編寫自己的程序,再用硬件仿真器。ISPKEILHEXflash,重復此部分內容,直到熟練掌握開發(fā)環(huán)境的使用。實驗程序1、匯編程序:ORG 0000HSJMP STARTORG 0030HSTART:MOV P1,#00000010B P1.0P1.1NOPNOPNOPLJMPSTARTEND

;程序結束

;空指令,不執(zhí)行任何操作;跳轉到STA2、C程序:C51#include<reg51.h>#include<stdio.h>voidmain(){while(1){P1=0x02;}}

//置位P1.1,清零P1.0實驗結果及分析點亮了第二個發(fā)光二極管,P1^0-P1^8分別控制八個發(fā)光二極管,0x02表示點亮第二個發(fā)光二極管。將程序下載到單片機內運行結果正確。收獲及思考題回答1,如果二極管的陰、陽極插反,怎么改進程序,使之發(fā)光?將P1=0x02改為P1=0xf即可。2,用軟件延時的辦法實現(xiàn)指示燈的閃爍。添加一個延時程序即可,例如延時0.2msMOVR6,#200LOOP1:MOVR7,#248NOPLOOP2:DJNZR7,LOOP2DJNZRETENDKEIl運行。I/O實驗目的1I/O2I/O實驗內容1、P1口交通燈程序編寫(調試時連接JP3的8個跳線)2、蜂鳴器發(fā)聲程序實驗程序1ORG0000HLJMP MAIN: SETBP1.2LCALLDELAYCLRP1.2LCALLDELAYSJMPMAINDELAY: MOVR7,#255D1: MOVD2:DJNZDJNZRETEND2、流水燈:ORG0000HAJMPMAINORG0030HMAIN: MOVDPTR,#2000HMOV@R0,#0FEHMOVA,@R0MOVX@DPTR,AACALLDELAY;延時LOOP:MOVR3,#07HRLAMOVX@DPTR,AACALLDELAYDJNZR3,LOOPAJMPMAIN;設置左移7次;左移一位;延時;R3是否為0,不為0轉LOOP繼續(xù)執(zhí)行;返回主程循環(huán)執(zhí)DELAY:D1:D2:ENDMOVR7,#255MOVR6,#255DJNZR6,D2DJNZR7,D1RET;延時子程序;子程序返回實驗結果及分析調試時連接JP3的8個跳線。編譯正確,P1.2給低電平蜂鳴器就會發(fā)聲音。流水燈關鍵在于循環(huán)。收獲及思考題回答用C51實現(xiàn)流水燈和蜂鳴器#include<reg51.h>#include<intrins.h>unsignedcharsbitbeep=P2^3;voiddelay10ms(){for(a=100;a>0;a--)for(b=225;b>0;b--);}voidmain(){k=0xfe;while(1){delay10ms();beep=0;delay10ms();beep=1;j=_crol_(k,1);k=j;P1=j;}}對蜂鳴器有了一定了解,在用C語言編寫程序是學會了新命令_crol_(a,b)定時器中斷實驗目的1、熟悉單片機中斷的概念;2、熟悉單片機內部定時器的硬件結構;3、掌握單片機定時器的編程;4、掌握單片機的時序及鎖存器的使用;5、掌握用定時器實現(xiàn)交通燈和流水燈顯示.實驗內容1CPUCPU為中斷方式流程和嵌套流程。2、單片機共有5個中斷源,兩個優(yōu)先級,并可以實現(xiàn)兩級中斷嵌套。圖4-4 中斷系統(tǒng)結構MCS-51單片機響應中斷有四個條件:中斷源有請求;IEEA=1,IE無同級或高級中斷正在服務;現(xiàn)行指令執(zhí)行完最后一個機器周期。316/計數(shù)器,分別稱為Timer0Timer10123。工作方式有軟件控制。其結構圖如下。圖4-5 定時器/計數(shù)器結構單片機的定時器/計數(shù)器都統(tǒng)稱為定時器,是為定時器是對機器周期進行計數(shù),而計數(shù)器是對外部的脈沖進行計數(shù)。通常情況下,都稱為定時器。TMODM0、M1M1M0工作方式說 明00方式013位計數(shù)器01方式116位計數(shù)器10方式2自動再裝入8位計數(shù)器11方式30:8定時器1:對外部停止計數(shù)表4-1定時器的四種工作方式4T0100ms燈(8)依次發(fā)光,并循環(huán)。6MHz,再根據(jù)它來決定定時器T06MHZ2μst(21-T0初值58/874HC573鎖存。電路如下圖。64K74HC573573CC74HC138(譯碼地址:2000H)在加一個反相器得到的。2.3..3實驗程序I/OORG0000HAJMPMAINORG0030HMAIN: MOVDPTR,#2000HMOV@R0,#0FEHMOVA,@R0MOVX@DPTR,AACALLDELAY ;延時MOVR3,#07H 7LOOP: RLA MOVX@DPTR,AACALLDELAY ;延時DJNZR3,LOOP ;R3是否為0,不為0轉LOOP繼續(xù)執(zhí)AJMPMAIN ;返回主程循環(huán)執(zhí)DELAY: MOVR7,#255 ;延時子程D1: MOVR6,#255D2: DJNZDJNZR7,D1RET ;子程序返回END ;程序結束設計。ORG 0000HLJMP ORG000BHMAIN:

LJMP

TIMEMOVTH0,#0D8HMOVTL0,#0A0HMOVTMOD,#01H;1SETBSETBSETB

ET0;開定時中斷EA;開總中斷TR0;定時器開始計時中斷服務程序:TIME:MOVTH0,#0D8HMOVTL0,#0A0HRETI實驗結果及分析中斷中斷源有請求;IEEA=1,IE無同級或高級中斷正在服務;中斷初始化:1,確定工作方式,對TMOD寄存器進行賦值2,計算計數(shù)初值3,置位ETx允許定時器中斷4,置位EA開總中斷5,置位TRx啟動定時器工作收獲及思考題回答1,用C51采用定時器延時設計流水燈實驗,讓流水燈依次點亮或熄滅程序#include<reg52.h>#include<intrins.h>#defineuintunsigned#defineucharunsignedcharsbitP1_0=P1^0;uchartt,a;voidmain(){a=0xfe;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;while(1);}voidtimer0()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt++;if(tt==20){tt=0;P1=_crol_(a,1);}}這次實驗掌握了定時器的結構和使用,學會了如何使用定時器精確定時。通信實驗實驗目的1、熟悉單片機通信的原理;2、熟悉MCS-51單片機UART四種工作方式;3、掌握UART的編程方法實驗內容1、串行通信基本知識MCS-51/發(fā)送器UART。這是一個全雙工PC通信方式種類:一種是并行通信,一種是串行通信。串行通信的三種方式:單工通信、半雙工通信和全雙工通信。異步通信的一般數(shù)據(jù)格式為:圖7-1異步通信的一幀數(shù)據(jù)格式同步通信的數(shù)據(jù)格式為:圖6-1同步通信的數(shù)據(jù)格式2、MCS-51單片機的通用串行口結構MCS-51/81011SCONPCONSCONSM0SM17-1(fosc。PCONSMOD12SMOD=1,SMOD=0,則波特率不提高一倍。單片機復位時,SMOD=0。3、單片機串口的工作方式006S61/12,PCONSMOD工作方式0的波特率=fosc/12(fosc時鐘頻率)22foscP2(fosc/2)給2PCONSMODSMOD=0fosc1/64;SMOD=1fosc1/32,用公式表示為;工作方式2波特率=(2SMOD/64)×fosc13T1科書中的表。4、實驗箱統(tǒng)中的串行接口電路下圖為實驗箱系統(tǒng)中的串行接口電路采用的接口芯片是MAX232。5、串行接口接收程序可使用串口調試助手程序來接收和發(fā)送數(shù)據(jù)實驗程序1:ORG0000HLJMPORGLJMPMAIN: MOVTMOD,#20HMOVTL1,#0F3HMOVTH1,#0F3MOVPCON,#80HSETB ESMOVSCON,#50HSETB TR1SETB SJMP$UART: CLRESJNBRI,LLMOVMOVSBUF,ASETB ESLJMP EXITLL:

CLR TISETB ESEXIT: RETIEND2、根據(jù)實驗箱系統(tǒng)提供的原理圖,熟悉實驗提供的參考程序。完成使用 UART的同步方式,實現(xiàn)數(shù)碼管顯示。ORG0000HLJMPSTARTMTDEQU30H MTD=30H,偽指令。START: MOVSCON,#00H 0MOVR1,#MTD ;發(fā)送緩沖器數(shù)據(jù)初始化MOV@R1,#03H INCR1MOV@R1,#9FH INCR1MOV@R1,#25H INCR1MOV@R1,#0DH INCR1MOV@R1,#99H INCR1MOV@R1,#49H ;"5"INCR1MOV@R1,#041H;"6"INCR1MOV@R1,#1FH;"7"INCR1MOV@R1,#01H;"8"INCR1MOV@R1,#09H;"9"INCR1MOVR2,#10;送發(fā)送緩沖區(qū)的代碼個數(shù)LOOP: LCALLUARTNO ;顯示子程序MOV R2,#10 ;再次送發(fā)送緩沖區(qū)的代碼個數(shù),以便循環(huán)顯SJMP LOOP ;循環(huán)顯示UARTNO: MOVR0,#MTD ;緩沖區(qū)首址入SOUT: MOVA,@R0 ;發(fā)送數(shù)據(jù)入AMOVSBUF,A ;啟動發(fā)送CALLDELAY ;延時WAIO: JNBTI,WAIO ;發(fā)送等待CLRTI 0INCR0 ;指向下一個發(fā)送數(shù)據(jù)地址DJNZR2,SOUT ;10個字節(jié)發(fā)送完?未完轉DELAY: MOVR7,#255 ;延時子程序D1: MOVR6,#255D2: DJNZDJNZRET ;子程序返END ;程序結束實驗結果及分析將程序下載到單片機當中數(shù)碼管顯示正確,程序分析見注釋。收獲及思考題回答各種常見波特率及其初值LED實驗目的1,掌了解LED數(shù)碼管的原理2,掌握LED數(shù)碼管編程

LEDLEDMCS-51474LS2734LEDLED中,顯示器顯示用靜態(tài)顯示顯示。實驗程序1、CLS子程序CLS: MOVA,#0FFHMOVDPTR,#8000HMOVX@DPTR,AMOVDPTR,#9000HMOVX@DPTR,AMOVMOVX@DPTR,AMOVMOVX@DPTR,ARET2、DISP子程序DISP: MOVA,70HMOVDPTR,#8000HMOVX@DPTR,AMOVA,71HMOVDPTR,#9000HMOVX@DPTR,AMOVA,72HMOVDPTR,#0A000HMOVX@DPTR,AMOVA,73HMOVDPTR,#0B000HMOVX@DPTR,ARET3、PRINT子程序PRINT: MOVSUBBA,#30HMOVMOVCA,@A+DPTRMOVMOVX@DPTR,AMOVA,71HSUBBA,#30HMOVDPTR,#TABLEDMOVCA,@A+DPTRMOVDPTR,#0A000HMOVX@DPTR,AMOVA,72HSUBBA,#30HMOVDPTR,#TABLEDMOVCA,@A+DPTRMOVDPTR,#9000HMOVX@DPTR,AMOVA,73HSUBBA,#30HMOVDPTR,#TABLEDMOVCA,@A+DPTRMOVDPTR,#8000HMOVX@DPTR,ARETTABLED: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H ;0-8DB 90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH,8CH ;9AB,C,DEF DB0BFH ;424、顯示“HELL”子程序HELL: MOVMOVDPTR,#0B000HMOVX@DPTR,AMOVA,#86HMOVMOVX@DPTR,AMOVA,#0C7HMOVDPTR,#9000HMOVX@DPTR,AMOVA,#0C7HMOVDPTR,#8000HMOVX@DPTR,ARET、顯示”P232”LCALLMOV70H,#41HMOV71H,#32HMOV72H,#33HMOV73H,#32HLCALLPRINTLCALLKEYRET2、顯示” “MOV70H,#42HMOV71H,#42HMOV72H,#42HMOV73H,#42HLCALLPRINTRET實驗結果及分析0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,83H,0C6H,0A1H,86H,8EH,0FFH,8CH0-F收獲及思考題回答1、編寫顯示整型變量功能子程序#include<reg51.h>#defineuintunsigned#defineuc

溫馨提示

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

評論

0/150

提交評論