《單片機(jī)原理》期末考試題知識(shí)點(diǎn)
《《單片機(jī)原理》期末考試題知識(shí)點(diǎn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《《單片機(jī)原理》期末考試題知識(shí)點(diǎn)(14頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、MCS-51單片機(jī)軟硬件的基本概念練習(xí)題 一、 選擇題(第三章) 1. 在單片機(jī)CPU中,PSW中的Cy、AC、OV和P是反映( )參與運(yùn)算的狀態(tài)。 (A) DPTR (B) B (C) A (D) SP 2. 在CPU內(nèi)部,反映程序運(yùn)行狀態(tài)或反映運(yùn)算結(jié)果的特殊功能寄存器是( ) (A) PC (B) PSW (C) A (D) SP 3. 指令“CJNE A, #08H, LOOP”影響PSW的( )位 (A) AC (B) OV (C) Cy (D) RS1 4. 下列指令中正確的是( ) (A) MOV P2.1, A (B) JBC
2、 TF0, L1 (C) MOVX B, @DPTR (D) MOV A, @R3 5. SJMP跳轉(zhuǎn)范圍是( ) (A) 64KB (B) 容量為2KB的頁內(nèi)轉(zhuǎn)移 (C) 2KB (D) -128~+127 6. LJMP跳轉(zhuǎn)范圍是( ) (A) 64KB (B) 容量為2KB的頁內(nèi)轉(zhuǎn)移 (C) 2KB (D) -128~+127 7. 關(guān)于AJMP指令的正確描述是( )。 (A) AJMP的尋址范圍是2KB。 (B) 只有子程序程度不超過2KB ,在子程序內(nèi)容AJMP都可以正確使用。 (C) AJMP當(dāng)前PC值到目標(biāo)地址不超過2KB都可以正確轉(zhuǎn)
3、移。 (D) AJMP當(dāng)前PC值的高5位與目標(biāo)地址的高5位必須相同才能正確轉(zhuǎn)移。 8. SJMP $指令的作用是( ) (A) 等待中斷 (B) 死循環(huán) (C) 和暫停指令作用一樣 (D) 結(jié)束程序執(zhí)行 9. 條件轉(zhuǎn)移指令的范圍是( ) (A) 64KB (B) 容量為2KB的頁內(nèi)轉(zhuǎn)移 (C) 2KB (D) -128~+127 10. MCS-51單片機(jī)執(zhí)行時(shí)間最長(zhǎng)一條指令需要( )機(jī)器周期。 (A) 1 (B) 4 (C) 2 (D) 8 11. 下列指令中正確的是( ) (A) CJNE A,R0,NEXT (B) CJNE A,@R0,N
4、EXT (C) CJNE A,#40,NEXT (D) CJNE R2,30H,NEXT 12. 下列指令中正確的是( ) (A) MOV R1,R3 (B) DEC DPTR (C) MUL A,30H (D) MOV TL0,R7 13. 下列指令中錯(cuò)誤的是( ) (A) CLR A (B) (C) CLR R7 (D) CLR C 14. 下列指令中不能導(dǎo)致內(nèi)部RAM 30H單元清零的是( ) (A) CLR 30H (B) MOV 30H, #0 (C) MOV @R1, #0; (R1)=30H (D) ANL 30H,
5、#0 15. 在MCS-51系列單片機(jī)中,對(duì)后128字節(jié)的內(nèi)部RAM可用的尋址方式是( )。 (A) 寄存器尋址 (B) 直接尋址 (C) 立即尋址 (D) 寄存器間接尋址 16. 下列指令中不能導(dǎo)致內(nèi)部RAM 30H單元所有位置1的是( ) (A) SETB 30H (B) MOV 30H, #0FFH (C) MOV @R1, #0FFH; (R1)=30H (D) ORL 30H, #0FFH 17. MCS-51單片機(jī)擴(kuò)展I/O口與( )統(tǒng)一編址。 (A) I/O口獨(dú)立編址 (B) 與程序存儲(chǔ)器統(tǒng)一編址 (C) 與外部數(shù)據(jù)存儲(chǔ)器統(tǒng)一編址 (D
6、) 與內(nèi)部數(shù)據(jù)存儲(chǔ)器統(tǒng)一編址 18. 當(dāng)ALE信號(hào)有效時(shí),P0口輸出的是( )。 (A) 低8位地址 (B) 累加器的8位數(shù)據(jù) (C) PC的16位值 (D) DPTR的16為值 19. 當(dāng)WR信號(hào)有效時(shí),P0口傳輸?shù)氖菍懙剑? )的信息。 (A) 外部程序存儲(chǔ)器 (B) 內(nèi)部程序存儲(chǔ)器 (C) 外部數(shù)據(jù)存儲(chǔ)器 (D) 內(nèi)部數(shù)據(jù)存儲(chǔ)器 20. 正確的基址+變址間接尋址指令是( )。 (A) MOV A,@A+DPTR (B) MOVX A,@A+PC (C) SJMP @A+DPTR (D) JMP @A+DPTR 21. 會(huì)導(dǎo)致PC值改變的指令是( )。
7、 (A) MOVC A,@A+DPTR (B) MOVC A,@A+PC (C) JMP @A+PC (D) JMP @A+DPTR 22. 8051單片機(jī)中,對(duì)特殊功能寄存器的尋址只能使用( )尋址方式。 (A) 寄存器尋址 (B) 直接尋址 (C) 立即尋址 (D) 寄存器間接尋址 23. 當(dāng)PSEN信號(hào)有效時(shí),P0口讀進(jìn)的是來自于( )的信息。 (A) 程序存儲(chǔ)器 (B) 外部數(shù)據(jù)存儲(chǔ)器 (C) 內(nèi)部數(shù)據(jù)存儲(chǔ)器 (D) I/O口 24. 當(dāng)RD信號(hào)有效時(shí),P0口傳輸?shù)氖莵碜杂冢? )的信息。 (A) 外部程序存儲(chǔ)器 (B) 內(nèi)部程序存儲(chǔ)器 (C)
8、外部數(shù)據(jù)存儲(chǔ)器 (D) 內(nèi)部數(shù)據(jù)存儲(chǔ)器 25. 當(dāng)晶振頻率為12MHz,把T1配置成定時(shí)器時(shí),它的最短定時(shí)為( )。 (A) 1us (B) 256us (C) 8192us (D) 65536us 26. 當(dāng)中斷被響應(yīng)后,在下面的中斷請(qǐng)求標(biāo)志中不需要軟件復(fù)位的是()。 (A) TI (B) RI (C) IE1 (D) TF1 27. 要進(jìn)行多機(jī)通訊必須將( )置1。 (A) TB8 (B) RB8 (C) SM2 (D) REN 28. 下列提法中正確的是( ) (A) T0、T1都可作為串行通訊口的波特率發(fā)生器。 (B) T0、T1的工作模式都有
9、4種。 (C) TR0、TR1可以分別控制T0、T1的計(jì)數(shù)起停。 (D) T0、T1對(duì)相應(yīng)輸入引腳上的脈沖進(jìn)行計(jì)數(shù)時(shí)就是計(jì)數(shù)器。 29. 把T1配置成模式1、定時(shí)器方式,為實(shí)現(xiàn)最長(zhǎng)定時(shí),它的時(shí)間常數(shù)初值為( )。 (A) 0 (B) 1 (C) 65535 (D) 65536 30. 當(dāng)中斷被響應(yīng)后,在下面的中斷請(qǐng)求標(biāo)志中必須要由發(fā)出中斷請(qǐng)求設(shè)備復(fù)位的是( )。 (A) TI (B) RI (C) IE1 (D) TF1 二、簡(jiǎn)述題 1. 簡(jiǎn)述內(nèi)部RAM功能分區(qū),說明各部分的使用特點(diǎn)。(習(xí)題2-6) 2. 如何選擇MCS-51單片機(jī)的當(dāng)前工作寄存器組?(習(xí)
10、題2-7) 3. 堆棧有哪些功能?堆棧指針SP的作用是什么?在具體應(yīng)用設(shè)計(jì)時(shí),為什么要對(duì)SP重新賦值?(習(xí)題2-8) 4. 什么是指令周期、機(jī)器周期、時(shí)鐘周期?如何計(jì)算機(jī)器周期?晶振頻率為12M時(shí),計(jì)算時(shí)鐘周期、機(jī)器周期。(習(xí)題2-9) 5. 簡(jiǎn)述MCS-51單片機(jī)的位尋址空間。(習(xí)題2-11) 1. DA A指令的作用是什么?它跟在哪些指令后面使用?(習(xí)題3-20) 6. “LJMP PROG”和“LCALL PROG”的區(qū)別是什么?(習(xí)題3-21) 7. MCS-51單片機(jī)提供了哪幾種中斷源?在中斷管理上有什么特點(diǎn)?各個(gè)中斷源優(yōu)先級(jí)如何確定? (習(xí)題4-1) 8. MCS
11、-51單片機(jī)響應(yīng)中斷的條件是什么?CPU響應(yīng)中斷時(shí),不同的中斷源的中斷處理程序的入口地址各是多少? (習(xí)題4-2) 9. 簡(jiǎn)述MCS-51單片機(jī)的中斷響應(yīng)過程。(習(xí)題4-3) 10. 三、掌握下列每條指令中出現(xiàn)的操作數(shù)的尋址方式 1. MOVX A,@DPTR 2. JB 0,DONE 3. XCHD A, @R0 4. DJNZ 30H, DO 5. MOVC A,@A+PC 6. MOV A,@R0 7. MOV P1,#0F0H 8. SJMP NEXT 9. SJMP $ 10. PUSH DPH 11. POP ACC 12. MOVC A,
12、@A+DPTR 13. CJNE @R0,#0DH,GO4 14. ANL 40H, #40H 15. RRC A 16. 四、程序設(shè)計(jì)題 1. 求16位補(bǔ)碼數(shù)的絕對(duì)值,補(bǔ)碼存放在data和data+1單元中(低字節(jié)在前),并將結(jié)果存放在原單元。(習(xí)題7-3) 2. 已知在單片機(jī)內(nèi)部RAM中,從20H單元開始存儲(chǔ)50個(gè)8位有符號(hào)數(shù)據(jù),請(qǐng)編寫一個(gè)程序統(tǒng)計(jì)其中正數(shù)的個(gè)數(shù),并將統(tǒng)計(jì)結(jié)果存放在70H單元。(習(xí)題7-6) 3. 從內(nèi)部RAM的20H單元開始存一批帶符號(hào)的8為二進(jìn)制數(shù)據(jù),數(shù)據(jù)長(zhǎng)度存放在1FH單元中,請(qǐng)統(tǒng)計(jì)其中大于0、小于0、等于0的數(shù)據(jù)個(gè)數(shù),并把統(tǒng)計(jì)結(jié)果分別存放在ONE
13、、TWO、THREE單元。(習(xí)題7-7) 4. 某一應(yīng)用系統(tǒng)數(shù)據(jù)緩沖區(qū)開辟在外部RAM中,用于存放單字節(jié)數(shù)據(jù),緩沖區(qū)從BUFFER單元開始,長(zhǎng)度100個(gè)單元,為了某種統(tǒng)計(jì)需要,要求把緩沖區(qū)的非負(fù)數(shù)存儲(chǔ)在單元地址為BLOCK1開始的區(qū)域,其余數(shù)據(jù)存儲(chǔ)在單元地址BLOCK2開始的區(qū)域,這兩個(gè)緩沖區(qū)也設(shè)置在外部RAM中。(習(xí)題7-14) 5. 用移位計(jì)算y=10x+100,其中x為雙字節(jié)無符號(hào)二進(jìn)制數(shù),運(yùn)算數(shù)據(jù)的存放地址自定。(作業(yè)題) 6. 計(jì)算y=x/16,x為16位無符號(hào)二進(jìn)制數(shù),y位三字節(jié)數(shù)據(jù)(2字節(jié)存放商的整數(shù)部分、1字節(jié)存放商的小數(shù)部分),運(yùn)算數(shù)據(jù)的存放地址自定。(作業(yè)題) 五、
14、簡(jiǎn)單應(yīng)用設(shè)計(jì) 1. 每隔1s讀一次P1.0,如果所讀的狀態(tài)為1,內(nèi)部RAM的11H單元加1,如果所讀的狀態(tài)為0,則內(nèi)部RAM的10H單元加1。假定單片機(jī)的晶振頻率為12MHz,請(qǐng)用軟硬件結(jié)合的方法定時(shí)。(習(xí)題5-5) 2. 航標(biāo)燈控制器如下圖所示,要求當(dāng)黑夜降臨時(shí),航標(biāo)燈自動(dòng)啟動(dòng),不停地亮2s,滅2s,以指示航向,當(dāng)白天來臨時(shí),航標(biāo)燈自動(dòng)熄滅,不發(fā)光。采用外部事件中斷和定時(shí)器中斷來實(shí)現(xiàn)。說明系統(tǒng)工作原理并編寫相關(guān)程序。(習(xí)題5-6) 3. 一個(gè)簡(jiǎn)單計(jì)數(shù)器的電路如下圖所示,要求每按一次S健,計(jì)數(shù)器計(jì)數(shù)一次,計(jì)數(shù)值送P1口顯示,采用單只數(shù)碼管顯示,計(jì)數(shù)16
15、次后從0開始。(習(xí)題9-3) 4. 采用8051和DAC0832設(shè)計(jì)一個(gè)簡(jiǎn)單的應(yīng)用系統(tǒng),輸出周期為5.12s的三角波(晶振頻率12MHz),DAC0832口地址為7FFFH。(習(xí)題9-10) Vref(+) Vref(-) ANIN GND VCC DAT /CS CLK TLC549 VCC GND Vref 8051 模擬量 5. 在檢測(cè)系統(tǒng)中,通常采用平均值濾波的方法來消除檢測(cè)數(shù)據(jù)的隨機(jī)干擾,即連續(xù)
16、采集多次,取平均值作為測(cè)量值。下圖為8051單片機(jī)與SPI串行接口的A/D轉(zhuǎn)換器TLC549的接口示意圖,請(qǐng)編寫一程序?qū)斎肽M量采樣8次,把它們的平均值存放在30H單元。(實(shí)驗(yàn)+習(xí)題9-6) Vref(+) Vref(-) ANIN GND VCC DAT /CS CLK TLC549 VCC GND Vref 8051 模擬量 6. 下圖為8051單片機(jī)與SPI串行A/D轉(zhuǎn)換器TLC549的接口示意圖,編寫一程序每隔5
17、0ms對(duì)輸入模擬量采樣一次,并把采樣值存放在內(nèi)部RAM 40H單元中,系統(tǒng)晶振頻率12MHz。(實(shí)驗(yàn)+習(xí)題9-7) ;1S TIMING ;T0 interrupt once every 50ms ;1s=20*50ms ;buffer T0CNT counts the T0 interrupt, when T0CNT=20, 1s is gone ;50ms time constant(T0 mode 1,timer, no gate,@12MHz) ;65536-50ms/1us=15536=3CB0H T0CNT EQU
18、 30H COUNTER0 EQU 10H COUNTER1 EQU 11H ORG 0 LJMP START ORG 000BH LJMP T0INT_ISR ORG 0020H START: MOV SP,#6FH CLR EA MOV TMOD,#11H MOV TH0,#3CH MOV TL0,#0B0H MOV T0CNT,#20 MOV COUNTER0,#0 MOV COUNTER1,#0 SETB ET0 SETB TR0 SETB EA SJMP $
19、 T0INT_ISR: MOV TH0,#3CH MOV TL0,#0B0H DJNZ T0CNT,GO MOV T0CNT,#20 JB P1.0,DO INC COUNTER0 SJMP GO DO: INC COUNTER1 GO: RETI END ;1S TIMING ;T0 interrupt once every 50ms ;1s=20*50ms ;buffer T0CNT counts the T0 interrupt, when T0CNT=20, 1s is gone ;5
20、0ms time constant(T0 mode 1,timer, no gate,@12MHz) ;65536-50ms/1us=15536=3CB0H T0CNT EQU 30H COUNTER0 EQU 10H COUNTER1 EQU 11H ORG 0 LJMP START ORG 000BH LJMP T0INT_ISR ORG 0020H START: MOV SP,#6FH CLR EA MOV TMOD,#11H MOV TH0,#3CH MOV TL0,#0B0H MOV T0CNT,
21、#20 MOV COUNTER0,#0 MOV COUNTER1,#0 SETB ET0 SETB TR0 SETB EA SJMP $ T0INT_ISR: MOV TH0,#3CH MOV TL0,#0B0H DJNZ T0CNT,GO MOV T0CNT,#20 JB P1.0,DO INC COUNTER0 SJMP GO DO: INC COUNTER1 GO: RETI END TMPCNT EQU 30H ORG 0 LJ
22、MP MAIN ORG 0013H LJMP INT1_ISR ORG 0020H MAIN: MOV SP,#6FH CLR EA MOV TMPCNT,#0 LCALL DISPLAY SETB EX1 SETB IT1 SETB EA SJMP $ INT1_ISR: LCALL D10MS JB P3.3,DONE INC TMPCNT MOV A,TMPCNT CJNE A,#10H,CHK CHK: JC GO MOV TMPCNT,#0 GO: LCAL
23、L DISPLAY DONE: RETI D10MS: MOV R7,#0 ;DELAY ABOUT 10MS @12MHZ MOV R6,#20 DELAY: DJNZ R7,$ DJNZ R6,DELAY RET DISPLAY:MOV A,TMPCNT ADD A,#3 MOVC A,@A+PC MOV P1,A RETI SEGTAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H ; '0', '1', '2', '3', '4', '5', '6', '
24、7' DB 80H, 90H, 0C8H, 83H, 0C6H, 0A1H, 86H, 8CH ;'8', '9', 'A', 'B', 'C', 'D', 'E', 'F' END ;DAC0832為8位D/A輸入的數(shù)字量范圍:00H~FFH, 也就是有256種輸出電壓 ;讓DAC0832的輸入數(shù)字量先從00H開始到FFH,再從FFH開始到00H變化,數(shù)字量一次只只變化1,共有512種變化 ;每次變化的時(shí)間間隔10ms就可以在DAC0832的模擬輸出端形成三角波. ;用定時(shí)器T0,每10ms中斷一次,每次中斷就對(duì)DAC0832進(jìn)行一次輸出 ;模式
25、1,定時(shí)器方式,無門控,時(shí)間常數(shù):65536-10ms/1us=55536=D8F0H DAC0832 EQU 7FFFH TMP_TRI EQU 30H ORG 0 LJMP MAIN ORG 000BH LJMP T0_INT ORG 0020H MAIN: MOV SP,#6FH CLR EA MOV TMOD,#11H MOV TH0,#0D8H MOV TL0,#0F0H MOV DPTR,#DAC0832 MOV TMP_TRI,#0 MOV A,TMP_TRI ; MOVX
26、@DPTR,A MOV P1,A CLR OUTFLAG CLR STATUS SETB ET0 SETB TR0 SETB EA CHK: JBC OUTFLAG,OUT SJMP CHK OUT: JB STATUS,OUT1 MOV A,TMP_TRI ; MOVX @DPTR,A MOV P1,A INC A MOV TMP_TRI,A CJNE A,#0,CHK MOV TMP_TRI,#0FFH SETB STATUS SJMP CHK OUT1: MOV A,TM
27、P_TRI
; MOVX @DPTR,A
MOV P1,A
DEC A
MOV TMP_TRI,A
CJNE A,#0FFH,CHK
CLR STATUS
MOV TMP_TRI,#0
SJMP CHK
T0_INT: MOV TH0,#0D8H
MOV TL0,#0F0H
SETB OUTFLAG
RETI
END
#include
28、ar //定義TLC549串行總線操作端口 sbit CLK=P1^0; sbit DAT=P1^1; sbit CS=P1^2; uchar bdata ADCdata; sbit ADbit=ADCdata^0; uchar AD_DATA _at_ 0x30; //定義A/D轉(zhuǎn)換數(shù)據(jù)變量 /*************************************************** **函數(shù)名稱: TLC549ADC() **函數(shù)功能: 讀取上一次A/D轉(zhuǎn)換的數(shù)據(jù),啟動(dòng)下一次A/D轉(zhuǎn)換 *************************
29、***************************/ uchar TLC549ADC(void) { uchar i; CLK=0; DAT=1; CS=0; for(i=0;i<8;i++) { CLK=1; _nop_(); _nop_(); ADCdata<<=1; ADbit=DAT; CLK=0; _nop_(); } return (ADCdata); } void main() { uchar i,TC; unsigned int tmpData; TLC54
30、9ADC(); //啟動(dòng)一次A/D轉(zhuǎn)換
tmpData=0;
for(i=0;i<8;i++)
{ TC=10; //delay more than 17uS
while(--TC);
tmpData+=TLC549ADC();
}
AD_DATA=tmpData>>3;
while(1);
}
#include
31、C(void); //定義TLC549串行總線操作端口 sbit CLK=P1^0; sbit DAT=P1^1; sbit CS=P1^2; uchar bdata ADCdata; sbit ADbit=ADCdata^0; uchar AD_DATA _at_ 0x40; //定義A/D轉(zhuǎn)換數(shù)據(jù)變量 void main() { TMOD=0x11; //T0 mode 1, timer, no gate TH0=0x3C; //50ms time constant @12MHz TL0=0xB0; ET0=1;
32、 TR0=1; EA=1; while(1); } void T0_isr(void) interrupt 1 { TH0=0x3C; TL0=0xB0; TLC549ADC(); //啟動(dòng)一次A/D轉(zhuǎn)換 { uchar TC=10; //delay more than 17uS while(--TC); AD_DATA=TLC549ADC(); } } /*************************************************** **函數(shù)名稱: TLC549ADC() **函
33、數(shù)功能: 讀取上一次A/D轉(zhuǎn)換的數(shù)據(jù),啟動(dòng)下一次A/D轉(zhuǎn)換 ****************************************************/ uchar TLC549ADC(void) { uchar i; CLK=0; DAT=1; CS=0; for(i=0;i<8;i++) { CLK=1; _nop_(); _nop_(); ADCdata<<=1; ADbit=DAT; CLK=0; _nop_(); } return (ADCdata); } BUF EQU 3
34、0H ;TWO BYTS, LOW BYT AHEAD ORG 0 MOV A,BUF+1 JNB ACC.7,DONE CPL A MOV BUF+1,A MOV A,BUF+0 CPL A ADD A,#1 MOV BUF+0,A CLR A ADDC A,BUF+1 MOV BUF+1,A DONE: SJMP $ END BUF_ADDR EQU 20H LENGTH EQU 50 POSITIVE EQU 70H ORG 0 MOV R7,#LENGTH MOV R0,#BUF_ADDR
35、 MOV POSITIVE,#0 LOOP: MOV A,@R0 JB ACC.7,DO JZ DO INC POSITIVE DO: INC R0 DJNZ R7,LOOP SJMP $ END LEN EQU 1FH BUF EQU 20H ONE EQU 60H ;POSITIVE COUNTER TWO EQU 61H ;NEGATIVE COUNTER THREE EQU 62H ;ZERO COUNTER ORG 0 MOV ONE,#0 MOV TWO,#0 MOV
36、 THREE,#0 MOV R0,#BUF MOV R7,LEN DONE: MOV A,@R0 JB ACC.7,NEGATIVE JNZ POSITIVE INC THREE SJMP DO POSITIVE: INC ONE SJMP DO NEGATIVE: INC TWO DO: INC R0 DJNZ R7,DONE SJMP $ END BUFFER EQU 2000H BLOCK1 EQU 3000H ;POSITIVE NUMBER AND ZERO BLOCK
37、2 EQU 3080H ;NEGATIVE NUMBER LENGTH EQU 100 ORG 0 MOV P2,#HIGH(BLOCK1) MOV R0,#LOW(BLOCK1) ;R0 POSITIVE & ZERO POINTER MOV R1,#LOW(BLOCK2) ;NEGATIVE POINTER MOV DPTR,#BUFFER MOV R7,#LENGTH LOOP: MOVX A,@DPTR JB ACC.7,NEGATIVE MOVX @R0,A INC R0 SJMP DO N
38、EGATIVE: MOVX @R1,A INC R1 DO: INC DPTR DJNZ R7,LOOP SJMP $ END X EQU 30H ;TWO BYTS, LOW AHEAD Y EQU 32H ;TREEE BYTS, LOW AHEAD TMP EQU 40H ;3 BYUTS ORG 0 MOV TMP+0,X+0 MOV TMP+1,X+1 MOV TMP+2,#0 MOV R0,#TMP LCALL SHIFT_LEFT MOV Y+0,TMP+0 MOV Y
39、+1,TMP+1 MOV Y+2,TMP+2 MOV R0,#TMP LCALL SHIFT_LEFT MOV R0,#TMP LCALL SHIFT_LEFT MOV R6,#3 MOV R0,#Y MOV R1,#TMP CLR C DO: MOV A,@R0 ADDC A,@R1 MOV @R0,A INC R0 INC R1 DJNZ R6,DO MOV A,Y+0 ADD A,#100 MOV Y+0,A MOV A,Y+1 ADDC A,#0 MOV Y+1,A MOV A,Y+2
40、 ADDC A,#0 MOV Y+2,A SJMP $ SHIFT_LEFT: ;3 BYTS SHIFT-LEFT ONCE MOV R6,#3 ;INPUT: 3 BYTS(LOW AHEAD) START ADDRESS IN R0 CLR C ;OUTPUT: RESULT(3 BYTS LOW AHEAD) IN ORIGINAL UNITS S1: MOV A,@R0 RLC A MOV @R0,A INC R0 DJNZ R6,S1 RET END X EQU 30H ;2 BYTS LOW
41、 AHEAD Y EQU 40H ;3 BYTS,INTEGRAL IN Y+1,Y+2(LOW AHEAD),POINT IN Y+0 TMP EQU 50H ;3 BYTS ORG 0 MOV TMP+0,#0 MOV TMP+1,X+0 MOV TMP+2,X+1 MOV R7,#4 DO: MOV R0,#TMP+2 LCALL SHIFT_RIGHT DJNZ R7,DO MOV Y+0,TMP+0 MOV Y+1,TMP+1 MOV Y+2,TMP+2 SJMP $ SHIFT_RIGHT: MOV R6,#3 CLR C RE: MOV A,@R0 RRC A MOV @R0,A DEC R0 DJNZ R6,RE RET END
- 溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際商法第五講國際貨物買賣法課件
- 金牌客服投訴調(diào)解員課件
- 過敏性紫癜病案討論課件
- 《英語》(新標(biāo)準(zhǔn))(供三年級(jí)起始用)第四模塊第九模塊第二單元Samhadchocolatebiscuits
- 1原子吸收光譜分析A
- 幼兒園區(qū)角環(huán)境的創(chuàng)設(shè)1
- 數(shù)據(jù)挖掘技術(shù)十課Bayes分類方法
- 精神科進(jìn)修總結(jié)
- 最新隧道施工技術(shù)指南培訓(xùn)課件
- HAPPYBIRTHDAY課件之一
- 免疫組化的原理與操作
- 詩海拾貝與詩同行課件
- 落花生徐書婷
- 第5課_“和同為一家”PPT(教育精品)
- 電力網(wǎng)無功補(bǔ)償節(jié)能技術(shù)改造及維護(hù)