浙大远程微机原理与接口技术离线作业Word文件下载.doc
- 文档编号:8430398
- 上传时间:2023-05-11
- 格式:DOC
- 页数:19
- 大小:162KB
浙大远程微机原理与接口技术离线作业Word文件下载.doc
《浙大远程微机原理与接口技术离线作业Word文件下载.doc》由会员分享,可在线阅读,更多相关《浙大远程微机原理与接口技术离线作业Word文件下载.doc(19页珍藏版)》请在冰点文库上搜索。
R0~R7也称为通用寄存器,占用00H~1FH共32个单元地址。
l位寻址区:
20H~2FH,既可作为一般RAM单元使用,按字节进行操作,也可以对单元中的每一位进行位操作,称为位寻址区。
寻址区共有16个RAM单元,共计128位,位地址为00H~7FH。
l堆栈区:
设置在用户RAM区内。
l用户RAM区:
在内部RAM低128单元中,除去前面3个区,剩下的所有单元。
第三章P87
9.MOV、MOVC、MOVX指令有什么区别,分别用于那些场合,为什么?
MOV指令用于对内部RAM的访问。
MOVC指令用于对程序存储器的访问,从程序存储器中读取数据(如表格、常数等)。
MOVX指令采用间接寻址方式访问外部数据存储器,有Ri和DPTR两种间接寻址方式。
MOVX指令执行时,在P3.7引脚上输出有效信号或在P3.6引脚上输出有效信号,可以用作外部数据存储器或I/O的读或写选通信号,与单片机扩展电路有关。
15.已知(R1)=20H,(20H)=AAH,请写出执行完下列程序段后A的内容。
MOV A,#55H
ANL A,#0FFH
ORL 20H,A
XRL A,@R1
CPL A
各指令执行结果如下:
MOVA,#55H ;
(A)=55H
ANLA,#0FFH ;
ORL 20H,A ;
(20H)=FFH
XRLA,@R1 ;
(A)=AAH
CPL A ;
(A)=55H
执行完程序段后,A的内容为55H。
16.阅读下列程序,说明其功能。
MOV R0,#30H
MOV A,@R0
RL A
MOV R1,A
RL A
ADD A,R1
MOV @R0,A
对程序注释如下:
MOV R0,#30H;
(R0)=30H
MOV A,@R0 ;
取数
RL A ;
(A)×
2
RL A ;
4
8
ADD A,R1 ;
10
MOV @R0,A ;
存数
功能:
将30H中的数乘以10以后再存回30H中。
条件:
30H中的数不能大于25,25×
10=250仍为一个字节。
若30H中的数大于25,则应考虑进位。
17.已知两个十进制数分别从内部数据存储器中的40H单元和50H单元开始存放(低位在前),其字节长度存放在内部数据存储器的30H单元中。
编程实现两个十进制数求和,并把和的结果存放在内部数据存储器40H开始的单元中。
【答】程序如下:
ORG0000H
SJMPMAIN
ORG0030H
MAIN:
MOVR0,#40H;
被加数首址.又作两个十进制数和的首址
MOVR1,#50H;
加数首址
MOVR2,30H;
字节长度
CLRC
PP:
MOVA,@R1;
取加数
ADDCA,@R0;
带进位加
DAA;
二一十进制数调整
MOV@R0,A;
存和
INCR0;
修正地址
INCR1
DJNZR2,PP;
多字节循环加
AJMP$
END
21.读程序,请⑴画出P1.0~P1.3引脚上的波形图,并标出电压V-时间T坐标;
⑵加以注释。
ORG 0000H
START:
MOV SP,#20H
MOV 30H,#01H
MOV P1,#01
MLP0:
ACALL D50ms ;
软件延时50mS
MOV A, 30H
CJNE A, #08H,MLP1
MOV A, #01H
MOV DPTR,#ITAB
MLP2∶MOV 30H, A
MOVC A,@A+DPTR
MOV P1, A
SJMP MLP0
MLP1:
INC A
SJMP MLP2
ITAB:
DB 0,1,2,4,8
DB 8,4,2,1
D50ms:
… ;
延时50ms子程序(略)
RET
①程序功能:
P1.0~P1.3引脚上的波形图如图3-2所示。
图3-2 P1.0~P1.3引脚上的波形图
②注释见源程序右边所述。
ORG 0000H
MOV P1,#01H;
P1.0~P1.3引脚输出波形
ACALL D50ms ;
软件延时50ms
CJNE A, #08H,MLP1 ;
判表格中数据是否取完?
MOV A, #01H ;
取完,从表头开始取
MOV DPTR,#ITAB ;
表格首地址
MOVC A,@A+DPTR ;
取表格中数据
INC A ;
表格中数据未取完,准备取下一个
ITAB:
DB 0,1,2,4,8 ;
表
DB 8,4,2,1
… ;
软件延时50ms子程序
第四章P123
6.根据运算结果给出的数据到指定的数据表中查找对应的数据字。
运算结果给出的数据在片内数据存储器的40H单元中,给出的数据大小在00~0FH之间,数据表存放在20H开始的片内程序存储器中。
查表所得数据字(为双字节、高位字节在后)高位字节存于42H、低位字节存于41H单元。
其对应关系为:
给出数据;
000102……0DH0EH0FH
对应数据:
00A0H 7DC2HFF09H3456H89ABH5678H
请编制查表程序段,加上必要的伪指令,并加以注释。
【答】程序如下:
ORG0000H
AJMPMAIN,
0RG0020H
TAB:
DBOAOH,OOH,0C2H,7DH,09H,OFFH,...,56H,34H,0.ABH,89H,DB78H,56H;
数据字表
ORG0050H
MOVA,40H;
运算结果给出的数据放在40H中
MOVDPTR,#TAB;
指向数据字表首地址
RLA;
由于是双字节,所以A左移1位(乘2)
MOV40H,A;
结果放在40H’
MOVCA,@A+DPTR;
查表,找出对应的值
MOV41H,A;
查找出的数据值低字节放入41H
MOVA.40H
ADDA,#01H;
查找数据的高位字节
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOV42H,A。
;
查找出的数据值高字节放入42H
SJMP$
注意:
数据表存放在20H开始的片内存储器中,该存储器应为内部程序存储器,因为查表指令MOVC的功能是从程序存储器中读数据。
10.把长度为10H的字符串从内部数据存储器的输入缓冲区INBUF向设在外部数据存储器的输出缓冲区OUTBUF进行传送,一直进行到遇见回车字符“CR”结束传送或整个字符串传送完毕。
加上必要的伪指令,并对源程序加以注释。
程序如下:
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVR7,#10H ;
数据长度
MOVR0,#INBUF ;
源数据首地址
MOVDPTR,#OUTBUF ;
目的数据首地址
LOOP:
MOVA,@R0 ;
把源数据的值赋给A
CJNE A,#0DH,LOOP1 ;
是“CR”(ASCII码值为0DH)?
SJMP END1 ;
是“CR”,则结束传送
LOOP1:
MOVX@DPTR,A ;
把A的值赋给目的数据
INCR0 ;
源数据下一个地址值
INCDPTR ;
目的数据下一个地址值
DJNZR7,LOOP;
判数据传送是否完毕?
END1:
SJMP END1
12.比较两个ASCII码字符串是否相等。
字符串的长度在内部数据存储器的20H单元,第一个字符串的首地址在内部数据存储器的30H中,第二个字符串的首地址在内部数据存储器的50H中。
如果两个字符串相等,则置用户标志F0为0;
否则置用户标志F0为1。
加上必要的伪指令,并加以注释。
(注:
每个ASCII码字符为一个字节,如ASCII码“A”表示为41H)
【答】字符串中每一个字符都可以用一个ASCII码表示。
只要有一个字符不相同,就可以判断字符串不相等。
ORG0000H’
AJMPMAIN·
MOVR0,#30H第一个字符串的首地址
MOVR1.,#50H第二个字符串的首地址
LOOP:
MOVA,@R0第一个字符串的字符值赋给A
MOVB,@R1;
第二个字符串的字符值赋给B
CJNEA,B,NEXT;
两个字符值比较
INCR0字符值相等,则继续比较
INCR1.
DJNZ20H,LOOP;
判断字符串是否比较完
CLRF0字符串相等,则F0位清0
SJMP$
NEXT:
SETBF0字符串不等,则F0位置1
例如:
(2OH)=03H,(3OH)=41H,(31H)=42H,(32H)=43H,(5OH)=41H,(51H)=
42H,(52H)=43H。
两个字符串均为“ABC"
。
执行结果:
F0=0
14.80C51单片机从内部数据存储器的31H单元开始存放一组8位带符号数,字节个数在30H中。
请编写程序统计出其中正数、零和负数的数目,并把统计结果分别存入20H、21H和22H三个单元中。
分析:
带符号数以字节最高位D7的值来区分是正数(包括零)和负数。
D7=1,则该带符号数为负数。
POS_NUMEQU20H ;
正数个数
ZERO_NUMEQU21H;
零个数
NEG_NUMEQU22H ;
负数个数
ORG0030H
MOV POS_NUM,#0 ;
计数单位初始化为0
MOV ZERO_NUM,#0
MOV NEG_NUM,#0
MOV R1,30H ;
MOV R0,#31H ;
数据首地址
MOV A,@R0
JB ACC.7,INC_NEG ;
符号位为1,该数为负数,跳转加1
CJNE A,#0,INC_POS
INC ZERO_NUM ;
该数为0,0个数加1
AJMPLOOP1
INC_NEG:
INC NEG_NUM ;
负数个数加1
INC_POS:
INC POS_NUM ;
该数为正数,正数个数加1
LOOP1:
INC R0 ;
判断统计是否结束
DJNZ R1,LOOP
END
例如:
已知(30H)=08H,31H单元起存放数据为:
00H,80H,7EH,6DH,2FH,34H,EDH,FFH。
执行结果:
(20H)=04H,(21H)=01H,(22H)=03H。
16.将外部数据存储器的2040H单元中的一个字节拆成2个ASCII码,分别存入内部数据存储器40H和41H单元中,试编写以子程序形式给出的转换程序,说明调用该子程序的入口条件和出口功能。
加上必要的伪指令,并加以注释。
【答】子程序的入口条件、出口功能及源代码如下:
子程序人口条件:
准备拆为2个ASCII码的数存入外部RAM的40H单元中。
子程序出口功能:
完成外部RAM单元一个字节拆成2个ASCII码,分别存入内部数据存储器40H和41H单元中。
ORG1000H
B_TO_A:
MOVDPTR,#40H;
外部RAM40H单元
MOVR0,#40H
MOVXA,@DPTR;
PUSHA
ANLA,#0FH;
低4位转换为ASCII码
LCALL.CHANGE
MOV@RO,A
INCR0
POPA’
SWAPA
高4位转换为ASCII码
LCALLCHANGE
MOV@R0,A
RET
CHANGE:
CJNEA,#0AH,NEXT;
转换子程序
JNCNEXT2;
≥0AH,转移
ADDA,#30H;
≤9,数字0-9转化为ASCII码
NEXT2:
ADDA,#37H;
字母A~F转化为ASCII码
设外部(40H)=12H。
执行程序B_TO_A后:
内部(40H)=31H,(41H)=32H。
设外部RAM(40H)=ABH。
执行程序B_TO_A后,内部(40H)=41H,(41H)=42H。
17.根据8100H单元中的值X,决定P1口引脚输出为:
2X X>
P1= 80H X=0 (-128D≤X≤63D)
X变反 X<
0
SJMPBEGIN
BEGIN:
MOVDPTR,#8100H
MOVXA,@DPTR
MOVR2,A
JBACC.7,SMALLER;
有符号数<
SJMPUNSIGNED;
无符号数≥0
SMALLER:
DECA;
X<
0,输出-X(先减1,再取反)
CPLA
MOVP1,A
SJMPOK
UNSIGNED:
CJNEA,#00H,BIGGER;
不等于0即大于0
MOVP1,#80H;
X等于0,输出80H
SJMPOK
BIGGER:
CLRC;
X大于0,输出A×
RLCA;
A×
OK:
END
输入55H,P1口引脚输出AAH;
输入00H,P1口引脚输出80H;
输入F1(一15的补码),P1口引脚输出0FH。
22.编写求一组无符号数中最小值的子程序,入口条件为:
内部数据存储器的20H和21H中存数据块的起始地址,22H中存数据块的长度,求得的最小值存入30H中。
.
求无符号数最小值的子程序CMPI
ORG2000H
CMPI:
MOVDPL,20H
MOVDPH,21H
MOV30H,#0FFH;
最小值单元初始值设为最大值
MOVXA,@DPTR’
CJNEA,30H,CHK;
比较两个数大小
SJMPLOOP1;
两个数相等,不交换
CHK:
JNCLOOP1;
A较大,不交换
MOV30H,A;
A较小,交换
LOOP1:
INCDPTR
DJNZ22H.LOOP
RET
注意:
30H中始终存放两个数比较后的较小值,比较结束后存放的即是最小值。
(20H)=00H,(21H)=80H.(22H)=05H。
从8000H开始存放下列数:
02H,
04H,01H,FFH,03H。
调用子程序CMPl后的结果:
(30H)=01H
第五章p141
1.什么是中断?
在单片微机中中断能实现哪些功能?
【答】单片机在程序执行过程中,允许外部或内部“事件’’通过硬件打断程序的执行.,使其转向执行处理外部或内部“事件’’的中断服务子程序;
而在完成中断服务子程序以后,继续执行原来被打断的程序,这种情况称为“中断"
,这样的过程称为“中断响应过程"
7.80C51共有哪些中断源?
对其中断请求如何进行控制?
【答】中断响应是有条件的,即:
·
中断源申请中断;
该中断源已被允许中断,且CPU也已允许中断;
没有同级或高优先级中断在执行中断服务程序。
在接受中断申请时,如遇下列情况之一,硬件生成的长调用指令LCALL将被封锁:
①CPU正在执行同级或高一级的中断服务程序。
因为当一个中断被响应时,其对应的中断优先级触发器被置1,封锁了同级和低级中断。
②查询中断请求的机器周期不是执行当前指令的最后一个周期。
目的在于使当前指令执行完毕后,才能进行中断响应,以确保当前指令的完整执行。
③当前正在执行RETI指令或执行对IE、IP的读/写操作指令。
80C51.中断系统的特性规定,在执行完这些指令之后,必须再继续执行一条指令,然后才能响应中断。
12.80C51的中断与子程序调用有哪些异同点,请各举两点加以说明。
①相同点:
⑴ 都是中断当前正在执行的程序,都要通过执行返回指令,返回到原来的程序。
⑵ 都是由硬件自动地把断点地址压入堆栈;
当执行到返回指令时,自动弹出断点地址以便返回原来的程序。
⑶都要通过软件完成现场保护和现场恢复。
⑷ 都可以实现嵌套。
②不同点:
⑴
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浙大 远程 微机 原理 接口 技术 离线 作业
![提示](https://static.bingdoc.com/images/bang_tan.gif)