版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
51匯編語言程序設(shè)計(jì)流水燈程序
ORG0
JMP
MAIN
ORG 0030HMAIN:
MOV A,#0FEHLOOP:
MOV P1,A
RLA
CALL
DELAY
JMP
LOOP
DELAY: ;延時(shí)子程序
MOV R0,#0FFH MOV R1,#0FFHDLY_LP: NOP NOP DJNZ R0,DLY_LP MOV R0,#0FFH DJNZ R1,DLY_LP RET
END數(shù)碼管流水程序A直接賦值 org0 jmpmain org0030hmain: movp2,#00h movp0,#3fh callDELAY movp2,#04h movp0,#06h callDELAY
jmpmain;延時(shí)子程序DELAY:
MOV R0,#0FFH MOV R1,#0FFHDLY_LP: NOP NOP DJNZ R0,DLY_LP MOV R0,#0FFH DJNZ R1,DLY_LP RET
end數(shù)碼管流水程序B查表 org0 jmpmain org0030hmain: movdptr,#DIS_CODEloop: mova,#00h movp2,#00h movca,@a+dptr movp0,a callDELAY mova,#01h movp2,#04h movca,@a+dptr movp0,a callDELAY
jmploopDIS_CODE:;共陰數(shù)碼管段碼表DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHDELAY: ;延時(shí)子程序
MOV R0,#0FFH MOV R1,#0FFHDLY_LP: NOP NOP DJNZ R0,DLY_LP MOV R0,#0FFH DJNZ R1,DLY_LP RET
end數(shù)碼管流水程序C子函數(shù)調(diào)用 org0 jmpmain org0030hmain: movr3,#0loop:
callBIT_IN
callDAT_IN incr3 callDELAY cjner3,#8,loop1 movr3,#0loop1: jmploopBIT_IN: movdptr,#BIT_CODE mova,r3 movca,@a+dptr movp2,a retDAT_IN: movdptr,#DAT_CODE mova,r3 movca,@a+dptr movp0,a retDAT_CODE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHBIT_CODE: DB 00H,04H,08H,0CH,10H,14H,18H,1CH30秒倒計(jì)時(shí)org0main: movr3,#30a1: movr4,#50tt1: movdptr,#tab mova,r3 movb,#10
divab
movca,@a+dptr movp0,a setbp2.5 clrp2.6 clrp2.7 lcalldly_10ms mova,bmovca,@a+dptrmovp0,aclrp2.5clrp2.6clrp2.7lcalldly_10msdjnzr4,tt1cplp1.0djnzr3,a1jmpmaintab:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90hdly_10ms: MOVR5,#5d1: movr6,#4D2: MOVR7,#248 DJNZR7,$ DJNZR6,D2 DJNZR5,D1 RETend【例4-4】有一巡回檢測(cè)報(bào)警裝置,需對(duì)16路(x)輸入進(jìn)行檢測(cè),每路有一個(gè)最大允許值(y),為雙字節(jié)數(shù)。需根據(jù)測(cè)量的路數(shù)(x),查表找出對(duì)應(yīng)該路的最大允許值(y),看輸入值是否大于最大允許值,如果大于就報(bào)警。取路數(shù)為x(0≤x≤15),y為最大允許值,放在表格中。設(shè)進(jìn)入查表程序前,假設(shè)路數(shù)x已放于R2中,查表后該路的最大允許值y放于R3R4中。查表的程序如下:【例4-4】
TB3: MOVA,R2 ADD A,R2 ;(R2)*2→(A) MOVR3,A ;保存指針
ADD A,#6 ;加補(bǔ)償偏移量
MOVCA,@A+PC ;查第一字節(jié) XCH A,R3 ;1 ADD A,#3 ;2
MOVCA,@A+PC ;1,查第二字節(jié) MOV R4,A ;1 RET ;1TAB3: DW 1520,3721,42645,7580 ;DW05F0H,0E89H,A695H,1D9CH DW 3483,32657,883,9943 DW 10000,40511,6758,8931 DW 4468,5871,13284,27808對(duì)于雙字節(jié)數(shù)據(jù)來說,第n個(gè)數(shù)據(jù)的起始地址=表首地址+2n(n從0開始)絕對(duì)偏移量=補(bǔ)償偏移量+相對(duì)偏移量地址數(shù)據(jù)數(shù)據(jù)00050高01F00低020E1高03891低04A62高05952低061D3高079C3低【例4-5】【例4-5】以AT89S51為核心的溫度控制器,溫度傳感器輸出的電壓與溫度為非線性關(guān)系,傳感器輸出的電壓已由A/D轉(zhuǎn)換為10位二進(jìn)制數(shù)。測(cè)得的不同溫度下的電壓值數(shù)據(jù)構(gòu)成一個(gè)表,表中溫度值為y(雙字節(jié)無符號(hào)數(shù)),x(雙字節(jié)無符號(hào)數(shù))為電壓值數(shù)據(jù)。設(shè)測(cè)得電壓值x放入R2R3中,根據(jù)電壓值x,查找對(duì)應(yīng)的溫度值y,仍放入R2R3中。參考程序:【例4-5】LTB2:MOV DPTR,#TAB2 MOV A,R3 ;R3電壓值低8位 CLR C RLC A ;A值乘以2 MOV R3,A XCH A,R2;交換后A中電壓高8位,R2低8位*2 RLC A ;A值乘以2,即高8位*2 XCH R2,A;交換后A電壓低8位*2,R2高8位*2
ADD A,DPL;(R2R3)+(DPTR)→(DPTR) MOV DPL,A MOV A,DPH ADDCA,R2 MOV DPH,A CLR A MOVCA,@A+DPTR;查第一字節(jié) MOV R2,A;第一字節(jié)存入R2中 CLR A INC DPTR MOVCA,@A+DPTR;查第二字節(jié) MOV R3,A ;第二字節(jié)存入R3中 RETTAB2:DW …,…,…;溫度值表【例4-5】【例4-6】從50個(gè)字節(jié)的無序表中查找一個(gè)關(guān)鍵字“xxH”。ORG 1000HMOV 30H,#xxH ;關(guān)鍵字xxH送30H單元MOV R1,#50 ;查找次數(shù)送R1MOV A,#14H ;20D修正值送AMOVDPTR,#TAB4 ;表首地址送DPTR【例4-6】【例4-6】LOOP: PUSHAcc MOVCA,@A+PC ;查表結(jié)果送A CJNEA,30H,LOOP1;3(30H)不等于關(guān)鍵字則轉(zhuǎn)LOOP1 MOVR2,DPH ;2查到關(guān)鍵字,把地址送R2,R3 MOVR3,DPL ;2
DONE: RET ;1LOOP1:POP Acc ;2修正值彈出 INC A ;1A+1→A INC DPTR ;1修改數(shù)據(jù)指針DPTR DJNZR1,LOOP ;2R1≠0,未查完,繼續(xù)查找 MOV R2,#00H ;2R1=0,R2和R3清0 MOV R3,#00H ;2表中50個(gè)數(shù)已查完 AJMP DONE ;2從子程序返回
TAB4: DB …,…,… ;50個(gè)無序數(shù)據(jù)表【例4-7】片內(nèi)RAM中存放一批數(shù)據(jù),查找出最大值并存放于首地址中。設(shè)R0中存放首地址,R2中存放字節(jié)數(shù),程序框圖見圖4-1。程序如下: MOV R2,#n ;n為要比較的數(shù)據(jù)字節(jié)數(shù)
MOV A,R0
;存首地址指針
MOV R1,A DEC R2 MOV A,@R1LOOP: MOV R3,A DEC R1 CLR C SUBBA,@R1 ;兩個(gè)數(shù)比較 JNC LOOP1 ;C=0,A中數(shù)大,跳LOOP1 MOVA,@R1 ;C=1,則大數(shù)送A SJMPLOOP2LOOP1:MOV A,R3LOOP2:DJNZ R2,LOOP ;是否比較結(jié)束? MOV @R0,A ;存最大數(shù)
RET【例4-7】【例4-8】【例4-8】一批單字節(jié)無符號(hào)數(shù),以R0為首地址指針,R2中為字節(jié)數(shù),將這批數(shù)進(jìn)行升序排列(冒泡法)。程序如下:SORT: MOV A,R0 MOVR1,A MOVA,R2 ;字節(jié)數(shù)送入R5,字節(jié)數(shù) MOVR5,A CLR F0 ;互換標(biāo)志位F0清0 DEC R5 MOVA,@R1
LOOP: MOVR3,A INC R1 CLR C MOVA,@R1 ;比較大小【例4-8】 SUBBA,R3 JNC LOOP1 SETBF0 ;互換標(biāo)志位F0置1 MOVA,R3;
XCH A,@R1 ;兩個(gè)數(shù)互換 DEC R1 XCH A,@R1 INC R1LOOP1: MOVA,@R1 DJNZR5,LOOP JB F0,SORT RET【例4-9】【例4-9】
求單字節(jié)有符號(hào)數(shù)的二進(jìn)制補(bǔ)碼(單分支)CMPT:
JNBAcc.7,RETURN;(A)>0,不需轉(zhuǎn)換 MOV C,Acc.7 ;符號(hào)位保存 CPLA ;(A)求反,加1 ADD A,#1 MOVAcc.7,C ;符號(hào)位存在A的最高位RETURN: RET【例4-10】【例4-10】
求符號(hào)函數(shù)的值。符號(hào)函數(shù)定義如下(多分支
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 某著名企業(yè)山東臨工營(yíng)銷策略和銷售管理項(xiàng)目建議書004
- 《GBT 14283-2008點(diǎn)焊機(jī)器人 通 用技術(shù)條件》專題研究報(bào)告
- 《GBT 5121.7-2008銅及銅合金化學(xué)分析方法 第7部分:砷含量的測(cè)定》專題研究報(bào)告
- 2026版咨詢《決策》章節(jié)習(xí)題 第六章建設(shè)方案與比選
- 道路交通安全心理學(xué)課件
- 2026年九年級(jí)語文上冊(cè)期末試題(附答案)
- 2025-2026年蘇課新版八年級(jí)英語上冊(cè)期末考試題庫(附含答案)
- 2026年福建省公務(wù)員試題及答案
- 2026年公務(wù)員時(shí)政考試題庫試題解析及答案
- 迪士尼公主介紹課件教案
- 2025年鄭州工業(yè)應(yīng)用技術(shù)學(xué)院馬克思主義基本原理概論期末考試模擬試卷
- 2026年七年級(jí)歷史上冊(cè)期末考試試卷及答案(共六套)
- 2025年六年級(jí)上冊(cè)道德與法治期末測(cè)試卷附答案(完整版)
- 附件二;吊斗安全計(jì)算書2.16
- 2025年全載錄丨Xsignal 全球AI應(yīng)用行業(yè)年度報(bào)告-
- 雨課堂在線學(xué)堂《西方哲學(xué)-從古希臘哲學(xué)到晚近歐陸哲學(xué)》單元考核測(cè)試答案
- IPC7711C7721C-2017(CN)電子組件的返工修改和維修(完整版)
- 學(xué)堂在線 雨課堂 學(xué)堂云 研究生學(xué)術(shù)與職業(yè)素養(yǎng)講座 章節(jié)測(cè)試答案
- 離婚協(xié)議書下載電子版完整離婚協(xié)議書下載三篇
- 磨床設(shè)備點(diǎn)檢表
- LS/T 8008-2010糧油倉庫工程驗(yàn)收規(guī)程
評(píng)論
0/150
提交評(píng)論