搜档网
当前位置:搜档网 › 单片机原理及应用——基于Proteus和Keil_C林立版课后习题答案

单片机原理及应用——基于Proteus和Keil_C林立版课后习题答案

单片机原理及应用——基于Proteus和Keil_C林立版课后习题答案
单片机原理及应用——基于Proteus和Keil_C林立版课后习题答案

1.计算机体系结构:哈佛结构、冯诺依曼结构的区别?

哈佛结构RAM和ROM分别编址,冯诺依曼结构RAM和ROM统一编址

2.MSC-51单片机外部引脚的名称是什么?各有什么功能?

答:(1) 电源及晶振引脚

VCC(40脚):+5V电源引脚

VSS(20脚):接地引脚

XTAL1(19脚);外接晶振引脚(内置放大器输入端)

XTAL2(18脚):外接晶振引脚(内置放大器输出端)

(2) 控制引脚

RST/V PD(9)为复位/ 备用电源引脚

ALE/PROG(30)为地址锁存使能输出/ 编程脉冲输入

PSEN(29):输出访问片外程序存储器读选通信号

EA/ VPP (31):外部ROM允许访问/ 编程电源输入

(3) 并行I/O口引脚

P0.0~P0.7(39~32脚)——P0口;

P1.0~P1.7(1~8脚)——P1口;

P2.0~P2.7(21~28脚)——P2口;

P3.0~P3.7(10~17脚)——P3口。

3. AT89C51单片机的片内资源有哪些?其存储器结构如何?片内RAM可分成哪个三个区?各区的地址范围如何?

其内部功能部件有:

控制器:是对取自程序存储器中的指令进行译码,在规定的时刻发出各种操作所需的控制信号,完成指令所规定的功能;

运算器:根据控制器发来的信号,执行算术逻辑运算操作;

存储器:包括程序存储和数据存储器;

定时器计数器:2个16位定时器/计数器,可对机器周期计数,也可对外部输入脉冲计数;

中断系统:可响应三个内部中断源和两个外部中断源的中断请求;

输入输出接口:4个8位并行口和一个全双工串行口;

其存储器结构属于哈佛结构,MCS-51可寻址空间是两个64KB,即64KB的程序存储空间和64KB的数据存储空间。

片内RAM可分成划分为三个部分:

①作寄存器区(00H-1FH),四组②可位寻址区(20H-2FH)③用户RAM区(30H-7FH),80B

7.程序状态字寄存器PSW各位的定义是什么?

答:程序状态字寄存器PSW各位的定义如下:

PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0

PSW.7:进/借位标志CY,加法有进位时置1,减法有借位时置1;

PSW.6:辅助进位标志AC,加法运算低四位向高上四位有进位时置1;

PSW.5、PSW.1:用户标志位F0和用户标志位F1,

保存用户的位数据;

PSW.4、PSW.3:工作寄存器选择控制位RS1和RS0,00至11分别选择四组工作之一作为当前工作寄存器PSW.2 :溢出标志位OV,有符号数加、减运算结果有溢出或乘除上结果异常(乘法运算结果大于255即乘积在BA中,或除法运算除数为0)时置1

PSW.0:奇偶标志位P,累加器A中1的个数为奇数时置1。

4.什么是复位?单片机复位电路有哪几种,工作原理分别是什么?

答:复位——使单片机恢复原始默认状态的操作。

单片机复位电路有:上电复位电路,由电阻和电容构成,通过上电时,电容相当于短路而使复位引脚在晶振有效的情况下保持2个机器周期的高电平;按钮开关复位电路,由两个电阻的分压构成,通过手工按下按钮,使复位引脚在晶振有效的情况下保持2个机器周期的高电平。

9.P0、P1、P2和P3口的结构和功能分别是什么?

9. 并行口P0、P1、P2、P3的作用与用法、准双向口的含义。

答:P0口的每一位由1个锁存器、2个三态缓冲器、1个输出控制电路(非门 X、与门、电子开关MUX、输出驱动电路构成,其功能既可以作为通用I/O口实现输入/输出功能,也可作为单片机地址线的低8位和数据线实现外部扩展功能。在用作输入输出口时,需外接上拉电阻。

P1口的每一位由1个锁存器、1个场效应管驱动器V和2个三态门缓冲器构成,其作用是用作输入输出口

P2口的每一位由1个锁存器、2个三态缓冲器、1个输出控制单元、1个输出驱动单元构成,其功能是用作输入输出口,或地址总线的高8位。

P3口的每一位由1个锁存器、2个三态缓冲器、1个第二功能控制单元、1个输出驱动单元构成,其作用是用作输入输出口或第二功能。

11. 时序:振荡周期、状态周期、机器周期、指令周期的含义

答:时钟周期又叫振荡周期或拍,用P表示,是MCS-51单片机中最小的时间单位,在一个时钟周期内,CPU 完成一个最基本的动作。

状态周期:震荡脉冲经过二分频后的周期

机器周期:由12个时钟周期构成,完成一个基本操作

指令周期:是执行一条指令所需的时间,根据指令的复杂性,可由1~4个机器周期构成。

10.80C51单片机引脚ALE的作用是什么?当80C51不外接存储器时,ALE上的输出的脉冲频率是多少?答:80C51单片机引脚ALE的作用是对外部存储寻址时锁存P0口输出的低8位地址,当80C51不外接存储器时,ALE上的输出的脉冲频率是fosc/6。

12. 中断源、中断优先级、中断类型号、中断向量

引发中断的事件称为中断源。有5个中断源,它们是外部中断0,定时器T0,外部中断1,定时器T1,串行口。外部中断源是由引脚的触发信号引起的中断,定时器中断源是由于定时器计数器的溢出引发的中断,串行口是由于串行通信的发送或接收引发的中断。

将中断事件按轻重缓急分若干级别叫中断优先级。

允许中断优先级高的中断源中断正在执行的低优先级的中断服务程序叫中断嵌套。

外部中断0,定时器T0,外部中断1,定时器T1,串行口五个中断源的中断向量地址依次为:0003H,000BH,0013H,001BH,0023H。

1.MCS-51系列的8051单片机内有几个定时/计数器?每个定时/计数器有几种工作方式?如何选择?

答:MCS-51系列的8051单片机内有2个定时/计数器,即T0和T1,每个都可以编程为定时器或计数器,T0有四种工作方式(方式0—13位、方式1—16位、方式2-可自动装入初值的8位、方式3-两个8位),T1有三种工作方式(与T0相同的前三种),通过对TMOD的设置选择,其高四位选择T1,低四位选择T0。2.如果采用的晶振频率为3MHz,定时/计数器TO分别工作在方式0、1和2下,其最大的定时时间各为多少?

答:如果采用的晶振频率为3MHz,机器周期为12×1/(3*106)=4us,由于定时/计数器TO工作在方式0、1和2时,其最大的计数次数为8192、65536和256所以,其最大定时时间分别是:方式0为8192×4us=32.768ms、方式1为65536×4us=262.144ms、方式2为256×4us=1024us。

3.定时/计数器TO作为计数器使用时,其计数频率不能超过晶振频率的多少?

答:由于定时/计数器TO作为计数器使用时,是对外部引脚输入的脉冲进行计数, CPU在每个机器周期采样一次引脚,当前一次采样为高电平,后一次采样为低电平,则为一次有效计数脉冲,所以如果晶振频率为fosc,则其采样频率fosc/12,两次采样才能决定一次计数有效,所以计数频率不能超过fosc/24。4.简单说明定时/计数器在不同工作模式下的特点。

答:方式0为13位的定时/计数器,由THx的8位和TLx的低5位构成、方式1为16位的定时/计数器,由THx的8位和TLx的8位构成,方式2为8位的定时/计数器,TLx为加1计数器,THx为计数初值寄存器。方式3只能用于T0,是将T0的低8位用作一个独立的定时/计数器,而高8位的TH0用作一个独立的定时器,并借用T1的TR1和TF1作为高8位定时器的启停控制位和溢出标志位。

5.定时器工作在方式2时有何特点?适用于什么应用场合?

答:定时器工作在方式2时是一个可自动装入时间常数初值的8位定时/计数器,TLx为加1计数器,THx 为计数初值寄存器。由于其恢复初值由硬件自动完成,所以当需要反复计数时,用方式2可以方便地实现精确的定时。

6.一个定时器的定时时间有限,如何采用两个定时器的串行定时来实现较长时间的定时?

答:一个定时器的定时时间有限,可采用两个定时器的串行定时来实现较长时间的定时,比如,当fosc=12MHz时,单个定时/计数器采用方式1的最大定时时间为65.536ms,此时若用另一个定时/计数器按方式1进行溢出次数计数,在定时器溢出中断时,给计数器发一个计数脉冲,且两者均为方式一,则两者串行可达到的定时时间为65536×65.536ms=4294967.296ms。

13. C语言变量定义的存储类型有哪些?不同类型表示的含义如何?四个物理存储空间和三个逻辑存储空间的具体含义。

答:C语言的变量定义格式如下:

[存储种类] 数据类型[存储类型] 变量名

其中:

存储种类包括:自动型(auto)、外部型(extern)、静态型(static)、寄存器型(register)。

数据类型除了包含标准C语言类型的字符型(char),整型(int),长整型(long),浮点型(float),双精度型(double)外,还有二进制位型(bit),特殊功能寄存器型(sfr),SFR可位寻址的位类型(sbit)。

存储类型包括:片内RAM区(data)、片内可位寻址区(bdata),片内RAM间接寻址区(idata),片外RAM 页寻址区(pdata),片外RAM区(xdata)、ROM区(code)。

有四个物理存储空间(片内RAM、片内ROM,片外RAM,片外ROM),三个逻辑地址空间(片内RAM,片外RAM,ROM),而且有多种寻址方式(直接寻址、间接寻址、页面寻址、位寻址)所致,所以在定义变量时,要根据其所在位置和寻址方式明确指定存储类型。

第3章单片机的汇编语言与程序设计习题

1.MCS-51单片机有哪几种寻址方式?适用于什么地址空间?

答:MCS-51单片机有7种寻址方式:直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、变址寻址、位寻址、相对寻址。

直接寻址方式:操作数的地址由指令直接给出,适用于片内RAM的所有地址空间;如MOV

A,68H

MOV A,PSW

寄存器寻址方式:指令给出的是寄存器的编码,操作数在编码指定的寄存器中,适用于片内00H至1FH

的32个字节,用R0,…,R7表示,通过PSW的RS1和RS0选择组号确定对应32个字节中的其中8个,还有累加器A,以及乘除法指令中的A和B寄存器,位寻址方式中的布尔累加器C;

MOV A,R1

MUL AB

INC DPTR

寄存器间接寻址方式:指令给出的是寄存器的编码,操作数地址在编码指定的寄存器中,适用于片内RAM的全部空间,其中52系列中的80H至FFH只能用寄存器间接寻址;如 MOV A,@R0

MOV A,@R1

MOVX A,@DPTR

立即寻址方式:操作数本身在指令中直接,给出适用于用8位立即数对片内RAM所有地址单元赋值,也可用16位立即数对DPTR赋值;如

MOV A,#0E2H

MOV DPTR,#2000H

变址寻址方式:以DPTR或PC作为基地址寄存器,以累加器A作为变址寄存器,将基址寄存器与变址寄存器的内容相加形成操作数的实际地址的一种寻址方式,变址寻址方式适用于程序存储器ROM,仅有三条指令如下:

MOVC A,@A+DPTR

MOVC A,@A+PC

JMP @A+DPTR

位寻址方式:指令中直接给出操作数所在单元的位地址,适用于片内RAM中地址20H至2FH中的16个字节中的128个位地址空间和80H至FFH中地址中可以被8整除的所有SFR中的每个位地址空间;如MOV C,7FH

MOV F0,C

MOV C,ACC.7

相对寻址方式:为相对转移指令而设,指令中直接给出转移的相对偏移量,其转移目标在当前指令-128至+127字节范围内的地址空间。如

SJMP START

HERE:SJMP HERE ;等效于:SJMP $

2.MCS-51单片机的PSW程序状态字中无ZERO(零)标志位,怎样判断某内部数据单元的内容是否为零?答:M CS-51单片机的PSW程序状态字中无ZERO(零)标志位,判断某内部数据单元的内容是否为零是能通过取数到A累加器,再判断A中的每一位是否为零来确定其值是否为零。

3.编程将内部RAM的20H--30H单元内容清零。

解:设一个片内RAM指针R0,先指向首地址20H,通过累加器A清零,然后采用间接寻址方式依次将A中的零值传送到指针所指的片内RAM单元,每传送一个字节,地址指针加1,直到达到地址为30H或达到计数器规定的17个字节为止。

程序1:

MOV R0,#20H ;设地址指针初值

CLR A ;累加器清0

CONT: MOV @R0,A ;置0指针所指单元

INC R0 ;地址指针加1

CJNE R0,#31H,CONT ;指针未超过终点则继续

SJMP $ ;暂停

程序2:

MOV R0,#20H ;设地址指针初值

CLR A ;累加器清0

MOV R7,#17 ;计数器赋初值,从20H到30H共17个字节

CONT: MOV @R0,A ;置0指针所指单元

INC R0 ;地址指针加1

DJNZ R7, CONT ;计数器减1,非0,则继续

SJMP $ ;暂停

4.编程查找内部RAM的32H~41H单元中是否有0AAH这个数据,若有这一数据,则将50H单元置为0FFH,否则将50H单元清零。

解:设一个片内RAM指针R0,先指向首地址32H,比较@R0与#0AAH,若相等,则退出循环,给50H单元赋0FFH,若不相等,则R0加1为继续比较下一个字节做准备,直到达到地址为41H或达到计数器规定的16个字节为止还没找到,则给50H单元赋00H

程序1:

MOV R0,#32H ;设地址指针初值

CONT: CJNE @R0,#0AAH,NEXT;比较查找值与指针所指单元的值,不相等转移

MOV A,#0FFH ;相等,则准备好要赋的标志值0FFH

SJMP DOWN ;转存到保存结果处

NEXT: INC R0 ;修改地址指针

CJNE R0,#42H,CONT ;若指针未越过终点,则继续

MOV A,#00H ;查找失败,则将00H存入结果标志单元

DOWN: MOV 50H,A ;将比较结果标志存入50H单元

SJMP $ ;暂停

END

程序2:

MOV R7,#16 ;计数器赋初值,从20H到30H共16个字节

MOV R0,#32H ;设地址指针初值

CONT: CJNE @R0,#0AAH,NEXT ;比较查找值与指针所指单元的值,不相等转移

MOV A,#0FFH ;相等,则准备好要赋的标志值0FFH

SJMP DOWN ;转存到保存结果处

NEXT: INC R0 ;修改地址指针

DJNZ R7,CONT ;计数器减1,非0,则继续

MOV A,#00H ;查找失败,则将00H存入结果标志单元

DOWN: MOV 50H,A ;将比较结果标志存入50H单元

SJMP $ ;暂停

END

5.查找20H~4FH单元中出现00H的次数,并将查找结果存入50H单元。

解:从20H到4FH共48个字节

MOV R7,#48 ;字节计数器赋初值

MOV R0,#20H ;设地址指针初值

CONT: CJNE @R0,#00H,NEXT ;比较查找值与指针所指单元的值,不相等转移

INC R6 ;相等,0的个数计数器加1

NEXT: INC R0 ;修改地址指针

DJNZ R7,CONT ;计数器减1,非0,则继续

MOV 50H,R6 ;保存O的个数计数值到50H单元

SJMP $ ;暂停

END END

6.已知A=83H,R0=17H,(17H)=34H,写出下列程序段执行之后的A中的内容。

ANL A,#17H

ORL 17H,A

XRL A,@R0

CPL A

END

答:

ANL A,#17H ;A=03H

ORL 17H,A ;(17H)=0011 0100 ∨ 0000 0011=0011 0111

XRL A,@R0 ;A= 0000 0011 ∨ 0011 0111 =0011 0100

CPL A ;A=1100 1011

7.已知单片机的晶振频率为12MHz,分别设计延时为0.1s、1s的子程序。

答:已知单片机的晶振频率为12MHz,则机器周期为1us,延时子程序是通过执行指令序列中机器周期数来达到,如果要0.1s,即100ms,也就是100000us,所以需要机器周期数达到100000。要延时达到1S,可通过对延时为0.1秒的子程序调用10次来实现。

DELAY100MS: MOV R6,#200 ;1个机器周期

D1: MOV R7,#250 ;1个机器周期

D2: NOP ;1个机器周期

DJNZ R7,D2 ;2个机器周期,3*251=753

DJNZ R6,D1 ;2个机器周期,(1+753+2)*132=99792

RET ;2个机器周期,1+99792+2=99795,约100ms

DELAY1S: MOV R7,#10 ;计数10次 1

LOOP: ACALL DELAY100MS ;延时100ms子程序99795+2

DJNZ R7,LOOP ;未达到10次则继续10*(2+99795+2)

RET ;返回2+10*(2+99795+2)=997992

8.内部RAM从20H单元开始处有一数据块,以ODH为结束标志,试统计该数据块的长度,将该数据块送到外部数据存储器7E01H开始的单元,并将长度存入7E00H单元。

解:从20H的指针用R0,从外部RAM7E01开始的指针用DPTR,计数器用R7

MOV R7,#0 ;字节计数器赋初值

MOV R0,#20H ;设片内RAM地址指针初值

MOV DPTR,#7E01H ;设片外RAM地址指针初值

CONT: MOV A,@R0 ;取片内RAM中的一个字节

MOVX @DPTR,A ;存入片外RAM指针所指单元

INC R7 ;长度计数器加1

INC R0 ;片内RAM地址指针加1

INC DPTR ;片外RAM地址指针加1

CJNE A,#0DH,CONT ;未达到结束标志

MOV A,R7 ;取块计数长度值

MOVX @DPTR,A ;保存

SJMP $ ;暂停

END

9.内部RAM从DATA开始的区域中存放着10个单字节十进制数,求其累加和,并将结果存入SUM和SUM+1单元。

解:R7计数,R6保存累加和高8位,R0用作地址指针

ORG 0000H

LJMP MAIN

ORG 100H

SUM EQU 30H

DATAA EQU 40H

MAIN: MOV R7,#10 ;字节计数器赋初值

MOV R0,#DATAA ;设片内RAM地址指针初值

CLR A ;累加器清0

MOV R6,A ;累加结果的高8位

CONT: ADD A,@R0 ;加RAM中的一个字节到ACC

DA A

JNC NEXT ;若无进位则不用管高8位

INC R6 ;有进位,高8位加1

NEXT: INC R0 ;片内RAM地址指针加1

DJNZ R7,CONT ;未完继续

MOV SUM,A ;保存低8位

MOV SUM+1,R6 ;保存高8位

SJMP $ ;暂停

END

10.内部RAM从DATA1和DATA2单元开始处存放着两个等长的数据块,数据块的长度在LEN单元中。请编程检查这两个数据块是否相等,若相等,将0FFH写入RESULT单元,否则将0写入RESULT单元。

解:从DATA1开始的指针用R0,从DATA2开始的指针用R1,计数器用R7

LEN EQU 10

DATA1 EQU 30H

DATA2 EQU 40H

RESULT EQU 50H

MOV R7,#LEN ;字节计数器赋初值

MOV R0,#DATA1 ;设片内RAM地址指针初值

MOV R1,#DATA2 ;设片外RAM地址指针初值

CONT: MOV A,@R0 ;取片内RAM R0所指的的一个字节

MOV 7FH,@R1 ;将R1所指单元内容取到片内RAM地址7FH中

CJNE A,7FH,NOEQ ;比较,不相等则结束

INC R0 ;DATA1 RAM地址指针加1

INC R1 ;DATA2 RAM地址指针加1

DJNZ R7,CONT ;未完,继续

MOV A,#0FFH ;相等,准备写入FFH

SJMP DOWN ;转写入结果处

NOEQ: MOV A,#0 ;不相等,准备写入00H

DOWN: MOV RESULT,A ;保存比较结果标志

SJMP $ ;暂停

END

11.编制程序,将内部RAM中M1、M2、M3和M4单元中的无符号数xl、x2、x3和x4相加,并把和存入RO 和R1(R0中为高8位)中。

解:

M1 EQU 30H

M2 EQU 40H

M3 EQU 45H

M4 EQU 4FH

MOV A,M1 ;取第一个数

ADD A,M2 ;与第二个数相加

JNC NEXT1 ;如果无进位,则转移至第三个相加

MOV R0,#1 ;有进位,高8位置1

NEXT1: ADD A,M3 ;与第三个数相加

JNC NEXT2 ;没有进位,则转至第四个数相加

INC R0 ;有进位,高8位加1

NEXT2: ADD A,M4 ;与第四个数相加

JNC NEXT3 ;没有进位,则转至结束

INC R0 ;有进位,高8位再加1

NEXT3: MOV R1,A ;低8位保存到R1

SJMP $ ;暂停

END

第4章单片机的C51语言习题

2.C51语言的变量定义包含哪些关键因素?为何这样考虑?

答:C语言的变量定义格式如下:

[存储种类] 数据类型[存储类型] 变量名

其中:

存储种类与标准C语言相同,包括:自动型(auto)、外部型(extern)、静态型(static)、寄存器型(register)。

数据类型除了包含标准C语言类型的字符型(char),整型(int),长整型(long),浮点型(float),双精度型(double)外,还有二进制位型(bit),特殊功能寄存器型(sfr),SFR可位寻址的位类型(sbit)。

存储类型包括:片内RAM区(data)、片内可位寻址区(bdata),片内RAM间接寻址区(idata),片外RAM 页寻址区(pdata),片外RAM区(xdata)、ROM区(code)。

只所以比标准C语言多了存储类型,就是因为MCS-51单片机的存储结构中有四个物理存储空间(片内RAM、片内ROM,片外RAM,片外ROM),三个逻辑地址空间(片内RAM,片外RAM,ROM),而且有多种寻址方式(直接寻址、间接寻址、页面寻址、位寻址)所致,所以在定义变量时,要根据其所在位置和寻址方式明确指定存储类型。

4.指出下面程序的语法错误:

#include

main(){

a=C;

int a=7,C

delay(10)

void delay();{

cgar i;

for(i=O; i<=255; ”++”);

}

答:

#include

main(){

a=C;//a和C必须先定义才可使用

int a=7,C //缺分号,应该提在使用前说明

delay(10) //延时子程序必须先定义,或先有函数原型说明

void delay();{

//作为函数定义,有函数定义不能嵌套的问题,

//即不能在一个函数内定义另一个函数,而且“{”前不应有分号

//作为函数原型说明,应该放在函数调用之前,且其后不应该接函数体

cgar i;//字符型应该是unsigned char

for(i=O; i<=255; ”++”);//”++”应改成i++

}

//主函数没有结束,缺”}”

5.定义变量a,b,c,其中a为内部RAM的可位寻址区的字符变量,b为外部数据存储区浮点型变量,c 为指向 int 型 xdata 区的指针。

答:char bdata a;

float xdata b;

int xdata *c;

6.编程将8051的内部数据存储器20H单元和35H单元的数据相乘,结果存到外部数据存储器中(任意位置)。解:方法一:用嵌入式汇编语言实现

#include

void main()

{ #pragma asm

MOV A,20H

MOV B,35H

MUL AB

MOV DPTR,#1234H

MOVX @DPTR,A

INC DPTR

MOV A,B

MOVX @DPTR,A

#pragma endasm

}

方法二:单用C语言编程实现

#include

#include

int movdata(char);

void main()

{

unsigned int xdata x;

unsigned char *ptr,a,b;

ptr=0x25;

a=*ptr;

ptr=0x30;

b=*ptr;

x=a*b;

}

7.8051的片内数据存储器25H单元中存放有一个0~10的整数,编程求其平方根(精确到5位有效数字),将平方根放到30H单元为首址的内存中。

解:方法一:用C语言与汇编语言混合编程实现

//用C语言编写的主函数MAIN.C

#include

#include

char getdata(char);

void main()

{

char a=0x25,c;

float f;

c=getdata(a);

f=sqrt(c);

}

;用汇编语言编写的取数据子函数,只有一个地址参数在R7中,返回值为指定地址单元中的内容,用R7返回主函数。

PUBLIC _GETDATA

DE SEGMENT CODE

RSEG DE

_GETDATA: MOV A,R7 ;取地址参数

MOV R0,A

MOV A,@R0

MOV R7,A ;返回地址单元中的内容

EXIT: RET

END

方法二:单用C语言编程实现

//MAIN.C

#include

#include

int movdata(char);

void main()

{

char n;

char *ptr;

float *ptr2;

float f;

ptr=0x25;

n=*ptr;

f=sqrt(n);

ptr2=0x30;

*ptr2=f;

}

8.将外部RAM 10H~15H单元的内容传送到内部RAM 10H~15H单元。

解:方法一:采用C语言与汇编语言混合编程

//用C语言编写的主函数MAIN.C

#include

char movdata(char,char);

void main()

{

char a=0x10,b=0x06;

movdata(a,b);

}

;用汇编语言编写的移动数据子函数MOVDATA,其中第一个参数在R7中为首地址,第二个参数在R5中为字节数

PUBLIC _MOVDATA

DE SEGMENT CODE

RSEG DE

_MOVDATA: MOV A,R7 ;取参数

MOV R0,A

LOOP: MOVX A,@R0

MOV @R0,A

DJNZ R5,LOOP

EXIT: RET

END

方法二:单用C语言编程实现

//MAIN.C

#include

int movdata(char);

void main()

{

char n=6;

char *ptr1=0x10;

char xdata *ptr2;

ptr2=0x20;

while(n--){

*ptr2++=*ptr1++;

}

}

9.内部RAM 20H、21H和22H、23H单元分别存放着两个无符号的16位数,将其中的大数置于24H和25H 单元。

解:方法一:

#include

void main()

{

unsigned int *ptr; //设置一个内部RAM指针

unsigned int x,y,z;

ptr=0x20; //指向0x20单元

x=*ptr; //取第一个数

ptr=0x22; //指向0x22单元

y=*ptr; //取第二个数

z=(x>y)?x:y; //将两数中的较大者赋给z

ptr=0x24; //指向地址为0x24的目标单元

*ptr=z; //将大数存入目标单元

}

方法二:

#include

#include

void main()

{

unsigned int x,y,z;

x=DBYTE[0X20]*256+DBYTE[0X21];

y=DBYTE[0X22]*256+DBYTE[0X23];

z=(x>y)?x:y; //将两数中的较大者赋给z

DBYTE[0X24]=z/256;

DBYTE[0X25]=z%256;

}

方法三:

#include

unsigned int x _at_ 0x20;

unsigned int y _at_ 0x22;

unsigned int z _at_ 0x24;

void main()

{

z=(x>y)?x:y;

}

第5章单片机的中断系统习题

3.MCS-51中断的中断响应条件是什么?

答:(1) 中断源有中断请求;

(2) 此中断源允许位为1,即中断源可以向CPU发中断请求;

(3) CPU开总中断,即EA=1;

(4) 无同级或者更高级中断正在服务

4.MCS-51的中断响应过程是怎样的?

答:(1) 将相应的中断优先级状态触发器置1,以阻断后来的同级和低级中断请求;

(2) 由硬件清除相应的中断请求标志,串行口的发送和接收中断除外;

(3) 执行一条硬件LCALL指令,即把程序计数器PC的内容压入堆栈保存,再将相应的中断服务程序的入口地址送入PC;

5.编写出外部中断1为下跳沿触发的中断初始化程序。

解:

void Int1_init(){

IT1=1;

EA=1;EX1=1; //IE=0x84;// IE|=0x84;

}

INT端,当其中有中断请求时,要求CPU把一个从内部RAM 30H单元开始的6.有一外部中断源,接入0

50个字节的数据块传送到外部RAM从1000H开始的连续存储区。请编写对应的程序。

解:

#include

void main(){

IT0=1 ;

EA=1;

EX0=1;

while(1) ;

}

void intx0() interrupt 0 using 1{

char * ptr1=0x30;

char xdata * ptr2=0x1000;

for(i=0;i<50;i++) *ptr2++=*ptr1++;

}

7.设fosc = 12MHz,利用定时器,TO(工作在方式2)在P1.1引脚上获取输出周期为O.4ms的方波信号,定时器溢出时采用中断方式处理,请编写,T0的初始化程序及中断服务程序。

解:fosc = 12MHz,则机器周期=1us;当T0工作在方式2时,其最大定时时间为256us,要输出周期为0.4mS 即400us的方波信号,则其高、低电平应各为200us,显然当定时器T0按方式2工作时,只需计数达到200次即可,因此其时间常数初值为256-200=56。在T0的中断服务程序中,只需将P1.1引脚求反即可。

#include

sbit P1_1=P1^1;

voidtimer0()interrupt 1 using 1{

P1_1=!P1_1;

}

void main(){

P1_1=0;

TMOD=0x02;

TH0=56;

TL0=56;

IE=0x82;

TR0=1;

for(;;){}

}

8.设fosc = 6MHz,要求每隔50ms,从内部RAM以30H开始的数据存储区传送一个字节数据到外部RAM以2000H开始的连续存储区,共传送50个数据。要求:采用定时器T1以方式2实现定时,数据传送在中断服务程序中完成。

解:fosc = 6MHz,机器周期=12/6*10-6S=2us,T1工作在方式2时,最大定时时间为512us,要定时50ms,可以计数100次,每次定时500us来实现,方式2定时500us需计数250次,故其时间常数为256-250=6。#include

char intcnt=0;

char movcnt=0;

char * ptr1=0x30;

char xdata *ptr2=0x2000;

voidtimer1()interrupt 3 using 1{

intcnt++;

if(intcnt==100){

if(mocnt<50){

*ptr2++=*ptr1++;

movcnt++;

}

else EX1=0;

intcnt=0;

}

}

void main(){

TMOD=0x20;

TH1=6;

TL1=6;

IE=0x84;

TR1=1;

for(;;){}

}

9.805l单片机只有两个外部中断源,若要扩展成8个外部中断源,请画出实现这种扩展的硬件线路图,并说明如何确定各中断源的优先级。

解:用按钮开关模拟中断源的中断请求,INT0单独作为一个中断源,INT1扩展成7个中断源,有中断请求时,借助于P2口识别是这七个中断源是哪个请求中断,为了验证正确性,如果是INT0中断,则在P0口的数码管上显示0,是INT1中断,则根据从上到下是哪个中断源在P0口的数码管上显示1—7。具体电路和程序如下:

#include

char led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07};

void INT0_srv (void) interrupt 0 using 1 //外部中断0处理程序{

P0=led_mod[0];

}

void INT1_srv (void) interrupt 2 using 2 //外部中断1处理程序{

char intnum;

intnum=P2;

switch(intnum){

case 0xfe:P0=led_mod[1];break;

case 0xfd:P0=led_mod[2];break;

case 0xfb:P0=led_mod[3];break;

case 0xf7:P0=led_mod[4];break;

case 0xef:P0=led_mod[5];break;

case 0xdf:P0=led_mod[6];break;

case 0xbf:P0=led_mod[7];

}

}

void main(){

EA=1;

EX0=1;

EX1=1;

P0=0;

while(1);

}

第6章单片机的定时器/计数器习题

7.设MCS-51单片机的晶振频率为12MHz,请编程使P1.O端输出频率为20kHz的方波。

解:fosc = 12MHz,所以机器周期为1us。20kHz的方波周期为1/(20×1000)=50us,方波即高电平和低电平和时间相等,所以只需设一个定时器定时25us将P1.O求反一次即可。由于题目没有规定,所以可以用查询方式,也可以用中断方式进行编程实现。

方法一:采用查询方式实现

#include

sbit P1_0=P1^0;//定义输出引脚变量

void main(){

P1_0=0; //输出初值为0

TMOD=0x02; //T0方式2定时

TH0=256-25; //计25次,计数初值为模256减25

TL0=TH0;

TR0=1; //启动T0

while(1) //无限循环

if(TF0){ //查询T0溢出标志

TF0=0; //溢出标志复位

P1_0=!P1_0; //输出求反

}

}

方法二:采用中断方式实现

#include

sbit P1_0=P1^0; //定义输出引脚变量

void main(){

P1_0=0; //输出初值为0

TMOD=0x02; //T0方式2定时

TH0=256-25; //计25次,计数初值为模256减25

TL0=TH0;

IE=0x82; //允许CPU响应中断,允许T0发中断请求

TR0=1; //启动T0

for(;;){} //无限循环等待中断

}

timer0()interrupt 1 using 1{

P1_0=!P1_0; //输出求反

}

8.采用定时/计数器TO对外部脉冲进行计数,每计数10O个脉冲,TO切换为定时工作方式。定时1ms后,又转为计数方式,如此循环不止。假定MCS-5l单片机的晶体振荡器的频率为6MHz,要求T0工作在方式1状态,请编写出相应程序。

解:晶体振荡器的频率为6MHz,则机器周期为12×1/(6*106)= 2us, 要定时1ms,需计数次数为1000/2=500次

#include

sbit P1_0=P1^0;

void main(){

while(1){

TMOD=0x05;//T0计数,方式一

TH0=(65536-100)/256;//计数100次

TL0=(65536-100)%256;

TR0=1;

while(!TF0);//等待计数100次的溢出

TF0=0; //溢出标志复位

TMOD=0x01;//T0定时,方式一

TH0=(65536-500)/256;//计数100次

TL0=(65536-500)%256;

TR0=1; //启动T0

while(!TF0); //等待定时时间到1ms的溢出

TF0=0; //溢出标志复位

}

}

9.设单片机的fosc = 12MHz,使P1.O和P1.1分别输出周期为1ms和lOms的方波,请用定时器TO方式2编程实现。

解:fosc = 12MHz,所以机器周期为1us。

要使P1.0输出周期为1000us的方波,可以通过定时中断方式实现,定时时间为250us,定时计数2次来实现,对P1.0求反即可。

要使P1.1输出周期为10ms的方波,也可以通过定时中断方式实现,定时时间为5ms,当时间到时,对P1.1求反即可。由于5ms/250us=20,所以也可以通过对250us的定时计数20次来实现。程序如下:

#include

sbit P1_0=P1^0;//输出周期为400us的方波的引脚

sbit P1_1=P1^1; //输出周期为10ms的方波的引脚

unsigned char num1=0,num2=0;//中断次数计数器,初值为0

void main(){

P1_0=0; //输出初值为0

P1_1=0; //输出初值为0

TMOD=0x02; //T0方式2定时

TH0=256-250;//计200次,计数初值为模256减200

TL0=TH0;

IE=0x82; //允许CPU响应中断,允许T0发中断请求

TR0=1; //启动T0

for(;;){} //无限循环等待中断

}

voidtimer0()interrupt 1 using 1{

num1++;num2++; //中断次数加1

if(num1==2) // 中断次数达到2次

{ P1_0=!P1_0; //输出P1_0求反

num1=0; //中断次数复位为0

}

if(num2==20){ // 中断次数达到20次

num2=0; //中断次数复位为0

P1_1=!P1_1; //输出P1_1求反

}

}

10.编写程序,要求使用TO,采用方式2定时,在P1.0输出周期为400us占空比为10:1的矩形脉冲。解:设fosc = 12MHz,则机器周期为1us。设P1.0初值为0。

周期为400us,可定义方式2定时,计数初值为256-40,一个周期中断10次为400us,在中断计数为1和2(或任意两次计数之间)时,对P1.0求反即可。

#include

sbit P1_0=P1^0; //输出周期引脚

unsigned char cnt=0; //中断次数计数器,初值为0

void main(){

P1_0=0; //输出初值为0

TMOD=0x02; //T0方式2定时

TH0=256-40; //计40次,计数初值为模256减40

TL0=TH0;

IE=0x82; //允许CPU响应中断,允许T0发中断请求

TR0=1; //启动T0

for(;;){} //无限循环等待中断

}

voidtimer0()interrupt 1 using 1{

cnt++;//中断次数加1

if(cnt==1||cnt==2) P1_0=!P1_0; //中断次数为1或2时对输出引脚求反

if(cnt==10)cnt=0; //中断次数达到10时复位为0

}

单片机原理及应用期末考试试卷及答案

苏州经贸职业技术学院 2009-2010学年第二学期 《单片机原理及应用》期终试卷(A) 班级:姓名:学号:成绩: 一﹑填空题(将正确答案填在题干的空白处。1分×35=35分) 1、十进制数-47用8位二进制补码表示为:11010001B。 2、89C51含4KB Flash ROM,128B的RAM,在物理上有4个独立的存储器 空间。 3、若8031单片机的晶振频率fosc=12MHz,则振荡周期为1/12us ,状态周期为1/6us ,机器周期为1us ,执行MUL AB指令需要时间为4us 。 4、假定A=85H,R0=20H,(20H)=0AFH。执行指令:ADD A,@R0后,累加器 A的内容34H ,CY的内容1 ,AC的内容1 ,OV的内容1 。 5、假定DPTR的内容为8100H,累加器A的内容为40H,执行下列指令: MOVC A,@A+DPTR 后,送入A的是程序存储器8140H 单元的内容。 6、PSW中RS1 RS0=10H时,R2的地址为12H 。 7、ROM在物理上分为片内ROM 和片外ROM ,在逻辑上两者统一编址。 8、MCS-51单片机当EA=1时,首先使用的是片内程序存储器,存储容量超过4KB时开始使用外部程序存储器;EA=0时,则仅仅使用片外程序存储器。 9、MCS—51单片机访问片外存储器时,利用ALE 信号锁存来自P0 口的低8位地址信号。 10、欲使P1口的高4位输出1,而低4位不变,应执行一条ORL P1,#0F0H指令。 11、12根地址线可选4KB个存储单元,32KB存储单元需要15 根地址线。 12、设80C51 fosc=12MHz,定时器工作在方式0,则最大定时时间为8192μs。 13、异步串行数据通讯有单工、半双工和全双工共三种传送方式。 14、51单片机的中断系统最多可以有 2 个嵌套。 15、8031单片机指令MOV是访问内RAM ,最大范围为256B ,MOVX是访问外RAM ,最大范围为64KB,MOVC是访问ROM ,最大范围为64KB 。 二、单项选择(1分×15=15分) 1、MCS-51上电复位后,SP的内容是(B) (A)00H (B)07H (C)60H (D)70H 2、80C51是(C)

单片机原理及应用习题答案第三版

单片机原理及应用习题 答案第三版 集团标准化工作小组 [Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN]

第一章习题参考答案 1-1:何谓单片机与通用微机相比,两者在结构上有何异同 答:将构成计算机的基本单元电路如微处理器(CPU)、存储器、I/O接口电路和相应实时控制器件等电路集成在一块芯片上,称其为单片微型计算机,简称单片机。 单片机与通用微机相比在结构上的异同: (1)两者都有CPU,但通用微机的CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度和精度的进一步提高。例如,现今微机的CPU都支持浮点运算,采用流水线作业,并行处理、多级高速缓冲(Cache)技术等。CPU的主频达到数百兆赫兹(MHz),字长普遍达到32位。单片机主要面向控制,控制中的数据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度和精度也相对要低一些。例如,现在的单片机产品的CPU大多不支持浮点运算,CPU还采用串行工作方式,其振荡频率大多在百兆赫兹范围内;在一些简单应用系统中采用4位字长的CPU,在中、小规模应用场合广泛采用8位字长单片机,在一些复杂的中、大规模的应用系统中才采用16位字长单片机,32位单片机产品目前应用得还不多。 (2) 两者都有存储器,但通用微机中存储器组织结构主要针对增大存储容量和CPU对数据的存取速度。现今微机的内存容量达到了数百兆字节(MB),存储体系采用多体、并读技术和段、页等多种管理模式。单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上,CPU对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为64 KB。 (3) 两者都有I/O接口,但通用微机中I/O接口主要考虑标准外设(如CRT、标准键盘、鼠标、打印机、硬盘、光盘等)。用户通过标准总线连接外设,能达到即插即用。单片机应用系统的外设都是非标准的,且千差万别,种类很多。单片机的I/O接口实际上是向用

单片机原理习题及答案

习题 1. 何为“准双向I/O接口”?在MCS-51单片机的四个并口中,哪些是“准双向I/O接口”? 答:准双向I/O接口是能实现输入输出功能,但在使用时只能从输入和输出中选择一个。MCS-51单片机的四个并口中P1、P2、P3是准双向I/O接口。 2. 80C51单片机内部有几个定时/计数器?它们由哪些功能寄存器组成?怎样实现定时功能和计数功能? 答:80C51单片机内部有两个16位的可编程定时/计数器,由TH0,TL0,TH1,TL1,TMOD和TCON功能寄存器组成。通过TMOD中的C/T位选择对机器周期计数实现计数功能,选择对外部脉冲计数实现计数功能。 3. 定时/计数器T0有几种工作方式?各自的特点是什么? 答:有四种工作方式,特点见下表: M1 M0 工作方式方式说明 0 0 0 13位定时/计数器 0 1 1 16位定时/计数器 1 0 2 8位自动重置定时/计数器 1 1 3 两个8位定时/计数器(只有T0有) 4. 定时/计数器的四种工作方式各自的计数范围是多少?如果要计10个单位,不同的方式初值应为多少? 答:有四种方式。方式0计数范围:1~8192;方式1计数范围:1~65536;方式2计数范围:1~256;方式3计数范围:1~256。 如果计10个单位,方式0初值为:8192-10=8182;方式1初值为:65536-10=65526;方式2初值为:256-10=246;方式2初值为:256-10=246。 5. 设振荡频率为12MHz,如果用定时/计数器T0产生周期为100ms的方波,可以选择哪几种方式,其初值分别设为多少? 答:只能选择方式1,初值为65536-50000=15536。

单片机原理及应用在线考试试题答案

中国石油大学(北京)远程教育学院期末考核 《单片原理及应用》 说明:共100分,每题20分,在下题中任选5题。 1.MCS-51的时钟周期、机器周期、指令周期是如何分配的?当振荡频率为10MHz时,一 个机器周期为多少毫秒? 参考第二章第四节。MCS-51典型的指令周期为一个机器周期,每个机器周期由6个状态周期组成,每个状态周期由2个时钟周期(振荡周期)组成。一个机器周期=6×一个状 态周期=12×一个时钟周期=12× 答: 为使单片机能够完成取指、译码、执行指令等操作,需要为单片机提供时钟信号以产生必要的时序。单片机振荡电路中的振荡信号对应的周期叫振荡周期(时钟周期)。对振荡周期12分频后得到的信号周期叫做机器周期,即12个时钟周期,是1个机器周期。一个机器周期宽度为6个状态周期,并依次表示为S1~S6。每个状态周期由2个时钟周期(振荡周期)组成。Mcs51单片机的111条指令,执行时,所花费的时间,称为指令周期。 一个机器周期=6×一个状态周期=12×一个时钟周期=12×=12×1/10=1.2 us=0.0012ms 2.指出下列指令中画线的操作数的寻址方式? MOV R0, #55H ;立即寻址 MOV A, 2AH ;直接寻址 MOV A, @R1 ;寄存器间接寻址 MOV @R0, A ;寄存器寻址 ADD A, R7 ;寄存器寻址 MOVX A, @DPTR ;寄存器间接寻址 MOV DPTR, #0123H ;立即寻址 MOVC A, @A+DPTR ;基址加变址寻址 INC DPTR;寄存器寻址 参考第三章第二节指令寻址方式 3.外部RAM中从1000H到10FFH有一个数据区,现在将它传送到外部RAM中2500H单元 开始的区域中,编程完成上述功能。 参考第三章第三节数据传送类指令和第六章第二节外部存储器扩展 START: MOV R0,#00H MOV DPTR,#1000H LOOP: MOVX A,@DPTR MOV DPH,#25H MOVX @DPTR,A MOV DPH,#10H

单片机原理及应用课后答案

第1章单片机概述参考答案 1.1 答:微控制器,嵌入式控制器 1.2 答:CPU、存储器、I/O口、总线 1.3 答:C 1.4 答:B 1.5 答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。 嵌入式处理器一般意义上讲,是指嵌入系统的单片机、DSP、嵌入式微处理器。目前多把嵌入式处理器多指嵌入式微处理器,例如ARM7、ARM9等。嵌入式微处理器相当于通用计算机中的CPU。与单片机相比,单片机本身(或稍加扩展)就是一个小的计算机系统,可独立运行,具有完整的功能。而嵌入式微处理器仅仅相当于单片机中的中央处理器。为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。 1.6 答:MCS-51系列单片机的基本型芯片分别:8031、8051和8071。它们的差别是在片内程序存储器上。8031无片内程序存储器、8051片内有4K字节的程序存储器ROM,而8751片内有集成有4K字节的程序存储器EPROM。 1.7 答:因为MCS-51系列单片机中的"MCS"是Intel公司生产的单片机的系列符号,而51系列单片机是指世界各个厂家生产的所有与8051的内核结构、指令系统兼容的单片机。 1.8 答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash存储器取代了87C51片内的4K字节的EPROM。 1.9 单片机体积小、价格低且易于掌握和普及,很容易嵌入到各种通用目的的系统中,实现各种方式的检测和控制。单片机在嵌入式处理器市场占有率最高,最大特点是价格低,体积小。 DSP是一种非常擅长于高速实现各种数字信号处理运算(如数字滤波、FFT、频谱分析等)的嵌入式处理器。由于对其硬件结构和指令进行了特殊设计,使其能够高速完成各种复杂的数字信号处理算法。广泛地用于通讯、网络通信、数字图像处理,电机控制系统,生物信息识别终端,实时语音压解系统等。这类智能化算法一般都是运算量较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP的长处所在。与单片机相比,DSP具有的实现高速运算的硬件结构及指令和多总线,DSP处理的算法的复杂度和大的数据处理流量以及片内集成的多种功能部件更是单片机不可企及的。 嵌入式微处理器的基础是通用计算机中的CPU,它的地址总线数目较多能扩展较大的存储器空间,所以可配置实时多任务操作系统(RTOS)。RTOS是嵌入式应用软件的基础和开发平台。正由于嵌入式微处理器能运行实时多任务操作系统,所以能够处理复杂的系统管理任务和处理工作。因此,广泛地应用在移动计算平台、媒体手机、工业控制和商业领域(例如,智能工控设备、ATM机等)、电子商务平台、信息家电(机顶盒、数字电视)以及军事上的应用。 1.10 广义上讲,凡是系统中嵌入了"嵌入式处理器",如单片机、DSP、嵌入式微处理器,都称其为"嵌入式系统"。但多数人把 "嵌入"嵌入式微处理器的系统,称为"嵌入式系统"。目前"嵌入式系统"还没有一个严格和权威的定义。目前人们所说的"嵌入式系统",多指后者。 第2章 AT89S51单片机的硬件结构 1.答:AT89S51单片机的片内都集成了如下功能部件:(1)1个微处理器(CPU);(2)128

单片机原理与应用 习题答案

习题解答 第三章 3-1 已知A=7AH,R0=30H(30H=A5H),PSW=80H,SP=65H,试分析下面每条指令的执行结果及对标志位的影响。 (1)ADD A,@R0;01111010+=1,00011111,(A)=1FH,Cy=1 , AC=0,OV=0,P=1 (2)ADD A,#30H;01111010+00110000=,(A)=AAH,Cy=0,AC=0,OV=1,P=0 (3)ADDC A,30H;01111010++1=1,00100000,(A)=20H,Cy=1,AC=1,OV=0,P=1 (4)SUBB A,@R0;0101-1=1,,(A)=D4H,Cy=1,AC=0,OV=1,P=0 (5)DA A;01111010+00000110=,(A)=80H,Cy=0,其他无变化 (6)RLC A;(A)=B=F5H,Cy=0,AC=0,OV=0,P=0 (7)RR A;(A)=00111101B=3DH,Cy=1,AC=0,OV=0,P=1 《 (8)PUSH 30H;SP=66H,(66H)=A5H (9)POP B;SP=64H,(B)=(65H) (10)XCH A,@R0;(A)=A5H,(30H)=7AH,Cy=1,OV=0,AC=0,P=0 3-4 试分析在执行完下面的程序段后,A,R0,R1,R7,SP以及片内RAM的一些单元中内容各是什么 MOV SP,#65H MOV R7,#5 MOV R0,#30H MOV R1,#40H LOOP:MOV A,@R1 PUSH ACC $ MOV A,@R0 MOV @R1,A INC R0 INC R1 DJNZ R7,LOOP 结果:(A)=(34H),(R0)=34H,(R1)=44H,(R7)=0,SP=70H ,(70H)=(44H),(30H)=(40H),…(34H)=(44H)。 3-5 已知SP=62H,(62H)=50H,(61H)=30H,问执行指令RET后,PC=,SP=并解释。 答:执行指令RET,从堆栈中弹出地址值给PC,栈指针减2,(62H),(61H)中的内容分别弹出PC=5030H,SP=60H 3-7 试编程求出片外RAM从2000H开始的连续20个单元的平均值,并将结果存入内部RAM20H单元。 MOV DPTR,#2000H ) ACALL AVG 子程序名:AVG 子程序功能:求20个无符号数平均值子程序 子程序入口:(DPTR)=数据区首地址指针

单片机原理及应用试卷和答案(三套试卷和答案)

试卷一 一、填空题(20分,每小题2分) 1、-19D的二进制的补码表示为11101101B。 2、89C51含4KB掩膜ROM,128B的RAM,在物理上有4个独立的存储器空间。 3、通过堆栈操作实现子程序调用,首先要把PC 的内容入栈,以进行断点保护。调 用返回时再进行出栈操作,把保护的断点弹回 PC。 4、74LS138是具有3个输入的译码器芯片,其输出作为片选信号时,最多可以选中8 块芯片。 5、PSW中RS1 RS0=10H时,R2的地址为12H。 6、假定DPTR的内容为8100H,累加器A的内容为40H,执行下列指令: MOVC A,@A+DPTR 后,送入A的是程序存储器8140H单元的内容。 7、设SP=60H,片内RAM的(30H)=24H,(31H)=10H,在下列程序段注释中填执 行结果。 PUSH 30H ;SP=61H,(SP)=24H PUSH 31H ;SP=62H,(SP)=10H POP DPL ;SP=61H,DPL=10H POP DPH ;SP=60H,DPH=24H MOV A,#00H MOVX @DPTR,A 最后执行结果是执行结果将0送外部数据存储器的2410H单元。 8、在中断系统中,T0和T1两引脚扩展成外部中断源时,计数初值应当是(TH)=(TL)= 0FFH。 9、12根地址线可寻址4KB存储单元。 二、选择题(10分,每小题1分) 1、MCS-51响应中断时,下面哪一个条件不是必须的(C) (A)当前指令执行完毕(B)中断是开放的 (C)没有同级或高级中断服务(D)必须有RETI 2、执行PUSH ACC指令,MCS-51完成的操作是(A) (A)SP+1→SP,(ACC)→(SP);(B)(ACC)→(SP),SP-1→SP (C)SP-1→SP,(ACC)→(SP);(D)(ACC)→(SP),SP+1→SP 3、89C51是(C) (A)CPU (B)微处理器 (C)单片微机(D)控制器 4、关于MCS-51的堆栈操作,正确的说法是(C) (A)先入栈,再修改栈指针(B)先修改栈指针,再出栈 (C)先修改栈指针,再入栈(D)以上都不对

单片机原理和应用习题答案解析(第三版)

第一章习题参考答案 1-1:何谓单片机?与通用微机相比,两者在结构上有何异同? 答:将构成计算机的基本单元电路如微处理器(CPU)、存储器、I/O接口电路和相应实时控制器件等电路集成在一块芯片上,称其为单片微型计算机,简称单片机。 单片机与通用微机相比在结构上的异同: (1)两者都有CPU,但通用微机的CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度和精度的进一步提高。例如,现今微机的CPU都支持浮点运算,采用流水线作业,并行处理、多级高速缓冲(Cache)技术等。CPU的主频达到数百兆赫兹(MHz),字长普遍达到32位。单片机主要面向控制,控制中的数据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度和精度也相对要低一些。例如,现在的单片机产品的CPU大多不支持浮点运算,CPU还采用串行工作方式,其振荡频率大多在百兆赫兹范围内;在一些简单应用系统中采用4位字长的CPU,在中、小规模应用场合广泛采用8位字长单片机,在一些复杂的中、大规模的应用系统中才采用16位字长单片机,32位单片机产品目前应用得还不多。 (2) 两者都有存储器,但通用微机中存储器组织结构主要针对增大存储容量和CPU对数据的存取速度。现今微机的内存容量达到了数百兆字节(MB),存储体系采用多体、并读技术和段、页等多种管理模式。单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上,CPU对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为64 KB。 (3) 两者都有I/O接口,但通用微机中I/O接口主要考虑标准外设(如CRT、标准键盘、鼠标、打印机、硬盘、光盘等)。用户通过标准总线连接外设,能达到即插即用。单片机应用系统的外设都是非标准的,且千差万别,种类很多。单片机的I/O接口实际上是向用户提供的与外设连接的物理界面。用户对外设的连接要设计具体的接口电路,需有熟练的接口电路设计技术。 另外,单片机的微处理器(CPU)、存储器、I/O接口电路集成在一块芯片上,而通用微机的微处理器(CPU)、存储器、I/O接口电路一般都是独立的芯片 1-4 IAP、ISP的含义是什么? ISP:In System Programable,即在系统编程。用户可以通过下载线以特定的硬件时序在线编程(到单片机内部集成的FLASH上),但用户程序自身不可以对内部存储器做修改。 IAP:In Application Programable,即在应用编程。用户可以通过下载线对单片机进行在线编程,用户程序也可以自己对内部存储器重新修改。 1-6 51单片机与通用微机相比,结构上有哪些主要特点? (1)单片机的程序存储器和数据存储器是严格区分的,前者为ROM,后者为RAM; (2)采用面向控制的指令系统,位处理能力强; (3)I/O引脚通常是多功能的; (4)产品系列齐全,功能扩展性强; (5)功能是通用的,像一般微处理机那样可广泛地应用在各个方面。 1-7 51单片机有哪些主要系列产品? (1)Intel公司的MCS-51系列单片机:功能比较强、价格比较低、较早应用的单片机。此系列三种基本产品是:8031/8051/8751; (2)ATMEL公司的89系列单片机:内含Flash存储器,开发过程中可以容易地进行

单片机原理期末考试试题_附答案

单片机原理期末考试试 题_附答案 This model paper was revised by LINDA on December 15, 2012.

单片机原理及应用期末考试试题汇总 1、单片机是将微处理器、一定容量的 RAM 和ROM以及(I/O)口、定时器等电路集成在一块芯片上而构成的微型计算机。 2、单片机89C51片内集成了(4)KB的FLASH ROM,共有(5)个中断源。 3、两位十六进制数最多可以表示(256)个存储单元。 4、89C51是以下哪个公司的产品( C ) A、INTEL B、AMD C、ATMEL D、PHILIPS 5、在89C51中,只有当EA引脚接(高)电平时,CPU才访问片内的Flash ROM。 6、是非题:当89C51的EA引脚接低电平时,CPU只能访问片外ROM,而不管片内是否有程序存储器。T 7、是非题:当89C51的EA引脚接高电平时,CPU只能访问片内的4KB空间。F 8、当CPU访问片外的存储器时,其低八位地址由(P0)口提供,高八位地址由(P2)口提供,8位数据由(P0)口提供。9、在I/O口中,(P0)口在接LED时,必须提供上拉电阻,(P3)口具有第二功能。10、是非题:MCS-51系列单片机直接读端口和读端口锁存器的结果永远是相同的。F 11、是非题:是读端口还是读锁存器是用指令来区别的。T 12、是非题:在89C51的片内RAM区中,位地址和部分字节地址是冲突的。F 13、是非题:中断的矢量地址位于RAM区中。F 14、MCS-51系列单片机是属于(B)体系结构。 A、冯诺依曼 B、普林斯顿 C、哈佛 D、图灵 15、89C51具有?( 64?) KB的字节寻址能力。 16、是非题:在89C51中,当CPU访问片内、外ROM区时用MOVC指令,访问片外

单片机原理与应用试题及答案

单片机原理与应用试题 及答案 https://www.sodocs.net/doc/5a4839932.html,work Information Technology Company.2020YEAR

单片机原理与应用试卷及答案 一、填空题 1、10110110B 作为无字符数时,十进制数值为182;作为补码时,十进制数值为—74. 2、原码01101011B 的反码为01101011B ;补码为01101011B 。 3、由8051的最小系统电路除芯片外,外部只需要复位电路和时钟(晶振)电路,如果由8031的最小系统,还需要扩展外部ROM 电路。 4、若已知8051RAM 的某位地址为09H ,则该位所处的单元地址为21H 。 5、C51语言中,指令#define ADC XBYTE[OXFFEO]能够正确编译的前提是包含头文件absacc.h ,该指令的作用是定义一个外部地址单元为OXFFEO 。 二、选择题 1、程序和常数都是以(二进制)的形式存放在单片机程序的存储器中。 2、下列哪一个选项的指令语句不是任何时候都可以被C51正确编译(uchar; k=ox20) 3、当PSW 的RS0和RS1位分别为1和0时,系统选用的寄存器组为(1组) 4、若某存储器芯片地址线为12根,那么它的存储容量为(4KB ) 5、已知T osc =12MHZ ,TH1=177,TL1=224,TMOD=ox10,则从定时器启动到正常溢出的时间间隔为(20ms ) 三、简答题 答:①新建工程项目②配置工程项目属性③创建源文件④将源文件加入项目⑤保存项目 3、PSW 寄存器有何作用其各位是如何定义的 4、 答:标志寄存器PSW 是一个8位的寄存器,它用于保存指令执行结果的状态,以供工程查询和判别。 C (PWS.7):进位标志位 AC (PWS.6):辅助进位标志位 FO (PWS.5):用户标志位 RS1、RS0(PWS.4、PWS.3 PSW DOH

单片机原理及应用习题答案

思考与练习题1 1.1单项选择题 (1)单片机又称为单片微计算机,最初的英文缩写是( D ) A.MCP B.CPU C.DPJ D.SCM (2)Intel公司的MCS-51系列单片机是( C )的单片机。 A.1位 B.4位 C.8位 D.16位 (3)单片机的特点里没有包括在内的是( C ) A.集成度高 B.功耗低 C.密封性强 D.性价比高 (4)单片机的发展趋势中没有包括的是( B ) A.高性能 B.高价格 C.低功耗 D.高性价比 (5)十进制数56的二进制数是( A ) A.00111000B B.01011100B C.11000111B D.01010000B (6)十六进制数93的二进制数是( A ) A.10010011B B.00100011B C.11000011B D.01110011B (7)二进制数11000011的十六进制数是( B ) A. B3H B.C3H C.D3H D.E3H (8)二进制数11001011的十进制无符号数是( B ) A. 213 B.203 C.223 D.233 (9)二进制数11001011的十进制有符号数是( B ) A. 73 B.-75 C.-93 D.75 (10)十进制数29的8421BCD压缩码是( A ) A.00101001B B.10101001B C.11100001B D.10011100B (11)十进制数-36在8位微机中的反码和补码是( D ) A.00100100B、11011100B B.00100100B、11011011B C.10100100B、11011011B D.11011011B、11011100B (12)十进制数+27在8位微机中的反码和补码分别是( C ) A.00011011B、11100100B B.11100100B、11100101B C.00011011B、00011011B D.00011011B、11100101B (13)字符9的ASCII码是( D ) A.0011001B B.0101001B C.1001001B D.0111001B (14)ASCII码1111111B的对应字符是( C ) A. SPACE B.P C.DEL D.{ (15)或逻辑的表达式是( B ) A.A?B=F B. A+B=F C. A⊕B=F D.(A?B)=F (16)异或逻辑的表达式是( C ) A.A?B=F B. A+B=F C. A⊕B=F D.(A?B)=F (17)二进制数10101010B与00000000B的“与”、“或”和“异或”结果是( B ) A.10101010B、10101010B、00000000B B.00000000B、10101010B、10101010B C.00000000B、10101010B、00000000B D.10101010B、00000000B、10101010B (18)二进制数11101110B与01110111B的“与”、“或”和“异或”结果是( D ) A.01100110B、10011001B、11111111B B.11111111B、10011001B、01100110B C.01100110B、01110111B、10011001B D.01100110B、11111111B、10011001B (19)下列集成门电路中具有与门功能的是( D ) A.74LS32 B.74LS06 C.74LS10 D.74LS08

单片机原理试题库答案

单片机原理及应用复习题及答案 一、选择题(在每个小题四个备选答案中选出一个或几个正确答案,填在题的括号中) 1、80C51基本型单片机内部程序存储器容量为(C)。 (A)16KB (B)8KB (C)4KB (D)2KB 2、在80C51单片机应用系统中,可以作为时钟输出的是(C)引脚。 (A)EA(B)RST (C)ALE (D)PSEN 3、在80C51的4个并行口中,能作为通用I/O口和高8位地址总线的是(C)。 (A)P0 (B)P1 (C)P2 (D)P3 4、当优先级的设置相同时,若以下几个中断同时发生,(D)中断优先响应。 (A)并口(B)T1 (C)串口(D)T0 5、在80C51中,要访问SFR使用的寻址方式为(AB)。 (A)直接寻址(B)寄存器寻址(C)变址寻址(D)寄存器间接寻址 6、以下的4条指令中,不合法的指令为(D)。 (A)INC A (B)DEC A (C)INC DPTR (D)SWAP ACC 7、当需要扩展一片8KB的RAM时,应选用的存储器芯片为(B)。 (A)2764 (B)6264 (C)6116 (D)62128 8、若想扩展键盘和显示,并希望增加256字节的RAM时,应选择(A)芯片。 (A)8155 (B)8255 (C)8253 (D)8251 9、80C51单片机要进行10位帧格式的串行通讯时,串行口应工作在(B )。 (A)方式0 (B)方式1 (C)方式2 (D)方式3 10、80C51复位初始化时未改变SP的内容,第一个入栈的单元地址为(A)。 (A)08H (B)80H (C)00H (D)07H 11、MCS—51单片机的复位信号是( A )有效。 A.高电平 B.低电平 C.脉冲 D.下降沿 12、若MCS-51单片机使用晶振频率为6MHz时,其复位持续时间应该超过( B )。 A.2μs B.4μs C.8μs D.1ms 13、若PSW.4=0,PSW.3=1,要想把寄存器R0的内容入栈,应使用( D )指令。 A.PUSH R0 B.PUSH @R0 C.PUSH 00H D.PUSH 08H 14、能够用紫外光擦除ROM中程序的只读存储器称为( C )。 A.掩膜ROM B.PROM C.EPROM D.EEPROM 15、在片外扩展一片2764程序存储器芯片要( B )地址线。 A.8根 B.13根 C.16根 D.20根 16、定时器/计数器工作方式1是( D )。 A.8位计数器结构 B.2个8位计数器结构 C.13位计数结构 D.16位计数结构 17、设MCS-51单片机晶振频率为12MHz,定时器作计数器使用时,其最高的输入计数频率应为 ( C ) A.2MHz B.1MHz C.500KHz D.250KHz 18、已知1只共阴极LED显示器,其中a笔段为字形代码的最低位,若需显示数字1,它的字形代码应为( A )。 A.06H B.F9H C.30H D.CFH

单片机原理及应用教程第3版习题课后答案

《单片机原理及应用程序》(第三版)习题参考答案 第一章 1. 为什么计算机要采用二进制数?学习十六进制数的目的是什么? 在计算机中,由于所采用的电子逻辑器件仅能存储和识别两种状态的特点,计算机部一切信息存储、处理和传送均采用二进制数的形式。可以说,二进制数是计算机硬件能直接识别并进行处理的惟一形式。十六进制数可以简化表示二进制数。 2. (1) 01111001 79H (2) 0.11 0.CH (3) 01111001.11 79.CH (4) 11101010.101 0EA.AH (5)01100001 61H (6) 00110001 31H 3. (1) 0B3H (2)80H (3) 17.AH (4) 0C.CH 4. (1)01000001B 65 (2) 110101111B 431 5. (1) 00100100 00100100 00100100 (2) 10100100 11011011 11011100 (5) 10000001 11111110 11111111 6. 00100101B 00110111BCD 25H 7. 137 119 89 8.什么是总线?总线主要有哪几部分组成?各部分的作用是什么? 总线是连接计算机各部件之间的一组公共的信号线。一般情况下,可分为系统总线和外总线。 系统总线应包括:地址总线(AB)控制总线(CB)数据总线(DB) 地址总线(AB):CPU根据指令的功能需要访问某一存储器单元或外部设备时,其地址信

息由地址总线输出,然后经地址译码单元处理。地址总线为16位时,可寻址围为216=64K,地址总线的位数决定了所寻址存储器容量或外设数量的围。在任一时刻,地址总线上的地址信息是惟一对应某一存储单元或外部设备。 控制总线(CB):由CPU产生的控制信号是通过控制总线向存储器或外部设备发出控制命令的,以使在传送信息时协调一致的工作。CPU还可以接收由外部设备发来的中断请求信号和状态信号,所以控制总线可以是输入、输出或双向的。 数据总线(DB):CPU是通过数据总线与存储单元或外部设备交换数据信息的,故数据总线应为双向总线。在CPU进行读操作时,存储单元或外设的数据信息通过数据总线传送给CPU;在CPU进行写操作时,CPU把数据通过数据总线传送给存储单元或外设9.什么是接口电路? CPU与接口电路连接一般应具有哪些信号线?外部设备与接口电路连接一般应具有哪些信号线? CPU通过接口电路与外部输入、输出设备交换信息, 一般情况下,外部设备种类、数量较多,而且各种参量(如运行速度、数据格式及物理量)也不尽相同。CPU为了实现选取目标外部设备并与其交换信息,必须借助接口电路。一般情况下,接口电路通过地址总线、控制总线和数据总线与CPU连接;通过数据线(D)、控制线(C)和状态线(S)与外部设备连接。 10. 存储器的作用是什么?只读存储器和随机存储器有什么不同? 存储器具有记忆功能,用来存放数据和程序。计算机中的存储器主要有随机存储器(RAM)和只读存储器(ROM)两种。随机存储器一般用来存放程序运行过程中的中间数据,计算机掉电时数据不再保存。只读存储器一般用来存放程序,计算机掉电时信息不会丢失。 11.某存储器的存储容量为64KB,它表示多少个存储单元?64×1024 12. 简述微型计算机硬件系统组成。

单片机原理与应用习题和答案

“单片机原理及应用”课程习题与解答 第一章 1-3:单片机与普通计算机的不同之处在于其将(cpu )(I/O口)和(存储器)三部分集成于一块芯片上。 答:CPU、存储器、I/O口 1-8:8051与8751的区别是:(部程序存储器不同) A、部数据存储但也数目的不同 B、部数据存储器的类型不同 C、部程序存储器的类型不同 D、部的寄存器的数目不同 答:C 第二章 2-4:在MCS-51单片机中,如果采用6MHz晶振,1个机器周期为()。 答:2us。 析:机器周期为振荡周期的1/6。 2-6:部RAM中,位地址为30H的位,该位所在字节的字节地址为()。 答:26H 2-7:若A中的容为63H,那么,P标志位的值为()。 答:0 析:P为奇偶校验位,因为A中1的个数为偶数,所以P=0。 2-8:判断下列说法是否正确: A、8031的CPU是由RAM和EPROM所组成。运算器和控制器组成 B、区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址围的低端还是高端。通过 引脚指令 C、在MCS-51中,为使准双向的I/O口工作在输入方式,必须保证它被事先预置为1。 D、PC可以看成使程序存储器的地址指针。 答:错、错、对、对 2-9:8031单片机复位后,R4所对应的存储单元的地址为(04H),因上电时PSW=(00H)。这时当前的工作寄存器区是(0)组工作寄存器区。 答:04H、00H、0 2-11:判断以下有关PC和DPTR的结论是否正确? A、DPTR是可以访问的,而PC不能访问。 B、它们都是16位的存储器 C、它们都有加1的功能。Pc无 D、DPTR可以分为两个8位的寄存器使用,但PC不能。 答:对、对、错、对 2-13:使用8031芯片时,需将/EA引脚接(低)电平,因为其片无(程序)存储器。 答:低、程序 2-14:片RAM低128个单元划分为哪3个主要部分?各部分的主要功能是什么? 答:工作寄存器区、位寻址区、数据缓冲区 2-15:判断下列说法是否正确 A、程序计数器PC不能为用户编程时直接使用,因为它没有地址。 B、部RAM的位寻址区,只能供位寻址使用,而不能供字节寻址使用。都能

单片机原理及应用试题库答案

《单片机原理及应用》试题库 一、填空题 1.单片机就是把(CPU)、( 输入/输出)、和( 存储器)等部件都集成在一个电路芯片上,并具备一套功能完善的( 指令系统),有的型号同时还具备( AD )和( DA )等功能部件,其简称为( 微处理器)或(微控制器)。 2.Intel公司典型的单片机有( MCS-51系列)和( MCS-96系列)。 3.单片机具有体积( 下)、重量( 轻)、价格( 低)、功耗( 小)、控制功能强、运算速度快、运用灵活、易于产品化、抗扰能力( 强)等特点,故在国民经济建设、军事及家用电器等领域均得到了广泛的应用。 4.微处理器本身不是计算机,它是微型计算机的核心部件,又称它为(CPU )。它包括两个主要部分:(运算器)、(控制器)。 5.当扩展外部存储器或I/O口时,P2口用作(地址线的高8位)。 6.MCS-51单片机内部RAM区有( 4 )个工作寄存器区。 7.MCS-51单片机内部RAM区有(128 )个位地址。 8.89C51单片机片内RAM中位寻址区的地址范围是(20H—2FH ),工作寄存器区的地址范围是(00H—1FH ),片内程序存储器中寻址区的地址范围是(0000H—07FFH )。 9.MCS-51有( 4 )个并行I\O口。 10.MCS-51的堆栈是软件填写堆栈指针临时在(30H—7FH )内开辟的区域. 11.MCS-51片内(20H—2FH )范围内的数据存储器,既可以字节寻址又可以位寻址。 12.程序状态标志字寄存器PSW中的PSW.7的含义是(进位和借位标志位);PSW.0的含义是(奇偶校验位)。 13.若不使用89C51片内的程序存储器,引脚(EA’)必须接地。 14.MCS-51中凡字节地址能被(0和8 )整除的特殊功能寄存器均能寻址。 15.MCS-51有4组工作寄存器,它们的字节地址范围是(00H—1FH )。 16.当MCS-51引脚(ALE )信号有效时,表示从P0口稳定地送出了低8位地址. 17.在单片机的RESET端出现(两个机器周期以上的高电平时),便可以可靠复位,复位后的程序指针PC指向(0000H )地址。 18.MCS-51系列单片机有:(外部中断0), (外部中断1 ), (定时/计数器T0溢出中断), (定时/计数器T1溢出中断), (串行口)等5个中断请求源。 39.KeiL C51软件中,工程文件的扩展名是__UV2______,编译连接后生成可烧写的文件扩展名是__hex_______。

单片机原理及应用(第三版)张毅刚-课后习题答案完整版

第1章思考题及习题1参考答案 一、填空 1. 除了单片机这一名称之外,单片机还可称为或。答:微控制器,嵌入式 控制器. 2.单片机与普通微型计算机的不同之处在于其将、、和三部分,通 过内部连接在一起,集成于一块芯片上。答:CPU、存储器、I/O口、总线 3. AT89S52单片机工作频率上限为MHz。答:33 MHz。 4. 专用单片机已使系统结构最简化、软硬件资源利用最优化,从而大大降低和提 高。答:成本,可靠性。 二、单选 1. 单片机内部数据之所以用二进制形式表示,主要是 A.为了编程方便 B.受器件的物理性能限制 C.为了通用性 D.为了提高运算速度 答:B 2. 在家用电器中使用单片机应属于微计算机的。 A.辅助设计应用B.测量、控制应用 C.数值计算应用D.数据处理应用

答:B 3. 下面的哪一项应用,不属于单片机的应用范围。 A.工业控制B.家用电器的控制C.数据库管理D.汽车电子设备 答:C 三、判断对错 1. STC系列单片机是8051内核的单片机。对 2. AT89S52与AT89S51相比,片内多出了4KB的Flash程序存储器、128B的RAM、1 个中断源、1个定时器(且具有捕捉功能)。对 3. 单片机是一种CPU。错 4. AT89S52单片机是微处理器。错 5. AT89C52片内的Flash程序存储器可在线写入,而AT89S52则不能。错 6. 为AT89C51单片机设计的应用系统板,可将芯片AT89C51直接用芯片AT89S51替换。对 7. 为AT89S51单片机设计的应用系统板,可将芯片AT89S51直接用芯片AT89S52替换。对 8. 单片机的功能侧重于测量和控制,而复杂的数字信号处理运算及高速的测控功能则是DSP 的长处。对 四、简答

单片机原理与接口技术习题答案

单片机原理与接口技术习题答案 习题与思考题1 1-2 单片微型计算机与一般微型计算机相比较有哪些区别?有哪些特点? 答:与通用微型计算机相比,单片机的硬件上,具有严格分工的存储器ROM和RAM和I/O端口引脚具有复用功能;软件上,采用面向控制的指令系统和硬件功能具有广泛的通用性,以及品种规格的系列化。单片机还具备体积小、价格低、性能强大、速度快、用途广、灵活性强、可靠性高等特点。 1-4 单片机的几个重要指标的定义。 答:单片机的重要指标包括位数、存储器、I/O口、速度、工作电压、功耗和温度。 习题与思考题2 2-2 MCS-51单片机的EA、ALE和PSEN端的功能是什么? 答:ALE——ALE为地址锁存允许信号,在访问外部存储器时,ALE用来锁存P0送出的低8位地址信号。 PSEN——外部程序存储器的读选通信号。当访问外部ROM时,PSEN产生负脉冲作为外部ROM的 选通信号;在访问外部RAM或片内ROM时,不会产生有效的PSEN信号。PSEN可驱动8个LSTTL 门输入端。 EA——访问外部程序存储器控制信号。对8051和8751,它们的片内有4KB的程序存储器。当EA为 高电平时,CPU访问程序存储器有两种情况:一是访问的地址空间在0~4K范围内,CPU访问片内 程序存储器;二是访问的地址超出4K时,CPU将自动执行外部程序存储器的程序。对于8031,EA 必须接地,只能访问外部ROM。 2-3 程序计数器(PC)有多少位?它的主要功能是什么? 答:程序计数器有16位,它的功能和一般微型计算机的相同,用来存放下一条要执行的指令的地址。当按照PC 所指的地址从存储器中取出一条指令后,PC会自动加l,即指向下一条指令。 2-5 MCS-51单片机如何实现工作寄存器组R0~R7的选择? 答:每个工作寄存器组都可被选为CPU的当前工作寄存器,用户可以通过改变程序状态字寄存器(PSW)中的RS1、RS0两位来任选一个寄存器组为当前工作寄存器。 RS1RS0寄存器组R0R1R2R3R4R5R6R7 000组00H01H02H03H04H05H06H07H 011组08H09H0AH0BH0CH0DH0EH0FH 102组10H11H12H13H14H15H16H17H 113组18H19H1AH1BH1CH1DH1EH1FH 2-6 单片机复位后,各特殊功能寄存器中的初始化状态是什么? 答: 特殊功能寄存器初始状态特殊功能寄存器初始状态ACC00H TMOD00H PC0000H TCON00H PSW00H TL000H SP07H TH000H DPTR0000H TL100H P0~P30FFH TH100H IP xx000000B B00H IE0x000000B SCON00H PCON0xxx0000B SBUF不定

单片机原理及应用试题及答案

广西工学院 2002 — 2003 学年第 2 学期课程考核试题考核课程单片机原理及应用考核班级自动化00级 学生数 145 印数 150 考核方式闭卷考核时间 120 分钟 一.填空题(每空1分,共20分) 1、单片机与普通计算机的不同之处在于其将CPU 微处理器、存储 器和I/O口三部分集成于一块芯片上。 2、使用双缓冲方式的D/A转换器,可实现多路模拟信号的同时输出。习题11.4 3、通过堆栈操作实现子程序调用,首先就要把PC的内容入栈,以进行断点保 护。调用返回时,再进行出栈保护,把保护的断点送回到PC。习题2.17 4、在基址加变址寻址方式中,以累加器A作变址寄存器, 以DPTR或PC 作基址寄存器。3.3 5、假定累加器A中的内容为40H,执行指令 1000H:MOVC A,@A+PC 后,把程序存储器1041H单元的内容送入累加器A中。 6、在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作 数,而是操作数的地址。3.10 7、假定A=83H,(R0)=17H,(17H)=0B5H,执行以下指令: ANL A,#17H ORL 17H,A XRL A,@R0 CPL A 后,A的内容为4BH 。 解析: ANL A,#17H ;A中83H与17H相与,(A)=03H ORL 17H,A ;(17H)中0B5H与(A)中03H相或,(17H)=B7H XRL A,@R0 A ;(A)中03H与(17H)中B7H异或,(A)=B4H

CPL A ;对A取反, A=4BH 8、已知程序执行前有A=01H,SP=42H,(41H)=FFH,(42H)=FFH。下述程序执行后: POP DPH POP DPL MOV DPTR,#3000H RL A MOV B,A MOVC A,@A+DPTR PUSH A MOV A,B INC A MOVC A,@A+DPTR PUSH A RET ORG 3000H DB 10H,80H,30H,80H,50H,80H 请问:A= 80H,SP= ,(41H)= ,(42H)= 。 9、在存储器扩展中,无论是线选法还是译码法,最终都是为了扩展芯片的片选端提供信号。 10、在MCS-51中,PC和DPTR都用于提供地址,但PC是为了访问程序存 储器提供地址,而DPTR是为访问数据存储器提供地址。 11、16KB RAM存储器的首地址若为3000H,则末地址为 H。 解析:1000H=0001 0000 0000 0000B=2^12=4K,16K就是4000H,即:0100 0000 0000 0000B=2^14 所以末地址为:7000H-1=6FFFH

相关主题