文档库 最新最全的文档下载
当前位置:文档库 › MCS-51单片机结构及原理题解

MCS-51单片机结构及原理题解

MCS-51单片机结构及原理题解
MCS-51单片机结构及原理题解

第2章 MCS-51单片机结构及原理习题

1.MSC-51单片机内部由哪些功能部件组成,各有什么功能?

答:以80C51单片机为例,其内部功能部件有:

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

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

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

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

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

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

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

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

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

VSS(20脚):接地引脚

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

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

(2) 控制引脚

RST/V

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

PD

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.51系列单片机的封装有哪些类型?请说明每一种封装引脚之间的距离。

答:51系列单片机的封装有:

40引脚双列直插封装(DIP——dual in-line package),引脚之间的距离是100mil(2.54mm);

44引脚方形扁平封装(QFP ——quad flat package)方式,引脚之间的距离是2.54mm;

44引脚带引线的塑料芯片载体PLCC(Plastic Leaded Chip Carrier)。

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

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

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

5.通常的微机系统存储器结构有哪几种?MCS-51单片机存储器属于哪一类?

CS-51可寻址多大空间?

答:通常的微机系统存储器结构有两种结构,即哈佛结构和冯诺依曼结构(也叫普林斯顿结构),MCS-51单片机存储器属于,MCS-51可寻址空间是两个64KB,即64KB的程序存储空间和64KB的数据存储空间。

6.片内RAM 中低128个单元划分为哪三个主要部分?各部分的主要功能是什么?

答:片内RAM 中低128个单元划分为三个部分:

①工作寄存器区(00H-1FH ),四组,每组8个,可作用工作寄存器切换使用;

②可位寻址区(20H-2FH ),16B ,位地址为00H-7FH ,用作为按位寻址的空间;

③用户RAM 区(30H-7FH ),80B ,用作普通RAM 单元或堆栈。

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

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

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。

8.什么是时钟周期?什么是机器周期?什么是指令周期?当振荡频率为12MHz 时,一个机器周期为多少微秒?

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

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

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

当振荡频率为12MHz 时,一个机器周期为1微秒。

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个输出驱动单元构成,其作用是用作输入输出口或第二功能。

10.80C51单片机引脚ALE 的作用是什么?当80C51不外接存储器时,ALE 上的输出的脉冲频率是多少?

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

RS P C A F RS O F CY AC F0 RS1 RS0 OV F1 P PSW.7

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

第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语言习题

1.C语言的优点是什么?C程序的主要结构特点是什么?

答:C语言是一种高级语言,学习比低级容易,不需要具体组织、分配存储器资源和处理端口数据,可以直接驱动单片机的所有资源。

C程序以函数为单位,由一个主函数和若干个其他函数构成,主函数是程序的入口,其他函数由主函数直接或间接调用。程序可以由一个文件或多个文件组成。文件类型包括头文件和C语言源文件,也可以是汇编语言文件,C程序可与汇编语言混合编程。

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),而且有多种寻址方式(直接寻址、间接寻址、页面寻址、位寻址)所致,所以在定义变量时,要根据其所在位置和寻址方式明确指定存储类型。

3.C51与汇编语言的特点各有哪些?怎样实现两者的优势互补?

答:C51是结构化语言,代码紧凑;接近自然语言,程序可读性强,易于调试、维护;库函数丰富,编程工作量小,可使产品开发周期短;具有机器级控制能力,功能很强,适合于嵌入式系统开发;汇编指令无关,易于掌握,上手快。

汇编语言优点是编写的程序代码精炼、执行速度快,在相同功能下,汇编语言程序可能比C语言程序效率高。缺点是对程序员要求高,必须对单片机的硬件结构非常熟悉才能编程,不便于编写比较复杂的程序。

可根据需要对要求时间性很强的代码用汇编语言编写,其它部分用C语言编写,两者混合编程就可以实现优势互补。

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章单片机的中断系统习题

1.什么是中断、中断源、中断优先级和中断嵌套?

答:中断是指单片机内部有一个中断管理系统,它对内部的定时器事件、串行通信的发送和接收及外部事件(如键盘按键动作)等进行自动的检测判断。当CPU正在处理某件事情(例如正在执行主程序)的时候,外部或内部发生的某一事件(如某个引脚上电平的变化,一个脉冲沿的发生或计数器的计数溢出等)请求CPU迅速处理,于是,中断管理系统会置位相应标志通知CPU暂时中止当前的工作,迅速转去处理所发生的事件。处理完该事件后,再回到原来被中止的地方,继续原来的工作,这样的过程称为中断。

引发中断的事件称为中断源。

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

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

2.什么叫中断源?MCS-51有哪些中断源?各有什么特点?它们的中断向量地址分别是多少?

答:中断源即引发中断的事件。

MCS-51单片机有5个中断源,它们是外部中断0,定时器T0,外部中断1,定时器T1,串行口。

外部中断源是由引脚的触发信号引起的中断,定时器中断源是由于定时器计数器的溢出引发的中断,串行口是由于串行通信的发送或接收引发的中断。

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

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;

}

6.有一外部中断源,接入0

INT端,当其中有中断请求时,要求CPU把一个从内部RAM 30H单元开始的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;

void timer0()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;

void timer1()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章单片机的定时器/计数器习题

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。

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(;;){} //无限循环等待中断

}

void timer0()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(;;){} //无限循环等待中断

}

void timer0()interrupt 1 using 1{

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

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

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

}

AT89C51单片机的基本结构和工作原理

AT89C51单片机的主要工作特性: ·内含4KB的FLASH存储器,擦写次数1000次; ·内含28字节的RAM; ·具有32根可编程I/O线; ·具有2个16位可编程定时器; ·具有6个中断源、5个中断矢量、2级优先权的中断结构; ·具有1个全双工的可编程串行通信接口; ·具有一个数据指针DPTR; ·两种低功耗工作模式,即空闲模式和掉电模式; ·具有可编程的3级程序锁定定位; AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz. AT89C51各部分的组成及功能: 1.单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。

(1)运算器 运算器主要用来实现算术、逻辑运算和位操作。其中包括算术和逻辑运算单元ALU、累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。 ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。 暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。ALU的输出也是两个:一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。 累加器是CPU使用最频繁的一个寄存器。ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。 B寄存器在乘法和除法指令中作为ALU的输入之一,另一个输入来自ACC。运算结果存于AB寄存器中。 (2)控制器 控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。AT89C51单片机中,PC是一个16位的计数器,可对64KB程序存储器进行寻址。复位时PC的内容是0000H. (3)存储器 单片机内部的存储器分为程序存储器和数据存储器。AT89C51单片机的程序存储器采用4KB的快速擦写存储器Flash Memory,编程和擦除完全是电器实现。 (4)外围接口电路 AT89C51单片机的外围接口电路主要包括:4个可编程并行I/O口,1个可编程串行口,2个16位的可编程定时器以及中断系统等。 AT89C51的工作原理: 1.引脚排列及功能 AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。 (1)I/O口线 ·P0口 8位、漏极开路的双向I/O口。 当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。P0口也可做通用I/O口使用,但需加上拉电阻。作为普通输入时,应输出锁存器配置1。P0口可驱动8个TTL负载。 ·P1口 8位、准双向I/O口,具有内部上拉电阻。 P1口是为用户准备的I/O双向口。在编程和校验时,可用作输入低8位地址。用作输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。 ·P2 8位、准双向I/O口,具有内部上拉电阻。 当使用外存储器或外扩I/O口时,P2口输出高8位地址。在编程和校验时,P2口接收高字节地址和某些控制信号。 ·P3 8位、准双向I/O口,具有内部上拉电阻。 P3口可作为普通I/O口。用作输入时,应先将输出锁存器置1。在编程/校验时,P3口接收某些控制信号。它可驱动4个TTL负载。 (2)控制信号线

单片机原理及应用在线考试(附答案)

一、单项选择题 1. 下面哪一种传送方式适用于处理外部事件( (A) 无条件传递进 (B) DMA (C) 中断 (D) 查询 分值:2.5 完全正确 得分:2.5 )
2.
在 MCS-51 单片机中,需要软件实现中断撤销的是:( ) (A) 电平触发的外部中断 (B) 脉冲触发的外部中断 (C) 定时中断 (D) 串行中断 分值:2.5 答题错误 得分:0
3.
十进制数 126 其对应的十六进制可表示为( )。 (A) 7E

(B) 8E (C) 8F (D) FE 分值:2.5 完全正确 得分:2.5
4.
在 LED 显示中,为了输出位控和段控信号,应使用的指令是:( ) (A) MOVC (B) MOV (C) MOVX (D) XCH 分值:2.5
5.
在单片机中,通常将一些中间计算结果放在( (A) 累加器 (B) 程序存储器 (C) 数据存储器 (D) 控制器
)中

分值:2.5 完全正确 得分:2.5
6.
MCS-51 单片机的堆栈区应建立在( )。 (A) 片内数据存储区 (B) 片内数据存储区的低 128 字节单元 (C) 片内数据存储区的高 128 字节单元 (D) 程序存储区 分值:2.5 完全正确 得分:2.5
7.
CPU 主要的组成部部分为( ) (A) 加法器、寄存器 (B) 运算器、控制器 (C) 运算器、寄存器 (D) 运算器、指令译码器 分值:2.5
完全正确 得分:2.5

51单片机原理及应用期末考试试题汇总7

一、选择题 从下列各题4个备选答案中选出一个或二个正确答案 并将其代号写在题干后面的括号内。 1、8051基本型单片机内部程序存储器容量为 C 。 A、16KB B、8KB C、4KB D、128B 2、8051基本型单片机内部RAM容量为D。 A、16KB B、8KB C、4KB D、128B 3、当优先级的设置相同时 若以下几个中断同时发生 A 中断优先响应。 A、外部中断0 B、T1 C、串口 D、T0 4、在80C51单片机应用系统中 可以作为时钟输出的是 C 引脚。 A、EA B、RST C、ALE D、PSEN 5、当CPU响应外部中断1 的中断请求后 将自动转向 B 。 A、0003H B、0013H C、000BH D、001BH 6、为了能够使MCS-51单片机在正常工作中及时服务于多个外设 以下传送方式最适用的是 D 。 A、异步 查询 传送 B、同步 无条件 传送 C、DMA传送 D、中断传送 7、已知1只共阴极LED显示器 其中a笔段为字形代码的最低位 若需显示数字1 它的字形代码应为(A )。A、06H B、0F9H C、30H D、0CFH 8、已知1只共阳极LED显示器 其中a笔段为字形代码的最低位 若需显示小数点“.” 它的字形码应为(A)。A、7FH B、0F9H C、30H D、80H 9、已知1只共阴极LED显示器 其中a笔段为字形代码的最低位 若需显示小数点“.”共阳极 它的字形码应为(A )。A、80H B、0F9H C、30H D、7FH 10、下列数据字定义的数表中 (C、D)是错误的。 A、DW “AA” B、DW “A” C、DW “OABC” D、DW 1ABC2H 11、若P1口接有一个4×4的行列键盘 则P1口一定有 C、D 。 A、8位输入口 B、8位输出口 C、4位输入口 D、4位输出口 12、以下指令中能够产生WR信号的是 B、D 。 A、MOV @R0,A B、MOVX @R0,A C、MOVX A @DPTR D、MOVX @DPTR,A 13、8031单片机的定时器T1用作定时方式时是 A、B 。 A、以内部时钟频率为定时基准 12个时钟周期加1 B、以内部时钟频率为定时基准 1个机器周期加1 C、以外部脉冲为定时基准 12个脉冲加1 D、以外部脉冲为定时基准 每个脉冲加1 14、DAC0832在单片机系统中是一种 B、D 器件。 A、输入 B、输出 C、将数字量转换成模拟量 D、将模拟量转换成数字量 15、家用电器中使用的单片机应属于计算机的 B 。 A、辅助设计应用B.测量、控制应用C.数值计算应用 D.数据处理应用 16、对程序存储器的读操作 只能使用 D 。 A MOV指令 B. PUSH指令 C. MOVX指令 D. MOVC指令 17、若82C55的PC口接有一个4×4的行列键盘 则PC口一定有 C、D 。 A、8位输入口 B、8位输出口 C、4位输入口 D、4位输出口 18、下列说法正确的是 A、B 。 A、立即数寻址方式是操作数本身就在指令中 而不是它的地址在指令中。

8051单片机的内部结构

8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: 中央处理器(CPU)是整个单片机的核心 部件,是8位数据宽度的处理器,能处理 8位二进制数据或代码,CPU负责控制、 指挥和调度整个单元系统协调的工作,完 成运算和控制输入输出功能等操作。 ·数据存储器(RAM): 8051内部有128个8位用户数据存储 单元和128个专用寄存器单元,它们是统 一编址的,专用寄存器只能用于存放控制 指令数据,用户只能访问,而不能用于存 放用户数据,所以,用户能使用的的RAM 只有128个,可存放读写的数据,运算的 中间结果或用户定义的字型表。 ·程序存储器(ROM): 8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。 ·定时/计数器(ROM): 8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。 ·并行输入输出(I/O)口: 8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。 ·全双工串行口: 8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以 用作异步通信收发器,也可以当同步移位器使用。 ·中断系统: 8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可 满足不同的控制要求,并具有2级的优先级别选择。 ·时钟电路: 8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051 单片机需外置振荡电容。

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

第一章习题 2. 根据程序存储器的差别,单片机可以分为哪几种类型? 答:MCS-51 系列单片机按片内不同程序存储器的配置来分,可以分为以下 3 种类型: ①片内带Mask ROM(掩膜ROM)型:8051 、80C51 、8052 、80C52 。此类芯片是由半导体厂家在芯片生产过程中,将用户的应用程序代码通过掩膜工艺制作到ROM 中。其应用程序只能委托半导体厂家“写入” ,一旦写入后不能修改。此类单片机适合大批量使用。 ②片内带EPROM 型:8751、87C51 、8752 。此类芯片带有透明窗口,可通过紫外线擦除存储器中的程序代码,应用程序可通过专门的编程器写入到单片机中,需要更改时可擦除重新写入。此类单片机价格较贵,不宜于大批量使用。 ③片内无ROM(ROMLess)型:8031、80C31 、8032 。此类芯片的片内没有程序存储器,使用时必须在外部并行扩展程序存储器存储芯片。此类单片机由于必须在外部并行扩展程序存储器存储芯片,造成系统电路复杂,目前较少使用。 3. 单片机的主要特点是什么?它适宜构成通用微机系统还是专用微机系统?为什么? 答:单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据 处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O 口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。其主要特点如下: 1、价格便宜。10 元以内计算机。 2、功能不大。只能专用在适用的领域。但在适用的领域中,性价比却是最 佳。 3、可靠性高,抗干扰能力强。 4 、功耗比较低。对电源要求低。适用面广。 5、外围扩展能力强。可以应用到不同的控制系统中。根据其特点可知,单片机功能不

89C51单片机硬件结构和原理

第1部分 89C51单片机硬件结构和原理 1. 89C51单片机片内包含哪些主要逻辑功能部件? 答:89C51单片机是个完整的单片微型计算机。芯片内部包括下列硬件资源: (1)8位CPU; (2)4KB的片内Flash ROM。可寻址64KB程序存储器和64KB外部数据存储器;(3)256B内部 RAM/SFR; (4)21个 SFR; (5)4个8位并行I/O口P0~P3(共32位I/O线); (6)一个全双工uart的异步串行I/O口,用于实现单片机之间或单片机与PC机之间的串行通讯; (7)两个16位定时器/计数器; (8)5个中断源,两个中断优先级; (9)内部时钟发生器。 2. 89C51的EA端有何用途? 答:作外部程序存储器地址允许输入端和固化编程电压输入端。 3. 89C51的存储器分哪几个空间?如何区别不同空间的寻址? 答:89C51存储器包括程序存储器和数据存储器,从逻辑结构上看,可以分为三个不同的空间: (1)64KB的程序存储器地址空间:0000H~FFFFH,其中0000H~0FFFH为片内4KB的Flash ROM地址空间,1000H~FFFFH为外部ROM地址空间; (2)256B的内部数据存储器地址空间,00H~FFH,分为两大部分,其中00H~7FH(共128B单元)为内部静态RAM的地址空间,80H~FFH为特殊功能寄存器的地址空间,21个特殊功能寄存器离散地分布在这个区域; (3)64KB的外部数据存储器地址空间:0000H~FFFFH,包括扩展I/O地址空间。 MCS-51单片机存储器三类空间地址存在重叠,单片机设计了不同的数据传送指令符号来区分:CPU访问片内、片外ROM指令用MOVC,访问片外RAM指令用MOVX,访问片内RAM 指令用MOV。 4. 简述89C51片内RAM的空间分配。 答:89C51内部256B的数据RAM区,包括有工作寄存器组区、可直接位寻址区和数据缓冲区、特殊功能寄存器组区。各区域的特性如下: (1)00H~1FH为工作寄存器组区,共分4组,每组占用8个RAM字节单元,每个单元作为一个工作寄存器,每组的8个单元分别定义为8个工作寄存器 R0~R7。当前工作寄存器组的选择是由程序状态字PSW的RS1、RS0两 位来确定。如果实际应用中并不需要使用工作寄存器或不需要使用4组

基于AT8951单片机原理及应用

◎<习题一>◎<习题二>◎<习题三> ◎<习题四>◎<习题五>◎<习题六> ◎<习题七>◎<习题八>◎<习题九> ◎<习题十>◎<总复习题> ※<习题一> 第一章习题答案 一、选择题 DCABD DACAC ACDBA BCCBA BB (ABE) B 二、计算题 1、将下列十进制数分别转换成二进制、十六进制和BCD码的 形式 (1)33D=00100001B=21H=00110011BCD (2)22 .37D=00010110.0101B=16.5H=00100010.00110111BCD 2、将下列二进制数分别转换成十进制、十六进制的形式。(1) 10101100 B=172D=ACH (2) 1001.01 B= 9.25D=9.4H (3)11001100. 011B=CC.6H=204.375D 3、将下列十六进制数分别转换成二进制、十进制的形式。(1)7B H=01111011B=123D (2)0E7.2 H=231.125D=11100111.0010B (3)21A9H=8617D=0010000110101001B 4、将下列BCD码转换成十进制数。 (1)10010010BCD=92D (2)01010010=52D (3)1000111. 0110=47.6D 5、将下列带符号数分别用原码、反码、补码来表示。 (1)+39 原码、反码、补码为00100111B

(2)-121 原码为11111001B,反码为10000110B,反码为10000111B 三、填空题 1、带符号数在机器中可用_原_码、_反_码和_补_码表示。 2、___运算器___和_控制器_____是计算机硬件的核心,称为中央处理器(CPU)。 3. CPU一次可处理的二进制数的位数称为___字长___。 4、字长为___8___的整数倍。 5、.MCS-51的最基本时间单位是_ 时钟___周期。 6、.8051的一个机器周期由___12___个时钟周期组成。 7、半导体存储器分为__ROM__和__RAM____。 8、根据信息传送的属性,总线可分为___地址总线___、_数据总线_____和__控制总线____。 四、问答题 1、什么是字长?Intel公司的MCS-51系列单片机的字长是多少?答:字长是指计算机能一次处理二进制数码的位数,MCS—51系列单片机字长为8位,又称8位机。 2、简述半导体存储器的分类及各类存储器的功能。 答:(1)只读存储器(ROM) ROM在使用过程中,存储的信息只能被读出,而不能用通常的方法写入。在系统断电时,ROM中的信息并不会丢失。因此,这类存储器适用于存放各种固定的系统程序、应用程序和常数等。 ROM按制造工艺的不同可分为以下几种: A)掩膜ROM 存储在ROM中的信息是在生产过程中用“掩膜”工艺固化在ROM芯片中的,一旦做好,不能更改。只适用于存储成熟的固定程序和数据,在大批量生产时,可降低成本。 B)可编程ROM(PROM) PROM中的信息是由用户写入,但只能写一次,写入后的信息以后不能更改。 C)可擦除ROM 允许用户对已写入的信息进行多次修改,但修改之前要先将原来的内容擦除掉,按擦除方法不同,又分为两种: 紫外线擦除的ROM(EPROM):在芯片上有一窗口,用紫外线擦抹器照射该窗口约20分钟后就可擦除,然后加规定的编程电压可重新写入程序。 电擦除的ROM(EEPROM):它允许用户利用+5V的电压擦除已存入的信息,并可进行重新写入,擦除和写入过程可在线完成,不需将芯片从用户系统中取出。

单片机的基本结构与工作原理

第二章单片机的基本结构与工作原理 2·1 80C51 系列单片机在片内集成了哪些主要逻辑功能都件?各个逻辑部件的主要功能是 什么? 答:80C51 系列单片机在片内集成了以下主要逻辑功能部件及分别有如下的主要功能。 (l)CPU(中央处理器):8 位 功能:中央处理器由中央控制器与运算器一起构成。中央控制器是识别指令,并根据指 令性质控制计算机各组成部件进行工作的部件。 (2)片内RAM:128B 功能:在单片机中,用随机存取存储器(RAM)来存储程序在运行期间的工作变量和数据, 所以称为数据存储器。一般,在单片机内部设置一定容量(64B 至256B)的RAM。这样小容 量的数据存储器以高速RAM 的形式集成在单片机内,以加快单片机运行的速度。同时, 这种结构的RAM 还可以使存储器的功耗下降很多。 (3)特殊功能寄存器:21 个 功能:特殊功能寄存器(SFR)是80C51 单片机中各功能部件所对应的寄存器,用以存放 相 应功能部件的控制命令、状态或数据的区域。这是80C51 系列单片机中最有特色的部分。 现在所有80C51 系列功能的增加和扩展几乎都是通过增加特殊功能寄存器(SFR)来达到的。 80C51 系列单片机设有128B 内部数据RAM 结构的特殊功能寄存器(SFR)空间区。除 程序计数器PC 和 4 个通用工作寄存器组外,其余所有的寄存器都在这个地址空间之内。(4)程序存储器:4KB 功能:80C51 单片机的程序存储器用于存放经调试正确的应用程序和表格之类的固定常 数。由于采用16 位的程序计数器PC 和16 位的地址总线,因而其可扩展的地址空间为 64KB,而且这64KB 地址空间是连续、统一的。 (5)并行I/O 口:8位,4 个 功能:为了满足面向控制实际应用的需要,80C51 系列单片机提供了数量多、功能强、 使用灵活的并行I/O 口。80C51 系列单片机的并行I/O 口,不仅可灵活地选作输人或输出,而且还具有多种功能。例如,它既是I/O 口,又是系统总线或是控制信号线等,从而为扩展外部存储器和I/O 接口提供了方便,大大拓宽了单片机的应用范围。 (6)串行接口:全双工,1 个 功能:全双工串行I/O 口,提供了与某些终端设备进行串行通信,或者和一些特殊功能 的器件相连的能力;甚至可用多个单片机相连构成多机系统,使单片机的功能更强和应用更 广。 (7)定时器/计数器:16 位,2 个 功能:在单片机的实际应用中,定时器/计数器提供精确的定时,或者对外部事件进行 计 数。为了减少软件开销和提高单片机的实时控制能力,因而均在单片机内部设置定时器/计 数器电路,通过中断,实现定时/计数的自动处理。 (8)片内时钟电路:1 个 功能:计算机的整个工作是在时钟信号的驱动下,按照严格的时序有规律地一个节拍一 个节拍地执行各种操作的。各种计算机均有自己的固定时序和定时电路。同样,80C51 系

MCS—51单片机原理与结构

一、填空题: 1、当MCS-51引脚ALE有效时,表示从P0口稳定地送出了低8位地址。 2、MCS-51的堆栈是软件填写堆栈指针临时在片内数据存储器内开辟的区域。 3、当使用8751且EA=1,程序存储器地址小于1000H 时,访问的是片内ROM。 4、MCS-51系统中,当PSEN信号有效时,表示CPU要从外部程序存储器读取信息。 5、MCS-51有4组工作寄存器,它们的地址范围是00H~1FH 。 6、MCS-51片内20H~2FH范围内的数据存储器,既可以字节寻址又可以位寻址。 7、PSW中RS1 RS0=10时,R2的地址为12H 。 8、PSW中RS1 RS0=11时,R2的地址为1AH 。 9、单片机系统复位后,(PSW)=00H,因此片内RAM寄存区的当前寄存器是第0 组,8个寄存器的单元地址为00H ~ 07H 。 10、PC复位后为0000H 。

11、一个机器周期= 12 个振荡周期= 6 个时钟周期。 12、PC的内容为将要执行的的指令地址。 13、在MCS-51单片机中,如果采用6MHz晶振,1个机器周期为2us 。 14、内部RAM中,位地址为30H的位,该位所在字节的字节地址为26H 。 15、若A中的内容为63H,那么,P标志位的值为0 。 16、8051单片机复位后,R4所对应的存储单元的地址为04H ,因上电时PSW= 00H 。这时当前的工作寄存器区是第0 工作寄存器区。 17、使用8031芯片时,需将/EA引脚接低电平,因为其片内无程序存储器。 18、片内RAM低128个单元划分为哪3个主要部分:工作寄存器区、位寻址区 和用户RAM区。 19、通过堆栈操作实现子程序调用,首先就要把PC 的内容入栈,以进行断点保护。 调用返回时,再进行出栈保护,把保护的断点送回到PC 。 20、MCS-51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为MCS -51的PC是16位的,因此其寻址的范围为64 KB。 21、MCS-51单片机片内RAM的寄存器共有32 个单元,分为 4 组寄存器,每组8 个单元,以R0~R7作为寄存器名称。 22、但单片机的型号为8031/8032时,其芯片引线EA一定要接低电平。 二、选择题: 1、当MCS-51复位时,下面说法正确的是( A )。 A、PC=0000H B、SP=00H C、SBUF=00H D、P0=00H 2、PSW=18H时,则当前工作寄存器是( D )。 A、0组 B、1组 C、2组 D、3组 3、MCS-51上电复位后,SP的内容应是( B )。 A、00H B、07H C、60H D、70H 4、当ALE信号有效时,表示( B )。 A、从ROM中读取数据 B、从P0口可靠地送出低8位地址 C、从P0口送出数据 D、从RAM中读取数据 5、MCS—51单片机的CPU主要的组成部分为(A)。 A、运算器、控制器 B、加法器、寄存器 C、运算器、加法器 D、运算器、译码器 6、单片机上电复位后,PC的内容和SP的内容为(B)。 A、0000H,00H B、0000H,07H C、0003H,07H D、0800H,08H 7、单片机8051的ALE引脚是( B )。 A、输出高电平 B、输出矩形脉冲,频率为fosc的1/6 C、输出低电平 D、输出矩形脉冲,频率为fosc的1/2 8、访问外部存贮器或其它接口芯片时,作数据线和低8位地址线的是( A )。 A、P0口 B、P1口 C、P2口 D、P0口和P2口 9、PSW中的RS1和RS0用来( A )。 A、选择工作寄存器区号 B、指示复位 C、选择定时器 D、选择工作方式 10、上电复位后,PSW的值为( D )。 A、1 B、07H C、FFH D、0 11、单片机上电复位后,堆栈区的最大允许范围是( B )个单元。 A、64 B、120 C、128 D、256 12、单片机上电复位后,堆栈区的最大允许范围是内部RAM的( D )。

MCS-51单片机的结构与原理

第1章MCS-51单片机的结构与原理主要内容:典型单片机( MCS-51, MSP430, EM78, PIC, Motorola, AVR )的性能,MCS-51内部结构、特点、工作方式、时序和最小应用系统。为学生后续学习单片机应用系统设计、利用单片机解决工程实际问题打下坚实的基础。重点在于基本概念、组成原理、特点及MCS-51的最小应用系统,难点在于时序。 1.1 典型单片机性能概览 典型单片机有MCS-51、MSP430、EM78、PIC、Motorola、AVR等。MSP430为低功耗产品,功能较强。EM78为低功耗产品,价格较低。PIC为低电压、低功耗、大电流LCD驱动、低价格产品。Motorola是世界上最大的单片机生产厂家之一,品种全、选择余地大、新产品多。其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。AVR为高速、低功耗产品,支持ISP、IAP,I/O口驱动能力较强。 1.2 MCS-51单片机硬件结构及引脚 MCS-51系列单片机都是以Intel公司最早的典型产品8051为核心,增加了一定的功能部件后构成的,因此,本章以8051为主介绍MCS-51系列单片机。 1.2.1 MCS-51单片机的内部结构 MCS-51单片机的组成: CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、I/O口(串口、并口)、内部总线和中断系统等。组成框图如下: 内部结构如下:

1. 中央处理器(CPU) 组成:运算器、控制器。8051的CPU包含以下功能部件: (1)8位CPU。 (2)布尔代数处理器,具有位寻址能力。 (3)128B内部RAM数据存储器,21个专用寄存器。 (4)4KB内部掩膜ROM程序存储器。 (5)2个16位可编程定时器/计数器。 (6)32个(4×8位)双向可独立寻址的I/O口。 (7)1个全双工UART(异步串行通信口)。 (8)5个中断源、两级中断优先级的中断控制器。 (9)时钟电路,外接晶振和电容可产生1.2MHz~12 MHz的时钟频率。 (10)外部程序/数据存储器寻址空间均为64KB。 (11)111条指令,大部分为单字节指令。 (12)单一+5V电源供电,双列直插40引脚DIP封装。 (1)运算器 组成:8位算术逻辑运算单元ALU(Arithmetic Logic Unit)、8位累加器A(Accumulator)、8位寄存器B、程序状态字寄存器PSW(Program Status Word)、8位暂存寄存器TMP1和TMP2 等。

51单片机串口通信的原理与应用流程解析

51单片机串口通信的原理与应用流程解析 一、原理简介 51 单片机内部有一个全双工串行接口。什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。其缺点是传输速度较低。 与之前一样,首先我们来了解单片机串口相关的寄存器。 SBUF 寄存器:它是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据,可通过指令对SBUF 的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。从而控制外部两条独立的收发信号线RXD(P3.0)、TXD(P3.1),同时发送、接收数据,实现全双工。 串行口控制寄存器SCON(见表1)。 表1 SCON寄存器 表中各位(从左至右为从高位到低位)含义如下。 SM0 和SM1 :串行口工作方式控制位,其定义如表2 所示。 表2 串行口工作方式控制位 其中,fOSC 为单片机的时钟频率;波特率指串行口每秒钟发送(或接收)的位数。 SM2 :多机通信控制位。该仅用于方式2 和方式3 的多机通信。其中发送机SM2 = 1(需要程序控制设置)。接收机的串行口工作于方式2 或3,SM2=1 时,只有当接收到第9 位数据(RB8)为1 时,才把接收到的前8 位数据送入SBUF,且置位RI 发出中断申请引发串行接收中断,否则会将接受到的数据放弃。当SM2=0 时,就不管第位数据是0 还是1,都将数据送入SBUF,并置位RI 发出中断申请。工作于方式0 时,SM2 必须为0。

51单片机CPU的内部结构

51单片机CPU的内部结构 在前面的课程中,我们已知道了单片机内部有一个8位的CPU,同时知道了CPU 内部包含了运算器,控制器及若干寄存器。在这节课,我们就与大家一起来讨论一下51单片机CPU的内部结构及工作原理。 从上图中我们可以看到,在虚线框内的就是CPU的内部结构了,8位的MCS-51单片机的CPU内部有数术逻辑单元ALU(Arithmetic Logic Unit)、累加器A (8位)、寄存器B(8位)、程序状态字PSW(8位)、程序计数器PC(有时也称为指令指针,即IP,16位)、地址寄存器AR(16位)、数据寄存器DR(8位)、指令寄存器IR(8位)、指令译码器ID、控制器等部件组成。 1、运算器(ALU)的主要功能 A)算术和逻辑运算,可对半字节(一个字节是8位,半个字节就是4位)和单字节数据进行操作。 B)加、减、乘、除、加1、减1、比较等算术运算。 C)与、或、异或、求补、循环等逻辑运算。 D)位处理功能(即布尔处理器)。 由于ALU内部没有寄存器,参加运算的操作数,必须放在累加器A中。累加器A 也用于存放运算结果。 例如:执行指令 ADD A,B 执行这条指令时,累加器A中的内容通过输入口In_1输入ALU,寄存器B通过内部数据总线经输入口In_2输入ALU,A+B的结果通过ALU的输出口Out、内部

数据总线,送回到累加器A。 2、程序计数器PC PC的作用是用来存放将要执行的指令地址,共16位,可对64K ROM直接寻址,PC低8位经P0口输出,高8位经P2口输出。也就是说,程序执行到什么地方,程序计数器PC就指到哪里,它始终是跟蹿着程序的执行。我们知道,用户程序是存放在内部的ROM中的,我们要执行程序就要从ROM中一个个字节的读出来,然后到CPU中去执行,那么ROM具体执行到哪一条呢?这就需要我们的程序计数器PC来指示。 程序计数器PC具有自动加1的功能,即从存储器中读出一个字节的指令码后,PC自动加1(指向下一个存储单元)。 3、指令寄存器IR 指令寄存器的作用就是用来存放即将执行的指令代码。 在这里我们先简单的了解下CPU执行指令的过程,首先由程序存储器(ROM)中读取指令代码送入到指令寄存器,经译码器译码后再由定时与控制电路发出相应的控制信号,从而完成指令的功能。关于指令在单片机内部的执行过程,我们在后面将会以另一节课来进行详细的讲解。 4、指令译码器ID 用于对送入指令寄存器中的指令进行译码,所谓译码就是把指令转变成执行此指令所需要的电信号。当指令送入译码器后,由译码器对该指令进行译码,根据译码器输出的信号,CPU控制电路定时地产生执行该指令所需的各种控制信号,使单片机正确的执行程序所需要的各种操作。 5、地址寄存器AR(16位) AR的作用是用来存放将要寻址的外部存储器单元的地址信息,指令码所在存储单元的地址编码,由程序计数器PC产生,而指令中操作数所在的存储单元地址码,由指令的操作数给定。从上图中我们可以看到,地址寄存器AR通过地址总线AB与外部存储器相连。 6、数据寄存器DR 用于存放写入外部存储器或I/O端口的数据信息。可见,数据寄存器对输出数据具有锁存功能。数据寄存器与外部数据总线DB直接相连。 7、程序状态字PSW 用于记录运算过程中的状态,如是否溢出、进位等。 例如,累加器A的内容83H,执行: ADD A,#8AH ;累加器A与立即数8AH相加,并把结果存放在A中。 指令后,将产生和的结果为[1]0DH,而累加器A只有8位,只能存放低8位,即0DH,元法存放结果中的最高位B8。为些,在CPU内设置一个进位标志位C,当执行加法运算出现进位时,进位标志位C为1。 8、时序部件 由时钟电路和脉冲分配器组成,用于产生微操作控制部件所需的定时脉冲信号在后面的课程中我们将会安排一节课来讲解这些专用的寄存器。

51单片机原理及应用pdf51单片机的入门及简单应用

51单片机原理及应用pdf51单片机的入门及简单应用摘要在中国,高校的单片机课程大多数都是51,而51经过这么多年的发展,也增长了许多的系列,功能上有许多改进,也扩展出不少分支。芯片的控制在单片机应用中重要性不言而喻,51单片机的入门首先学会DS18B20芯片的控制与使用。 关键词51单片机;入门;应用 TP3A1673-9671-(xx)041-0013-01 51单片机已经有30多年的历史了,在中国,高校的单片机课程大多数都是51,而51经过这么多年的发展,也增长了许多的系列,功能上有了许多改进,也扩展出了不少分支。而国内书店的单片机专架上,也大多数都是51系列。可以预见,51单片机在市场上只会越来越多,功能只会越来越丰富,在可以预见的数十年内是不可能会消失的。 1功能特性概述 AT89S51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定

时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内 振荡器及时钟电路。同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 251单片机结构原理 引脚功能说明 1)V:电源电压●GND:地。 2)P0口:P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路, 对端口写“l”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访 问期间激活内部上拉电阻。在F1ash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 3)P1口:Pl是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“l”,

80C51单片机内部结构和工作原理

第2章80C51单片机内部结构和工作原理 本章要点 80C51系列单片机内部结构 外部引脚功能 存储空间配置和功能 片内RAM结构和功能 特殊功能寄存器的用途和功能 程序计数器PC的作用和基本工作方式 I/O端口结构、工作原理及功能 时钟和时序 复位电路、复位条件和复位后状态 低功耗工作方式的作用和进入退出的方法 §2-1 内部结构和引脚功能 一、 二、引脚功能 40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。

⒈电源: ⑴VCC - 芯片电源,接+5V; ⑵VSS - 接地端; ⒉时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 ⒊控制线:控制线共有4根, ⑴ALE/PROG:地址锁存允许/片内EPROM编程脉冲 ①ALE功能:用来锁存P0口送出的低8位地址 ②PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 ⑵PSEN:外ROM读选通信号。 ⑶RST/VPD:复位/备用电源。 ①RST(Reset)功能:复位信号输入端。 ②VPD功能:在Vcc掉电情况下,接备用电源。 ⑷EA/Vpp:内外ROM选择/片内EPROM编程电源。 ①EA功能:内外ROM选择端。 ②Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。 ⒋I/O线 80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。 P3.0 ——RXD:串行口输入端; P3.1 ——TXD:串行口输出端; P3.2 ——INT0:外部中断0请求输入端; P3.3 ——INT1:外部中断1请求输入端; P3.4 ——T0:定时/计数器0外部信号输入端; P3.5 ——T1:定时/计数器1外部信号输入端; P3.6 ——WR:外RAM写选通信号输出端; P3.7 ——RD:外RAM读选通信号输出端。 §2-1 存储空间配置和功能 80C51的存储器组织结构可以分为三个不同的存储空间,分别是: ⑴64KB程序存储器(ROM),包括片内ROM和片外ROM; ⑵64KB外部数据存储器(外RAM); ⑶256B内部数据存储器(内RAM) (包括特殊功能寄存器)。 80C51存储空间配置图 一、程序存储器(ROM) 地址范围:0000H~FFFFH,共64KB。其中:

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

第一章习题参考答案 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存储器,开发过程中可以容易地进

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

思考与练习题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

相关文档
相关文档 最新文档