资源描述:
《单片机基础__第三版__课后习题答案 (1).doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、.没第一章:一、填空题 1. 1110 0EH 10011100 01100100 2. 4 3.255-514.输入设备 5.846.630*8*10247.位 字节 字 bitbtypeword8.1111111100100100110110119.11089-115-50二、单选: DBCABBBCB第二章:一、填空 1. PC PC 2. 反向器 晶振 两只电容 短 3. 加电 手动 0000H 07H 第0 00H 07H 4. 6 2 1 12 5. DPT
2、R DPH DPL 6. 64KB单选题 DCCAC AD 第三章:一、填空题: 1. 1031 2. 34H 1 1 1 3. 略 4. 1100H 5. 2 6. 30H 71H 0A5H0A5H75H0A7H0AAH01IFH110AAH0120H100D5H1149H00二、单选题 CCBDCA 三、其它类型题 错 错 对 错 错 错 对 错 错 错 错 对 对 对 对 错 对 对错
3、 对 错 错 对(三)其它类型题 3.编写程序将RAM20H-23H单元的高4位写1,低4位写0。分析:就是把这四个单元写入F0H。用一个DJNZ的循环。 ORG0000HMOVR0,#1FH;R0指向20H单元MOVR5,#04H; 四个数LOOP:INCR0MOV@R0,#0F0H; 写入DJNZR5,LOOP; 循环4次END4.把m和m+1单元存有两个BCD数,将它们合并到m单元中,编写程序完成。(设m=30H,高位在30H,低数在31H) ORG0000HMOVA,30HANLA
4、,#0FH ;把它的高四位清零SWAPAMOV30H,A ;高低四位调一下,放回原处MOVA,31HANLA,#0FHORLA,30H ;合并起来MOV30H,AEND5.将内部RAM中从data单元开始的10个无符号数相加,其和送sum单元多,假定相加结果小于255。编写程序完成。(设data=30H,sun=50H)ORG0000HMOVR0,#2FH;指向前一个单元MOVR5,#0AH ;循环10次CLRA ;先加到A中LOOP:INCR0ADDA,@R0DJNZR5,LOOPMOV50H,AEND
5、6.假定8位二进制带符号数丰于R0中,要求编写一个求补程序,所得补码入入R1中。 ORG0000HMOVA,R0CPLA ;按位取反ADDA,#01H ;+1MOVR1,AEND第四章:一、填空题1. 25H 40H 03H2.2.914ms3.略4.(A)=((30H)(A)>(30H)(A)<(30H)5.32.87ms编程题 1.把长度为10H的字符串从内部RAM的输入缓冲区inbuf向位物外部RAM的输出缓冲区outbuf传送,一直进行到遇见回车或整个字符串传送完毕。试编程实现。 O
6、RG 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单元开始存放一正数
7、表,表中之数作无序排列,并以“-1”作结束标志。编程实现在表中找出最小数。 (3AH存放在运行程序时的最小的数) ORG 0030H MOVR0,#list MOVA,@R0;取第一个正数 LOOP:INCR0;指向下一个正数 MOV3AH,@R0 CJNEA,3AH,CHK;前一个数与后一个数比较CHK: JC LOOP1;前一个数小,则转 MOVA,@R0;前一个数大,取后一个数LOOP1:XCHA,3AH CJNEA,#0FFH,LOOP
8、 XCHA,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 ORG0000HM