还剩11页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第一章
一、填空题 1. 1110 0EH 10011100 01100100 2. 4
3.255-
514.输入设备
5.
846.630*8*
10247.位 字节 字 bitbtypeword
8.
1111111100100100110110119.11089-115-50
二、单选 DBCABBBCB第二章
一、填空 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. 略 4. 1100H 5. 2 6. 30H 71H 0A5H0A5H75H0A7H0AAH01IFH110AAH0120H100D5H1149H00
二、单选题 CCBDCA
三、其它类型题 错 错 对 错 错 错 对 错 错 错 错 对 对 对 对 错 对 对错 对 错 错 对
(三)其它类型题 3.编写程序将RAM20H-23H单元的高4位写1,低4位写0分析就是把这四个单元写入F0H用一个DJNZ的循环 ORG0000HMOVR0#1FH;R0指向20H单元MOVR5#04H; 四个数LOOP:INCR0MOV@R0#0F0H; 写入DJNZR5LOOP; 循环4次END4.把m和m+1单元存有两个BCD数,将它们合并到m单元中,编写程序完成设m=30H高位在30H,低数在31H ORG0000HMOVA30HANLA#0FH ;把它的高四位清零SWAPAMOV30HA ;高低四位调一下,放回原处MOVA31HANLA#0FHORLA30H ;合并起来MOV30HAEND
5.将内部RAM中从data单元开始的10个无符号数相加,其和送sum单元多,假定相加结果小于255编写程序完成设data=30Hsun=50HORG0000HMOVR0#2FH;指向前一个单元MOVR5#0AH ;循环10次CLRA ;先加到A中LOOP:INCR0ADDA@R0DJNZR5LOOPMOV50HAEND6.假定8位二进制带符号数丰于R0中,要求编写一个求补程序,所得补码入入R1中 ORG0000HMOVAR0CPLA ;按位取反ADDA#01H ;+1MOVR1AEND第四章
一、填空题
1. 25H 40H 03H2.
2.914ms
3.略4.(A)=30HA30HA30H
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#0DHLL;是否为回车符CR SJMP STOP;是转停止传送 LL: MOVX @R1A;不是则传送到外部RAM INC R0 INC R1 DJNZ R4LL;沒传送完则循环STOP: SJMP$
2、内部RAM从list单元开始存放一正数表,表中之数作无序排列,并以“-1”作结束标志编程实现在表中找出最小数 3AH存放在运行程序时的最小的数 ORG 0030H MOVR0#list MOVA@R0;取第一个正数 LOOP:INCR0;指向下一个正数 MOV3AH@R0 CJNEA3AHCHK;前一个数与后一个数比较CHK: JC LOOP1;前一个数小则转 MOVA@R0;前一个数大取后一个数LOOP1:XCHA3AH CJNEA#0FFHLOOP XCHA3AH;取最小数 MOV 3BHA 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 ORG0000HMOVA20HCLRCRLAJCFS;移到负数处处理RRARRA;第0位移到C 再判定一下是不是1JCZJS;到正奇数处MOVA20HORLA21HMOV22HASJMPOKZJS:MOVA20HADDA21HMOV22HASJMPOKFS:MOVA20HCLRCRRAJCFJS;第0位是1,移到正 奇数处理MOVA20HXRLA21HMOV22HASJMPOKFJS:MOVA20HANLA21HMOV22HAOK: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 R7A JC LOOP1 MOV A#30H SJMP LOOP2 LOOP1: MOV A#31H LOOP2:MOVX @DPTRA MOV AR7 INC DPTR DJNZ R5LOOP
5.编程实现运算式c=a2+b2假定a、b、c3个数分别存放在内部RAM的DA、DB、DC单元中,别有平方运算子程序调用(内部RAM的DA、DB、DC单元设为20H 21H 22H) ORG0000HMOVA20HPUSHACCAJMPSQRPOPACCMOV22HAMOVA21HPUSHACCAJMPSQRPOPACCADDA22HMOV22HAEND
6、比较两个ASCII码字符串是否相等字符串的长度在内部RAM41H单元,第一个字符串的首地址为42H,第二个字符串的首地址为52H如果两个字符串相等,则置内部RAM40H单元为00H;否则置40H单元为FF ORG 0030H MOVR0#42H MOVR1#52H MOVR741H;字符串长度LOOP:MOVA@R0 MOV30H@R1 CJNEA30HLK INC R0 INC R1 DJNZ R7LOOP MOV 40H#00H SJMP DD LK: MOV40H#0FFH DD: SJMPDD
7.外部RAM首址为table的数据表中,有10个字节的数据编程将每个字节的最高位无条件地置“1” ORG0030H MOV DPTR#table MOV R6#10LOOP:MOVXA@DPTR SETB E7H;E7H就是累加器A的最高位ACC.7也可:SETBACC.7 MOVX@DPTRA INC DPTR DJNZR6LOOP 3.编写程序将RAM20H-23H单元的高4位写1,低4位写0分析就是把这四个单元写入F0H用一个DJNZ的循环 ORG0000HMOVR0#1FH;R0指向20H单元MOVR5#04H; 四个数LOOP:INCR0MOV@R0#0F0H; 写入DJNZR5LOOP; 循环4次END4.把m和m+1单元存有两个BCD数,将它们合并到m单元中,编写程序完成设m=30H高位在30H,低数在31H ORG0000HMOVA30HANLA#0FH ;把它的高四位清零SWAPAMOV30HA ;高低四位调一下,放回原处MOVA31HANLA#0FHORLA30H ;合并起来MOV30HAEND
5.将内部RAM中从data单元开始的10个无符号数相加,其和送sum单元多,假定相加结果小于255编写程序完成设data=30Hsun=50HORG0000HMOVR0#2FH;指向前一个单元MOVR5#0AH ;循环10次CLRA ;先加到A中LOOP:INCR0ADDA@R0DJNZR5LOOPMOV50HAEND6.假定8位二进制带符号数丰于R0中,要求编写一个求补程序,所得补码入入R1中 ORG0000HMOVAR0CPLA ;按位取反ADDA#01H ;+1MOVR1AEND第四章
一、填空题
1. 25H 40H 03H2.
2.914ms
3.略4.(A)=30HA30HA30H
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#0DHLL;是否为回车符CR SJMP STOP;是转停止传送 LL: MOVX @R1A;不是则传送到外部RAM INC R0 INC R1 DJNZ R4LL;沒传送完则循环STOP: SJMP$
2、内部RAM从list单元开始存放一正数表,表中之数作无序排列,并以“-1”作结束标志编程实现在表中找出最小数 3AH存放在运行程序时的最小的数 ORG 0030H MOVR0#list MOVA@R0;取第一个正数 LOOP:INCR0;指向下一个正数 MOV3AH@R0 CJNEA3AHCHK;前一个数与后一个数比较CHK: JC LOOP1;前一个数小则转 MOVA@R0;前一个数大取后一个数LOOP1:XCHA3AH CJNEA#0FFHLOOP XCHA3AH;取最小数 MOV 3BHA 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 ORG0000HMOVA20HCLRCRLAJCFS;移到负数处处理RRARRA;第0位移到C 再判定一下是不是1JCZJS;到正奇数处MOVA20HORLA21HMOV22HASJMPOKZJS:MOVA20HADDA21HMOV22HASJMPOKFS:MOVA20HCLRCRRAJCFJS;第0位是1,移到正 奇数处理MOVA20HXRLA21HMOV22HASJMPOKFJS:MOVA20HANLA21HMOV22HAOK: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 R7A JC LOOP1 MOV A#30H SJMP LOOP2 LOOP1: MOV A#31H LOOP2:MOVX @DPTRA MOV AR7 INC DPTR DJNZ R5LOOP
5.编程实现运算式c=a2+b2假定a、b、c3个数分别存放在内部RAM的DA、DB、DC单元中,别有平方运算子程序调用(内部RAM的DA、DB、DC单元设为20H 21H 22H) ORG0000HMOVA20HPUSHACCAJMPSQRPOPACCMOV22HAMOVA21HPUSHACCAJMPSQRPOPACCADDA22HMOV22HAEND
6、比较两个ASCII码字符串是否相等字符串的长度在内部RAM41H单元,第一个字符串的首地址为42H,第二个字符串的首地址为52H如果两个字符串相等,则置内部RAM40H单元为00H;否则置40H单元为FF ORG 0030H MOVR0#42H MOVR1#52H MOVR741H;字符串长度LOOP:MOVA@R0 MOV30H@R1 CJNEA30HLK INC R0 INC R1 DJNZ R7LOOP MOV 40H#00H SJMP DD LK: MOV40H#0FFH DD: SJMPDD
7.外部RAM首址为table的数据表中,有10个字节的数据编程将每个字节的最高位无条件地置“1” ORG0030H MOV DPTR#table MOV R6#10LOOP:MOVXA@DPTR SETB E7H;E7H就是累加器A的最高位ACC.7也可:SETBACC.7 MOVX@DPTRA INC DPTR DJNZR6LOOP第五章
一、填空题1.各项任务2.INT0 T0 INT1 T1 串口3.PC PC ROM4.中断源 查询状态5.1000000 1000000/65536=
15.266.100ms7.1111018.T120FFH001BH
二、单选题 DCAADCD单片机基础 第五章 习题课本
5.1设单片机的晶振频率为6MHZ,使用定时器1以方式0产生500us的等宽正方波连续脉冲,并由P
1.0输出分析使用P
1.0输出脉冲,可由定时器产生一个250us的定时,到了时间,就执行CPL P
1.0就可以了所以问题转化为产生定时解
(1) 计算定时器的初值 (213-X)* T机 = T定时代入数据得X = 8067由于方式0的特点(高8位,低5位),计算出TH1,TL1得TH1 = 0FCH TL1 = 03H
(2)计算出TMOD的初始值TMOD =00H
(3)编程实现 方法一使用查询法程序不断地查询TF1的值如定时器溢出(TF1=1),则CPL P
1.0所以MOVTMOD#00HMOVTH1#0FCHMOVTL1#03HMOVIE#00H;不用中断的方法,关掉SETBTR1;开启定时器LOOP:JBCTF1LOOP1AJMPLOOPLOOP1:MOVTH1#0FCHMOVTL1#03HCPLP
1.0AJMPLOOP方法二使用中断的方法需确定寄存器TMOD = 00HIE =88HTCON=40H或SETB TR1 T1的中断向量=001BH程序如下 ORG0000HAJMPMAINORG 001BH AJMP T1_TIMERMAIN MOV TMOD,#00H MOV TCON,#40H MOV IE#88HMOVTCON#40HMOVTH1#0FCHMOVTL1#03HHere:AJMPHereT1_TIMER:MOVTH1#0FCHMOVTL1#03HCPLP
1.0RETI注意定时器定时或计数,不会影响CPU的工作定时方式1与方式0没有大的区别,只有定时器是16位的所以定时=(2x–初值) T机方式28位初值自动赋值的定时/计数器解法一样
(1)计算T的初始值
(2) TMOD =?
(2)程序设计 方式三T0――TL0 8位,可作定时也可作计数,与方式0一样使用――TH08位,只能作定时,借作TR1 TF1 T1没法中断,只能产生不断的脉冲,--全波特率 可用方式01,2如要停止脉冲,要强制设方式3第六章
一、填空题
1、 8 16 13
22、 高电平 低电平 高阻
3、 256 数据 4KB 程序 64KB 数据 64KB 程序
4、 16 P0 P
25、 PSEN RD WR ALE CE ALE
66、 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 。