ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:183.58KB ,
资源ID:23847496      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23847496.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理与接口技术作业解答.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理与接口技术作业解答.docx

1、微机原理与接口技术作业解答浙江大学远程教育学院微机原理与接口技术课程作业姓名:学 号:年级:13春 电气工程学习中心:杭州第二章 P47280C51单片微机芯片引脚第二功能有哪些?答:80C51单片机的P0、P2和P3引脚都具有第二功能。第一功能第二变异功能P0 地址总线A0A7/数据总线D0D7P2 地址总线A8A15P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.20INT(外部中断0)P3.31INT(外部中断1)P3.4T0(定时器/计数器0的外部输入)P3.5T1(定时器/计数器0的外部输出)P3.6WR(外部读写存储器或1/0的写选通)P3.7RD(外部读写存储器或1

2、/0的读选通)480C51存储器在结构上有何特点?在物理上和逻辑上各有哪几种地址空间?访问片内数据存储器和片外数据存储器的指令格式有何区别?答:80C51单片机采用哈佛(Har-yard)结构,即是将程序存储器和数据存储器截然分开,分别进行寻址。不仅在片内驻留一定容量的程序存储器和数据存储器及众多的特殊功能寄存器,而且还具有强的外部存储器扩展能力,扩展的程序存储器和数据存储器寻址范围分别可达64KB。1.在屋里上设有4个存储器空间片内程序存储器;片外程序存储器;片内数据存储器;片外数据存储器。2.在逻辑上设有3个存储器地址空间片内、片外统一的64KB程序存储器地址空间。片内2568(80C52

3、为384B)数据存储器地址空间。片内数据存储器空间,在物理上又又包含两部分:一对于80C51型单片机,从0127字节为片内数据存储器空间;从128255字节为特殊功能寄存器(SFR)空间(实际仅占用了20多个字节)。片外64KB数据存储器地址空间。在访问三个不同的逻辑空间时,应采用不同形式的指令,以产生不同存储空间的选通信号。访问片内RAM采用MOV指令,访问片外RAM则一定要采用MOVX指令,因为MOVX指令会产生控制信号RD或WR,用来访问外RAM。访问程序存储器地址空间,则应采用MOVC指令。680C51片内数据存储器低128个存储单元划分为哪4个主要部分?各部分主要功能是什么?答:80

4、C51片内RAM的低128个存储单元划分为4个主要部分:寄存器区:共4组寄存器,每组8个存储单元,各组以R0R7作为单元编号。常用于保存操作数及中间结果等等。R0R7也称为通用寄存器,占用00H1FH共32个单元地址。位寻址区:20H2FH,既可作为一般RAM单元使用,按字节进行操作,也可以对单元中的每一位进行位操作,称为位寻址区。寻址区共有16个RAM单元,共计128位,位地址为00H7FH。堆栈区:设置在用户RAM区内。用户RAM区:在内部RAM低128单元中,除去前面3个区,剩下的所有单元。第三章P879MOV、MOVC、MOVX 指令有什么区别,分别用于那些场合,为什么?答:MOV指令

5、用于对内部RAM的访问。MOVC指令用于对程序存储器的访问,从程序存储器中读取数据(如表格、常数等)。MOVX指令采用间接寻址方式访问外部数据存储器或I/O,有Ri和DPTR两种间接寻址方式。MOVX指令执行时,在P3.7引脚上输出RD有效信号或在P3.6引脚上输出WR有效信号,可以用作外部数据存储器或1/0的读或写选通信号。 15已知(R1)=20H,(20H)=AAH,请写出执行完下列程序段后A的内容。MOV A,#55HANL A,#0FFHORL 20H,AXRL A,R1CPL A答:各指令执行结果如下:MOVA,#55H;(A)=55HANLA,#OFFH;(A)=55HORL20

6、H,A;(20H)=FFHXRLA,R1;(A)=AAHCPLA;(A)=55H执行完程序段后,A的内容为55H。16阅读下列程序,说明其功能。MOV R0,#30H MOV A,R0 RL A MOV R1,ARL A RL A ADD A,R1MOV R0,A 答对应程序注释如下:MOVR0,#30H:(R0)=30HMOVA,R0:取数RLA:(A)2MOVR1,ARLA:(A)4RLA:(A)8ADDA,R1:(A)10MOVR0,A:存数功能:将30H中的数乘以10以后再存回30H中。条件:30H中的数不能大于25,2510=250仍为一个字节。若30H中的数大于25,则应考虑进位。

7、17. 已知两个十进制数分别从内部数据存储器中的40H单元和50H单元开始存放(低位在前),其字节长度存放在内部数据存储器的30H单元中。编程实现两个十进制数求和,并把和的结果存放在内部数据存储器40H开始的单元中。 答:程序如下:ORG 0000HSJMP MAINORG 0030HMAIN:MOV R0,#40H;被加数首址,又作两个十进制数的首址MOV R1,#50H;加数首址MOV R2,30H;字节长度CLR CPP: MOV A,R1;取加数ADDC A,R0;带进位加DA A;二一十进制数调整MOV R0,A;存和INC R0; 修正地址INC R1DJNZ R2,PP:多字节循

8、环加AJMP $END21读程序,请画出P1.0P1.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 MLP2MOV 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: ;

9、 延时50ms子程序(略) RET答:程序功能:P1.0P1.3引脚上的波形图如下图1所示:图1P1.0P1.3引脚上的波形图注释见如下所述:ORG0000HSTART:MOVSP,#20HMOV30H,#01HMOVP1,#01H:P1.0P1.3引脚输出波形MLP0:ACALLD50ms:软件延时50msMOVA,30H CJNEA,A+DPTR:判表格中的数据是否取完?MOVA,#01H:取完,从表头开始取MOVDPTR,#1TAB:表格首地址MLP2:MOV30H,AMOVCA,A+DPTR:取表格中数据MOVP1,ASJMPMLP0MLP1:INCA:表格中数据未取完,准备取下一个S

10、JMPMLP2ITAB:DB0,1,2,4,8:表DB8,4,2,1D50ms:.:软件延时50ms子程序RET第四章P1236 根据运算结果给出的数据到指定的数据表中查找对应的数据字。 运算结果给出的数据在片内数据存储器的40H单元中,给出的数据大小在000FH之间,数据表存放在20H开始的片内程序存储器中。查表所得数据字(为双字节、高位字节在后)高位字节存于 42H、低位字节存于41H单元。其对应关系为: 给出数据;00 01 02 0DH 0EH 0FH 对应数据:00A0H 7DC2H FF09H 3456H 89ABH 5678H请编制查表程序段,加上必要的伪指令,并加以注释。答:程

11、序如下:ORG 0000HAJMP MAINORG 0020HTAB: DB 0A0H,00H,0C2H,7DH,09H,0FFH,56H,34H,0,ABH,89H,DB,78H,56H,数据字表ORG 0050HMAIN: MOV A,40H;运算结果给出的数据放在40H中MOV DOTR,#TAB;指向数据字表首地址RL A;由于是双字节,所以A左移一位(乘2)MOV 40H,A;结果放在40HMOVC A;A+DPTR;查表,找出对应的值MOV 41H,A;查找出的数据值低字节放入41HMOV A,40HADD A,#01H;查找数据的高位字节MOV DPTR,#TABMOVC A,A

12、+DPTRMOV 42H,A。;查找出的数据值高字节放入42HSJMP$注意:数据存表放在20H开始的片内存储器中,该存储器应为内部程序存储器,因为查表指令MOVC的功能是从程序存储器中读数据。10. 把长度为10H的字符串从内部数据存储器的输入缓冲区INBUF向设在外部数据存储器的输出缓冲区OUTBUF进行传送,一直进行到遇见回车字符“CR”结束传送或整个字符串传送完毕。加上必要的伪指令,并对源程序加以注释。答:程序如下:ORG0000HAJMPMAINORG0030HMAIN:MOVR7,#10H;数据长度MOVR0,#INBUF;源数据首地址MOVDPTR,#OUTBUF;目的数据首地址

13、LOOP:MOVA,R0;把源数据的值赋给ACJNEA,#0DH,LOOP1;是“CR”(ASCII码值为ODH)? SJMPEND1;是“CR”,则结束传送LOOP1:MOVXDPTR,A;把A的值赋给目的数据INCRO;源数据下一个地址值INCDPTR;目的数据下一个地址值DJNZR7,LOOP;判数据传送是否完毕?END1:SJMPEND112比较两个ASCII码字符串是否相等。字符串的长度在内部数据存储器的20H单元,第一个字符串的首地址在内部数据存储器的30H中,第二个字符串的首地址在内部数据存储器的50H中。如果两个字符串相等,则置用户标志F0为0;否则置用户标志F0为1。 加上必

14、要的伪指令,并加以注释。(注:每个ASCII码字符为一个字节,如ASCII码“A”表示为41H)【答】字符串中每一个字符都可以用一个ASCII码表示。只要有一个字符不相同,就可以判断字符串不相等。ORG0000HAJMPMAINORG0030HMAIN:MOVR0,#30H第一个字符串的首地址MOVR1,#50H第二个字符串的首地址LOOP:MOVA,R0第一个字符串的字符值赋给AMOVB,R1;第二个字符串的字符值赋给BCJNEA,B,NEXT;两个字符值比较INCR0字符值相等,则继续比较INCR1DJNZ20H,LOOP判断字符串是否比较完CLRF0字符串相等,则F0位清0SJMP$NE

15、XT:SETBF0字符串不等,则F0位置1SJMP$END例如:(2OH)=03H,(3OH)=41H,(31H)=42H,(32H)=43H,(5OH)=41H,(51H)=42H,(52H)=43H。两个字符串均为“ABC。执行结果:F0=014. 80C51单片机从内部数据存储器的31H单元开始存放一组8位带符号数,字节个数在30H中。请编写程序统计出其中正数、零和负数的数目,并把统计结果分别存入20H、21H和22H三个单元中。加上必要的伪指令,并对源程序加以注释。答:分析:带符号数以字节最高位D7的值来区分是正数(包括零)和负数。D7=1,则该带符号数为负数。程序如下:POS_NUM

16、EQU20H;正数个数ZERO_NUMEQU21H;零个数NEG_NUMEQU22H;负数个数ORG0000HAJMPMAINORG0030HMAIN:MOVPOS_NUM,#0;计数单位初始化为0MOVZERO_NUM,#0MOVNEG_NUM,#0MOVR1,30H;数据长度MOVR0,#31H;数据首地址LOOP:MOVA,R0JBACC.7,INC_NEG;符号位为,该数为负数,跳转加1CJNEA,#0,INC_POS INCZERO_NUM;该数为0,0个数加1AJMPLOOP1INC_NEG:INCNEG_NUM;负数个数加1AJMPLOOP1INC_POS:INC POS_NUM

17、;该数为正数,正数个数加1LOOP1:INCR0;判断统计是否结束DJNZR1,LOOPEND例如:已知(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码的数存入外部RA

18、M的40H单元中。子程序出口功能:完成外部RAM单元一个字节拆成2个ASCII码,分别存入内部数据存储器40H和41H单元中。 ORG1000H B_TO_A:MOVDPTR,#40H;外部RAM40H单元MOVR0,#40H MOVXA,DPTR;取数PUSHA ANLA,#0FH;低4位转换为ASCII码LCALLCHANGEMOVRO,AINCR0 POPASWAPA ANLA,#0FH;高4位转换为ASCII码LCALLCHANGEMOVR0,ARET CHANGE:CJNEA,#0AH,NEXT;转换子程序NEXT:JNCNEXT2;0AH,转移 ADDA,#30H;9,数字0-9转

19、化为ASCII码RET NEXT2:ADDA,#37H;字母AF转化为ASCII码RETEND 设外部(40H)=12H。 执行程序B_TO_A后:内部(40H)=31H,(41H)=32H。设外部RAM(40H)=ABH。执行程序B_TO_A后,内部(40H)=41H,(41H)=42H。 17根据8100H单元中的值X,决定P1口引脚输出为:2X X0 P1= 80H X=0 (128DX63D) X变反 X0 【答】程序如下:ORG0000HSJMPBEGINORG0030HBEGIN:MOVDPTR,#8100HMOVXA,DPTRMOVR2,AJBACC.7,SMALLER;有符号数

20、0SJMPUNSIGNED;无符号数0SMALLER:DECA;X0,输出-X(先减1,再取反)CPLAMOVP1,ASJMPOKUNSIGNED:CJNEA,#00H,BIGGER;不等于0即大于0MOVP1,#80H;X等于0,输出80HSJMPOKBIGGER:CLRC;X大于0,输出A2RLCA;A2MOVP1,AOK:SJMP$END例如:输入55H,P1口引脚输出AAH;输入00H,P1口引脚输出80H;输入F1(一15的补码),P1口引脚输出0FH。22. 编写求一组无符号数中最小值的子程序,入口条件为:内部数据存储器的20H和21H中存数据块的起始地址,22H中存数据块的长度,

21、求得的最小值存入30H中。【答】程序如下:;求无符号数最小值的子程序CMPIORG2000HCMPI:MOVDPL,20HMOVDPH,21H MOV30H,#0FFH;最小值单元初始值设为最大值LOOP:MOVXA,DPTR MOVXA,DPTR CJNEA,30H,CHK;比较两个数大小SJMPLOOP1;两个数相等,不交换CHK:JNCLOOP1;A较大,不交换MOV30H,A;A较小,交换LOOP1:INCDPTR DJNZ22HLOOPRET注意:30H中始终存放两个数比较后的较小值,比较结束后存放的即是最小值。例如:(20H)=00H,(21H)=80H(22H)=05H。从800

22、0H开始存放下列数:02H,04H,01H,FFH,03H。调用子程序CMPl后的结果:(30H)=01H第五章 p1411什么是中断?在单片微机中中断能实现哪些功能?【答】单片机在程序执行过程中,允许外部或内部“事件通过硬件打断程序的执行,使其转向执行处理外部或内部“事件的中断服务子程序;而在完成中断服务子程序以后,继续执行原来被打断的程序,这种情况称为“中断,这样的过程称为“中断响应过程780C51共有哪些中断源?对其中断请求如何进行控制? 【答】中断响应是有条件的,即:中断源申请中断;该中断源已被允许中断,且CPU也已允许中断;没有同级或高优先级中断在执行中断服务程序。在接受中断申请时,

23、如遇下列情况之一,硬件生成的长调用指令LCALL将被封锁:CPU正在执行同级或高一级的中断服务程序。因为当一个中断被响应时,其对应的中断优先级触发器被置1,封锁了同级和低级中断。查询中断请求的机器周期不是执行当前指令的最后一个周期。目的在于使当前指令执行完毕后,才能进行中断响应,以确保当前指令的完整执行。当前正在执行RETI指令或执行对IE、IP的读写操作指令。80C51中断系统的特性规定,在执行完这些指令之后,必须再继续执行一条指令,然后才能响应中断。1280C51的中断与子程序调用有哪些异同点,请各举两点加以说明。相同点:都是中断当前正在执行的程序,都要通过执行返回指令,返回到原来的程序。都是由硬件自

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1