浙大远程微机原理与接口技术离线作业答案2.doc_第1页
浙大远程微机原理与接口技术离线作业答案2.doc_第2页
浙大远程微机原理与接口技术离线作业答案2.doc_第3页
浙大远程微机原理与接口技术离线作业答案2.doc_第4页
浙大远程微机原理与接口技术离线作业答案2.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江大学远程教育学院微机原理与接口技术课程作业答案第2章 p52280c51单片机引脚有哪些第二功能?【答】80c51单片机的p0、p2和p3引脚都具有第二功能。第一功能第二变异功能p0口地址总线a0a7/数据总线d0d7p2口地址总线a8a15p3.0 rxd (串行输入口)p3.1 txd (串行输出口)p3.2 (外部中断0)p3.3 (外部中断1)p3.4 t0 (定时器/计数器0的外部输入)p3.5 t1 (定时器/计数器0的外部输出)p3.6 (外部读写存储器或i/o的写选通)p3.7 (外部读写存储器或i/o的读选通)480c51单片机的存储器在结构上有何特点?在物理上和逻辑上各有哪几种地址空间?访问片内ram和片外ram的指令格式有何区别?【答】80c51单片机采用哈佛(haryard)结构,即是将程序存储器和数据存储器截然分开,分别进行寻址。不仅在片内驻留一定容量的程序存储器和数据存储器及众多的特殊功能寄存器,而且还具有强的外部存储器扩展能力,扩展的程序存储器和数据存储器寻址范围分别可达64kb。在物理上设有4个存储器空间l 片内程序存储器;l 片外程序存储器;l 片内数据存储器;l 片外数据存储器。在逻辑上设有3个存储器地址空间l 片内、片外统一的 64 kb程序存储器地址空间。l 片内256b(80c52为384 b)数据存储器地址空间。 片内数据存储器空间,在物理上又包含两部分: 对于80c51型单片机,从0127 字节为片内数据存储器空间;从128255 字节为特殊功能寄存器(sfr)空间(实际仅占用了20多个字节)。l 片外64 kb的数据存储器地址空间。在访问三个不同的逻辑空间时,应采用不同形式的指令,以产生不同存储空间的选通信号。访问片内ram采用mov指令,访问片外ram则一定要采用movx指令,因为movx指令会产生控制信号或,用来访问片外ram。访问程序存储器地址空间,则应采用movc指令。680c51单片机片内ram低128个存储单元划分为哪4个主要部分?各部分主要功能是什么? 【答】80c51片内ram的低128个存储单元划分为4个主要部分:l 寄存器区:共4组寄存器,每组8个存储单元,各组以r0r7作为单元编号。常用于保存操作数及中间结果等等。r0r7也称为通用寄存器,占用00h1fh共32个单元地址。l 位寻址区:20h2fh,既可作为一般ram单元使用,按字节进行操作,也可以对单元中的每一位进行位操作,称为位寻址区。寻址区共有16个ram单元,共计128位,位地址为00h7fh。l 堆栈区:设置在用户ram区内。l 用户ram区:在内部ram低128单元中,除去前面3个区,剩下的所有单元。13程序存储器指令地址、堆栈地址和外接数据存储器地址各使用什么指针?为什么?【答】程序存储器指令地址使用程序计数器pc指针,pc中存放的是下一条将要从程序存储器中取出的指令的地址。程序计数器pc变化的轨迹决定程序的流程。pc的最基本的工作方式是自动加1。在执行条件转移或无条件转移指令时,将转移的目的地址送入程序计数器,程序的流向发生变化。在执行调用指令或响应中断时,将子程序的入口地址或者中断矢量地址送入pc,程序流向发生变化。堆栈地址使用堆栈指示器sp,sp在80c51中存放当前的堆栈栈顶所指存储单元地址,是一个8位寄存器,对数据按照“先进后出”原则进行管理。外接数据存储器地址使用数据指针dptr,是一个16位的特殊功能寄存器,主要功能是作为片外数据存储器或i/o寻址用的地址寄存器,这时会产生或控制信号,用于单片机对外扩的数据存储器或i/o的控制。数据指针dptr也可以作为访问程序存储器时的基址寄存器,这时寻址程序存储器中的表格、常数等单元,而不是寻址指令。第3章p939mov、movc、movx 指令有什么区别,分别用于那些场合,为什么?【答】mov指令用于对内部ram的访问。movc指令用于对程序存储器的访问,从程序存储器中读取数据(如表格、常数等)。movx指令采用间接寻址方式访问外部数据存储器,有ri和dptr两种间接寻址方式。movx指令执行时,在p3.7引脚上输出有效信号或在p3.6引脚上输出有效信号,可以用作外部数据存储器或i/o的读或写选通信号,与单片机扩展电路有关。15已知(r1)=20h,(20h)=aah,请写出执行完下列程序段后a的内容。mov a,#55hanl a,#0ffhorl20h,axrl a,r1cpla【答】各指令执行结果如下:mov a,#55h;(a)=55hanl a,#0ffh;(a)=55horl20h,a;(20h)=ffhxrl a,r1;(a)=aahcpla;(a) =55h执行完程序段后,a的内容为55h。16阅读下列程序,说明其功能。movr0,#30h mova,r0 rla movr1,arlarlaadda,r1movr0,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,则应考虑进位。21读下列程序,请完成下列任务:画出p1.0p1.3引脚上的波形图,并标出电压v时间t坐标。 对源程序加以注释。 org0000hstart:movsp,#20hmov30h,#01hmovp1,#01hmlp0:acalld50msmova,30hcjnea,#08h,mlp1mova,#01h movdptr,#itabmlp2mov30h,amovca,a+dptrmovp1,asjmpmlp0mlp1:incasjmpmlp2itab:db0,1,2,4,8 db8,4,2,1d50ms:ret【答】程序功能:p1.0p1.3引脚上的波形图如图3-2所示。图3-2p1.0p1.3引脚上的波形图注释见源程序右边所述。org0000hstart:movsp,#20hmov30h,#01hmovp1,#01h ;p1.0p1.3引脚输出波形mlp0:acalld50ms;软件延时50msmova,30hcjnea,#08h,mlp1;判表格中数据是否取完?mova,#01h ;取完,从表头开始取movdptr,#itab;表格首地址mlp2mov30h,amovca,a+dptr;取表格中数据movp1,asjmpmlp0mlp1:inca;表格中数据未取完,准备取下一个sjmpmlp2itab:db0,1,2,4,8;表 db8,4,2,1d50ms:;软件延时50ms子程序ret第4章p13210. 把长度为10h的字符串从内部ram的输入缓冲区inbuf向设在外部ram的输出缓冲区outbuf进行传送,一直进行到遇见字符“cr”时停止,如字符串中无字符“cr”,则整个字符串全部传送。加上必要的伪指令,并对源程序加以注释。【答】程序如下:org 0000hajmp main org 0030hmain:mov r7,#10h ;数据长度 mov r0,#inbuf ;源数据首地址 mov dptr,#outbuf;目的数据首地址loop: mov a,r0 ;把源数据的值赋给acjnea,#0dh,loop1;是“cr”(ascii码值为0dh) ?sjmpend1;是“cr”,则结束传送loop1:movx dptr,a ;把a的值赋给目的数据 inc r0 ;源数据下一个地址值 inc dptr ;目的数据下一个地址值 djnz r7,loop ;判数据传送是否完毕?end1:sjmp end114. 80c51单片机从内部ram的31h单元开始存放一组8位带符号数,字节个数在30h中。请编写程序统计出其中正数、零和负数的数目,并把统计结果分别存入20h、21h和22h三个单元中。加上必要的伪指令,并对源程序加以注释。【答】分析:带符号数以字节最高位d7的值来区分是正数(包括零)和负数。d7=1,则该带符号数为负数。程序如下: pos_num equ 20h;正数个数 zero_num equ 21h ;零个数 neg_num equ 22h ;负数个数org 0000hajmp mainorg 0030hmain: mov pos_num,#0;计数单位初始化为0movzero_num,#0movneg_num,#0 movr1,30h ;数据长度movr0,#31h ;数据首地址loop: mova,r0 jbacc.7, inc_neg;符号位为,该数为负数,跳转加1cjnea,#0,inc_pos inczero_num ;该数为0,0个数加1ajmp loop1inc_neg: incneg_num;负数个数加1ajmp loop1inc_pos: incpos_num;该数为正数,正数个数加1loop1: incr0;判断统计是否结束djnzr1,loop end 例如:已知(30h)=08h,31h单元起存放数据为:00h,80h,7eh,6dh,2fh,34h,edh,ffh。执行结果:(20h)=04h,(21h)=01h,(22h)=03h。15. 两个10位的无符号二一十进制数,分别从内部ram的40h单元和50h单元开始存放。请编程计算该两个数的和,并从内部ram的60h单元开始存放。加上必要的伪指令,并对源程序加以注释。【答】分析:10位的无符号二一十进制数,占5个字节,每个字节存放一个压缩bcd码(2位)。org 0000hajmp main org 0030hmain:movr7,#05h;十位(5个字节)计数movr0,#40h;被加数首址movr1,#50h;加数首址movr2,#60h;和数首址clrc;清c标志位addb:mova,r0addca,r1da a;二十进制调整movb,r0;保护被加数地址mov20h,r2movr0,20hmovr0,a;存和movr2,20h;恢复和数地址movr0,b;恢复被加数地址incr0;三个地址指针均加incr1incr2djnzr7,addb;多字节加未结束,则循环here:sjmphereend注意:寄存器间接寻址只针对r0和r1,所以存和时不能使用指令movr2,a。例如:40h44h内容为78h,10h,10h,10h,10h50h54h内容为42h,10h,10h,10h,10h即bcd数 1 0 1 0 1 0 1 0 7 8 1 0 1 0 1 0 1 0 4 22 0 2 0 2 0 2 1 2 0运行结果:60h64h单元中的数为20h,21h,20h,20h,20h第6章 p177 4. 请编程实现80c51单片机产生频率为100khz等宽矩形波(定时器/计数器t0,方式0,定时器中断),假定80c51的晶振频率为12mhz。加上必要的伪指令,并对源程序加以注释。【答】分析:100khz等宽矩形波,周期为10s,定时周期为5s,机器周期为1s。计算:tc=213(121065106)12=8187=1ffbh方式0:定时常数 tch=ffh,tcl=1bh。 org0000h0000 0130 ajmpmainorg000bh;定时器t0中断矢量000b 0141 ajmpinter org0030h0030 758900 main:mov tmod,#00h ;写控制字,设t0为定时器,方式00033 758cff mov th0,#0ffh ;写定时常数,定时为5s0036 758a1b mov tl0,#1bh0039 d28c setb tr0 ;开启定时器t0003b d2a9 setb et0 ;开定时器t0中断003d d2af setb ea ;开中断003f 013f ajmp $;中断等待;定时器t0中断0041 758cff inter: mov th0,#0ffh ;重写定时常数0044 758a1b mov tl0,#1bh0047 b290 cpl p1.0 ;p1口作为输出端,变反输出0049 32 reti ;中断返回end第8章 p2792. 如何构造80c51单片机并行扩展的系统总线?【答】80c51并行扩展的系统总线有三组。地址总线(a0a15):由p0口提供低8位地址a0a7,p0口输出的低8位地址a0a7必须用锁存器锁存,锁存器的锁存控制信号为单片机引脚ale输出的控制信号。由p2口提供高8位地址a8a15。数据总线(d0d7):由p0口提供,其宽度为8位,数据总线要连到多个外围芯片上,而在同一时间里只能够有一个是有效的数据传送通道。哪个芯片的数据通道有效,则由地址线控制各个芯片的片选线来选择。控制总线(cb):包括片外系统扩展用控制线和片外信号对单片机的控制线。系统扩展用控制线有ale、。8. 外接程序存储器的读信号为 ,外接数据存储器的读信号为 。【答】外接程序存储器的读信号为 ,外接数据存储器的读信号为 。14. 已知可编程i/o接口芯片8255a的控制寄存器的地址为bfffh,要求设定a口为基本输入,b口为基本输出,c口为输入方式。请编写从c口读入数据后,再从b口输出的程序段。并根据要求画出80c51与8255a连接的逻辑原理图。加上必要的伪指令,并对源程序加以注释。【答】已知8255a的控制寄存器地址为bfffh,若地址线a0、a1被用做8255a端口选择信号,则8255a的 c口地址为bffeh,b口地址为bffdh,a口地址为bffch。可以选用地址线p2.6(a14)作8255a的片选线。8255a 与80c51连接图如图8-7所示。图8-7 8255a 与80c51连接图程序如下:org0000hmovdptr,#0bfffh;8255a控制寄存器地址mova,#99hmovxdptr,a;控制字(pa输入、pb输出、pc输入)movdptr,#0bffeh;c口地址movxa,dptr;pc输入movdptr,#0bffdh;b口地址movxdptr,a;pb输出 22. 利用adc0809芯片设计以80c51为控制器的巡回检测系统。请画出电路连接图,并编写进行某一路模拟量转换的源程序。加上必要的伪指令,并对源程序加以注释。【答】巡回检测系统如图8-11所示。图8-11巡回检测系统分析:8路模拟输入通道in0-in7的地址为dff8hdfffh(p2.5=0)。org 0000hajmp mainorg 0030hmain: mov dptr,#0dff8h ;通道0地址mov r0,#40h ;存储单元首址 loop:movx dptr,a ;启动a/d转换 lcall d128s ;延时等待完成 movx a,dptr ;读入转换值 mov r0,a ;存入内存 d128s: ;延时128s子程序 retend微机原理与接口技术实验作业答案第一部分 简答题1. 80c51单片微机内部有哪几个常用的地址指针,它们各有什么用处。【答】80c51单片微机内部有三个常用的指针,即 pc-程序计数器,存放下一条将要从程序存储器取出的指令的地址。 sp-堆栈指示器,指向堆栈栈顶。 dptr-数据指针,作为外部数据存储器或i/o的地址指针。2.简述80c51的程序状态字psw的主要功能。答:psw的主要部分是算术逻辑运算单元alu的输出。有些位根据指令运算结果,由硬件自动生成。如ov为溢出标志位,用于指示8位带符号数运算后有否超出8位带符号数允许范围。c标志为进位/借位标志位。多倍精度的加减法运算。3.80c51访问片内外不同存储空间时采用哪3类传送指令。答:mov传送指令用于访问片内数据存储器。movc传送指令用于对程序存储器内的表格进行查表操作。movx传送指令用于访问片外数据存储器或i/o,因为执行movx指令时会产生控制信号或。 4. 简述80c51单片微机内部ram低128字节4个主要区域的特点。答:寄存器区:共4组寄存器,每组8个存储单元,各组以r0r7作为单元编号。位寻址区:20h2fh中的每一位进行位操作。堆栈区:设置在用户ram区内,数据先进后出。用户ram区:除去前面3个区,剩下的所有单元。5. 简述80c51单片微机的并行扩展三总线(ab、db和cb)如何构成及应用。答: ab共16位,由p0口经锁存后得到a0-a7、p2口构成a8-a15。作地址总线。db由p0口分时构成。作数据总线。cb主要有ale、/rd、/wr、/psen等。作控制总线。6. 为什么要进行低功耗设计? 答:原因如下: 实现绿色电子,节约能源。 某些场合(如野外)、某些便携式仪器、仪表要求由电池供电,要求功耗小。 能提高应用系统可靠性,因为进入低功耗后,单片微机对干扰往往不敏感。7.说明80c51单片微机的复位方式主要有哪几种。答:主要有上电复位方式、按键电平复位方式和外脉冲复位方式。 8. 80c51芯片内部主要集成逻辑功能部件有哪些?答:有中央处理器、存储器、定时器/计数器、i/o口等。9. 80c51的程序存储器中有几个特定地址。答:0000h为复位后pc初始值,0003h为外部中断0中断矢量地址,000bh为t0中断矢量地址,0013h为外部中断1中断矢量地址,001bh为t1中断矢量地址和0023h为串行口中断矢量地址。10. 请简述如何在实验室完成实验任务,使用哪些资源?答:仿真软件由wave的编辑软件及micetek公司的easyprobe8052f仿真软件组成,自编源程序在pc上进行编辑、编译以及将编译通过后所生成的后缀名为hex的机器码文件,通过rs232串行口下载给仿真器,仿真器采用micetek公司的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论