單片機(jī)實驗課題有助于單片機(jī)的學(xué)習(xí)_第1頁
單片機(jī)實驗課題有助于單片機(jī)的學(xué)習(xí)_第2頁
單片機(jī)實驗課題有助于單片機(jī)的學(xué)習(xí)_第3頁
單片機(jī)實驗課題有助于單片機(jī)的學(xué)習(xí)_第4頁
單片機(jī)實驗課題有助于單片機(jī)的學(xué)習(xí)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗一 keil vision的使用一、實驗?zāi)康恼莆誯eil vision的使用;掌握單片機(jī)匯編程序的調(diào)試方法。二、實驗原理keil vision是美國keil software公司出品的單片機(jī)集成開發(fā)環(huán)境,具有單片機(jī)c語言或匯編語言程序編輯、編譯或匯編、連接、調(diào)試等功能,允許設(shè)置斷點,查看程序存儲器、數(shù)據(jù)存儲器和sfr的內(nèi)容,以圖形的方式顯示sfr或變量內(nèi)容隨時間的變化,是目前單片機(jī)開發(fā)最常用的軟件工具。運(yùn)行keil vision后,程序窗口如圖1-1所示。其中項目窗口用于管理工程項目所包含的文件,源程序窗口用于程序編輯,編譯信息窗口輸出編譯或匯編的狀態(tài)信息。各個窗口可以懸?。╢loatin

2、g)在主窗口之上,也可以停泊(docking)在主窗口中,單擊程序主窗口window菜單的rest view to defaults命令,將窗口恢復(fù)成默認(rèn)狀態(tài)。編譯信息窗口源程序窗口項目窗口圖1-1 keil vision程序窗口三、實驗環(huán)境windows xp;keil vision 4;四、實驗內(nèi)容1建立項目雙擊桌面keil vision圖標(biāo)或單擊開始菜單的keil vision命令運(yùn)行程序,出現(xiàn)圖1-1所示的程序窗口。在主程序菜單欄單擊project菜單的new vision project命令,出現(xiàn)創(chuàng)建新文件對話框,為項目文件命名并選擇存放路徑(建議為每一個項目建立獨立的文件夾)。單擊

3、保存按鈕,出現(xiàn)圖1-2所示器件選擇對話框,在data base列表中選擇atmel公司的at89c52,作為項目使用的單片機(jī)。當(dāng)出現(xiàn)如圖1-3所示的添加啟動代碼對話框時,單擊否。圖1-2 器件選擇對話框圖1-3 添加啟動代碼對話框2程序編輯單擊file菜單的new命令,出現(xiàn)源程序編輯窗口,在源程序編輯窗口中輸入?yún)R編程序并保存(擴(kuò)展名為asm)。org 0000hmain:mov p1,#00hloop:inc p1sjmp loopend在項目窗口中用鼠標(biāo)右鍵單擊source group 1,在彈出的快捷菜單中選擇add files to group source group 1命令,將剛才保

4、存的源程序文件添加到項目中。3程序調(diào)試在項目窗口中用鼠標(biāo)右鍵單擊target 1,在彈出的快捷菜單中選擇options for target target 1命令,出現(xiàn)圖1-4項目選項對話框。在選項對話框中,將晶振頻率改為12mhz。單擊主程序窗口的build工具或按快捷鍵f7,對源程序進(jìn)行匯編。如果程序有錯,根據(jù)輸出信息修改源程序,重新進(jìn)行匯編,直到錯誤為零。單擊主程序窗口debug菜單的start/stop debug session命令,進(jìn)入調(diào)試狀態(tài)。調(diào)試狀態(tài)的主程序窗口如圖1-5所示。寄存器窗口可以查看和修改寄存器的值,反匯編窗口可以查看指令代碼及其在程序存儲器中的地址。單擊主程序窗口

5、view菜單的analysis windows子菜單的logic analyzer命令,打開logic analyzer窗口,可以觀察sfr或變量的值隨時間的變化,各個子窗口排列可以通過鼠標(biāo)拖動或右鍵單擊標(biāo)題欄選擇彈出的子菜單命令加以改變。單擊logic analyzer窗口的setup按鈕,出現(xiàn)setup logic analyzer對話框(如圖1-6),在對話框中單擊右上角的insert按鈕,將p1添加到待分析信號中。圖1-4 項目選項對話框在主程序窗口中單擊run工具或按快捷鍵f5運(yùn)行程序,然后單擊stop工具或debug菜單的stop命令,停止程序運(yùn)行,觀察邏輯分析窗口中p1寄存器內(nèi)容

6、隨時間的變化,應(yīng)如圖1-5所示呈鋸齒形變化。五、思考題1修改程序,使p1的值在0100之間變化。2修改程序,使p1的值隨時間呈三角形變化(如圖1-7所示)。圖1-5 調(diào)試狀態(tài)主程序窗口new(insert)按鈕圖1-6 設(shè)置待分析信號圖1-7 p1隨時間呈三角形變化實驗二 匯編語言程序設(shè)計一、實驗?zāi)康氖煜纹瑱C(jī)指令、偽指令的使用;掌握單片機(jī)匯編程序的設(shè)計、調(diào)試方法。二、實驗原理1匯編語言匯編程序由指令語句、偽指令語句和宏指令語句構(gòu)成。指令語句即機(jī)器指令,由標(biāo)號、指令助記符、操作數(shù)和注釋四部分組成,單片機(jī)的指令長度為13個字節(jié),大部分為單周期指令,少部分為雙周期指令,只有乘法、除法指令為四周期指

7、令。偽指令語句定義程序結(jié)構(gòu)和符號,在程序中起指示或說明作用,不產(chǎn)生機(jī)器碼。宏指令是通過將一段指令序列定義成一個宏,每次用到該指令序列可以用宏名代替。適當(dāng)使用宏指令,可以大大簡化程序設(shè)計,增強(qiáng)程序的可讀性。2兩字節(jié)乘除運(yùn)算單片機(jī)字長8位,一次只能完成8位乘8位或8位除8位運(yùn)算,要進(jìn)行16位乘除運(yùn)算,需按運(yùn)算規(guī)則編程實現(xiàn)。16位乘法運(yùn)算如圖2-1所示,由四次8位乘法運(yùn)算組成,四次乘法運(yùn)算的乘積經(jīng)錯位相加,形成32位乘積。r1(8位)r0(8位)r3(8位)r2(8位)r2r0(16位)r3r0(16位)r2r1(16位)r3r1(16位)product(32位)圖2-1 兩字節(jié)乘法運(yùn)算16位除16

8、位無符號整數(shù)除法運(yùn)算如圖2-2所示。設(shè)除數(shù)有n位前導(dǎo)0,則對除數(shù)循環(huán)左移n次,商為n+1位。被除數(shù)減除數(shù),夠減時商為1,不夠減時商為零,每減一次,除數(shù)右移一位,重復(fù)n+1次。三、實驗環(huán)境windows xp;keil vision 4;四、實驗內(nèi)容1程序設(shè)計雙擊桌面keil vision圖標(biāo)或單擊開始菜單的keil vision命令運(yùn)行程序,在主程序中單擊project菜單的new vision project命令,為項目文件命名并選擇存放路徑,選擇atmel89c52作為項目所使用的單片機(jī)。單擊file菜單的new命令,出現(xiàn)源程序編輯窗口,在源程序編輯窗口中輸入?yún)R編程序并保存(擴(kuò)展名為asm

9、)。被除數(shù)0?上商=1上商=0除數(shù)右移重復(fù)次數(shù)=0?圖2-2 兩字節(jié)除法流程16位乘法運(yùn)算用r3、r2存放16位被乘數(shù),r1、r0存放16位乘數(shù),r7、r6、r5、r4存放32位乘積。org 0000hljmp mainmult macro x,y;宏定義mov a,xmov b,ymul abendmmain:mult r2,r0;r2r0 mov r4,a mov r5,b mult r3,r0;r3r0 add a,r5 mov r5,a mov a,b addc a,#0 mov r6,a mov a,#0 addc a,#0 mov r7,a mult r2,r1;r2r1 add

10、a,r5 mov r5,a mov a,b addc a,r6 mov r6,a mov a,r7 addc a,#0 mov r7,a mult r3,r1;r3r1 add a,r6 mov r6,a mov a,b addc a,,r7 mov r7,,a end2程序調(diào)試單擊主程序窗口的build工具或按快捷鍵f7,對源程序進(jìn)行匯編。單擊主程序窗口debug菜單的start/stop debug session命令,進(jìn)入調(diào)試狀態(tài)。在寄存器窗口通過雙擊工作寄存值,將被乘數(shù)r3、r2設(shè)為b754h,乘數(shù)r1、r0設(shè)為a360h,通過按f10單步運(yùn)算程序。程序執(zhí)行后,檢查乘積r7、r6、r5

11、、r4的值,應(yīng)為74ff3b80h。修改被乘數(shù)和乘數(shù),重新運(yùn)行程序,檢查結(jié)果是否正確。五、思考題1不用宏指令mult,原程序該如何寫?2分析下列16位除法程序,用不同的被除數(shù)和除數(shù)驗證運(yùn)算結(jié)果是否正確。org 0000hljmp main被除數(shù)高8位被除數(shù)低8位除數(shù)高8位除數(shù)低8位42h商高8位商低8位40h44hdividend data 40h;存放被除數(shù)和余數(shù)division data 42h;存放除數(shù)quotient data 44h;存放商rrc16 macro temp;兩字節(jié)右移宏定義mov a,temprrc a;高字節(jié)右移mov temp,amov a,temp+1rrc a

12、;低字節(jié)右移mov temp+1,aendmrlc16 macro temp;兩字節(jié)左移宏定義mov a,temp+1rlc a;低字節(jié)左移mov temp+1,amov a,temprlc a;高字節(jié)左移mov temp,aendmmain: mov dividend,#0fehmov dividend+1,#1ah;設(shè)被除數(shù)為fe1ah(65050)mov division,#00hmov division+1,#0e6h;設(shè)除數(shù)為00e6h(230)mov quotient,#00hmov quotient+1,#00h;商清零mov b,#00hmov a,divisionadd a,

13、division+1jnz l0setb ovsjmp exit;除數(shù)為零,則退出l0:mov a,division;計算除數(shù)前導(dǎo)0的位數(shù)jb acc.7,l1clr crlc16 division;兩字節(jié)除數(shù)左移1位inc bsjmp l0l1:inc bl2:clr cmov a,dividend+1subb a,division+1mov a,dividendsubb a,divisionjc l3 ;不夠減,商為0mov a,dividend+1subb a,division+1mov dividend+1,amov a,dividendsubb a,divisionmov divid

14、end,asetb c;夠減,商為1sjmp l4l3:clr cl4:rlc16 quotient;兩字節(jié)商左移1位clr crrc16 division;兩字節(jié)除數(shù)右移1位djnz b,l2exit:sjmp $end實驗三 c51程序設(shè)計與proteus仿真一、實驗?zāi)康恼莆誧51程序設(shè)計調(diào)試方法;掌握proteus仿真軟件的使用;加深對單片機(jī)工作原理及外部引腳的理解。二、實驗原理1proteus簡介proteus isis是英國labcenter公司開發(fā)的電路分析與仿真軟件。該軟件將單片機(jī)仿真和spice電路仿真相結(jié)合,支持單片機(jī)程序的編輯、匯編和調(diào)試,可以全速、單步、帶斷點運(yùn)行程序,可

15、以查看各個寄存器、變量的值,同時支持第三方的編譯和調(diào)試軟件,如keil vision。目前支持的單片機(jī)有:68000系列、8051系列、avr系列、pic系列、hc11系列、以及arm7tdmi系列。proteus isis具有原理圖繪制功能。通過在原理圖設(shè)計窗口放置元件,利用鼠標(biāo)操作,實現(xiàn)元件之間的連線,完成原理圖設(shè)計。proteus isis提供各種虛擬儀器,如示波器、信號發(fā)生器、邏輯分析儀等,方便電路的分析和仿真。計算機(jī)安裝了proteus后,在“開始”菜單中增加了proteus 7 professional程序項,單擊isis 7 professional啟動程序后,出現(xiàn)圖3-1所示的

16、程序窗口。庫管理按鈕原理圖設(shè)計窗口器件選擇按鈕圖3-1 proteus程序窗口2c51存儲器類型匯編語言產(chǎn)生的代碼少、速度快,但程序可讀性差,編程困難。c語言具有良好的可讀性、可移植性和基本的硬件操作能力,利用c51進(jìn)行程序設(shè)計,可以專注于程序的邏輯結(jié)構(gòu)和算法實現(xiàn),大大提高程序設(shè)計的效率。c51根據(jù)單片機(jī)存儲器的結(jié)構(gòu),將存儲器分為不同的類型(如表3-1所示)。c51在定義變量時,可以指定存儲器類型。如:unsigned char data i;表3-1 c51存儲器類型類別存儲器類型地址范圍code程序存儲器0000hffffhdata內(nèi)部可直接尋址數(shù)據(jù)存儲器00h7fhidata內(nèi)部可間接尋

17、址數(shù)據(jù)存儲器00hffhbdata內(nèi)部可位尋址數(shù)據(jù)存儲器20h2fhxdata外部數(shù)據(jù)存儲器0000hffffhpdata外部數(shù)據(jù)存儲器(一頁)00hffhsfr內(nèi)部特殊功能寄存器80hffh由于單片機(jī)字長只有8位,運(yùn)算能力較弱,因此變量盡量采用無符號字符型(unsigned char),存儲器類型盡量使用片內(nèi)數(shù)據(jù)存儲器(data、idata、bdata),以提高程序執(zhí)行速度。3led掃描顯示led數(shù)碼管是單片機(jī)最常見的數(shù)據(jù)顯示器。當(dāng)數(shù)碼管位數(shù)較多時,一般采用動態(tài)掃描方式,以節(jié)省單片機(jī)的i/o引腳,降低led顯示功耗。單片機(jī)每次輸出七段顯示碼,同時使1位數(shù)碼管的公共端為有效電平(共陽數(shù)碼管為高

18、電平,共陰數(shù)碼管為低電平),則該顯示碼所對應(yīng)數(shù)字顯示在所選中的1位led上。適當(dāng)延時,輸出下一位顯示碼,實現(xiàn)掃描顯示。為使顯示穩(wěn)定無閃爍,延時時間一般為幾毫秒或十幾毫秒。三、實驗環(huán)境windows xp;keil vision 4;proteus 7.8。四、實驗內(nèi)容1電路設(shè)計啟動isis 7 professional,在主程序器件選擇窗口單擊器件選擇按鈕或在原理圖設(shè)計窗口單擊右鍵選擇place “放置”命令,選擇component“元件”子命令,出現(xiàn)圖3-2所示器件選擇對話框。在microprocessor ics類別中選擇80c52,在原理圖設(shè)計窗口中單擊鼠標(biāo),將單片機(jī)放入設(shè)計窗口,在op

19、toelectronics類別中選擇7seg-mpx4-cc,將4位共陰數(shù)碼管放入設(shè)計窗口。通過單擊器件引腳,完成電路連線(如圖3-1所示)。單片機(jī)p2口輸出七段顯示碼,p3.0p3.3用于選擇顯示位,當(dāng)p3.0為低電平時,最左邊的數(shù)碼管亮,p3.3為低電平時,最右邊的數(shù)碼管亮。為實驗新建一個文件夾,將電路設(shè)計文件保存在新建的文件夾中。實際電路設(shè)計時單片機(jī)p2.0p2.7需串聯(lián)限流電阻,否則可能因電流過大損壞單片機(jī),led數(shù)碼管的位選擇1、2、3、4需采用緩沖器(四個三極管或74ls07),仿真時可省略。圖3-2 器件選擇對話框2程序設(shè)計啟動keil vision,單擊project菜單的ne

20、w vision project命令,出現(xiàn)創(chuàng)建新文件對話框,為項目文件命名并選擇存放路徑(選擇與proteus文件相同的文件夾),并選擇atmel公司的at89c52作為本項目使用的單片機(jī)。單擊file菜單的new命令,出現(xiàn)源程序編輯窗口,在源程序編輯窗口中輸入c語言程序并保存(擴(kuò)展名為.c)。主程序完成四位數(shù)字的顯示,子程序?qū)崿F(xiàn)延時。#include void delay(unsigned char);unsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;void main()unsigne

21、d char minute=12,second=0;while(1) p3=0xf7; p2=dispcodesecond%10; delay(5); p3=0xfb; p2=dispcodesecond/10; delay(5); p3=0xfd; p2=dispcodeminute%10; delay(5); p3=0xfe; p2=dispcodeminute/10; delay(5); void delay(unsigned char time)unsigned char j;while(time0) for(j=0;j255;j+);time-;單擊keil vision程序窗口pr

22、oject菜單的options for target “target 1”命令,在出現(xiàn)的options for target“target 1”對話框中選擇output選項卡,選中create hex file。單擊build工具或project菜單的build命令,編譯源程序。如編譯出現(xiàn)錯誤,根據(jù)輸出信息修改程序,重新編譯,直至錯誤為零。3程序仿真在proteus程序窗口雙擊單片機(jī)原理圖符號,出現(xiàn)圖3-3編輯元件屬性對話框。單擊program file的打開文件按鈕,選擇編譯生成的hex文件作為單片機(jī)的程序文件。單片機(jī)的主頻設(shè)為12mhz。單擊proteus窗口左下角的程序運(yùn)行按鈕,運(yùn)行單片

23、機(jī)程序,觀察數(shù)碼管的顯示。打開文件按鈕圖3-3 編輯元件屬性對話框五、思考題1頭文件reg51.h有哪些內(nèi)容?2修改程序,實現(xiàn)動態(tài)顯示兩位數(shù)的分和兩位數(shù)的秒。實驗四 中斷與定時/計數(shù)器一、實驗?zāi)康恼莆諉纹瑱C(jī)中斷結(jié)構(gòu);掌握單片機(jī)定時/計數(shù)器的應(yīng)用。二、實驗原理1中斷源和中斷控制寄存器mcs-51單片機(jī)有五個中斷源,每個中斷源可通過編程設(shè)為高優(yōu)先級或低優(yōu)先級,各中斷源名稱及對應(yīng)的中斷入口地址如表4-1所示。表4-1 中斷入口地址中斷序號中斷源入口地址0int00003h1t0000bh2int10013h3t1001bh4串行口0023h單片機(jī)與中斷相關(guān)的特殊功能寄存器是中斷允許寄存器ie和中斷優(yōu)

24、先級寄存器ip。中斷允許寄存器ie的字節(jié)地址為a8h,其各位的定義如下:ea-eset1ex1et0ex0中斷優(yōu)先級寄存器ip的字節(jié)地址為b8h,其各位的定義如下:-pspt1px1pt0px02定時/計數(shù)器的工作方式與控制寄存器mcs-51單片機(jī)內(nèi)部包含兩個十六位的定時/計數(shù)器t0和t1,當(dāng)被設(shè)為定時方式時,實際上是對機(jī)器周期計數(shù),每個機(jī)器周期計數(shù)器加1。當(dāng)被設(shè)為計數(shù)方式時,是對t0(p3.4)或t1(p3.5)引腳上的外部脈沖計數(shù)。單片機(jī)中與定時/計數(shù)器相關(guān)的特殊功能寄存器是定時/計數(shù)器控制寄存器tcon和定時/計數(shù)器模式寄存器tmod。模式寄存器tmod的字節(jié)地址為89h(不可位尋址),

25、其各位的定義如下: gatec/tm1m0gatec/tm1m0t1控制t0控制m1m0工作模式00模式013位定時/計數(shù)方式01模式116位定時/計數(shù)方式10模式28位自動重裝載方式11模式3對t0:分為一個8位的定時/計數(shù)器tl0和一個8位的定時器th0對t1:停止計數(shù)c/=0,為定時器方式;c/=1,為計數(shù)器方式。gate=0,定時/計數(shù)器的啟動和停止完全由tcon的tr位控制。gate=1,只有當(dāng)tr=1并且引腳為高電平時才啟動計數(shù)器??刂萍拇嫫鱰con的字節(jié)地址為88h,其各位的定義如下:tf1tr1tf0tr0ie1it1ie0it0定時/計數(shù)器外中斷控制trx:定時/計數(shù)器啟???/p>

26、制,trx=1啟動定時/計數(shù)器(當(dāng)gate=0時)。tfx:定時/計數(shù)器溢出標(biāo)志,當(dāng)定時/計數(shù)器溢出時,由硬件置位,cpu響應(yīng)中斷時,自動清零。3定時初值的計算當(dāng)單片機(jī)的振蕩頻率為fosc,則機(jī)器周期為12/fosc,設(shè)定時初值為tc,則定時周期t為:其中l(wèi)為計數(shù)器的位數(shù),模式0時l=13,模式1時l=16,模式2、模式3時l=8。三、實驗環(huán)境windows xp;keil vision 4;proteus 7.8。四、實驗內(nèi)容1定時器的應(yīng)用利用定時/計數(shù)器t0的定時功能(工作方式1),使p1.0輸出1khz的方波,并用虛擬示波器觀測輸出波形。啟動proteus仿真軟件,在原理圖設(shè)計窗口放置a

27、t89c52單片機(jī),右擊原理圖設(shè)計窗口,在彈出的快捷菜單中選擇place命令的virtual instrument子命令,選擇oscilloscope,將虛擬示波器放入設(shè)計窗口,將p1.0輸出信號送示波器a通道(如圖4-1所示)。圖4-1 定時器應(yīng)用實驗原理圖設(shè)單片機(jī)的振蕩頻率為12mhz,定時初值為:15匯編參考程序如下(請自行補(bǔ)充完整):org 0000hljmp mainorg 000bh;t0中斷入口地址cpl p1.0mov th0,#0fehmov tl0,#0chretiorg 0100hmain:mov ie,#82h;允許t0中斷mov tmod,#01;t0方式1定時mov

28、 th0,#0fehmov tl0,#0chsetb tr0sjmp $endc語言參考程序如下:#include sbit p10=p10;void main ()ie=0x82;tmod=0x1;th0=0xfe;tl0=0x0c;tr0=1;while(1);void t0_isr () interrupt 1th0=0xfe;tl0=0x0c;p10=!p10;用匯編語言設(shè)計程序,可以單擊proteus程序窗口source菜單的add/remove source file命令,出現(xiàn)圖4-2所示對話框,在對話框中單擊new按鈕,為單片機(jī)建立匯編源程序,然后編輯、編譯程序。用c語言設(shè)計程序

29、,可使用keil編輯和編譯源程序,最后生成hex文件,在proteus程序窗口雙擊單片機(jī)原理圖符號,將編譯生成的hex文件作為單片機(jī)的程序文件。最后運(yùn)行程序,出現(xiàn)圖4-3所示虛擬示波器窗口,觀察示波器中的波形并讀取周期和頻率。圖4-2 添加/移除匯編源程序?qū)υ捒驁D4-3 虛擬示波器2實時時鐘單片機(jī)外接四位led數(shù)碼管用于顯示分和秒(如圖4-4所示),定時/計數(shù)器t0設(shè)為工作方式2,定時時間200s,當(dāng)單片機(jī)主頻為12mhz時定時初值為56,每5000次中斷秒加1,每60秒分加1。用匯編或c語言寫出相應(yīng)的程序(led掃描顯示可參照實驗三)。圖4-4 實時時鐘電路編譯運(yùn)行程序,觀察led顯示的時間

30、和proteus窗口的animating時間,比較兩者的誤差。五、思考題1影響實時時種計時精度的因素有哪些,如何進(jìn)一步提高計時精度?實驗五 串行口一、實驗?zāi)康恼莆諉纹瑱C(jī)串行口的內(nèi)部結(jié)構(gòu)和工作方式;掌握單片機(jī)串行口的應(yīng)用;二、實驗原理1串行口的工作方式及其控制寄存器mcs-51系列單片機(jī)內(nèi)含一個16位全雙工串行口,有四種工作方式,既可以用于擴(kuò)展單片機(jī)的輸入/輸出口,也可以實現(xiàn)單片機(jī)與單片機(jī)、單片機(jī)與微機(jī)的串行通信。與串行口相關(guān)的特殊功能寄存器(sfr)有串行口控制寄存器scon、串行口數(shù)據(jù)寄存器sbuf及電源控制寄存器pcon。串行口控制寄存器scon的字節(jié)地址為98h,其各位的定義如下:sm0

31、sm1sm2rentb8rb8tirism0sm0sm1工作模式00方式0同步移位寄存器方式(波特率為fosc/12)01方式110位異步通信方式(uart)(波特率可編程)10方式211位異步通信方式(uart)(波特率為fosc/64或fosc/32)11方式311位異步通信方式(uart)(波特率可編程)sm2在方式2和方式3時,作為多機(jī)通信的使能位,sm2=1時,只有當(dāng)收到的第九個數(shù)據(jù)位為1時,才會使ri置位。ren為接收允許位。ren=1時允許接收。tb8為方式2或方式3時發(fā)送的第九個數(shù)據(jù)位。rb8為方式2或方式3時接收的第九個數(shù)據(jù)位。ti為發(fā)送中斷標(biāo)志。由硬件置位,需由軟件清除。r

32、i為接收中斷標(biāo)志。由硬件置位,需由軟件清除。串行口數(shù)據(jù)寄存器sbuf實際上包含兩個獨立的寄存器:發(fā)送數(shù)據(jù)寄存器和接收數(shù)據(jù)寄存器。寫sbuf訪問發(fā)送數(shù)據(jù)寄存器并啟動一次串行發(fā)送;讀sbuf訪問接收數(shù)據(jù)寄存器,它們的字節(jié)地址均為99h。電源控制寄存器pcon的字節(jié)地址為87h,其最高位為波特率系數(shù)控制位,當(dāng)smod=1時,波特率加倍。pcon各位的定義如下:smodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsm

33、odsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsmodsm

34、odsmodsmodsmodsmodsmodsmodsmod-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-sm2-ren-ren-ren-r

35、en-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-ren-rengf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1t

36、b8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1tb8gf1t

37、b8gf1tb8gf1tb8gf1tb8gf1tb8gf0pdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtipdtiidlriidlriidlri

38、idlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlriidlrigf1、gf0為通用標(biāo)志位。pd為掉電方式位,pd=1進(jìn)入掉電方式。idl為待機(jī)方式位,idl=1進(jìn)入待機(jī)方式。2串行口波特率的計算當(dāng)單片機(jī)的振蕩頻率為fosc、定時/計數(shù)器的溢出速率為f時,串行口的波特率分別為:方式0:波特率=方式2:波特率=方式1和方式3:波特率=若定時器工作在8位自動重裝載方式(方式2),定時初值為tc,則溢出速率f=3串行口的應(yīng)用方式0主要用于輸入/輸出口的擴(kuò)展,方式1主要用于單片機(jī)與單片機(jī)之間、單片機(jī)與微機(jī)之間的串行通信(每次通信傳輸8個數(shù)據(jù)位),方式2和方式3主要用于多機(jī)通信或一次通信

溫馨提示

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

最新文檔

評論

0/150

提交評論