單片機(jī)與嵌入式系統(tǒng)4_第1頁
單片機(jī)與嵌入式系統(tǒng)4_第2頁
單片機(jī)與嵌入式系統(tǒng)4_第3頁
單片機(jī)與嵌入式系統(tǒng)4_第4頁
單片機(jī)與嵌入式系統(tǒng)4_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、注意事項(xiàng)1. 51(2)寄存器除PC外,所有寄存器都有內(nèi)部地址(=80H),叫SFR;用地址直接訪問,它們都有名字(ACC、B、P0、PSW)。2. 十六進(jìn)制下末位是0和8的能夠位尋址,位可以用地址帶“.”訪問,寄存器.bit,位名字或別名可訪問。如PSW.0、P、0D0H.0、208.0是一樣滴!3. 累加器A是隱含尋址,ACC則顯式尋址。8/14/2022單片機(jī)與嵌入式系統(tǒng)第四章 匯編語言程序設(shè)計(jì)4.1 常用的偽指令 定義匯編起始位置偽指令 ORG nn ;nn為16位地址 例如: ORG 2000H ;定義了下面指令的地址是從2000H開始 MOV SP,#80H ;設(shè)堆棧 . 賦值偽指

2、令 字節(jié)名稱 EQU 數(shù)字(或地址)例如: LED_AB EQU 2000H ;LED_AB 等于 2000H NUMB EQU 30H; 賦值后不能更改,需要更改要用DL重新定義賦值8/14/2022單片機(jī)與嵌入式系統(tǒng)數(shù)據(jù)地址賦值偽命令 DATA 表達(dá)(還有有XDATA,PDATA,IDATA)例如: TAB1 DATA 12H TAB2 DB 44H DATA命令功能與EQU類似,但有一下差別:1)EQU定義的字符名必須先定義再使用,而DATA定義的字符名可以后定義先用;2)用EQU偽指令可以把一個(gè)匯編符號(hào)賦給一個(gè)名字,而DATA只能把數(shù)據(jù)賦給字符名;3)DATA語句中可以把一個(gè)表達(dá)式的值

3、賦給字符名,其中的表達(dá)式應(yīng)是可求值的。4)可以在編譯中被統(tǒng)計(jì)data 的內(nèi)存使用情況。8/14/2022單片機(jī)與嵌入式系統(tǒng) 定義字節(jié)常量(查表用) 標(biāo)號(hào): DB 8位二進(jìn)數(shù)表例如: TAB1: DB 12H,34H,77H, TAB2: DB 07H,44H, 定義字常量(查表用) 標(biāo)號(hào): DW 16位二進(jìn)數(shù)表例如:(每個(gè)字占二個(gè)字節(jié),高8位在先,低8位在后) TAB: DW 1234H,7766H, 8/14/2022單片機(jī)與嵌入式系統(tǒng) 留存儲(chǔ)空間 偽指令在匯編時(shí),從定義地址開始保留DS之后表達(dá)式的值所規(guī)定的存儲(chǔ)單元,以備后用。例如:ORG 1000HDS 08HDB 30H,8AH匯編以后

4、,從1000H保留8個(gè)單元,然后從1008H開始給內(nèi)存賦值,即(1008H)=30H(1009H)=8AH 定義匯編結(jié)束指令 標(biāo)號(hào): END 地址或標(biāo)號(hào) END 指令一定要放到程序的最后,否則不會(huì)編譯! 8/14/2022單片機(jī)與嵌入式系統(tǒng) 位地址符號(hào)偽指令 位名稱 BIT I/O口(或位地址)例如: CLK BIT P1.4 ; P1.4=CLK AD_CS BIT P1.6 ; P1.6=AD_CS FLG BIT 00H ; 00H是位地址 定義匯編結(jié)束指令 標(biāo)號(hào): END 地址或標(biāo)號(hào) END 指令一定要放到程序的最后,否則不會(huì)編譯!8/14/2022單片機(jī)與嵌入式系統(tǒng);NAMESERI

5、ALTH2 DATA0CDHTL2 DATA0CCHT2CONDATA0C8HET2 BIT 0A8H.5BSEGAT00Hsendactive:DBIT 1;發(fā)送有效標(biāo)志time_tick:DBIT 1;1秒定時(shí)標(biāo)志sendfull:DBIT 1;發(fā)送緩沖區(qū)滿標(biāo)志display:DBIT 1;顯示cnt值標(biāo)志temp_bit:DBIT 1;臨時(shí)位變量8/14/2022單片機(jī)與嵌入式系統(tǒng)DSEGAT30Ht_1000ms:DS 1t_100ms:DS 1t_set:DS 1ISEGAT80Hinbuf:DS 32; /接收緩沖存儲(chǔ)數(shù)組outbuf:DS 32; /發(fā)送緩沖區(qū)存儲(chǔ)數(shù)組; ; CS

6、EGAT0000HLJMPmain8/14/2022單片機(jī)與嵌入式系統(tǒng)8/14/2022單片機(jī)與嵌入式系統(tǒng) 復(fù)習(xí) 單片機(jī)I/O端口邏輯結(jié)構(gòu) 8051有4個(gè)8位并行I/O端口,記做P0、P1、P2和P3。這四個(gè)口都是準(zhǔn)雙向的I/O口,共占有32條管腳,每一條I/O線都能獨(dú)立的用作輸入或輸出。 1 PO口(I/O、總線)8/14/2022單片機(jī)與嵌入式系統(tǒng)2 P1口(I/O口) 8/14/2022單片機(jī)與嵌入式系統(tǒng)3 P2口(I/O口、總線) 8/14/2022單片機(jī)與嵌入式系統(tǒng)4 P3口(I/O口、復(fù)用功能)8/14/2022單片機(jī)與嵌入式系統(tǒng)5 I/O口的“讀修改寫”操作 從P0P3口的邏輯電

7、路分析可知,讀一個(gè)端口的數(shù)據(jù)有兩類:一類是讀引腳電平的,另一類是讀鎖存器的?!白x修改寫”指令是為了避免誤讀引腳電平 (需要保存的讀的都是寄存器)。 例如,ANL P1, A ;邏輯與指令. CPL P2.0 ;取反 INC P3 ;P3的內(nèi)容增1.8/14/2022單片機(jī)與嵌入式系統(tǒng)外擴(kuò)RAM、ROM時(shí),使用鎖存器8/14/2022單片機(jī)與嵌入式系統(tǒng)8/14/2022單片機(jī)與嵌入式系統(tǒng) 一、擴(kuò)展的基本信息 (1)地址總線(Address Bus,AB) A15.A8,A7A0 (2)數(shù)據(jù)總線(Data Bus,DB) D7.D0 (3)控制總線(Control Bus,CB) /WR、/RD、

8、/PSEN、/EA、ALE8/14/2022單片機(jī)與嵌入式系統(tǒng)8/14/2022單片機(jī)與嵌入式系統(tǒng)8/14/2022單片機(jī)與嵌入式系統(tǒng)LED(Light Emitting Diode)LCD(liquid crystal display)液晶顯示八段數(shù)碼管數(shù)碼管外形agdfecbdpabcdefgdp(a)共陰極gndVccabcdefgdp8/14/2022單片機(jī)與嵌入式系統(tǒng)編碼 a b c d e f g dp D7 D6 D5 D4 D3 D2 D1 D0P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0 0 0 0 0 0 0 1 1數(shù)碼管外形agdfecbdp顯示字形“

9、0”,編碼:03H 1 0 0 1 1 1 1 1數(shù)碼管外形agdfecbdp顯示字形“1”,編碼:9FH 0 0 1 0 0 1 0 1數(shù)碼管外形agdfecbdp顯示字形“2”,編碼:25H 0 0 0 0 1 1 0 1數(shù)碼管外形agdfecbdp顯示字形“3”,編碼:0DH 1 0 0 1 1 0 0 1數(shù)碼管外形agdfecbdp顯示字形“4”,編碼:99H 0 1 0 0 1 0 0 1數(shù)碼管外形agdfecbdp顯示字形“5”,編碼:49H 0 1 0 0 0 0 0 1數(shù)碼管外形agdfecbdp顯示字形“6”,編碼:41H 0 0 0 1 1 1 1 1數(shù)碼管外形agdfec

10、bdp顯示字形“7”,編碼:1FH 0 0 0 0 0 0 0 1數(shù)碼管外形agdfecbdp顯示字形“8”,編碼:01H 0 0 0 0 1 0 0 1數(shù)碼管外形agdfecbdp顯示字形“9”,編碼:09H 0 0 0 1 0 0 0 1數(shù)碼管外形agdfecbdp顯示字形“A”,編碼:11H 1 1 0 0 0 0 0 1數(shù)碼管外形agdfecbdp顯示字形“b”,編碼:0C1H 0 1 1 0 0 0 1 1數(shù)碼管外形agdfecbdp顯示字形“C”,編碼:63H 1 0 0 0 0 1 0 1數(shù)碼管外形agdfecbdp顯示字形“d”,編碼:85H 0 1 1 0 0 0 0 1數(shù)碼

11、管外形agdfecbdp顯示字形“E”,編碼:61H 0 1 1 1 0 0 0 1數(shù)碼管外形agdfecbdp顯示字形“F”,編碼:71H 0 0 1 1 0 0 0 0數(shù)碼管外形agdfecbdp顯示字形“P.”,編碼:30H8/14/2022單片機(jī)與嵌入式系統(tǒng)編碼取決于:硬件結(jié)構(gòu)驅(qū)動(dòng)方式8/14/2022單片機(jī)與嵌入式系統(tǒng)外部數(shù)據(jù)和常數(shù)訪問方法1. 外部數(shù)據(jù)訪問 MOVX A, DPTR MOVX DPTR, A MOVX A, Ri MOVX Ri, A2. 常數(shù)訪問 MOVC A, A+DPTR MOVC A, A+PC8/14/2022單片機(jī)與嵌入式系統(tǒng)4.2 匯編程序設(shè)計(jì)過程 明

12、確課題的任務(wù)(硬件/功能/精度等); 按功能,分塊規(guī)劃程序結(jié)構(gòu)(模塊設(shè)計(jì)/子程序); 分配存儲(chǔ)器資源(定義變量/設(shè)堆棧.); 根據(jù)功能選擇合適的指令組合; 對源程序進(jìn)行編譯,調(diào)試和修改; 燒寫代碼(下載代碼.)。 8/14/2022單片機(jī)與嵌入式系統(tǒng)4.3 匯編程序的結(jié)構(gòu) CLK BIT P1.7 ;I/O口定義. NUB EQU 2020H ;常數(shù)或地址定義. . ;定義變量或常數(shù) ORG 0000H ;復(fù)位入口地址(上電) LJMP MAIN ;跳到主程序 ORG 0003H ;外部中斷0入口地址(P3.2) LJMP T_INT0 ;跳到into中斷程序 ORG 000BH ;定時(shí)器0入

13、口地址(P3.4) LJMP T_T0 ;跳到T0中斷程序 8/14/2022單片機(jī)與嵌入式系統(tǒng)中斷向量入口地址表INT0和INT1T0、T1位置8/14/2022單片機(jī)與嵌入式系統(tǒng) ORG 0013H ;外部中斷1入口地址(P3.3) LJMP T_INT1 ;跳int1中斷程序 ORG 001BH ;定時(shí)器1入口地址(P3.5) LJMP T_T1 ;跳T1中斷程序 ORG 0023H ;串口入口地址(P3.0,P3.1) LJMP T_CK ;跳串口中斷程序 . ;8/14/2022單片機(jī)與嵌入式系統(tǒng) ORG 0100H T_INT0: . ;外部中斷0子程序 RETI T_INT1:

14、;外部中斷1子程序 RETI T_T0: ;定時(shí)器/計(jì)數(shù)0中斷子程序 RETI T_T1: ;定時(shí)器/計(jì)數(shù)1中斷子程序 RETI T_CK: ;串口中斷子程序 RETI ;其他子程序. ; 8/14/2022單片機(jī)與嵌入式系統(tǒng)C語言中表示方法包括interrupt,將把所聲明的函數(shù)定義為一個(gè)中斷服務(wù)程序。另外,可以使用using定義此中斷服務(wù)程序所使用的寄存器組。中斷函數(shù)的定義格式為: void 函數(shù)名(void) interrupt n using m 關(guān)鍵字interrupt后面的n是中斷號(hào),n的取值范圍為031; 關(guān)鍵字using 后面的m是所選擇的寄存器組,取值范圍03,該項(xiàng)可以省略。

15、對于interrupt后面n的取值,編譯器從8n+3處產(chǎn)生中斷向量。8/14/2022單片機(jī)與嵌入式系統(tǒng)C語言中表示方法/* Time0中斷服務(wù)程序,使用寄存器組 */voidmTime0Interrupt( ) interrupt 1 /using 2/TH0 = 0 xDC;/TL0 = 0 x00; /* 串行口中斷服務(wù)程序,使用寄存器組1 */voidmSelInterrupt( ) interrupt 4 using 1 / using 18/14/2022單片機(jī)與嵌入式系統(tǒng) MAIN: MOV SP,#90H ;設(shè)堆棧(主程序部分) MOV IE, #00H ; ;其他指令 END

16、 ;結(jié)束8/14/2022單片機(jī)與嵌入式系統(tǒng)1MCS-51系列單片機(jī)內(nèi)部包含哪些主要邏輯功能部件? 各有什么特點(diǎn)?2MCS-51單片機(jī)的時(shí)鐘周期、機(jī)器周期、指令周期是如何分配的?當(dāng)主頻為12 MHz時(shí),一個(gè)機(jī)器周期為幾微秒?執(zhí)行一條最長的指令需幾微秒? 3MCS-51設(shè)有4組工作寄存器,有什么特點(diǎn),如何選擇?與RAM關(guān)系,應(yīng)如何使用?4MCS-51的并行I/O端口信息有哪兩種讀取方法?讀修改重寫操作是針對并行I/O口的哪一部分進(jìn)行的?有什么優(yōu)點(diǎn)?8/14/2022單片機(jī)與嵌入式系統(tǒng)5程序計(jì)數(shù)器(PC)作為不可尋址寄存器,它有哪些特點(diǎn)?程序中能否知道某條指令的PC值? 680C51的ALE線的作用是什么?7簡述MCS-51內(nèi)部數(shù)據(jù)存儲(chǔ)器的空間分配。訪問外部數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器有什么本質(zhì)區(qū)別?8堆棧有哪些功能?堆棧寄存器(SP)的作用是什么?在程序設(shè)計(jì)時(shí),為什么還要對SP重新賦值?復(fù)位時(shí)內(nèi)容是多少?8/14/2022單片機(jī)與嵌入式系統(tǒng)9MCS-51單片機(jī)引腳信號(hào)中,信號(hào)名稱帶上劃線和下劃線的意義.10單片機(jī)系統(tǒng)復(fù)位后,(PSW)00H,因此內(nèi)部

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論