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

更新时间:2023-09-10 01:59:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

浙江大学远程教育学院 《微机原理与接口技术》课程作业

姓名: 年级:

13春 电气工程

学 号: 学习中心:

杭州

————————————————————————————— 第二章 P47

2.80C51单片微机芯片引脚第二功能有哪些? 答:80C51单片机的P0、P2和P3引脚都具有第二功能。 第一功能 第二变异功能

P0 地址总线A0~A7/数据总线D0~D7 P2 地址总线A8~A15 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 0INT(外部中断0) P3.3 1INT(外部中断1)

P3.4 T0(定时器/计数器0的外部输入) P3.5 T1(定时器/计数器0的外部输出) P3.6 WR(外部读写存储器或1/0的写选通) P3.7 RD(外部读写存储器或1/0的读选通)

4.80C51存储器在结构上有何特点?在物理上和逻辑上各有哪几种地址空间?

访问片内数据存储器和片外数据存储器的指令格式有何区别?

答:80C51单片机采用哈佛(Har-yard)结构,即是将程序存储器和数据存储器截然分开,

分别进行寻址。不仅在片内驻留一定容量的程序存储器和数据存储器及众多的特殊功能寄存器,而且还具有强的外部存储器扩展能力,扩展的程序存储器和数据存储器寻址范围分别可达64KB。

1. 在屋里上设有4个存储器空间 ● 片内程序存储器; ● 片外程序存储器; ● 片内数据存储器; ● 片外数据存储器。

2. 在逻辑上设有3个存储器地址空间

● 片内、片外统一的64KB程序存储器地址空间。 ● 片内2568(80C52为384 B)数据存储器地址空间。 片内数据存储器空间,在物理上又又包含两部分:

一对于80C51型单片机,从0~127字节为片内数据存储器空间;从128~255字节为特殊功能寄存器(SFR)空间(实际仅占用了20多个字节)。 ● 片外64KB 数据存储器地址空间。

在访问三个不同的逻辑空间时,应采用不同形式的指令,以产生不同存储空间的选通信号。

访问片内RAM采用MOV指令,访问片外RAM则一定要采用MOVX指令,因为MOVX指令会产生控制信号RD或WR,用来访问外RAM。访问程序存储器地址空间,则应采用MOVC指令。

6.80C51片内数据存储器低128个存储单元划分为哪4个主要部分?各部分主

要功能是什么?

答:80C51片内RAM的低128个存储单元划分为4个主要部分:

● 寄存器区:共4组寄存器,每组8个存储单元,各组以R0~R7作为单元编号。常用

于保存操作数及中间结果等等。R0~R7也称为通用寄存器,占用00H~1FH共32个单元地址。

● 位寻址区:20H~2FH,既可作为一般RAM单元使用,按字节进行操作,也可以对单

元中的每一位进行位操作,称为位寻址区。寻址区共有16个RAM单元,共计128位,位地址为00H~7FH。

● 堆栈区:设置在用户RAM区内。

● 用户RAM区:在内部RAM低128单元中,除去前面3个区,剩下的所有单元。

第三章P87

9.MOV、MOVC、MOVX 指令有什么区别,分别用于那些场合,为什么?

答:MOV指令用于对内部RAM的访问。

MOVC指令用于对程序存储器的访问,从程序存储器中读取数据(如表格、常数等)。 MOVX指令采用间接寻址方式访问外部数据存储器或I/O,有Ri和DPTR两种间接寻址方式。MOVX指令执行时,在P3.7引脚上输出RD有效信号或在P3.6引脚上输出WR有效信号,可以用作外部数据存储器或1/0的读或写选通信号。

15.已知(R1)=20H,(20H)=AAH,请写出执行完下列程序段后A的内容。

MOV A,#55H ANL A,#0FFH ORL 20H,A XRL A,@R1 CPL A

答: 各指令执行结果如下:

MOV A, #55H ; (A)=55H

ANL A, #OFFH ; (A)=55H ORL 20H, A ; (20H)=FFH XRL A , @R1 ; (A)=AAH CPL A ; (A) = 55H

执行完程序段后,A的内容为55H。

16.阅读下列程序,说明其功能。

MOV R0,#30H MOV A,@R0 RL A

MOV R1,A RL A RL A ADD A,R1

MOV @R0,A

答 对应程序注释如下: MOV R0,#30H :(R0) =30H MOV A,@R0 : 取数 RL A :(A)×2 MOV R1,A RL A :(A)×4 RL A :(A)×8 ADD A,R1 :(A)×10

MOV @R0,A : 存数

功能:将30H中的数乘以10以后再存回30H中。

条件:30H中的数不能大于25,25×10=250仍为一个字节。若30H中的数大于25,则应考虑进位。

17. 已知两个十进制数分别从内部数据存储器中的40H单元和50H单元开始存放(低位在前),其字节长度存放在内部数据存储器的30H单元中。编程实现两

个十进制数求和,并把和的结果存放在内部数据存储器40H开始的单元中。 答:程序如下: ORG 0000H SJMP MAIN ORG 0030H MAIN:

MOV R0,#40H;被加数首址,又作两个十进制数的首址 MOV R1,#50H;加数首址 MOV R2,30H;字节长度 CLR C

PP: MOV A,@R1;取加数 ADDC A,@R0;带进位加 DA A;二一十进制数调整 MOV @R0,A;存和 INC R0; 修正地址 INC R1

DJNZ R2,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引脚上的波形图如下图1所示:

图1 P1.0~P1.3引脚上的波形图

② 注释见如下所述: ORG 0000H

START: MOV SP, #20H

MOV 30H, #01H

MOV P1, #01H: P1.0~P1.3引脚输出波形

MLP0: ACALL D50ms : 软件延时50ms

MOV A,30H

CJNE A, @A+DPTR : 判表格中的数据是否取完?

MOV A,#01H :取完,从表头开始取 MOV DPTR,#1TAB :表格首地址

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

第四章P123

6 .根据运算结果给出的数据到指定的数据表中查找对应的数据字。

运算结果给出的数据在片内数据存储器的40H单元中,给出的数据大小在00~0FH之间,数据表存放在20H开始的片内程序存储器中。查表所得数据字(为双字节、高位字节在后)高位字节存于 42H、低位字节存于41H单元。其对应关系为:

给出数据;00 01 02…… 0DH 0EH 0FH 对应数据:00A0H 7DC2H FF09H 3456H 89ABH 5678H

请编制查表程序段,加上必要的伪指令,并加以注释。 答:程序如下: ORG 0000H AJMP MAIN ORG 0020H

TAB: DB 0A0H,00H,0C2H,7DH,09H,0FFH,…,56H,34H,0,ABH,89H,DB,78H,56H,数据字表

ORG 0050H

MAIN: MOV A,40H;运算结果给出的数据放在40H中 MOV DOTR,#TAB;指向数据字表首地址

RL A;由于是双字节,所以A左移一位(乘2) MOV 40H,A;结果放在40H

MOVC A;@A+DPTR;查表,找出对应的值 MOV 41H,A;查找出的数据值低字节放入41H MOV A,40H

ADD A,#01H;查找数据的高位字节 MOV DPTR,#TAB MOVC A,@A+DPTR

MOV 42H,A。;查找出的数据值高字节放入42H SJMP$

注意:数据存表放在20H开始的片内存储器中,该存储器应为内部程序存储器,因为查表指令MOVC的功能是从程序存储器中读数据。

10. 把长度为10H的字符串从内部数据存储器的输入缓冲区INBUF向设在外部数据存储器的输出缓冲区OUTBUF进行传送,一直进行到遇见回车字符“CR”结束传送或整个字符串传送完毕。加上必要的伪指令,并对源程序加以注释。

答: 程序如下: ORG 0000H AJMP MAIN

003A C28E CLR,TR1

003C D2A9 SETB ET0E ;开定时器 TLO中断 003E D2AF SETB EA

0040 80FE SJMP$ ;中断等待 ORG 0100H0 TIME:

0100 758A38 MOV TL0,#38H ;TL0T 定时 400~s

0103 B29B 1 CPL P1.1 ;4004 μs 定时到,P1.1P1 输出变反 0105 D804 DJNZ R0,RETURN 0107 7805 MOV R0,#05H

0109 B290 CP[. P1.0 ;4004 μs*5=2ms 到,P1.O 输出变反 RETURN:

010B 32 RETI END

14. 监视定时器T3功能是什么?它与定时器/计数器T0、T1有哪些区别? 答:T3 俗称“看门狗\,它的作用是强迫单片机进入复位状态,使之从硬件或软件故障中解脱出来。 在实际应用中,由于现场的各种的干扰或者程序设计程序错误,可能使单片机的程序进入了“死循环\或\程序区\如表格数据区)之后,在一段设定的时间内的 ,假如用户程序没有重装监视重装定时器 T3,则监视电路将产生一个电路将产生 系统复位信号位 ,强迫单片机单退出“死循环\或“非程序区程”,重新进行“冷启动”或“热启动”。 在程序正常运行时,需要不断地对 T3 进行“喂狗”,当由于干扰而没能及时能“喂 狗\,则强迫单片机进入复位状态,从而退出非正常运行状态。“喂狗”的时间间隔就是允许的失控时间。T3 的定时溢出表示出现非正常状态,而 TO 和 T1 的定时溢出是正常状态。

第七章P186

⒌ 简述串行通信接口芯片UART的主要功能? 答:① 它是用于控制计算机与串行设备的芯片。

②将由计算机内部传送过传来的并行数据行转换为输出的串行数据流。 ③将计算机外部来的串行数据串转换为字节,供计算机内部并行数据的器件使用。

④在输出的串行数据串流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验奇偶 。

⑤在输出数据流中加入启停标记,并从接收数据流中删除启停标记启停 。 ⑥处理由键盘或鼠标发鼠 出的中断信号(键盘和鼠标也是串行设备也是串行)。

⑦可以处理计算机与外部串行设备的同步管理问题。

⒎ 80C51单片微机串行口共有哪几种工作方式?各有什么特点和功能? 答:80C51单片微机串行口共有4 种工作方式: ① 移位寄存器方式,波特率为晶振的 1/12 ② 8 位 UART,波特率可变

③ 9 位 UART,波特率为晶振的 1/32 或 1/64 ④ 9 位 UART,波特率可变 它们都是串口通信。

12. 80C51单片微机串行口共有 4 种工作方式,它们的波特率分别为 晶振的1/12 , 波特率可变 , 波特率为晶振的 1/32 或 1/64 , 波特率可变 。

第八章P259

1.简述单片微机系统扩展的基本原则和实现方法。

答:系统扩展是单片机应用系统硬件设计中最常遇到的问题。系统扩展是指单片机内部各功能部件不能满足应用系统要求时,在片外连接相应的外围芯片以满足应用系统要求。80C51系列单片机有很强的外部扩展能力,外围扩展电路芯片大多是一些常规芯片,扩展电路及扩展方法较为典型、规范。用户很容易通过标准扩展电路来构准扩展电路电构成较大规模的应用系统。

对于单片机系统扩展的基本方法有并行扩展法和串行扩展法两种。并行扩展法是指利用单片机的三组总线 (地址总线 AB、数据总线 DB 和控制总线 CB)进行的系统扩展;串行扩展法是指利用 SPIS 三线总线和 12C 线总线的串行系统扩展。

① 外部并行扩展行

单片机是通过芯片的引脚进行 系统扩展的。为了满足系统扩展要统扩 求,80C51系列单片机芯片引脚可以构成图 8-1 所示的三总线结构,即地址总线 AB、数据总线 DB 和控制总线 CB。单片机所有的外部芯片都通过这三组总线进行扩展。

② 外部串行扩展

80C51.系列单片机的串行扩展包括:SPI(Serial Peripheral Interface)三线总线和 12C双总线两种。在单片机内部不具有串行总线时,可利用单片机的两根或三根 I/O 引脚甩软件来虚拟串行总线的功能 。

2. 如何构造80C51单片机并行扩展的系统总线?

答:80C51并行扩展的系统总线有三组。 ①地址总线(A0~A15):由P0口提供低8位地址A0~A7,P0口输出的低8位地址A0~A7必须用锁存器锁存,锁存器的锁存控制信号为单片机引脚ALE输出的控制信号。由P2口提供高8位地址A8~A15。

②数据总线(D0~D7):由P0口提供,其宽度为8位,数据总线要连到多个外围芯片上,而在同一时间里只能够有一个是有效的数据传送通道。哪个芯片的数据通道有效,则由地址线控制各个芯片的片选线来选择。 ③控制总线(CB):包括片外系统扩展用控制线和片外信号对单片机的控制线。系统扩展用控制线有ALE、PSEN、EA、WR。

14. 已知可编程I/O接口芯片8255A的控制寄存器的地址为BFFFH,要求设定A口为基本输入,B口为基本输出,C口为输入方式。请编写从C口读入数据后,再从B口输出的程序段。并根据要求画出80C51与8255A连接的逻辑原理图。加上必要的伪指令,并对源程序加以注释。

答:已知8255A的控制寄存器地址为BFFFH,若地址线A0、A1被用做8255A端口选择信号,则8255A的C口地址为BFFFH,B口地址为BFFDH,A口地址

为BFFCH。可以选用地址线P2.6(A14)作8255A的片选线。 8255A与80C51连接图如图8-7所示:

程序如下: ORG 0000H

MOV DPTR,#0BFFFH ;8255A控制寄存器地址 MOV A, #99H

MOVX @DPTR,A ;控制字(PA输入、PB输出、PC输入) MOV DPTR,#0BFFEH ;C口地址 MOVX A,@DPTR ;PC输入

MOV DPTR,#0BFFDH ;B口地址 MOVX @DPTR,A ;PB输出

19.D/A转换器是将 数字信号数字 转换为 模拟信号 ,DAC0832具有 直通方式 , 单缓冲方式 , 双缓冲方式 三种工作方式,其主要技术性能有 分辨率 , 转换精度 , 转换速率/建立时间 。

22. 利用ADC0809芯片设计以80C51为控制器的巡回检测系统。(8路输入的采样周期为1秒,)其它末列条件可自定。请画出电路连接图,并进行程序设计。 【答】巡回检测系统如图8-11所示。

分析:8路模拟输入通道IN0-IN7的地址为DFF8H~DFFFH(P2.5=0)。 ORG 0000H AJMP MAIN ORG 0030H MAIN:

MOV DPTR,#0DFF8H ;通道0地址 MOV R0,#40H ;存储单元首址

LOOP:MOVX @DPTR,A ;启动A/D转换

LCALL D128μs ;延时等待完成 MOVX A,@DPTR ;读入转换值 MOV @R0,A ;存入内存 ……

D128μs: …… ;延时128μs子程序 RET

END

23. 请举例说明独立式按键的设计原理。 答:独立式按键就是各按键相互独立,每个按键分别与单片微机的输入引脚或系统外扩I/O芯片的一根输入线相连。每根输入线上的按键,它的工作状态不会影响其他输入线的工作状态。因此,通过检测输入线的电平状态,可以很容易地判断哪个按键被按下了。

独立式按键电路配置灵活,软件结构简单,但每个按键需占用一根输入引脚。

例如,单片微机的P1.0引脚上接一个按键,无键按下时P1.0由上拉电阻决定为高电平,当按键按下P1.0通过按键与地线短路而为低电平。可见,查询P1.0引脚的电平即可判断该按键是否被按下。

25.如何用静态方式实现多位LED显示,请画出接口电路图,并编写LED显示程序。

答: 静态显示 LEDL 接口

(1)连接方法 各数码管的公共极固定接有效电定接有平,各数码管的字形控制的字形端分别由各自的控制信号控制信 。

(2)优点 LEDL 显示亮度温度,容易调节,编程容编易,工作时占用作时CPU (3)缺点 若直接用单片机输出各位数接用单片机输出各出码管的字形信号时,占用单片机的 I/O 口线较多。

一般仅适用于 显示位数示 较少的应用的场合。

26.如何用动态方式实现多位LED显示,请画出接口电路图,并编写LED显示程序。

答:动态显示 LEDL 接口 (1)连接方法 各位数各码管的字形控制端对应地并在一起,由一组由I/O 端口进行控制,各位的公共极相互独 立,分别由不同的分别由不 I/O 控制信号控制。

(2)优点 节省 I/O 端口线

(3)缺点 显示亮度不够稳定,影响因素较多;编程较复杂,占用 CPUC 时间较多。

29.简述系统扩展时的可靠性设计。

答:应用系统扩展时,可靠性设计是单片微机应用系统软件、硬件设计的重要组成部分,按照国家标准规定,可靠性的定义是“产品在规定条件下和规定时间内,完成规定功能的能力”,离开这个三个“规定”,就失去了衡量可靠性高低的前提。

可靠性设计贯彻在单片微机应用系统设计的全过程,硬件系统设计、PCB设计及电源系统设计主要是本质可靠性设计。而在软件设计及总体设计中,则除了本质可靠性外,还必须考虑可靠性控制设计。

30.简述系统扩展时的低功耗设计。

答:应用系统扩展时,低能耗设计除了降低功效、节省能源、满足绿色电子的基本要求之外,还能提高系统的可靠性,满足便携式、电池供电等特殊场合产品的要求。 应用系统低功耗设计的意义如下:

①实现“绿色”电子,节省能源。低功耗的实现,能明显地降低应用系统所消耗的功率。消耗功率的降低,可以使温升降低,改善应用系统的工作环境。

②提高了电磁兼容性和工作可靠性。目前单片微机正全盘CMOS化,CMOS电路有较大的噪声容限;单片微机的低功耗常采用的待机、掉电及关闭电源等方式,在这些方式下,系统对外界噪声失敏,大大减少了因噪声干扰产生的出错概率。

③促进便携化发展。最少功耗设计技术有利于电子系统向便携化发展。如便携式仪器仪表,可以在野外环境使用,仅靠电池供电就能正常工作。

《微机原理与接口技术》实验作业

[第一部分 简答题](必做题)

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指令时会产生控制信号RD或WR

4. 简述80C51单片微机内部RAM低128字节4个主要区域的特点。

答:寄存器区:共4组寄存器,每组8个存储单元,各组以R0~R7作为单元编号。

位寻址区:20H~2FH中的每一位进行位操作。 堆栈区:设置在用户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的机器码文件,通过RS—232串行口下载给仿真器,仿真器采用MICETEK公司的EasyProbe8052F仿真器。在仿真器上完成实验的验证、修改和完成。

[第二部分 读程序](必做题)

要求:⑴直接在源程序“;”右侧对程序加以注释。

⑵写出程序功能和运行后结果。

ORG 0000H SJMP MAIN

ORG 0030H

;被加数首地址 ;加数首地址 ;和首地址 ;5字节相加

程序1

MAIN:MOV DPTR,#2000H

MOV R0,#10H MOV R1,#20H MOV R2,#05H CLR

C

ADDA:MOVX A,@ DPTR

ADDC A,@ R0 DA A MOV INC INC

;取被加数 ;加上加数 ;二-十进制数校正 ;和存入 ;修正地址

@ R1,A DPTR R0

INC R1 DJNZ R2,ADDA AJMP END

⑵程序功能:片外数据存储器中被加数与片内数据存储中加数以5个字节长度的BCD码数形式相加,和存入20H-24H。

问题1:若删去”DA A”一行 ,

则程序功能为:”片外数据存储器中被加数与片内数据存储中加数以5个字节长度的二进制数相加,和存入20H-24H。

问题2: 若”MOV

;5字节BCD码数加法循环

$

R2,#05H”改为”MOV R2,#02H”,

则程序功能:”

片外数据存储器中被加数与片内数据存储中加数以2个字节长度的BCD码数相加,和存入20H-24H”。

问题3: 若和需存入10H-14H中, 则修改MOV @ R0,A ;和存入 程序2

ORG 0000H SJMP MAIN ORG 0030H MAIN:MOV DPTR,#TAB

MOV A,#02H MOVC

;指向表首址 ;取查表值 ;查表

;查表结果存R0中

A,@A+DPTR

MOV R0,A SJMP

$

ORG 2080H

TAB DB 00H,11H,22H,33H ??;表(略)

END

程序功能:①这是个查表程序,欲查值为02H,通过查表得到对应结果。 运行后结果:②(R0)=22H。

① 问题1:若”MOV A,#02H”改为”MOV A,#03H”,

则运行后结果:②(R0)=33H。

② 问题2:若运行后结果为00 H,则修改

MOV A,#00H

本文来源:https://www.bwwdw.com/article/gtlh.html

Top