單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)課件_第1頁(yè)
單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)課件_第2頁(yè)
單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)課件_第3頁(yè)
單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)課件_第4頁(yè)
單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)課件_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)匯編語(yǔ)言機(jī)器語(yǔ)言(面向機(jī)器二進(jìn)制表示)匯編語(yǔ)言(面向機(jī)器助記符表示)高級(jí)語(yǔ)言(面向用戶(hù)類(lèi)人語(yǔ)言)單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)匯編語(yǔ)言單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)匯編語(yǔ)言的格式標(biāo)號(hào)段操作碼段操作數(shù)段注釋段指令語(yǔ)句偽指令ORG(起始匯編)END(起始匯編)EQU(賦值)DATA(數(shù)據(jù)地址賦值)DB(定義字節(jié))DWDSBIT單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)匯編語(yǔ)言的格式單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)

[例]

設(shè)在內(nèi)部RAM的BLOCK單元內(nèi)有一無(wú)符號(hào)數(shù)據(jù)塊的長(zhǎng)度,無(wú)符號(hào)數(shù)據(jù)塊起始地址是BLOCK+1。試編程求無(wú)符號(hào)數(shù)據(jù)塊中數(shù)據(jù)的累加和(不考慮進(jìn)位的加法之和),并把它存入SUM單元。

單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)[例]設(shè)在內(nèi)部RAM的BLOCK單單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)

解:程序應(yīng)能對(duì)數(shù)據(jù)塊長(zhǎng)度作出判斷:若它不為零,則求和;若它為零,則不必進(jìn)行加法。相應(yīng)程序?yàn)椋?/p>

單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)解:?jiǎn)纹瑱C(jī)匯編語(yǔ)言程序設(shè)計(jì)ORG1000HSUMDATA1FHBLOCKDATA20HSTART:MOVR0,#BLOCK;數(shù)據(jù)塊長(zhǎng)度地址送R0MOVA,@R0;數(shù)據(jù)塊長(zhǎng)度送ACJNEA,#00H,LOOP;若數(shù)據(jù)塊長(zhǎng)≠0,則LOOPHERE:SJMP$;若數(shù)據(jù)塊長(zhǎng)=0,則結(jié)束

LOOP:CLRANEXT:INCR0;修改數(shù)據(jù)指針

ADDA,@R0;加一個(gè)數(shù)

DJNZBLOCK,NEXT;若(BLOCK)-1≠0,則NEXTMOVSUM,A;存累加和

SJMPHEREEND單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)ORG1000H程序設(shè)計(jì)方法1.作程序流程圖

根據(jù)題意,找出最合理、簡(jiǎn)便的解決方法并作程序流程圖。流程圖分粗略和詳細(xì)兩種,粗略流程圖給出大致步驟,而詳細(xì)流程圖則給出每一步驟細(xì)節(jié)。對(duì)一些大問(wèn)題,先給出粗略流程圖以得出總體概念,再作詳細(xì)流程圖對(duì)每一步驟作具體描述;程序設(shè)計(jì)方法1.作程序流程圖程序設(shè)計(jì)方法2.存貯單元分配

根據(jù)題意合理地分配程序和數(shù)據(jù)在存貯器中地址。存貯單元分配合理,可使編程簡(jiǎn)單和避免程序出錯(cuò)。應(yīng)避免程序區(qū)與數(shù)據(jù)區(qū)相互混合、交叉。程序設(shè)計(jì)方法2.存貯單元分配內(nèi)部數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)內(nèi)部數(shù)據(jù)存儲(chǔ)器00-7FH的結(jié)構(gòu)內(nèi)部數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)內(nèi)部數(shù)據(jù)存儲(chǔ)器00-7FH的結(jié)構(gòu)MCS-51單片機(jī)外部存儲(chǔ)器使用外部數(shù)據(jù)存儲(chǔ)器尋址范圍為64K,包括外部數(shù)據(jù)存儲(chǔ)器和I/O通過(guò)數(shù)據(jù)指針指定外部數(shù)據(jù)存儲(chǔ)器的地址

MOVXA,@DPTRMOVX@DPTR,A采用間接地址指定外部數(shù)據(jù)存儲(chǔ)器的地址

MOVXA,@R0/R1MOVX@R0/R1,AMCS-51單片機(jī)外部存儲(chǔ)器使用外部數(shù)據(jù)存儲(chǔ)器尋址范圍為64程序設(shè)計(jì)方法3.源程序編制

將流程圖中每步所規(guī)定的操作用程序語(yǔ)言實(shí)現(xiàn),可選用不同指令,各人所編程序可能不同。程序質(zhì)量衡量標(biāo)準(zhǔn)為:程序短,占用存貯單元少,運(yùn)行時(shí)間短,而且程序結(jié)構(gòu)合理。程序設(shè)計(jì)方法3.源程序編制

源程序 標(biāo)號(hào)

操作碼

操作數(shù)

ORG 4000H MOV A,#00H MOV 30H,A INC A MOV DPTR,#4100H MOVX @DPTR,A INC A INC DPTR MOV A,R2

MOVX @DPTR,A HE: SJMP HE把直接數(shù)00H送到內(nèi)部RAM30H單元中,把直接數(shù)01H及02H分別送到外部RAM4000H、4001H單元中。MCS-51單片機(jī)程序設(shè)計(jì)

簡(jiǎn)單程序設(shè)計(jì)MCS-51程序時(shí),需注意內(nèi)部存儲(chǔ)器訪問(wèn)和外部存儲(chǔ)器訪問(wèn) 源程序把直接數(shù)00H送到內(nèi)部RAM30H單元中,把直接數(shù)MCS-51單片機(jī)程序設(shè)計(jì)分支程序常用的指令MCS-51單片機(jī)程序設(shè)計(jì)分支程序常用的指令MCS-51單片機(jī)程序設(shè)計(jì)分支程序在寄存器R2中存有數(shù)碼0~F,要求將其轉(zhuǎn)換為ASCII碼,并存于外部存貯器

4100H單元中

MCS-51單片機(jī)程序設(shè)計(jì)分支程序在寄存器R2中存有數(shù)碼0~MCS-51單片機(jī)程序設(shè)計(jì)利用散轉(zhuǎn)指令實(shí)現(xiàn)多分支程序的方法

將直接轉(zhuǎn)移指令如AJMP、LJMP構(gòu)成轉(zhuǎn)移表,將此表的首地址裝入數(shù)據(jù)指針DPTR,把標(biāo)志單元的內(nèi)容乘以轉(zhuǎn)移指令表所采用的直接轉(zhuǎn)移指令的長(zhǎng)度(AJMP為2、LJMP為3),并傳送到累加器A中,然后調(diào)用JMP@A+DPTR指令實(shí)現(xiàn)散轉(zhuǎn)。MCS-51單片機(jī)程序設(shè)計(jì)利用散轉(zhuǎn)指令實(shí)現(xiàn)多分支程序的方法MCS-51單片機(jī)程序設(shè)計(jì)

利用地址偏移量表實(shí)現(xiàn)多分支程序

適用于各個(gè)處理程序的目的地址均在同一頁(yè)的情形

先將處理程序的目時(shí)地址減去表的首地址(應(yīng)在同一頁(yè)內(nèi),不大于256字節(jié))構(gòu)成一偏移量表,將表的首地址裝入數(shù)據(jù)指針DPTR,利用查表指令MOVCA,@A+DPTR求出偏移量,然后利用JMP@A+DPTR實(shí)現(xiàn)散轉(zhuǎn)。

MCS-51單片機(jī)程序設(shè)計(jì)利用地址偏移量表實(shí)現(xiàn)多分支程序MCS-51單片機(jī)程序設(shè)計(jì)利用目的地址表實(shí)現(xiàn)多分支程序

將目的地址直接轉(zhuǎn)成目的地址表,然后利用查表的方法根據(jù)標(biāo)志單元的內(nèi)容求出目的地址,將此地址裝入數(shù)據(jù)指針DPTR,將累加器A清零,再利用JMP@A+DPTR實(shí)現(xiàn)散轉(zhuǎn)利用地址偏移量表實(shí)現(xiàn)多分支程序,適用于各個(gè)處理程序的目的地址均在同一頁(yè)的情形.MCS-51單片機(jī)程序設(shè)計(jì)利用目的地址表實(shí)現(xiàn)多分支程序循環(huán)程序?qū)?nèi)部RAM的40H~4FH單元置為00H~0FH,

以R2作為循環(huán)計(jì)數(shù)器

MCS-51單片機(jī)程序設(shè)計(jì)

循環(huán)程序MCS-51單片機(jī)程序設(shè)計(jì)循環(huán)程序把內(nèi)部RAM40H~4FH的內(nèi)容傳送到外部數(shù)據(jù)存儲(chǔ)器的4100H~410FH單元內(nèi)。以R2作為循環(huán)計(jì)數(shù)器

MCS-51單片機(jī)程序設(shè)計(jì)

循環(huán)程序MCS-51單片機(jī)程序設(shè)計(jì)循環(huán)程序?qū)⑼獠繑?shù)據(jù)存儲(chǔ)器中4100H~410FH單元置為00H~0FH以?xún)?nèi)部RAM32H作為循環(huán)計(jì)數(shù)器MCS-51單片機(jī)程序設(shè)計(jì)

循環(huán)程序MCS-51單片機(jī)程序設(shè)計(jì)循環(huán)程序?qū)?100H~410FH單元的內(nèi)容傳送到4200H開(kāi)始的單元中。以?xún)?nèi)部RAM32H作為循環(huán)計(jì)數(shù)器,用30H、31H作為4200H的地址計(jì)數(shù)器

MCS-51單片機(jī)程序設(shè)計(jì)

循環(huán)程序MCS-51單片機(jī)程序設(shè)計(jì)MCS-51單片機(jī)程序設(shè)計(jì)

查表程序在R2寄存器存有數(shù)0~9的BCD碼,利用查表程序求其平方值,并存于4100H單元中。先將0~9平方值的BCD碼存于程序存貯器中,標(biāo)號(hào)為T(mén)ABLE。MCS-51單片機(jī)程序設(shè)計(jì)查表程序在R2寄存器存有數(shù)0~專(zhuān)用系統(tǒng)的程序構(gòu)成

一個(gè)完整的系統(tǒng)程序的結(jié)構(gòu)

專(zhuān)用系統(tǒng)的系統(tǒng)程序必須具備一個(gè)完整的結(jié)構(gòu),保證在系統(tǒng)上電時(shí)能自動(dòng)啟動(dòng),并根據(jù)系統(tǒng)硬件的要求執(zhí)行一定功能

專(zhuān)用系統(tǒng)的程序構(gòu)成一個(gè)完整的系統(tǒng)程序的結(jié)構(gòu)

專(zhuān)用系統(tǒng)程序設(shè)計(jì)應(yīng)注意的問(wèn)題尋址范圍:MCS-51單片機(jī)具有64K程序存儲(chǔ)器和64K數(shù)據(jù)存儲(chǔ)器的尋址能力。數(shù)據(jù)存儲(chǔ)器和I/O設(shè)備統(tǒng)一編址均在64K的范圍內(nèi)。專(zhuān)用系統(tǒng)程序設(shè)計(jì)應(yīng)注意的問(wèn)題尋址范圍:

專(zhuān)用系統(tǒng)程序設(shè)計(jì)應(yīng)注意的問(wèn)題復(fù)位復(fù)位后的程序指針為0000H,系統(tǒng)硬件必須將程序存儲(chǔ)器的地址安排在0000H開(kāi)始的存儲(chǔ)器,使其與系統(tǒng)復(fù)位后的程序指針保持一致。同時(shí)在設(shè)計(jì)系統(tǒng)程序時(shí),也必須將程序的起始地址安排在0000H開(kāi)始的單元中。專(zhuān)用系統(tǒng)程序設(shè)計(jì)應(yīng)注意的問(wèn)題復(fù)位

專(zhuān)用系統(tǒng)程序設(shè)計(jì)應(yīng)注意的問(wèn)題堆棧的設(shè)置堆棧理論上可安排在內(nèi)部RAM的00H~7FH單元。由于00H~1FH為寄存器組,20H~2FH為位操作單元,此外還需在30H以后的地址安排部分工作單元,因此堆棧通常只能安排在大于30H的內(nèi)部RAM中。專(zhuān)用系統(tǒng)程序設(shè)計(jì)應(yīng)注意的問(wèn)題

專(zhuān)用系統(tǒng)程序設(shè)計(jì)應(yīng)注意的問(wèn)題堆棧操作采用了在數(shù)據(jù)壓入堆棧時(shí),堆棧指針加大,而數(shù)據(jù)彈出堆棧時(shí),堆棧指針減小的方法,因此可將堆棧指針設(shè)置為在內(nèi)部RAM中堆棧的最小地址減1。堆棧大小應(yīng)估計(jì)子程序和中斷程序使用的數(shù)量和數(shù)據(jù)壓入彈出堆棧的數(shù)量,以確定堆棧大小。如堆棧估計(jì)不足將導(dǎo)致程序無(wú)法執(zhí)行,形成死機(jī)。專(zhuān)用系統(tǒng)程序設(shè)計(jì)應(yīng)注意的問(wèn)題

專(zhuān)用系統(tǒng)程序設(shè)計(jì)應(yīng)注意的問(wèn)題中斷功能的使用MCS-51單片機(jī)采用5個(gè)中斷:外部中斷0、定時(shí)器T0中斷、外部中斷1、定時(shí)器T1中斷和串行口中斷,中斷服務(wù)程序入口地址分別為

0003H、000BH、

0013H、

溫馨提示

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

評(píng)論

0/150

提交評(píng)論