首页 单片机基础 第三版 课后习题答案-1

单片机基础 第三版 课后习题答案-1

举报
开通vip

单片机基础 第三版 课后习题答案-1单片机基础 第三版 课后习题答案-1 第一章: 一、填空题 1( 1110 0EH 10011100 01100100 2( 4 3. 255 -51 4. 输入设备 5. 84 6. 630 * 8 * 1024 7. 位 字节 字 bit btype word 8. 1111 1111 00100100 11011011 9. 110 89 -115 -50 二、单选: DBCAB BBCB 第二章: 一、填空 1( PC PC 2( 反向器 晶振 两只电容 短 3( 加电 手动...

单片机基础 第三版 课后习题答案-1
单片机基础 第三版 课后习题答案-1 第一章: 一、填空题 1( 1110 0EH 10011100 01100100 2( 4 3. 255 -51 4. 输入设备 5. 84 6. 630 * 8 * 1024 7. 位 字节 字 bit btype word 8. 1111 1111 00100100 11011011 9. 110 89 -115 -50 二、单选: DBCAB BBCB 第二章: 一、填空 1( PC PC 2( 反向器 晶振 两只电容 短 3( 加电 手动 0000H 07H 第0 00H 07H 4( 6 2 1 12 5( DPTR DPH DPL 6( 64KB 单选题 DCCAC AD 第三章: 一、填空题: 1( 1031 2( 34H 1 1 1 3( P3=P1.0 and P1.1 and / P1.2 4( 1100H 5( 2 6( 30H 7AH 0A5H 0A5H 75H 0A7H 0AAH 0 1 IFH 1 1 0AAH 0 1 20H 1 0 0D5H 1 1 49H 0 0 二、单选题 CCBDCA 三、其它类型题 错 错 对 错 错 错 对 错 错 错 错 对 对 对 对 错 对 对 错 对 错 错 对 (三)其它类型题 3(编写程序将RAM20H,23H单元的高4位写1,低4位写0。 分析:就是把这四个单元写入F0H。用一个DJNZ的循环。 ORG 0000H MOV R0,#1FH ;R0指向20H单元 MOV R5,#04H; 四个数 LOOP: INC R0 MOV @R0,#0F0H ; 写入 DJNZ R5,LOOP ; 循环4次 END 4(把m和m+1单元存有两个BCD数,将它们合并到m单元中,编写程序完成。 (设m=30H, 高位在30H,低数在31H) ORG 0000H MOV A,30H ANL A,#0FH ;把它的高四位清零 SWAP A MOV 30H ,A ;高低四位调一下,放回原处 MOV A,31H ANL A,#0FH ORL A,30H ;合并起来 MOV 30H,A END 5.将内部RAM中从data单元开始的10个无符号数相加,其和送sum单元多,假定相加结果小于255。编写程序完成。 (设data=30H, sun =50H) ORG 0000H MOV R0,#2FH ; 指向前一个单元 MOV R5,#0AH ;循环10次 CLR A ;先加到A中 LOOP: INC R0 ADD A,@R0 DJNZ R5,LOOP MOV 50H,A END 6(假定8位二进制带符号数丰于R0中,要求编写一个求补程序,所得补码入入R1中。 ORG 0000H MOV A,R0 CPL A ;按位取反 ADD A,#01H ;,1 MOV R1,A END 第四章: 一、填空题 1. 25H 40H 03H 2(2.914ms 3.略 4((A) =((30H) (A) >(30H) (A) < (30H) 5. 30.696ms 二、编程题 1(把长度为10H的字符串从内部RAM的输入缓冲区inbuf向位物外部RAM的输出缓冲区outbuf传送,一直进行到遇见回车或整个字符串传送 完毕。试编程实现。 ORG 0030H MOV R0,#inbuf MOV R1,#outbuf MOV R4,#10H LOOP:MOV A,@R0 ; 从内部RAM取数 CJNE A,#0DH,LL ;是否为回车符CR SJMP STOP ;是转停止传送 LL: MOVX @R1,A ;不是则传送到外部RAM INC R0 INC R1 DJNZ R4, LOOP;沒传送完则循环 STOP: SJMP $ 2、内部RAM从list单元开始存放一正数表,表中之数作无序排列,并以“-1”作结束标志。编程实现在表中找出最小数。 (3AH存放在运行程序时的最小的数) ORG 0030H MOV R0,#list MOV A,@R0 ;取第一个正数 LOOP: INC R0 ;指向下一个正数 MOV 3AH,@R0 CJNE A,3AH,CHK ;前一个数与后一个数比较 CHK: JC LOOP1 ;前一个数小,则转 MOV A,@R0 ;前一个数大,取后一个数 LOOP1: XCH A,3AH CJNE A,#0FFH,LOOP XCH A,3AH ;取最小数 MOV 3BH,A SJMP $ 3.内部RAM的X,Y 单元中各存放一个带符号的数,试编程实现按如下条件进行的运算,并将结果存入Z单元中。 若X为正奇数,Z ,X,Y; 若X为正偶数,Z ,X?Y; 若X为负奇数,Z ,X?Y; 若X为负偶数,Z ,X?Y。 分析:负数:第7位为1,正数:第7位为0 奇数:第0位为1,偶数:第0位为0 ORG 0000H MOV A,20H CLR C RL A JC FS ;移到负数处处理 RR A RR A ;第0位移到C 再判定一下是不是1 JC ZJS ;到正奇数处 MOV A,20H ORL A,21H MOV 22H,A SJMP OK ZJS: MOV A,20H ADD A,21H MOV 22H,A SJMP OK FS: MOV A,20H CLR C RR A JC FJS ;第0位是1,移到正 奇数处理 MOV A,20H XRL A,21H MOV 22H,A SJMP OK FJS: MOV A,20H ANL A,21H MOV 22H,A OK: END 4、把一个8位二进制数的各位用ASCII码表示之(亦即为“0”的位用30H表示,为“1”的位用31H表示)。该数存放在内部RAM中byte 单元中。变换后得到的8个ASCII码存放在外部RAM以buf始的存储单元中去。 ORG 0030H MOV R0,#byte MOV DPTR,#buf MOV R5,#08H MOV A,@R0 LOOP: RLC A MOV R7,A JC LOOP1 MOV A,#30H SJMP LOOP2 LOOP1: MOV A,#31H LOOP2: MOVX @DPTR,A MOV A,R7 INC DPTR DJNZ R5,LOOP 225.编程实现运算式c = a+b 假定a、 b、 c 3个数分别存放在内部RAM的DA、DB、DC单元中,别有平方运算子程序调用。 (内部RAM的DA、DB、DC单元设为20H 21H 22H) ORG 0000H MOV A,20H PUSH ACC AJMP SQR POP ACC MOV 22H,A MOV A,21H PUSH ACC AJMP SQR POP ACC ADD A,22H MOV 22H,A END 6、比较两个ASCII码字符串是否相等。字符串的长度在内部RAM 41H单元,第一个字符串的首地址为42H,第二个字符串的首地址为52H。如 果两个字符串相等,则置内部RAM 40H单元为00H;否则置40H单元为FF。 ORG 0030H MOV R0,#42H MOV R1,#52H MOV R7,41H ;字符串长度 LOOP: MOV A,@R0 MOV 30H,@R1 CJNE A,30H,LK INC R0 INC R1 DJNZ R7,LOOP MOV 40H ,#00H SJMP DD LK: MOV 40H,#0FFH DD: SJMP DD 7.外部RAM首址为table的数据表中,有10个字节的数据。编程将每个字节的最高位无条件地置“1”。 ORG 0030H MOV DPTR,#table MOV R6,#10 LOOP:MOVX A,@DPTR SETB E7H; E7H就是累加器A的最高位(ACC.7), 也可 : SETB ACC.7 MOVX @DPTR,A INC DPTR DJNZ R6,LOOP 3(编写程序将RAM20H,23H单元的高4位写1,低4位写0。 分析:就是把这四个单元写入F0H。用一个DJNZ的循环。 ORG 0000H MOV R0,#1FH ;R0指向20H单元 MOV R5,#04H; 四个数 LOOP: INC R0 MOV @R0,#0F0H ; 写入 DJNZ R5,LOOP ; 循环4次 END 4(把m和m+1单元存有两个BCD数,将它们合并到m单元中,编写程序完成。 (设m=30H, 高位在30H,低数在31H) ORG 0000H MOV A,30H ANL A,#0FH ;把它的高四位清零 SWAP A MOV 30H ,A ;高低四位调一下,放回原处 MOV A,31H ANL A,#0FH ORL A,30H ;合并起来 MOV 30H,A END 5.将内部RAM中从data单元开始的10个无符号数相加,其和送sum单元多,假定相加结果小于255。编写程序完成。 (设data=30H, sun =50H) ORG 0000H MOV R0,#2FH ; 指向前一个单元 MOV R5,#0AH ;循环10次 CLR A ;先加到A中 LOOP: INC R0 ADD A,@R0 DJNZ R5,LOOP MOV 50H,A END 6(假定8位二进制带符号数丰于R0中,要求编写一个求补程序,所得补码入入R1中。 ORG 0000H MOV A,R0 CPL A ;按位取反 ADD A,#01H ;,1 MOV R1,A END 第四章: 一、填空题 1. 25H 40H 03H 2(2.914ms 3.略 4((A) =((30H) (A) >(30H) (A) < (30H) 5. 32.87ms 编程题 1(把长度为10H的字符串从内部RAM的输入缓冲区inbuf向位物外部RAM的输出缓冲区outbuf传送,一直进行到遇见回车或整个字符串传送 完毕。试编程实现。 ORG 0030H MOV R0,#inbuf MOV R1,#outbuf MOV R4,#10H LOOP:MOV A,@R0 ; 从内部RAM取数 CJNE A,#0DH,LL ;是否为回车符CR SJMP STOP ;是转停止传送 LL: MOVX @R1,A ;不是则传送到外部RAM INC R0 INC R1 DJNZ R4,LL;沒传送完则循环 STOP: SJMP $ 2、内部RAM从list单元开始存放一正数表,表中之数作无序排列,并以“-1”作结束标志。编程实现在表中找出最小数。 (3AH存放在运行程序时的最小的数) ORG 0030H MOV R0,#list MOV A,@R0 ;取第一个正数 LOOP: INC R0 ;指向下一个正数 MOV 3AH,@R0 CJNE A,3AH,CHK ;前一个数与后一个数比较 CHK: JC LOOP1 ;前一个数小,则转 MOV A,@R0 ;前一个数大,取后一个数 LOOP1: XCH A,3AH CJNE A,#0FFH,LOOP XCH A,3AH ;取最小数 MOV 3BH,A SJMP $ 3.内部RAM的X,Y 单元中各存放一个带符号的数,试编程实现按如下条件进行的运算,并将结果存入Z单元中。 若X为正奇数,Z ,X,Y; 若X为正偶数,Z ,X?Y; 若X为负奇数,Z ,X?Y; 若X为负偶数,Z ,X?Y。 分析:负数:第7位为1,正数:第7位为0 奇数:第0位为1,偶数:第0位为0 ORG 0000H MOV A,20H CLR C RL A JC FS ;移到负数处处理 RR A RR A ;第0位移到C 再判定一下是不是1 JC ZJS ;到正奇数处 MOV A,20H ORL A,21H MOV 22H,A SJMP OK ZJS: MOV A,20H ADD A,21H MOV 22H,A SJMP OK FS: MOV A,20H CLR C RR A JC FJS ;第0位是1,移到正 奇数处理 MOV A,20H XRL A,21H MOV 22H,A SJMP OK FJS: MOV A,20H ANL A,21H MOV 22H,A OK: END 4、把一个8位二进制数的各位用ASCII码表示之(亦即为“0”的位用30H表示,为“1”的位用31H表示)。该数存放在内部RAM中byte 单元中。变换后得到的8个ASCII码存放在外部RAM以buf始的存储单元中去。 ORG 0030H MOV R0,#byte MOV DPTR,#buf MOV R5,#08H MOV A,@R0 LOOP: RLC A MOV R7,A JC LOOP1 MOV A,#30H SJMP LOOP2 LOOP1: MOV A,#31H LOOP2: MOVX @DPTR,A MOV A,R7 INC DPTR DJNZ R5,LOOP 225.编程实现运算式c = a+b 假定a、 b、 c 3个数分别存放在内部RAM的DA、DB、DC单元中,别有平方运算子程序调用。 (内部RAM的DA、DB、DC单元设为20H 21H 22H) ORG 0000H MOV A,20H PUSH ACC AJMP SQR POP ACC MOV 22H,A MOV A,21H PUSH ACC AJMP SQR POP ACC ADD A,22H MOV 22H,A END 6、比较两个ASCII码字符串是否相等。字符串的长度在内部RAM 41H单元,第一个字符串的首地址为42H,第二个字符串的首地址为52H。如 果两个字符串相等,则置内部RAM 40H单元为00H;否则置40H单元为FF。 ORG 0030H MOV R0,#42H MOV R1,#52H MOV R7,41H ;字符串长度 LOOP: MOV A,@R0 MOV 30H,@R1 CJNE A,30H,LK INC R0 INC R1 DJNZ R7,LOOP MOV 40H ,#00H SJMP DD LK: MOV 40H,#0FFH DD: SJMP DD 7.外部RAM首址为table的数据表中,有10个字节的数据。编程将每个字节的最高位无条件地置“1”。 ORG 0030H MOV DPTR,#table MOV R6,#10 LOOP:MOVX A,@DPTR SETB E7H; E7H就是累加器A的最高位(ACC.7), 也可 : SETB ACC.7 MOVX @DPTR,A INC DPTR DJNZ R6,LOOP 第五章 一、填空题 1( 各项任务 2( INT0 T0 INT1 T1 串口 3( PC PC ROM 4( 中断源 查询状态 5( 1000000 1000000/65536 = 15.26 6( 100 ms 7( 111 101 8( T1 2 0FFH 001BH 二、单选题: DCAADCD 单片机基础 第五章 习题 课本5。.1设单片机的晶振频率为6MHZ,使用定时器1以方式0产生500us的等宽正方波连续脉冲,并由P1.0输出。 分析:使用P1.0输出脉冲,可由定时器产生一个250us的定时,到了时间,就执行CPL P1.0就可以了。所以问题转化为产生定时。 解:(1) 计算定时器的初值: 13 (2,X), T , T机定时 代入数据得:X , 8067 由于方式0的特点(高8位,低5位),计算出TH1,TL1 得TH1 , 0FCH TL1 , 03H (2) 计算出TMOD的初始值: TMOD ,00H (3) 编程实现: 方法一:使用查询法。程序不断地查询TF1的值。如定时器溢出(TF1,1),则CPL P1.0 所以: MOV TMOD ,#00H MOV TH1,#0FCH MOV TL1,#03H MOV IE, #00H ;不用中断的方法,关掉 SETB TR1 ;开启定时器 LOOP: JBC TF1,LOOP1 AJMP LOOP LOOP1: MOV TH1,#0FCH MOV TL1,#03H CPL P1.0 AJMP LOOP 方法二:使用中断的方法。需确定寄存器:TMOD , 00H IE ,88H TCON =40H (或SETB TR1) T1的中断向量,001BH 程序如下: ORG 0000H AJMP MAIN ORG 001BH AJMP T1,TIMER MAIN:MOV TMOD,,00H MOV TCON,,40H MOV IE,#88H MOV TCON ,#40H MOV TH1,#0FCH MOV TL1,#03H Here :AJMP Here T1_TIMER: MOV TH1,#0FCH MOV TL1,#03H CPL P1.0 RETI 注意:定时器定时或计数,不会影响CPU的工作。 定时方式1:与方式0没有大的区别,只有定时器是16位的。所以 x定时,(2 –初值) T机 方式2:8位初值自动赋值的定时/计数器 解法一样: (1) 计算T的初始值 (2) TMOD ,, (2) 程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 方式三: T0: ――TL0 8位,可作定时也可作计数,与方式0,一样使用。 ――TH0:8位,只能作定时,借作TR1 TF1 T1:没法中断,只能产生不断的脉冲,,,全波特率 可用方式0,1,2。如要停止脉冲,要强制设方式3 第六章 一、填空题 1、 8 16 13 2 2、 高电平 低电平 高阻 3、 256 数据 4KB 程序 64KB 数据 64KB 程序 4、 16 P0 P2 5、 PSEN RD WR ALE CE ALE 6 6、 16KB 31FFH 7、 外存 8、 片选 9、 3 PSEN ALE 二、单选题 DADDC ADA 第七章 填空题 1( 数据 ALE RD WR 2( 无条件传送 查询 中断 3( 缓冲 锁存 4( 12 11 5( 高 口方式定义 C位置位/复位 6( 方式1输出 方式1输出 输出 输入 7( 10100111 单选题 DACDBB
本文档为【单片机基础 第三版 课后习题答案-1】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_212655
暂无简介~
格式:doc
大小:40KB
软件:Word
页数:0
分类:企业经营
上传时间:2017-10-21
浏览量:123