北京航空航天大学出版社+李广弟+朱月秀+冷祖祁主编+单片机基础(第3版)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(二)选择题
D、B、C、A、B、 B、B、C、B
习题讲解-第二章(p.43)
(一)填空题
1. PC、PC。 2. 高增益反相放大器、晶振、微调电容、(小) 3. 上电、手动、0、07H、第0组、00H-07H 4. 6、2、1、12 5. DPTR、DPL、DPH 6. 64K
(二)选择题
D、C、A或C、A、C、 A、D
;C=P1.0V/10H
E=ACC.2^P2.7vACC.1^P2.0 MOV ANL MOV MOV ANL ORL MOV AJMP C, C, E, C, C, C, E, $ ACC.2 P2.7 C ACC.1 P2.0 E C
;C=ACC.2^P2.7
;C=ACC.1^P2.0
习题讲解-第三章(p.74)
习题讲解-第五章(p.117)
(三)其他
Fosc=6(或12)MHz时,16位定时器定时时间范围。 Tsoc=2(或1)us,则定时范围为: 最大:65536×Tsoc 最小:1×Tsoc
习题讲解-第六章(p.131)
(一)填空题
1. 8片、16条地址线、其中13条选择存储单元、3条选择芯片 2. 高电平、低电平、高阻状态 3. 256、RAM,4K、程序,64K、数据,64K、程序。 4. 16、P0口、P2口 5. /PSEN、ALE、/WR、/RD、/EA、ALE、六分之一。 6. 16K、37FFH。 7. 其他存放程序的外部存储设备 8. 片选引脚提供信号。 9. 11条地址线、ALE、/PSEN
习题讲解-第一章(p.16)
(一)填空题
1. (14)d对应(1110)b、(E)h。-100的补码为(1001 1100)b, +100的补码为(64H)。 2. 4倍 3. 255,-51(-33H)。 4. 输入设备 5. 84(54H) 6. 640*1024个 7. 位(bit)、字节(byte)、字(word) 8. 11111111,00100100,11011011 9. 6EH,59H,8DH,CEH
习题讲解-第四章(p.96)
(二)编程题
5. 计算c=a2+b2。 解: MOV A, MOV B, MUL AB MOV CH, MOV CL, MOV A, MOV B, MUL AB ADD A, MOV CL, MOV A, ADDC A, MOV CH, RET
DA A B A DB A CL A B CH A ;a ;a*a, BA=A*B ;乘积的高字节 ;乘积的低字节 ;b ;b*b ; 16位数加法,低字节先加
;A=A*4
习题讲解-第四章(p.96)
(二)编程题
F_TABLE: ADD SJMP
ORL SJMP ANL SJMP XRL SJMP RETURN:MOV RET END A, B RETURN A, B RETURN A, B RETURN A, B RETURN @R0, A ;2 BYTES ;2 BYTES
解:
inbuf inbuf_l outbuf INPUT: PUSH PUSH PUSH PUSH MOV MOV MOV IN: MOV CJNE SJMP OUT: MOVX INC INC DJNZ EXIT: POP POP POP POP RET END
EQU XXH EQU 10H EQU XXXXH ACC R0 R1 DPTR R0, #inbuf R1, #inbuf_l DPTR, #outbuf A, @R0 A, #0DH, EXIT @DPTR,A R0 DPTR R1, IN DPTR R1 R0 ACC
习题讲解-第三章(p.74)
(一)填空题
1. (1031)执行该指令时,PC指针已经指向下一指令了,该指 令1字节。 2. A=34H, CY=1, AC=1, OV=1 3. P3.0=P1.0^P1.1^/P1.2 4. 1100H PC=PC+2, PC(10~0)←addr11。 5. 2
3. F=(Y Z)v(X^Y) 4. 不能转向LOOP2和LOOP3时LOOP1、A非负且30H为负数或者A不小于30H时 LOOP2、A为负数且30H中为非负数或者A不大于30H时LOOP3 5. 30696 us
习题讲解-第四章(p.96)
(二)编程题
1. 把长度为10H的字符串从内部RAM的缓冲区inbuf向位于外部 RAM的缓冲区outbuf传送,直到遇见回车符CR为止。 解释:即便没有说明最多有10H个字符,也应该加入长度限 制。可以假定CR不传送,也可以假定传送。我们这里假定 不传送。
;再加高字节,考虑进位
习题讲解-第四章(p.96)
(二)编程题
6. 比较内部RAM中两个等长字符串是否相等。 解: MOV R0, 42H ;第一个字符串 MOV R1, 52H ;第二各字符串 MOV R2, 41H ;长度 LOOP: MOV A, @R0 MOV B, @R1 INC R0 INC R1 CJNE A, B, NO_EQU DJNZ R2, LOOP MOV 40H, #0 ;相等,置0 SJMP RETRUN NO_EQU: MOV 40H, #0FFH RETURN: RET END
结论:解1时间短,代码大;解2反之。
习题讲解-第三章(p.74)
(三)其他类型
4.m和m+1单元中存有两个BCD数(应该是码),整合到m单元中。 解释:BCD码占4位,一个字节可以放2个BCD码,称压缩BCD码。 解: MOV SWAP MOV MOV ORL MOV AJMP END A, A B, A, A, m, $ (m+1) A m B A ;m+1 中BCD进入A ;BCD放到高4位 ;暂存 ;m 中BCD码进入A ;合并两个BCD码 ;放入m中。
习题讲解-第四章(p.96)
(二)编程题
7. 外部RAM中,首地址为table的10个字节数据,把高位置1。 解: table EQU XXXXH ;首地址
FN: MOV MOV LOOP: SETB MOV INC DJNZ RET END DPTR, #table R2, #10 MOV A, @DPTR ACC.7 @DPTR, A DPTR R2, LOOP ;指针 ;长度 ;取数 ;高位置1 ;保存
习题讲解-第五章(p.117)
(一)填空题
1. 被多项任务 2. EX0,T0,EX1,T1,ES 3. PC、PC、相应的 4. 产生中断请求、查询 5. 122、62500 6. 0.1s(100ms) 7. 111b、101b 8. P3.5、工作方式2、0FFH、001BH
(二)选择题
D、C、A、A或B、D、 C、D
习题讲解-第四章(p.96)
(二)编程题
4.已知片外RAM的10H单元存放8位二进制数,要求将其转移成相应的ASCII码,
并以高位在前,低位在后的顺序,依次存放到片外RAM以11H为首地址的连续 单元中,试编程。 解:先将中间单元置成30H,然后判欲转换位是否为1,若是则将中间单元内容加1; 否则,中间单元内容保持不变。通过左移指令实现由高到低的顺序进行转换。 START: MOV R2,#08H ;循环计数初值(循环次数已知) MOV R0,#10H ;地址指针初值 MOVX A,@R0 ;取数 MOV B,A ;暂存B中 LOOP: MOV A,#30H ;将中间单元(A)置成30H JNB B.7,NA ;判断转换的二进制位为0否? INC A ;若为1,则变成1的ASCII码“31H” NA: INC R0 ;修改地址指针 MOVX @R0,A ;存放转换的结果 MOV A,B RL A ;作好准备,判断下一位 MOV B,A ;暂存 DJNZ R2,LOOP ;判断转换结束否?未完继续 SJMP $
;inbuf的长度 ;保护现场
;INPUT是函数名,调用时使用
OUT
;取出来一个数 ;不为CR则输出。 ;输出
;回复现场,注意回复的顺序
习题讲解-第四章(p.96)
(二)编程题
解: list list_l MOV MOV MOV LOOP: CLR MOV MOV JB SUIBB MOV JNC MOV GO: DJNZ EXIT: RET END EQU EQU R0, R1, A, C B, A, ACC.7, A, B, GO A, R1, XXH XXH #list #list_l @R0 A @R0 EXIT B A @R0 LOOP
2. 内部RAM从list单元开始放一无序排列的正数表,以-1结尾, 找出其中最小的数放在A中。
;应该加入现场保护功能 ;最大长度 ;假设第一个数最小
;遇到-1,退出。
;B≤@R0 ;@R0 ≤B
习题讲解-第四章(p.96)
(二)编程题
解:
3. 内部X、Y单元各存一个带符号数,实现以下条件运算,结 果存入Z中。
(三)其他类型
3.编写程序将内部RAM 20H~23H单元高4位写1,低4位写0。 解1: MOV 20H, #0F0H ;3字节,2机器周期 MOV 21H, #0F0H MOV 22H, #0F0H MOV 23H, #0F0H ;共12字节,8个机器周期 AJMP $ END 解2: MOV R1, #4 ;操作次数计数器,2字节,1机器周期 MOV R0, #20H ;指针 MOV A, #0F0H LOOP: MOV @R0, A ;一个字节,一个机器周期 INC R0 DJNZ R1, LOOP ;2字节,2机器周期 ;共10字节,19=3+4×4机器周期 AJMP $ END
MOV JB JNB CLR SJMP P_EVEN:MOV SJMP MINUS: JB MOV SJMP M_EVEN:MOV GO :RL RL MOV MOV MOV JMP A, X ACC.7, MINUS ACC.0, P_EVEN A GO A, #1 GO ACC.0, M_EVEN A, #2 GO A, #3 A A B, Y R0, #Z DPTR, #F_TABLE @A+DPTR
MOV MOV CLR LOOP: ADD DJNZ MOV AJMP END
习题讲解-第三章(p.74)
(三)其他类型
6. 假定R0中是8位原码,变为补码放入R1中。 解释:正数的原、补码相同,负数的补码为其原码取反加1(符号位不变)。 解: MOV JNB CPL ADD SETB MOV AJMP END A, ACC.7, A A, ACC.7 R1, $ R0 SAVE #1 ;加入符号位 A
;正数, wenku.baidu.com负数,取反
SAVE:
习题讲解-第四章(p.96)
(一)填空题
1. A=25H,R1=40H,40H=03H。 2. 晶振6MHz,判断P1.1引脚上的方波宽度 START: SETB P1.1 DL: MOV 30H, #3 ;2+ DL0: MOV 31H, #240 ;2+ DL1: DJNZ 31H, DL1 ;2X240+ X3+ DJNZ 30H, DL0 ;2+ CPL P1.1 ;1+ SJMP DL ;2+ ;=2+(2+2*240+2)X3+1+2=1457(机器周期) ;=1457*2us
(二)选择题
CCBDCA
习题讲解-第三章(p.74)
(三)其他类型
1. X X X X X X X X X X X X X
习题讲解-第三章(p.74)
(三)其他类型
2.(1) D=(/10HvP1.0)^(11HvCY) ORL MOV MOV ANL ANL MOV AJMP (2) C, D, C, C, C, D, $ 11H C P1.0 /10H D C ;C=CV11H
习题讲解-第三章(p.74)
(三)其他类型
5.将内部 RAM中从data开始的10个无符号数相加,和送sum。设结果小于255。 解释:不用转换为补码,不考虑益处。假定sum也在内部RAM中。 解: data cnt sum EQU EQU EQU R0, R1, A A, R1, sum, $ XXH 10 XXH #data #cnt @R0 LOOP A ;指针赋初值 ;计数器