单片机原理及应用专升本复习总结.docx

上传人:b****2 文档编号:23113562 上传时间:2023-04-30 格式:DOCX 页数:51 大小:847.51KB
下载 相关 举报
单片机原理及应用专升本复习总结.docx_第1页
第1页 / 共51页
单片机原理及应用专升本复习总结.docx_第2页
第2页 / 共51页
单片机原理及应用专升本复习总结.docx_第3页
第3页 / 共51页
单片机原理及应用专升本复习总结.docx_第4页
第4页 / 共51页
单片机原理及应用专升本复习总结.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

单片机原理及应用专升本复习总结.docx

《单片机原理及应用专升本复习总结.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用专升本复习总结.docx(51页珍藏版)》请在冰豆网上搜索。

单片机原理及应用专升本复习总结.docx

单片机原理及应用专升本复习总结

《单片机原理及应用》复习

单片机(MicroControllerUnit,简称MCU):

把中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、输入/输出接口电路、定时器/计数器以及串行通信接口等集成在一块芯片中,构成一个完整的微型计算机。

第一部分时钟与复位

一、振荡器和时钟电路

1.内部时钟方式

2.外部时钟方式:

外部时钟信号接至XTAL1,XTAL2悬空(P34图2-11)

二、时序

1.振荡周期:

也称为时钟周期。

取决于晶振的频率。

(以12MHz为例)

2.状态周期:

两个时钟周期为一个状态周期,用S表示。

两个时钟周期作为一个状态的两个节拍,分别称为节拍P1和节拍P2。

3.机器周期:

一个机器周期包含6个状态周期,用S1、S2、…、S6表示;共12个节拍,依次可表示为S1P1、S1P2、S2P1、S2P2、…、S6P1、S6P2。

4.指令周期:

执行一条指令所占用的全部时间,它以机器周期为单位。

(1)1机器周期指令:

ADDA,Rn(P291:

1us)

(2)2机器周期指令:

INCDPTR(P292:

2us)

(3)4机器周期指令:

MULAB;DIVAB;DAA(P292:

4us)

应用举例:

8051晶振采用12MHz,执行完下面子程序,需要花多少时间?

DL:

MOVR7,#20

(1)

DL2:

MOVR6,#250

(1)

DL1:

DJNZR6,DL1

(2)

DJNZR7,DL2

(2)

RET

(2)

1×1us+250×20×2×1us+20×1×1us+20×2×1us+2×1us≈10ms

-------------------------------------------------------------------------------

注意事项

(I)在每个机器周期内,ALE信号两次有效(出现两次高电平,每次高电平的宽度为2个时钟周期)。

(1)第一次出现在S1P2-S2P1 

(2)第二次出现在S4P2-S5P1

(II)没有3机器周期指令

(III)定时器是对机器周期(不是时钟周期)进行计数,每个机器周期加1。

(IV)RST引脚端出现两个机器周期(24个时钟周期)以上高电平时,80C51进入复位状态。

三、复位和复位电路

1.复位电路

(1)上电复位

(2)按键复位

注意事项

(I)复位工作过程

(II)复位条件:

在RST引脚保持24个时钟周期以上的高电平

(III)复位电路中电阻和电容的取值,保证复位条件得到满足。

2.复位状态

单片机在RST引脚高电平的控制下,特殊功能寄存器和程序计数器PC复位后的状态如下表所示。

(1)(SP)=07H;(P0-P3)=(FFH),其余专用寄存器全为0;

(2)(PC)=0000H:

复位后,单片机从0000H地址处开始执行程序

ORG0000H

START:

MOV..

END

(3)复位时:

ALE和

引脚成输入状态,为高电平

(4)P0-P3这四个双向口皆处于输入口。

第二部分并行I/O

(一)四个I/O口(P0-P3)

一、P1口

Output:

内部总线=1P1.x=1

内部总线=0P1.x=0

Input:

输入时,Q0管要截止,内部总线要先写入1

P1.x=1内部总线=1

P1.x=0内部总线=0

应用举例

1.P1口作为输出口使用

下图为8段共阴数码管与8051的连接,请写出显示如下字符时P1口的输出值。

03FH106H25BH34FH466H56DHP73H707H87FHC39H

思考题:

如果采用的是共阳极数码管,显示上述字符时P1口应输出何值?

2.P1口作为输入口使用

根据下图,当KEY按下时,LED点亮;当KEY未按时,LED灭。

KEY:

MOVP1,#01H

MOVA,P1

ANLA,#01H

JZNEXT1

SETBP3.0

AJMPNEXT2

NEXT1:

CLRP3.0

NEXT2:

AJMPKEY

二、P2口

MUX:

多路开关,由控制信号线决定开关是打向左还是打向右。

(控制线、读线、写线均由CPU产生)

引脚复用:

减少引脚数目,降低芯片成本

1.作为普通I/O口使用(与P1口相同):

控制=0,开关打向左端

2.作为高8位地址输出口:

控制=1,开关打向右端

(注意:

高8位地址存放在DPH中)

地址线=1P2.x=1

地址线=0P2.x=0

三、P3口

引脚复用:

减少引脚数目,降低芯片成本

1.作为普通I/O口使用:

第二功能输出端要保持高电平

(1)Output:

内部总线=1P3.x=1

内部总线=0P3.x=0

(2)Input:

内部总线先向锁存器写入1

P3.x=1内部总线=1

P3.x=0内部总线=0

2.作为第二功能I/O口:

锁存器输出端保持1

(1)Output:

第二功能输出线=1P3.x=1

第二功能输出线=0P3.x=0

(2)Input:

第二功能输出线=1

P3.x=1第二功能输入线=1

P3.x=0第二功能输入线=0

(注:

P3口各位的第二功能见P16表2-2)

四、P0口

1.作为普通I/O口使用:

控制线=0,V1截止,多路开关打到0端

Input:

内部总线先写入1,V2截止

P0.x=0内部总线=0

P0.x=1内部总线=1

Output:

内部总线=0P0.x=0

内部总线=1P0.x=高阻

2.作为地址/数据口使用:

控制线=1,多路开关打到1端

Output:

地址/数据线=1P0.x=1

地址/数据线=0P0.x=0

重点:

P0口是三态口,输出时可能为1,可能为0,还可能是高阻

(举例说明为何要高阻状态,以数据传输说明)

重点:

P0口是时分复用,先发送地址,再发送数据

Input:

P0.x=0内部总线=0

P0.x=1内部总线=1

四个并行口的总结

1.P0口为三态双向口,负载能力为8个TTL电路,P1~P3口为准双向口(用作输入时,口线被拉成高电平,故称为准双向口),负载能力为4个TTL电路。

2.在作为一般输入时,都必须先向锁存器写入‘1’,使驱动管截止;

(复位后:

(P0-P3)=(FFH)进行读操作时,这四个双向口皆处于输入口)

3.读入时,分为读引脚和读锁存器两种

(1)读引脚:

是读外部接口的电平信号,读引脚信号有效。

MOVA,P1

(2)读锁存器:

是将接口锁存器的Q端信号读回,写锁存器信号有效。

读锁存器指令主要用于读—修改—写指令。

如下列这些指令:

ANLP1,A

XRLP3,A

INCP2

4.四个I/O口在实际使用中,一般遵循以下用法:

P0口一般做系统扩展地址低8位/数据复用口;

P1口一般做I/O扩展口;

P2口做系统扩展地址高8位和I/O口扩展的地址译码用;

P3口做中断输入、定时输出、串行通用口使用。

(二)并行I/O口的扩展

一、简单并行I/O接口的扩展(见P168图8-9)

(P2.0=0时,同时选中273、244两个口)

二、可编程I/O接口的扩展---8155

(说明:

此部分内容放至存储器扩展部分再讲述)

第三部分存储器

存储器(Memory):

程序存储器(ROM)和数据存储器(RAM)两种。

ROM:

断电后存储在里面的数据不会丢失,用来存储程序代码;需采用特殊方法进行擦除。

1.EPROM2.EEPROM3.FLASH

RAM:

断电后存储在里面的数据会丢失;

8051芯片内含有4KB的ROM,256B的RAM(128B用户RAM,128B系统RAM)。

当需要更多的ROM或RAM时,需要连接外部的ROM或外部的RAM。

一、各种存储器之间的数据传送

1.ROM送至片内RAM(MOVC,MOV)

应用举例:

已知'A','B','C','D','E'存储在程序储器中,程序存储器的首地址为500H,编写一汇编程序,依次将这些数据读出,送入内部数据存储器,内部数据存储器首地址为30H。

  

ORG500H

fDATA:

DB'A','B','C','D','E'

ORG0000H

Reset:

LJMPMain

ORG0050H

Main:

MOVR0,#5

MOVR1,#30H

MOVDPTR,#fDATA

SLOOP:

MOVA,#0

MOVCA,@A+DPTR

MOV@R1,A

INCDPTR

INCR1

DJNZR0,SLoop

STOP:

LJMPSTOP

END

2.片内ROM送至片外RAM(MOVC,MOV,MOVX)

应用举例:

已知'A','B','C','D','E'存储在程序储器中,程序存储器的首地址为500H,编写一汇编程序,依次将这些数据读出,送入外部数据存储器,外部数据存储器的首地址为2000H。

ORG500H

fDATA:

DB'A','B','C','D','E'

ORG0000H

Reset:

LJMPMain

ORG0050H

Main:

MOVR2,#0

SendLoop:

MOVDPTR,#fDATA

MOVA,R2

MOVCA,@A+DPTR

MOVDPH,#20H

MOVDPL,R2

MOVX@DPTR,A

INCR2

CJNER2,#5,SendLoop

STOP:

LJMPSTOP

END

3.片内RAM送至片内RAM

应用举例:

将位于片内RAM的30H处开始存放的10个数据依次传送至片内RAM的40H处开始存放。

(略)

4.片内RAM送至片外RAM

应用举例:

将位于片内RAM的30H处开始存放的10个数据依次传送至片外RAM的0030H处开始存放。

(略)

5.片外RAM送至片内RAM(略)

应用举例:

将位于片外RAM的0030H处开始存放的10个数据依次传送至片内RAM的30H处开始存放。

(略)

6.片外RAM送至片外RAM

应用举例:

将位于片外RAM的0030H处开始存放的10个数据依次传送至片外RAM的3000H处开始存放。

ORG0000H

Reset:

LJMPMain

ORG0050H

Main:

MOVR2,0

SendLoop:

MOVDPTR,#0030H

MOVA,DPL

ADDA,R2

MOVDPL,A

MOVXA,@DPTR

MOVDPTR,#3000H

MOVA,DPL

ADDA,R2

MOVDPL,A

MOVX@DPTR,A

INCR2

CJNER2,#10,SendLoop

STOP:

LJMPSTOP

END

综合应用

1.从内部RAM30H单元开始,有10个单字节数据。

试编一个程序,把其中的正数、负数分别送40H和50H开始的内部RAM单元。

MOVR0,#30H

MOVR1,#40H

MOVA,#50H

MOVR7,#10

LOOP:

MOV20H,@R0

JB20H.7,FSHU

ZSHU:

MOV@R1,20H

INCR1

SJMPNEXT

FSHU:

XCHA,R1

MOV@R1,A

XCHA,R1

INCA

NEXT:

INCR0

DJNZR7,LOOP

END

2.将外部RAM的2000H~4FFFH区域之间的所有单元清零。

MOVDPTR,#2000H

LOOP:

CLRA

MOVX@DPTR,A

INCDPTR

MOVA,DPH

CJNZA,#50H,LOOP

END

3.设逻辑运算表达式为

,其中A,B,C分别为P1.0、P1.1、P1.2,D、E、F分别为内部RAM的22H.0、22H.3,22H.5,输出变量Y为P1.5,试编写一程序以软件的方法实现上述逻辑功能。

ABITP1.0

BBITP1.1

DBIT22H.0

EBIT22H.3

FBIT22H.5

YBITP1.5

MOVC,F

CPLC

ORLC,E

ANLC,D

CPLC

MOVD,C

MOVC,P1.2

CPLC

ORLC,B

CPLC

ANLC,A

ORLC,D

MOVY,C

END

难点:

熟练各种寻址方式的应用

1.立即寻址 2.寄存器寻址 3.直接寻址4.寄存器间接寻址5.变址寻址 6.相对寻址7.位寻址

二、存储器的扩展

MCS-51可以扩展64KB的外部的程序存储器和64KB的外部数据存储器。

外部数据存储空间可以作为扩展外围I/O的地址空间,这样,单片机就可以像访问外部RAM存储器那样访问外部接口芯片,对其进行读/写操作。

这些外部芯片必须从属于主机,受主机支配和指挥。

因此,主机与各外部扩展的器件之间必须互相连接,沟通信息。

连接各扩展部器件的公共信息线称为总线。

1.线性选择法:

将空余的地址总线(即除去存储器容量所占用的地址总线外)中的某一根地址线(通常是P2口的某—根线)接到外围芯片的片选端上,只要该地址线为低电平,就选中该芯片。

 

各芯片的地址空间

若将6116的F001H单元的内容读到内部RAM20H单元,可执行以下程序:

MOVDPTR,#0F001H

MOVXA,@DPTR

MOV20H,A

2.全地址译码法

将低位地址线作为芯片的片内地址(取外部电路中最大的地址线位数),用译码器对高位地址线进行译码,译出的信号作为片选线。

一般采用74LSl38作地址译码器。

如果译码器的输入端占用三根最高位地址线,则剩余的13根地址线可作为片内地址线,因此,译码器的8根输出线分别对应于一个8K字节的地址空间。

 

各芯片的地址空间

说明:

全地址译码法比线性选择法更节省引脚资源

综合应用题

第1题:

某一系统,采用8031单片机,需外扩16KB容量的程序存储器(提供2764、373、逻辑电路)要求a)画出扩展后的连接图。

b)写出这16KB的地址范围。

2764

(1)地址:

0000H——1FFFH2764

(2)地址:

2000H——3FFFH

第2题

1.下图中外部扩展的数据存储器容量是多少?

(2分)

2.三片6264的地址范围分别是多少?

(地址线未用到的位填1)(6分,)

3.若外部程序存储器已扩展(未画出),请编写程序,要求:

将62642#的前32个单元的内容送入40H~5FH中;(6分)

解:

1.外部扩展的数据存储器为3片8K的RAM,总共外扩容量为24K

2.A15A14A13地址范围

6264#10116000H~7FFFH

6264#2101A000H~BFFFH

6264#3110C000H~DFFFH

3.程序如下:

ORG0000H

RESET:

AJMPMAIN;转主程序

ORG0100H

MAIN:

MOVDPL#00H;初始化DPTR

MOVDPH,#0A0H

MOVR0,#40H;初始化R0

LOOP:

MOVXA,@DPTR

MOV@R0,A

INCDPTR

INCR0

CJNER0,#60H,LOOP

RET

 

第四部分中断与定时器

(一)中断

一、中断的概念

1.“中断”

中断是指计算机在执行程序的过程中,由于计算机系统内、外的某种原因使CPU暂时停止当前程序的执行,而转去处理该突发事件服务,处理完毕后,再返回原程序继续执行的过程。

2.中断技术的优点:

(1)提高了CPU的工作效率

(2)使CPU能及时处理实时测控现场中许多随机的参数和信息。

(3)使CPU具有了处理故障的能力,提高了系统可靠性。

3.几个概念:

(1)中断服务程序

(2)中断请求(3)断点

(4)响应中断(5)中断返回(6)中断优先级(7)中断嵌套

(8)中断源(9)中断矢量(中断程序入口地址)

8051单片机的有5个中断源以及对应的中断入口地址:

INT0:

0003H

T0:

000BH

INT1:

0013H

T1:

001BH

串行中断:

0023H

二、与中断控制有关的寄存器(主要有4个寄存器)

1.中断源的中断请求标志TCON:

TF1:

定时器T1的溢出中断请求标志位。

TF0:

定时器T0的溢出中断请求标志位。

IE1:

外部中断1的中断请求标志位。

IT1:

外部中断的中断触发方式控制位。

IE0:

外部中断的中断请求标志位,

IT0:

外部中断0的中断触发方式控制位。

2.中断允许控制IE与串行口控制寄存器SCON

EA:

中断允许总控制位。

ES:

串行口中断允许位。

ET1:

定时器/计数器T1的溢出中断允许位。

EX1:

外部中断1中断允许位。

ET0:

定时器/计数器T0的溢出中断允许位。

EX0:

外部中断0中断允许位

SCON:

其低2位TI和RI锁存串行口的接收中断和发送中断。

3.中断优先级控制寄存器IP:

IP中各位的含义(为1时是高优先级,为0时是低优先级):

PS:

串行口中断优先级控制位。

PT1:

定时器/计数器T1中断优先级控制位。

PX1:

外部中断中断优先级控制位。

PT0:

定时器/计数器T0中断优先级控制位。

PX0:

外部中断中断优先级控制位。

同一级优先级从高到低的顺序为:

INT0,T0,INT1,T1,串行口。

三、中断响应的条件:

1.有中断源发出中断请求;

2.中断总允许位EA=1,即CPU开中断;

3.申请中断的中断源的中断允许控制位为1,即中断没被屏蔽;

4.无同级或更高级中断正在被服务;

5.当前的指令周期已经结束。

INT0,INT1外部中断应用举例

如下图所示,要求将开关所设的数据读入单片机内,并依次通过P1.0~P1.3驱动发光二极管。

现要求采用外部中断边沿触发方式。

ORG0000H

RESET:

AJMPMAIN

ORG0003H

AJMPINT0_ISR

ORG0050H;主程序

MAIN:

SETBIT0

SETBEX0

SETBEA;CPU开中断

HERE:

SJMPHERE;等待中断

ORG0200H

INT0_ISR:

MOVA,#0F0H

MOVP1,A

MOVA,P1

SWAPA

MOVP1,A

RETI

END

(二)定时器

一、定时电路系统

二、与定时有关的寄存器

1.定时器方式寄存器TMOD

M1.M0:

工作方式选择位,有4种工作方式

M1M0=00时,定时方式0,是一个13位计数器,由TL0的低5位和TH0的8位所构成。

M1M0=01时,定时方式1,是一个16位计数器,由TH0(高8位)和TL0(低8位)构成

M1M0=10时,定时方式2,是一个能自动恢复初值的8位定时器/计数器。

M1M0=11时,只有定时器T0被选择为工作方式3,它被拆分成2个独立的8位计数器TL0和TH0。

C/T:

0-定时,1-计数

GATE:

0-由软件控制TR0或TR1位启动定时器工作

1-由中断引脚(P3.2)和(P3.3)输入电平分别控制T1或T0的运行。

2.定时器控制寄存器TCON

TF1:

定时器T1溢出标志。

TR1:

定时器T1的运行控制位,由软件置位或复位。

TR1=1,允许T1计数;当TR1=0,禁止T1计数。

TF0:

定时器T0溢出标志,其含义与TF1类同

TR0:

定时器T0的运行控制位,其含义与TR1类同。

3.TH0,TL0,TH1和TL1

三、定时时间的计算

定时器的定时时间t为:

t=(2x-T0初值)×机器周期T

=(2x-T0初值)×时钟周期×12

注:

X根据定时器的工作方式0~3分别取13或16或8

例1:

假设8051单片机晶振频率为12MHz,定时器T0初值为912(即0390H),当T0工作在方式0时的定时时间是多少?

解:

由上述公式可得:

定时时间

t=(213-912)×1/12MHz×12=8000s=8ms

例2:

假设8051单片机晶振频率为12MHz,所需定时时间为250s,当T0工作在方式0时T0计数器的初值是多少?

解:

由定时时间t=(213-T0初值)×机器周期T,可得:

T0初值=213-定时时间t/机器周期T=213-250s/1s=8192-250=7942D=1111100000110B。

十六进制表示,高8位为0F8H,低5位为06H。

其中高8位放入TH0,即TH0=0F8H;低5位放入TL0,即TL0=06H。

---------------------------------------------------------------------

T0,T1定时/计数器应用举例

(一)计数器应用举例(略,参见真题分析)

(二)定时器应用举例

1.查询方式实现

(1)设8051单片机晶振频率为12MHz,使用定时器T1以方式0产生周期为500s的等宽正方波连续脉冲,并由P1.0输出。

(用查询方式)

解:

设待求的计数初值为X,则:

(213-X)×1s=250s

得:

X=7942D=1111100000110B。

其中高8位放入TH1,即TH1=0F8H;低5位放入TL1,即TL1=06H。

TMOD寄存器初始化:

T1工作在方式0,用TR1为定时功能,故TMOD=00H。

ORG0000H

MOVTMOD,#00H

MOVTH1,0F8H

MOVTL1,06H

CLREA

SETBTR1

SETBTR1

LOOP:

JNBTF1,LOOP

CPLP1.0

MOVTH1,0F8H

MOVTL1,06H

CLRTF1

AJMPLOOP

(2)试编写程序将内部RAM以30H为起点地址的X个数传送到外RAM以BUF为起点地址的区域,要求每隔500ms传送一个数据,设8031型单片机的时钟频率为6MHz。

(略)

2.中断方式实现.

设单片机的系统时钟频率为12MHz,试编程输出频率为100KHZ,占空比为2:

10的矩形波。

解:

信号频率为100KHz,则周期为1/100kHz=10s,占

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

当前位置:首页 > 成人教育 > 自考

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

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