版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
內(nèi)容示意圖00H69H99H68H88H67H77H66H66H65H55H64H44H63H33R62H22H61H11H60HOFFH00HOFOHODEHOBCH9AH78H56H34I12H內(nèi)容39H38H37H36H35H34H33H32H31H30H地址1、編程實(shí)現(xiàn)將內(nèi)部RAM30H開始的10個(gè)單元內(nèi)容和60H開始的10
個(gè)單元內(nèi)容對應(yīng)一一互相交換,單元內(nèi)容自定,交換前內(nèi)部RAM地址內(nèi)容地址OFFH69H00H68HOFOH67HODEH66HOBCH65H9AB64H78H63H56H62H34H61H12H60HI00H39H99H38H88H37H77H36H66H35H55H34H44H33H33H32H22H31H11H30H交換后內(nèi)部RAM示意圖內(nèi)容地址1、程序功能----數(shù)據(jù)交換2、
程序結(jié)構(gòu)----循環(huán)結(jié)構(gòu)環(huán)3、
數(shù)據(jù)存放位置----均在內(nèi)部RAM4、
傳送方式-----順序傳送XCH/
MOVDJNZ
控
制
循R0,R1尋址指針同時(shí)INC解題思路:ORG
0000HMOVR0,#30HMOV
R1,#60HMOV
R7,#10LOOP:MOVA,ROXCH
A,R1MOV
RO,AINC
ROINC
R1DJNZ
R7,LOOP開始設(shè)置源指針R0設(shè)置目的指針R1
設(shè)置計(jì)數(shù)器R7取源數(shù)據(jù)→AA←→
目的單元A→
源數(shù)據(jù)單元修改源指針R0修改目的指針R1過數(shù)器R7-1-0結(jié)束SJMPENDN$解題思路:1、程序功能----無符號(hào)數(shù)比較
2、程序結(jié)構(gòu)--分支程序3、數(shù)據(jù)存放位置—-內(nèi)部RAM2、編程比較內(nèi)部RAM中X單元和Y單元存放的兩個(gè)無符號(hào)數(shù),找出其
中的較大數(shù),放入Z單元中.二數(shù)相減,判斷借位標(biāo)志.
條件判斷指令JC/JNC偽指令定義X、Y、ZX
EQU
20HY
EQU
30HZ
EQU
40HORG
0000HMOV
A,XCLR
CSUBB
A,YJNC
L1開始X
-Y有借位嗎?MOVSJMPL1:MOVEN:SJMPENDNX→ZYY>ZZ,YENZ,X$結(jié)束3、
編程比較內(nèi)部RAM中X單元和Y單元存放的兩個(gè)有符號(hào)數(shù),
找出其中的較大數(shù),放入Z單元中。解題思路:1、
基本思路同上一題2、重點(diǎn)是判斷有符號(hào)數(shù)的方法利用溢出標(biāo)志0V的狀態(tài)來判斷兩個(gè)有符號(hào)數(shù)的大小.若X-Y為正數(shù),則
OV=0時(shí)
X>Y;OV=1
時(shí)X<Y.若X
-Y為負(fù)數(shù),則
OV=0
時(shí)
X<Y;OV=1
時(shí)
X>Y.Z
<XN旗工請轉(zhuǎn)A-X驕Z
<
人N2田要單NZ←A人乙田要單單弱X
EQU
20HY
EQU
30HZ
EQU
40HORG
0000HMOV
A,XCLR
CSUBB
A,YACC.7,NGPSW.2
LTGT:MOV
Z,XSJMP
ENNG:
PSW.2,GTLT:MOVZ,YEN:SJMP$ENDOFH36HOFH46HOAH35HOAH45H90H34H90H44H78H33H78H43H56H32H56H42H34H31H34H41H12H30H12H40H07H2FHXXH3FH內(nèi)容地址內(nèi)容地址4、
編程實(shí)現(xiàn)數(shù)據(jù)傳送:假定數(shù)據(jù)串存放在內(nèi)部RAM從30H
開始的連
續(xù)單元中,數(shù)據(jù)串長度存放在2FH單元,傳送的目的區(qū)起址是內(nèi)部RAM從40H開始的連續(xù)單元.<具體數(shù)據(jù)可以自己設(shè)定>1、程序功能----數(shù)據(jù)傳送2、
程序結(jié)構(gòu)----循環(huán)結(jié)構(gòu)環(huán)3、
數(shù)據(jù)存放位置-----均在內(nèi)部RAM4、
傳送方式----順序傳送MOVDJNZ
控
制
循R0,R1尋址指針同時(shí)INC解題思路:ORG
0000HMOVR0,#2FHMOVR1,#40H
MOV
A,R0MOV
R7,AINC
ROLOOP:MOV
A,ROMOV
R1,AINC
ROINC
R1DJNZ
R7,LOOPSJMP
$END開始設(shè)置源指針R0設(shè)置目的指針R1
設(shè)置計(jì)數(shù)器R7取源數(shù)據(jù)→AA→
目的單元修改源指針R0修改目的指針R1過數(shù)器R7-1-0結(jié)束N12H46H34H45H56H44H78H43H90H42HOAH41HOFH40HXXH3FH5、
編程實(shí)現(xiàn)數(shù)據(jù)傳送:假定數(shù)據(jù)串存放在內(nèi)部RAM從30H開始的連
續(xù)單元中,數(shù)據(jù)串長度存放在2FH單元,傳送的目的區(qū)起址是內(nèi)部RAM從40H開始的連續(xù)單元.<數(shù)據(jù)按反向順序傳送>OFHOAH90H78H56H34H12H07H內(nèi)容36H35H34H33H32H31H30H2FH地址內(nèi)容
地址解題思路:1、
程序功能----數(shù)據(jù)傳送2、
程序結(jié)構(gòu)----循環(huán)結(jié)構(gòu)3、
數(shù)據(jù)存放位置----均在內(nèi)部RAM4、傳送方式----反向傳送DEC反向傳送的關(guān)鍵是要設(shè)置好指針的初始化值,數(shù)據(jù)
區(qū)的開始地址容易找到,一般程序中都表示出來了,但數(shù)據(jù)
區(qū)的結(jié)束地址比較難找,它和數(shù)據(jù)的長度有關(guān).MOVDJNZ
控
制
循
環(huán)R0,R1尋址指
針
一INC、一開始設(shè)置源指針R0設(shè)置目的指針R1設(shè)置計(jì)數(shù)器R7取源數(shù)據(jù)→AA→
目的單元修改源指針R0修改目的指針R1過數(shù)器R7-1-0結(jié)束DEC
R1INC
ROLOOP:MOVA,ROMOVR1,AINC
R0DEC
R1DJNZR7,LOOP0000HRO,#2FHR1,#40HA,R0R7,AA,R1R1,AORGMOVMOVMOVMOVADDMOVSJMPENDN$1、程序功能----數(shù)據(jù)傳送2、
程序結(jié)構(gòu)----循環(huán)結(jié)構(gòu)環(huán)3、
數(shù)據(jù)存放位置-----均在外部RAM4、
傳送方式----順序傳送需要2個(gè)16位指針6、
編程實(shí)現(xiàn)數(shù)據(jù)傳送:假定數(shù)據(jù)串存放在外部RAM
0001H
開
始的單元中,其中數(shù)據(jù)串的長度存放在0000H
單元,傳送的目的區(qū)起址
是
外
部RAM1000H
單
元
.解題思路:MOVXDJNZ
控
制
循DPTR尋址指針同時(shí)INC開始設(shè)置源指針DPTR設(shè)置目的地址R2,RS
設(shè)置計(jì)數(shù)器R7取源數(shù)據(jù)
→A保存DPTR值
設(shè)置目的指針A→
目的單元修改目的指針
保存目的地址恢復(fù)源指針修改源指針DPTR過數(shù)器R7-1
-0結(jié)束NORG
0000HMOV
DPTR,#000OHMOV
R2,#10HMOV
R3,#0OHMOVX
A,DPTR
MOVR7,AINC
DPTRLOOP:MOVXA,DPTRPUSH
DPHPUSHDPLMOV
DPH,R2MOVDPL,R3MOVX
DPTR,AMOVRO,#0000H
MOV
R1,#1000H可以這樣使用嗎?INC
DPTRMOVR2,DPHMOV
R3,DPLPOP
DPLPOPDPHINC
DPTRDJNZ
R7,LOOPSJMP
$END7、
編程實(shí)現(xiàn)數(shù)據(jù)傳送:假定數(shù)據(jù)串存放在外部RAM
0000H開始的
單元中,傳送的目的區(qū)起址是外部RAM
1000H單元.需傳送的數(shù)據(jù)串
個(gè)數(shù)事先并不知道,但數(shù)據(jù)串有一個(gè)結(jié)尾標(biāo)志0DH.解題思路:1、
程序功能----數(shù)據(jù)傳送2、
程序結(jié)構(gòu)----循環(huán)結(jié)構(gòu)環(huán)3、
數(shù)
據(jù)
存
放
位置----均在外部RAM4、
傳送方式----
順序傳送MOVXCJNE
控
制
循DPTR尋
址指針同時(shí)INC需
要
2
個(gè)
1
6
位
指
針開始設(shè)置源指針DPTR設(shè)置目的地址R2,R3
設(shè)置計(jì)數(shù)器R7取源數(shù)據(jù)→A=0DH
?N保存DPTR
值
設(shè)置目的指針A→
目的單元修改目的指針保存目的地址結(jié)束恢復(fù)源指針修改源指針DPTRORG0000HMOVDPTR,#00O1HMOVR2,#10HMOV
R3,#00HLOOP:MOVX
A,DPTRCJNE
A,#ODH,NEXTSJMPOVERNEXT:PUSH
DPHPUSH
DPLMOVMOVMOVXINCMOVMOVPOPPOPINCSJMPOVER:SJMPENDDPH,R2DPL,R3DPTR,ADPTRR2,DPHR3,DPLDPLDPHDPTRLOOP$8、
設(shè)有兩串多字節(jié)二進(jìn)制數(shù),分別存放在內(nèi)部RAM從30H和40H開始
的連續(xù)單元中〔低位在前高位在后,現(xiàn)要將這兩串?dāng)?shù)據(jù)相加,結(jié)果存
放在從30H開始的連續(xù)單元中,數(shù)據(jù)串的長度在RO中
.(要保存最高
位進(jìn)位數(shù)據(jù)例如:
BA9876543210H+665544332211HR0
=06H內(nèi)容
地址66H45H55H44H44H43H33H42H22H41H11H40HOBAH98H76H54H32H10H內(nèi)容35H34H33H32H31H30H地址相加
前RAM
內(nèi)
容01H36H20H35HOEDH34HOBAH33H87H32H54H31H21H30H66H45H55H44H44H43H33H42H22H41H11H40HBA9876543210H+
665544332211H內(nèi)容
地址相加
后RAM
內(nèi)
容120EDBA875421H內(nèi)容地址ORG
0000HMOV
R7,R0MOVR0,#30HMOVR1,#40HCLR
CRADD:
MOVA,ROADDC
A,R1MOV
R0,AINC
R0INC
R1DJNZ
R7,RADDCLRAADDC
A,#0MOV
R0,ASJMP$END保存高位進(jìn)位位的
方法還有其他什么方法嗎?位
判
斷
法JC
NEXTMOV
RO,#00HCLR
ARLC
AMOV
R0,ASJMP
$SJMPOVERNEXT:MOVR0,#01H移
位
法OVER:
SJMP$9、設(shè)有兩串多字節(jié)BCD碼(即十進(jìn)制數(shù)數(shù),分別存放在內(nèi)部RAM從30H和外部RAM4000H開始的連續(xù)單元中,現(xiàn)要將這兩串?dāng)?shù)據(jù)相加,結(jié)
果存放在從外部RAM4000H
開始的連續(xù)單元中,數(shù)據(jù)串的長度在R1中
.〔忽略最高位進(jìn)位數(shù)據(jù)例如:332836543210H+665544332211H66H4005H55H4004H44H4003H33H4002H22H4001H11H4000H33H28H36H54H32H10H內(nèi)容35H34H3332H31H30H地址內(nèi)容
地址前RAM內(nèi)
容十十十十
十相
加R1=06H99H4005H83H4004H80H4003H87H4002H54H4001H21H4000H+35H34H33H32H31H30H地址332836543210H665544332211H998380875421H內(nèi)容
地址內(nèi)
容33H28H36H54H32H10H內(nèi)容相
加
后RAM開始設(shè)置源指針R0設(shè)置目的指針DPTR
設(shè)置計(jì)數(shù)器R7取源數(shù)據(jù)→A加上目的單元加數(shù)DA
A
調(diào)整A→
日的數(shù)據(jù)單元修改源指針N1
數(shù)
器R7-1-02結(jié)束修改目的指R針0DPTRORG
0000HMOVR7,R1MOV
R0,#30HMOV
DPTR,#4000HCLR
CRADD:MOVX
A,DPTRADDC
A,RODA
AMOVXDPTR,AINCR0INCDPTRDJNZ
R7,RADDSJMP
$ENDRAlDD:MOV
A,
ROADDC
A,DPTRDA
AMOVXDPTR,A可以這樣替換嗎
?答案:不能原因:ADDC
A,
DPTR指令非法1、
程序功能----數(shù)據(jù)轉(zhuǎn)換2、
程序結(jié)構(gòu)----循環(huán)結(jié)構(gòu)環(huán)3、
數(shù)據(jù)存放位置----一個(gè)內(nèi)部一個(gè)外部
址4、
傳送方式----順序傳送的指針+210、
在
內(nèi)
部RAM
從20H
開始的連續(xù)單元中存放著4字節(jié)的BCD碼,現(xiàn)要
求將每一個(gè)BCD碼(一字節(jié)存放兩個(gè)BCD碼轉(zhuǎn)變成對應(yīng)的ASCII
碼,并
存放在外部RAM從3000H開始的連續(xù)單元中。ANL
/
ORLDJNZ
控
制
循R0,DPTR
尋源指針+1,目解題思路:38H3007H37H3006H35H3005H36H3004H33H3003H34H3002H31H3001H32H3000H地址
內(nèi)容23H78H22H56H21H34H20H12H內(nèi)
部RAM外
部RAM內(nèi)容地址開始設(shè)置源指針R0設(shè)置目的指針DPTR設(shè)置計(jì)數(shù)器R7取源數(shù)據(jù)
→A保存A
中數(shù)據(jù)到R2求低4位數(shù)據(jù)的ACSⅡ
碼A
→送目的單元恢復(fù)R2
中數(shù)據(jù)到A求高4位數(shù)據(jù)的ACSⅡ
碼修改目的指針DPTRA→送目的單元修改源指針R0修改目的指針DPTR過敏器R7-1=0結(jié)束NORGAJMPORGSTA:
MOVMOVMOVLOOP:MOV0000HSTA0030HDPTR,#3000HR0,#20HR7,#4A,ROMOVR2,AANL
A,#OFHORLA
,#30HMOVXDPTR,AORL
A,#30HINCDPTRMOVXDPTR,AINC
R0INCDPTRDJNZR7,LOOPSJMP$AA,#OFHMOV
A,R2SWAPANLEND63H37HOBH36H00H35H5AH3484EH33H38H32H22H31HOCH30H11、
編程將內(nèi)部RAM
從40H
開始的連續(xù)單元中存放著8個(gè)單字
節(jié)的壓縮BCD碼,轉(zhuǎn)變成單字節(jié)的二進(jìn)制數(shù),并存放在內(nèi)部RAM
從30H
開始的連續(xù)單元中.47H46H45H44H43H42H41H40H地址99H11H00H90H78H56H34H
12H
內(nèi)容內(nèi)容
地址內(nèi)
部
RAM內(nèi)
部
RAM解題思路:1、程序功能----數(shù)據(jù)轉(zhuǎn)換
ANL/ORL2、
程
序
結(jié)
構(gòu)
-
-
-
-
循
環(huán)
結(jié)
構(gòu)
DJNZ
控
制
循環(huán)3、
數(shù)據(jù)存放位置----均在內(nèi)部RAM
R0,R1尋址4、傳2位BCD數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)的方INC/DEC
法BCD
數(shù)高4
位
數(shù)據(jù)(
十
位
)
X10十
BCD
數(shù)低4位數(shù)據(jù)
(個(gè)位)普通二進(jìn)制數(shù)據(jù)開始設(shè)置源指針R0設(shè)置目的指針R1
設(shè)置計(jì)數(shù)器R7取源數(shù)據(jù)→A保存A
中數(shù)據(jù)到R2
取高4位數(shù)據(jù)→AA.
K
10
→A保存A
中數(shù)據(jù)到B恢復(fù)R2中數(shù)據(jù)到A修改源指針R0修改目的指針R1過敏器R7-1=0
2取低4位教據(jù)→AA+B>A沙目
的單元結(jié)束NMOV
A,R2ANL
A,#OFHADD
A,BMOV
R1,AINC
R0INCR1DJNZ
R7,LOPSJMP$ENDORGMOVMOVMOVLOP:MOVMOVANLSWAPMOVMULMOV000OHR0,#40HR1,#30HR7,#8A,ROR2,AA,#OFOHAB,#10ABB,A3007H37H3006H35H3005H30H3004H39H3003B38H3002H36H3001H34H3000H31H12、
將外部RAM從地址3000H開始連續(xù)8個(gè)單元的ASCII碼分別
轉(zhuǎn)換成BCD碼,并組成壓縮BCD碼存放在內(nèi)部RAM從地址30H開
始的連續(xù)4個(gè)單元中。57H33H90H32H68H31H14H30H內(nèi)容
地址外
部RAM內(nèi)
部
RAM內(nèi)容地址解題思路:1、
程序功能----數(shù)據(jù)轉(zhuǎn)換2、
程序結(jié)構(gòu)----循環(huán)結(jié)構(gòu)3、
數(shù)據(jù)存放位置----一個(gè)內(nèi)部一個(gè)外部4、
傳
送
方
式
-
-
-
-
順
序
傳
送指針+12個(gè)ASCII碼合成1個(gè)壓縮BCD
碼18HASCII
-30H
=
非
壓
縮BCD
碼高位非壓縮BCD
碼高低4位互換ANL
/
ORLDJNZ
控制循
環(huán)R0,DPTR
尋
址
源指針+2,目的31H,38H01H,08H10H取源數(shù)據(jù)→AA-30H
>AA
中高低4位互換
保存A
中數(shù)據(jù)到R2源指針+1取源數(shù)據(jù)
→AA-30H
→A開始設(shè)置源指針DPTR
設(shè)置目的指針R0
設(shè)置計(jì)數(shù)器R7修改源指針DPTR
修改目的指針R0過敏器R7-1=0
2A+
R2
→AA→
目的單元結(jié)束N000OHR0,#30HDPTR,#3000HR7,#4A,DPTRA,#0FHAR2,ADPTRA,DPTRA,#OFHORGMOVMOVMOVLOP:MOVXANLSWAPMOVINCMOVXANLADD
A,R2MOV
R0,AINC
R0INC
DPTRDJNZ
R7,LOPSJMP
$END3007H55H3006H02H3005H53H3004H01H3003H20H3002H01H3001H26H3000H00H13、
編程將內(nèi)部RAM從地址30H開始連續(xù)4個(gè)單元的單字節(jié)二進(jìn)制
數(shù)分別轉(zhuǎn)換成2字節(jié)的壓縮BCD碼(即00H~FFH轉(zhuǎn)換為0000H~
0255H,存放在外部RAM從地址3000H開始的連續(xù)8個(gè)單元中,OFFH33H99H32H78H31H1AH30H內(nèi)容
地址內(nèi)容地址BCD碼是每4位二進(jìn)制數(shù)表示一位十進(jìn)制數(shù).本例所要
求轉(zhuǎn)換的最大BCD碼為255,需要12位二進(jìn)制數(shù),超過了一個(gè)
字節(jié)<8位>,因此我們把高4位存放在30H的低4位,高4位清
零;低8位存放在31H中.轉(zhuǎn)換的方法是將A中二進(jìn)制數(shù)除以100、10,所得商即
為百、十位數(shù),余數(shù)為個(gè)位數(shù).0000001030H0101010131H設(shè)置源指針R0設(shè)置目的指針DPTR
設(shè)置計(jì)數(shù)器R7取源數(shù)據(jù)→AA除以100A>
目的單元目的指針+1B
中余數(shù)再除以10修改源指針R0修改目的指針DPTR過敏器R7-1=0
2A中商低4位互換A+B>AA
少
且
的
單
元開始結(jié)束NORG
0000H
INCROMOV
R0,#30H
INCDPTRMOV
DPTR,#3000H
DJNZ
R7,LOOPMOV
R7,#4
SJMP
$LOOP:MOV
A,RO
ENDMOV
B,#100DIVAB
;除法指令,A/B→商在A中,余數(shù)在B中MOVX
DPTR,A;把商<百位數(shù)>存在目的單元中INC
DPTRMOV
A.#10XCH
A,B
;余數(shù)交換到A中,B=10DIVAB
;A/B→
商<十位>在A
中,余數(shù)<個(gè)位>在B
中SWAP
;十位數(shù)移到高半字節(jié)ADD
A,B
;十位數(shù)和個(gè)位數(shù)組合在一起MOVX
DPTR,A14、
問題如下:在外部RAM有一串二進(jìn)制數(shù),現(xiàn)要對該數(shù)串進(jìn)行處理
,如何進(jìn)行處理由累加器A的內(nèi)容決定,具體如下:<A>=00:將該數(shù)據(jù)區(qū)清零;<A>=01:找出最大值,存放在內(nèi)部RAM30H單元;
數(shù),若轉(zhuǎn)有
碼1"
0,否則清零.
<A>=04:將該串?dāng)?shù)據(jù)從小到大排序。請編寫實(shí)現(xiàn)上述功能的主程序,具體功能用調(diào)用子程序?qū)崿F(xiàn).子
程序具體內(nèi)容不用編寫,只要用一條RET指令返回即可.解題思路:F;置BC字OAAH二進(jìn)制::0302AA1、
程序功能----散轉(zhuǎn)程序A+DPTR2、
程序結(jié)構(gòu)--多重分支JMPJMPA0:
LCALLQLSJMP$Al:LCALLMAXSJMP
$A2:
LCALLBCDSJMP
$A3:
LCALLCZSJMP
$A4:
LCALLPXSJMP
4QL:RET0000HSTART0030HB,AA,BDPTR,#TABA+DPTRA0A1A2A3A4ORGLJMPORGMOVRLA
ADD
MOVJMPLJMPLJMPLJMPLJMPLJMPSTART:TAB:解題思路:1、程序功能-----數(shù)據(jù)查找2、
程序結(jié)構(gòu)----循環(huán)結(jié)構(gòu)環(huán)3、
數(shù)據(jù)存放位置----內(nèi)部RAM15、
編程查找內(nèi)部RAM
的32H~41H單元中是否有
OAAH這個(gè)
數(shù)據(jù),若有這一數(shù)據(jù),則將將50H單元置為
OFFH,否則清50H單元
為
0
.CJNE
比較指DJNZ
控
制
循R0尋址開始設(shè)置源指針R0
設(shè)置計(jì)數(shù)器R7取源數(shù)據(jù)→A是0AAH
?N源數(shù)據(jù)指針+1數(shù)器R7-1-0#00H→50H結(jié)束#0FF→50HNMOV50H,#OFFHSJMP
OVERNEXT:INC
R0DJNZR7,LOOPMOV
50H,#00HOVER:SJMP
$END答案:不能原因:這是一條位操作指令ORGMOVMOVLOOP:MOVCLR50H可以用這條指令代替嗎?0000HR0,#32HR7,#16A,R0CJNEA,#OAAH,NEXT16、
已知單片機(jī)晶振為12MHz,
請?jiān)O(shè)計(jì)一個(gè)延時(shí)1s的子程序.解題思路:1、
程
序
功
能
-
-
延
時(shí)
軟件延時(shí)2、
程序結(jié)構(gòu)---多重循環(huán)結(jié)構(gòu)
DJNZ
控
制
循環(huán)3、
時(shí)鐘周期、機(jī)器周期和指令周期時(shí)鐘周期T時(shí)鐘是計(jì)算機(jī)基本時(shí)間單位,同晶振頻率有關(guān).題目給定fosc=12MHz,那么T時(shí)鐘=1/fosc=1/12MDELAY:MOV
R0,#100;延時(shí)1s的循環(huán)次數(shù)DEL2:MOVR1,#10;延時(shí)10ms
的循環(huán)次數(shù)DEL1:MOVR2,#250;
延
時(shí)
1ms
的
循
環(huán)
次
數(shù)DELO:NOPNOPDJNZ
R2,DELODJNZ
R1,DEL1DJNZRO,DEL2RET;1μs;
1μs;2
μs程序說明本例中,第二層循環(huán)和外循環(huán)都采用了簡化計(jì)算方法,編程
關(guān)鍵是延時(shí)1ms
的內(nèi)循環(huán)程序如何編制.首先確定循環(huán)程序段
的內(nèi)容如下:內(nèi)循環(huán)次數(shù)設(shè)為count,計(jì)算方法如下式:〔一次循環(huán)時(shí)間×count=1ms從而得到count=
1ms/<1μs+1μs+2
μs>=250NOPNOPDJNZ;1;1μs;2R2,DELOμsμs17、編程查找20H~4FH
單元中出現(xiàn)00H的次數(shù),并將查找結(jié)果
存
入
50
H
單元
.解題思路:1、
程序功能-----數(shù)據(jù)查找統(tǒng)計(jì)令2、程序結(jié)構(gòu)-----循環(huán)結(jié)構(gòu)環(huán)3、
數(shù)據(jù)存放位置
-
-
-
-
內(nèi)部RAM4、
使
用
寄
存
器
計(jì)
數(shù)CJNE
比較指DJNZ
控
制
循R0
尋址R2查找數(shù)據(jù)一般用CJNE
指令,但本例中查找的數(shù)據(jù)開始設(shè)置源指針R?初始化計(jì)數(shù)器
設(shè)置計(jì)數(shù)器R7取源數(shù)據(jù)
→A是
0
0H
?V計(jì)數(shù)器+1源數(shù)據(jù)指針+1過數(shù)器R7-1-0計(jì)數(shù)值
→
50H結(jié)束JNZINCNEXT:INCDJNZMOVSJMPENDNEXTR2R0R7,LOOP50H,R2$0000HRO,#20HR2,#00HR7,#48ORGMOVMOVMOVLOOP:MOV
A,RONN18、
內(nèi)部
RAM的30H
開始的區(qū)域中存放著10個(gè)單字節(jié)十進(jìn)制
數(shù),求其累加和,并將結(jié)果存入40H
和41H
單元.88H
99H
37H
21H80H79H
58H
26H
34H+11H533H39H38H37H36H35H34H33H32H31H30H地址88H99H37H21H80H79H58H26H34H11H內(nèi)容ORGMOVMOVMOV
MOVCLRLOOP:MOVADDCDAMOVCLR
ADDCDAMOVDJNZSJMPEND開始設(shè)置源指針R0初始化結(jié)果單元
設(shè)置計(jì)數(shù)器R7取源數(shù)據(jù)→A加結(jié)果低字節(jié)加結(jié)果高字節(jié)源數(shù)據(jù)指針+1數(shù)器R7-1-0結(jié)束0000HRO,#30H40H
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度殘障人士職業(yè)康復(fù)服務(wù)合同2篇
- 溫州職業(yè)技術(shù)學(xué)院《BM概論與實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度智能設(shè)備租賃服務(wù)與技術(shù)支持合同2篇
- 二零二五年度金融資產(chǎn)證券化股份質(zhì)押交易合同3篇
- 2025年度學(xué)校窗簾更換及節(jié)能環(huán)保合同3篇
- 個(gè)人財(cái)產(chǎn)質(zhì)押借款協(xié)議書(2024年修訂)版
- 個(gè)人房產(chǎn)抵押貸款協(xié)議范本(2024版)版B版
- 渭南師范學(xué)院《樂理視唱二》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版簡易自愿離婚合同書范例一
- 二零二五年度新能源汽車采購合同質(zhì)量監(jiān)控與配送管理細(xì)則3篇
- 《美麗中國是我家》 課件
- 全面依法治國
- GB/T 17215.304-2017交流電測量設(shè)備特殊要求第4部分:經(jīng)電子互感器接入的靜止式電能表
- 2023年最新的鄉(xiāng)鎮(zhèn)街道班子成員民主生活互相批評(píng)意見2023
- 商務(wù)溝通第二版第6章管理溝通
- 培訓(xùn)課件-核電質(zhì)保要求
- 高考英語真題100個(gè)長難句(語法填空)
- 過敏原檢測方法分析
- 室外給水排水和燃?xì)鉄崃こ炭拐鹪O(shè)計(jì)規(guī)范
- 【個(gè)人獨(dú)資】企業(yè)有限公司章程(模板)
- 外觀GRR考核表
評(píng)論
0/150
提交評(píng)論