單片機(jī)實(shí)驗(yàn)報(bào)告_第1頁
單片機(jī)實(shí)驗(yàn)報(bào)告_第2頁
單片機(jī)實(shí)驗(yàn)報(bào)告_第3頁
單片機(jī)實(shí)驗(yàn)報(bào)告_第4頁
單片機(jī)實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

;程序結(jié)束

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

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

LJMP

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

ET0;開定時(shí)中斷EA;開總中斷TR0;定時(shí)器開始計(jì)時(shí)中斷服務(wù)程序:TIME:MOVTH0,#0D8HMOVTL0,#0A0HRETI實(shí)驗(yàn)結(jié)果及分析中斷中斷源有請(qǐng)求;IEEA=1,IE無同級(jí)或高級(jí)中斷正在服務(wù);中斷初始化:1,確定工作方式,對(duì)TMOD寄存器進(jìn)行賦值2,計(jì)算計(jì)數(shù)初值3,置位ETx允許定時(shí)器中斷4,置位EA開總中斷5,置位TRx啟動(dòng)定時(shí)器工作收獲及思考題回答1,用C51采用定時(shí)器延時(shí)設(shè)計(jì)流水燈實(shí)驗(yàn),讓流水燈依次點(diǎn)亮或熄滅程序#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);}}這次實(shí)驗(yàn)掌握了定時(shí)器的結(jié)構(gòu)和使用,學(xué)會(huì)了如何使用定時(shí)器精確定時(shí)。通信實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?、熟悉單片機(jī)通信的原理;2、熟悉MCS-51單片機(jī)UART四種工作方式;3、掌握UART的編程方法實(shí)驗(yàn)內(nèi)容1、串行通信基本知識(shí)MCS-51/發(fā)送器UART。這是一個(gè)全雙工PC通信方式種類:一種是并行通信,一種是串行通信。串行通信的三種方式:?jiǎn)喂ねㄐ?、半雙工通信和全雙工通信。異步通信的一般數(shù)據(jù)格式為:圖7-1異步通信的一幀數(shù)據(jù)格式同步通信的數(shù)據(jù)格式為:圖6-1同步通信的數(shù)據(jù)格式2、MCS-51單片機(jī)的通用串行口結(jié)構(gòu)MCS-51/81011SCONPCONSCONSM0SM17-1(fosc。PCONSMOD12SMOD=1,SMOD=0,則波特率不提高一倍。單片機(jī)復(fù)位時(shí),SMOD=0。3、單片機(jī)串口的工作方式006S61/12,PCONSMOD工作方式0的波特率=fosc/12(fosc時(shí)鐘頻率)22foscP2(fosc/2)給2PCONSMODSMOD=0fosc1/64;SMOD=1fosc1/32,用公式表示為;工作方式2波特率=(2SMOD/64)×fosc13T1科書中的表。4、實(shí)驗(yàn)箱統(tǒng)中的串行接口電路下圖為實(shí)驗(yàn)箱系統(tǒng)中的串行接口電路采用的接口芯片是MAX232。5、串行接口接收程序可使用串口調(diào)試助手程序來接收和發(fā)送數(shù)據(jù)實(shí)驗(yàn)程序1:ORG0000HLJMPORGLJMPMAIN: MOVTMOD,#20HMOVTL1,#0F3HMOVTH1,#0F3MOVPCON,#80HSETB ESMOVSCON,#50HSETB TR1SETB SJMP$UART: CLRESJNBRI,LLMOVMOVSBUF,ASETB ESLJMP EXITLL:

CLR TISETB ESEXIT: RETIEND2、根據(jù)實(shí)驗(yàn)箱系統(tǒng)提供的原理圖,熟悉實(shí)驗(yàn)提供的參考程序。完成使用 UART的同步方式,實(shí)現(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ū)的代碼個(gè)數(shù)LOOP: LCALLUARTNO ;顯示子程序MOV R2,#10 ;再次送發(fā)送緩沖區(qū)的代碼個(gè)數(shù),以便循環(huán)顯SJMP LOOP ;循環(huán)顯示UARTNO: MOVR0,#MTD ;緩沖區(qū)首址入SOUT: MOVA,@R0 ;發(fā)送數(shù)據(jù)入AMOVSBUF,A ;啟動(dòng)發(fā)送CALLDELAY ;延時(shí)WAIO: JNBTI,WAIO ;發(fā)送等待CLRTI 0INCR0 ;指向下一個(gè)發(fā)送數(shù)據(jù)地址DJNZR2,SOUT ;10個(gè)字節(jié)發(fā)送完?未完轉(zhuǎn)DELAY: MOVR7,#255 ;延時(shí)子程序D1: MOVR6,#255D2: DJNZDJNZRET ;子程序返END ;程序結(jié)束實(shí)驗(yàn)結(jié)果及分析將程序下載到單片機(jī)當(dāng)中數(shù)碼管顯示正確,程序分析見注釋。收獲及思考題回答各種常見波特率及其初值LED實(shí)驗(yàn)?zāi)康?,掌了解LED數(shù)碼管的原理2,掌握LED數(shù)碼管編程

LEDLEDMCS-51474LS2734LEDLED中,顯示器顯示用靜態(tài)顯示顯示。實(shí)驗(yàn)程序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實(shí)驗(yàn)結(jié)果及分析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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論