单片机3.docx

上传人:b****3 文档编号:5336814 上传时间:2022-12-15 格式:DOCX 页数:16 大小:89.40KB
下载 相关 举报
单片机3.docx_第1页
第1页 / 共16页
单片机3.docx_第2页
第2页 / 共16页
单片机3.docx_第3页
第3页 / 共16页
单片机3.docx_第4页
第4页 / 共16页
单片机3.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

单片机3.docx

《单片机3.docx》由会员分享,可在线阅读,更多相关《单片机3.docx(16页珍藏版)》请在冰豆网上搜索。

单片机3.docx

单片机3

第一章

4.把下列十六进制数转换为二进制数和十进制数。

(3)0F1.CH11110001.11B241.75

(4)20FAH100000111110108442

13.什么是单片机?

单片机与微机相比有何特点?

单片机(Single-Chip-Microcomputer)又称单片微控制器,其基本结构是将微型计算机的基本功能部件:

中央处理机(CPU)、存储器、输入接口、输出接口、定时器/计数器、中断系统等全部集成在一个半导体芯片上。

1).单片机其体积小、功耗低、价格低廉;

2).单片机结构上的设计,在硬件、指令系统及I/O能力等方面都有独到之处,具有较强而有效的控制功能;

3).单片机是一个芯片,只有外加所需的输入、输出设备,才可以构成实用的单片机应用系统。

补充问:

当前主流的通用型单片机有哪些?

答:

现在流行的单片机;

a.C8051F系列;

b.MSP430系列;

c.STC系列;

d.AT90系列;

e.PIC系列;

f.M68HC系列;

g.STM32F

…………………….

 

第二章

2.8051单片机内部包含哪些主要功能部件?

各功能部件的主要作用是什么?

8051单片机内部由CPU、4KB的ROM、128B的RAM、4个8位的I/O并行端口、一个串行口、两个16位定时/计数器及中断系统等组成。

5.MCS-51单片机内部RAM可分为几个区?

各区的主要作用是什么?

内部数据存储器分为高、低128B两大部分。

低128B为RAM区,地址空间为00H~7FH,可分为:

寄存器区、位寻址区、堆栈及数据存储区。

存放程序运算的中间结果、状态标志位等。

高128B为特殊功能寄存器(SFR)区,地址空间为80H~FFH,其中仅有21个字节单元是有定义的。

6.MCS-51单片机的P0~P3四个I/O端口在结构上有何特点?

使用时应注意哪些事项?

答:

(1)4个并行I/O端口都是双向的。

P0口为漏极开路;

P1、P2、P3口均有内部上拉电路,称为准双向口。

(2)所有32条并行I/O线都能独立地用作输入或输出。

(3)当并行I/O线作为输入时,该口的锁存器必须写入‘1’。

(4)P0、P2口除了可用于数据的输入/输出外,通常是用来构建系统的数据总线和地址总线。

(5)P3口的口线具有的第二功能,为系统提供了一些控制信号。

9.指出8051可进行位寻址的存储空间。

答:

00~7FH(即20H.0~2FH.7)及SFR地址能被8整除的寄存器中的各位。

12.什么是时钟周期?

什么是机器周期?

什么是指令周期?

当振荡频率为12MHz时,一个机器周期为多少微秒?

答:

时钟周期:

也称振荡周期,即振荡器的振荡频率fosc的倒数,是时序中最小的时间单位。

机器周期:

执行一条指令的过程可分若干个阶段,每一阶段完成一规定的操作,完成一个规定操作所需要的时间称为一个机器周期,一个机器周期包含12个时钟周期。

当振荡频率为12MHz时,一个机器周期为12/(12×1000000)秒=1微秒

指令周期:

定义为执行一条指令所用的时间。

当振荡频率为12MHz时,一个指令周期为1、2、4

us。

补充问:

说说近年来出现的单片机片内存储器包含哪些种类。

答:

近年来出现的单片机片内存储器包含ROM和RAM,一般ROM都是FLASH,有些单片机片内还包含EEPROM。

单片机片内RAM都是SRAM.

第三章

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

MOVR3,#30H

MOVR0,#20H

MOV50H,#00H

LOP:

MOVA,@R0

JZLOP1

LOP3:

INCR0

DJNZR3,LOP

AJMPLOP2

LOP1:

INC50H

AJMPLOP3

LOP2:

AJMPLOP2

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

ANLA,#17H

ORL17H,A

XRLA,@R0

CPLA

(A)=11001011B=0CBH

21.内部RAM的DATA1和DATA2单元开始存放着两个等长的数据块,数据块的长度在LEN单元中。

请编程检查这两个数据块是否相等,若相等,将0FFH写入RESULT单元,否则将0写入RESULT单元。

MOVR0,#DATA1

MOVR3,LEN

LOP:

MOVA,@R0

CJNZA,DATA2,LOP1

INCR0

INCDATA2

DJNZR3,LOP

MOVA,#0FFH

MOVRESULT,A

AJMPLOP2

LOP1:

MOVA,#0

MOVRESULT,A

LOP2:

AJMPLOP2

END

第4章习题答案

7.当正在执行某一中断源的中断服务程序时,如果有新的中断请求出现,问在什么情况下可响应新的中断请求?

在什么情况下不能响应新的中断请求?

答:

当正在执行某一中断源的中断服务程序时,如果有新的中断请求出现,当新中断源中断级别比正在执行中断源的中断级别高时可响应新的中断请求,否则不能响应新的中断请求。

9.8051单片机有5个中断源,但只能设置两个中断优先级,因此,在中断优先级安排上受到一定的限制。

问以下几种中断优先级顺序的安排(级别由高到低)是否可能?

如可能,则应如何设置中断源的中断级别?

否则,请叙述不可能的理由。

(1)定时器0,定时器1,外中断0,外中断1,串行口中断。

可能。

其中:

定时器0,定时器1为高优先级。

(2)串行口中断,外中断0,定时器0,外中断1,定时器1。

可能。

其中:

串行口中断为高优先级。

(3)外中断0,定时器1,外中断1,定时器0,串行口中断。

不可能。

外中断0,定时器1为高优先级,剩下的没有按自然优先级顺序。

(4)外中断0,外中断1,串行口中断,定时器0,定时器1。

可能。

其中:

外中断0,外中断1,串行口中断为高优先级。

(5)串行口中断,定时器0,外中断0,外中断1,定时器1。

不可能。

串行口中断为高优先级,剩下的没有按自然优先级顺序。

(6)外中断0,外中断1,定时器0,串行口中断,定时器1。

不可能。

外中断0,外中断1为高优先级,剩下的没有按自然优先级顺序。

(7)外中断0,定时器1,定时器0,外中断1,串行口中断。

可能。

其中:

外中断0,定时器1为高优先级。

 

第5章习题答案

4.定时器/计数器0已预置为156,且选定用于模式2的计数方式,现在T0引脚上输入周期为1ms的脉冲,问:

(1)此时定时器/计数器0的实际用途是什么?

(2)在什么情况下,定时器/计数器0溢出?

答:

(1)此时定时器/计数器0的实际用途是0.1S脉冲信号发生器。

(2)当T0每记数100次后定时器/计数器0溢出。

8.已知8051单片机的fosc=6MHz,试利用T0和P1.0输出矩形波。

矩形波高电平宽100μs,低电平宽300μs。

解:

先确定T0作为定时器工作于模式2时初值为:

高电平为50,低电平为150。

采用中断方式编程。

ORG0000H

AJMPMAIN

ORG001BH

AJMPTIM0

ORG0030H

MAIN:

MOVSP,#30H;设置栈底

MOVTMOD,#02H

MOVTL0,#206

MOVIE,#82H

SETBP1.0

SETBTR0

SJMP$

TIM0:

JNBP1.0,AA

CLRP1.0

MOVTL0,#106

RETI

AA:

SETBP1.0

MOVTL0,#206

RETI

END

 

第6章习题答案

补充1:

某异步串行接口其格式由一个起始位,七个数据位,一个奇校验位和一个停止位组成,设该接口每分钟传送1800个字符。

a)请计算传送的波特率;

b)画出传输一个字节32H的帧格式。

答:

a)1800×10=18000bits

18000bits÷60s=300bps

b)

补充2:

甲乙单片机均工作在方式1下,采用奇校验,波特率为1200bps(晶振为11.0592MHz),甲机发送两个字节51H和37H给乙机,试编写双机通信子程序。

答:

甲机发:

ORG2000H

START:

MOVTMOD,#20H;定时器1设为模式2

MOVTL1,#0E8H

MOVTH1,#0E8H;置定时器初值

SETBTR1;启动T1

MOVSCON,#50H;将串行口设置为方式1,REN=1

MOVPCON,#00H;SMOD=0

MOVA,#51H

MOVC,P

CPLC

MOVACC.7,C

MOVSBUF,A

JNBTI,$

CLRTI

MOVA,#37H

MOVC,P

CPLC

MOVACC.7,C

MOVSBUF,A

JNBTI,$

CLRTI

RET

乙机收:

ORG2000H

START:

MOVTMOD,#20H;定时器1设为模式2

MOVTL1,#0E8H

MOVTH1,#0E8H;置定时器初值

SETBTR1;启动T1

MOVSCON,#50H;将串行口设置为方式1,REN=1

MOVPCON,#00H;SMOD=0

MOVR1,#20H;接收数据区首地址→R1

MOVR2,#2;置发送数据个数→R2

WAIT:

JBCRI,PRI;等待接收到数据

SJMPWAIT

PRI:

MOVA,SBUF;读接收数据

MOVC,ACC.7

ANLA,#7FH

JNBC,PZEO;C=0则跳转

JBP,ERR;C=1,P=1转至出错

SJMPRIGHT;转至正确

PZEO:

JNBP,ERR;P=0,C=0转至出错

RIGHT:

MOV@R1,A;存放数据

INCR1;指向下一个存储单元

DJNZR2,WAIT;未接收完则继续接收

RET

ERR:

CLRREN

SETBF0;置F0=1

RET

END

 

第7章习题答案

9.设某一8051单片机系统,拟扩展2片2764EPROM芯片和2片6264SRAM芯片,试画出电路图,并说明存储器地址分配情况。

答案:

电路图如下:

存储器地址分配:

2764

(1):

C000H~DFFFH;

2764

(2):

A000H~BFFFH;

6264

(1):

C000H~DFFFH;

6264

(2):

A000H~BFFFH。

 

14.试设计一个8051应用系统,使该系统扩展1片27256、1片6264和1片8155。

请画出系统电路图,并分别写出各芯片的地址。

答:

电路图如下:

 

 

各芯片的地址如下:

27256:

0000H~7FFFH;

6264:

A000H~BFFFH;

8155:

RAM地址:

7E00H~7EFFH

命令/状态口:

7F00H

PA口:

7F01H

PB口:

7F02H

 

PC口:

7F03H

定时器低8位:

7F04H

定时器高8位:

7F05H

 

 

第8章习题答案

6.矩阵式键盘如何实现中断方式?

请在图8-4的基础上设计中断式键盘,并编写相应中断处理子程序。

答案:

电路图如下:

 

中断处理子程序:

KINT:

ACALLDELAY10;延时消抖

ACALLKS1;再次判断有无键按下

JNZLK2;确实有键按下,转列扫描

AJMPKEY_1;是键抖动,重新扫描

LK2:

MOVR2,#0FEH;首列扫描字

MOVR4,#00H;首列号

LK4:

MOVDPTR,#7F01H

MOVA,R2

MOVX@DPTR,A;列扫描字送PA口

INCDPTR

INCDPTR;指向PC口

MOVXA,@DPTR;读入行状态

JBACC.0,LONE;第0行有键按下?

MOVA,#00H;有键按下,行号送A

AJMPLKP;转键值处理

LONE:

JBACC.1,LTWO;第1行有键按下?

MOVA,#08H;有键按下,行号送A

AJMPLKP;转键值处理

LTWO:

JBACC.2,LTHR;第2行有键按下?

MOVA,#10H;有键按下,行号送A

AJMPLKP;转键值处理

LTHR:

JBACC.3,NEXT;第3行有键按下?

MOVA,#18H;有键按下,行号送A

LKP:

ADDA,R4;键值处理

PUSHACC

LK3:

ACALLKS1;判断按键是否释放

JNZLK3

POPACC

RET

NEXT:

INCR4;列号加1

MOVA,R2;判断是否8列扫描完毕

JNBACC.7,KND;扫描完,返回

RLA;转下列扫描

MOVR2,A

AJMPLK4

KND:

AJMPKEY_1

KS1:

MOVDPTR,#7F01H;判断有无键按下子程序

MOVA,#00H

MOVX@DPTR,A

INCDPTR

INCDPTR

MOVXA,@DPTR

CPLA

ANLA,#0FH

RET

DELAY12:

MOVR7,#18H;延时12ms子程序

TM:

MOVR6,#0FFH

TM6:

DJNZR6,TM6

DJNZR7,TM

RETI

7.状态或数码显示时,对LED的驱动可采用低电平驱动,也可以采用高电平驱动,二者各有什么特点?

答案:

高电平驱动要采用共阴极数码管,必须外接上拉电阻;低电平驱动要采用共阳极数码管,电源效率相对较高。

 

实验部分答案

题1:

已知(A)=7AH,(R0)=30H,(30H)=0A5H,(PSW)=80H,写出下列各条指令执行后A和PSW的内容。

(1)XCHA,R030H,80H

(2)XCHA,30H0A5H,80H

(3)XCHA,@R00A5H,80H

(4)XCHDA,@R075H,81H

(5)SWAPA0A7H,81H

(6)ADDA,R00AAH,04H

(7)ADDA,30H1FH,81H

(8)ADDA,#30H0AAH,04H

(9)ADDCA,30H20H,0C1H

(10)SUBBA,#30H49H,01H

题2:

已知单片机使用6MHz晶体,试编写一个延时1ms和1s的程序。

晶振频率为6MHz,一个机器周期为2µs,

延时1ms的子程序:

执行时间(机器周期)

DELAY1MS:

MOVR7,#0F9H1

LOOP:

DJNZR7,LOOP2

RET2

该程序段的总的执行时间为:

(1+2×249+2)*2s=1002µs≈1ms

延时时间为1s的子程序:

DELAY1S:

MOVR6,#04H;对延时100ms的子程序循环1000次

DE1S2:

MOVR5,#0FAH。

DE1S3:

LCALLDELAY1MS

DJNZR5,DE1S3

DJNZR6,DE1S2

RET

题3:

编写程序完成将片外数据存储器地址为1000H~1030H的数据块,全部传送到片内RAM30H~60H中,并将原数据块区域全部清零。

MOVDPTR,#1000H

MOVR0,#30H

MOVR7,#31H

RYCL:

MOVXA,@DPTR

MOV@R0,A

CLRA

MOVX@DPTR,A

DJNZR7,RYCL

RET

题4:

请写出能实现下列功能的程序段。

(1)16位二进制数放在20H和21H单元中(高8位在20H),

请将该数除2。

(2)16位二进制数放在30H和31H单元中(高8位在30H),

将其内容加1。

(3)将DPTR内容减5。

(4)有三个位变量X、Y、Z,请编写程序实现Y=X+YZ的逻辑关系式。

(1)MOVA,20H

CLRC

RRCA

MOV20H,A

MOVA,21H

RRCA

MOV21H,A

(2)MOVA,31H

ADDA,#01H

MOV31H,A

MOVA,30H

ADDCA,#00H

MOV30H,A

(3)MOVA,DPL

CLRC

SUBBA,#05H

MOVDPL,A

MOVA,DPH

SUBBA,#00H

MOVDPH,A

(4)Xbit00H

Ybit01H

Zbit02H

MOVC,Y

ANLC,Z

ORLC,X

MOVY,C

 

题5:

将内部RAM30H为起始地址的数据块传送到外部RAM1000H开始的连续区域,直到发现”$”字符(24H)为止。

答:

ORG2000H

MOVR0,#30H

MOVDPTR,#1000H

NEXT:

MOVA,@R0

CJNEA,#24H,LOOP

SJMPDONE

LOOP:

MOVX@DPTR,A

INCR0

INCDPTR

SJMPNEXT

DONE:

SJMP$

END

题6:

设有a、b、c三个数(0~9),存于内部RAM的BUF1、BUF2、BUF3三个单元。

编程实现c=a*a+b*b。

答:

ORG2000H

STAR:

MOVA,BUF1

ACALLSQR

MOVR1,A

MOVA,BUF2

ACALLSQR

ADDA,R1

MOVBUF3,A

HEAR:

SJMPHEAR

END

SQR:

MOVB,A

MULAB

RET

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

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

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