单片机原理及应用总结_第1页
单片机原理及应用总结_第2页
单片机原理及应用总结_第3页
单片机原理及应用总结_第4页
单片机原理及应用总结_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理及应用

第一章绪论

•EA/Vp:内外存储器选择引脚/片

1.什么叫单片机?其主要特点有哪内EPROM编程电压输入引脚;

些?

•PSEN:外部程序存储器选通信号

在一片集成电路芯片上集成微处理

器、存储器、I/O接口电路,从而构成输出引脚

了单芯片微型计算机,即单片机。b.非总线型DIP20封装的引脚

特点:控制性能和可靠性高、体积小、•RST:复位信号输入引脚

价格低、易于产品化、具有良好的性4.80C51的片内存储器

价比。增强型单片机片内数据存储器为256

字节,地址范围是00H~FFH。低128

字节的配情况与基本型单片机相同。

第二章80c51的结构和原理

高128字节普通为RAM,仅能采用寄

1.80C51的基本结构存器间接寻址方式问询。注意:与该

a.CPU系统地址范围重叠的特殊功能寄存器SFR

•8位CPU,含布尔处理器;空间采用直接寻址方式问询。

■时钟电路;5.80C51的时钟信号

・总线控制逻辑。晶振周期为最小的时序单位。一个时

b.存储器系统钟周期包含2个晶振周期。晶振信号

・4K字节的程序存储器12分频后形成机器周期。即一个机器

(R0M/EPR0M/FLASH,可外扩周期包含12个晶振周期或者6个时钟周

至64KB);[期。

•128字节的数据存储器(RAM,可6.80C51单片机的复位

外扩至64KB);定义:复位是使单片机或者系统中的

・特殊功能寄存器SFRo其他部件处于某种确定的初始状态。

c.I/O口和其他功能单元a.复位电路

•4个并行I/O口;两种形式:一种是上电复位;另一种

・2个16位定时/计数器;是上电与按键均有效的复位。

•1个全双工异步串行口;b.单片机复位后的状态

•中断系统(5个中断源,2个优先单片机的复位操作使单片机进入初始

级)化状态,初始化后,程序计数器

2.80C51的应用模式PC=0000H,所以程序从0000H地址单

a.总线型单片机应用模式元开始执行。

♦总线型应用的“三总线”模式;特殊功能寄存器复位后的状态是确定

♦非总线型应用的“多I/O”模式的。P0~P3为FFH,SP为07H,SBIF

3.80C51单片机的封装和引脚不定,IP、IE和PCON的有效位为0,

a.总线型DIP40引脚封装其余的特殊功能寄存器的状态为03H.

•RST/Vpo:复位信号输入引脚/备用相应的意义为:

电源输入引脚;•P0-P3=FFH,相当于各口锁存器已

写入1,此时非但可用于输出,也

•ALE/PROG:地址锁存允许信号可以用于输入:

输出引脚/编程脉冲输入引脚;•SP=07H,堆栈指针指向片内RAM

的07单元:80c51单片机片内RAM低端的

•IP、IE和PCON的有效位为0,各OOH~1FH共32B,分成4个工作寄存

中断源处于低优先级且均被关断、器组,每组占8个单元。

串行通讯的波特率不加倍;•寄存器0组:地址00H~07H;

•PSW=OOH,当前工作寄存器为0•寄存器1组:地址08H~0FH;

组。•寄存器2组:地址10H〜17H;

7.80C51的存储器组织•寄存器3组:地址18H~1FH。

功能:存储信息(程序和数据)程序运行时,只能有一个工作寄存器

a.程序存储器低端的一些地址被固定组作为当前工作寄存器组;当前二作

地用作特定的入口地址:寄存器组的选择由特殊功能寄存器中

0000H:单片机复位后的入口地得程序状态字寄存器PSW的RSI、RSO

址;来决定c

0003H:外部中断0的中断服务程b.位寻址区

序入口地址;内部RAM的20H〜2FH共16个字节是

000BH:定时/计数器0溢出中断位寻址区。其128位的地址范围是

服务程序入口地址:00H~7FH。

0013H:外部中断1的中断服务程c.通用RAM区

序入口地址;位寻址区之后的301r7FH共80个字

001BH:定时/计数器1溢出中断节为通用RAY区。这些单元可以作为

服务程序入口地址;数据缓冲器使用。

>0023H:串行口的中断服务程序入实际应用中,常需在RAM区设置堆

口地址。栈。80C51的堆栈普通设在30H~7FH

8.80C51单片机的数据存储器配置的范围内,栈顶的位置由堆栈指针SP

80c51单片机数据存储器分为片外指示。复位时SP的初值为07H,在系

RAM和片内RAM两大部份。统初始化时可以重新设置。

80C51片内RAM的128B部份分成工9.80C51单片机的特殊功能寄存器

作寄存器区、位寻址区、通用RAM二a.程序状态字寄存器PSW,8位。含义

大部份。如下:

基本型单片机片内RAM的地址范围CY:进位、借位标志。有进位、

是00H~7FH借位时CY=1,否贝lJCY=O;

增强型单片机片内除地址范围为AC:辅助进位、借位标志

OOlfTFIl的128BRAM外,又增加了F0:用户标志位,由用户自己定义

80H~FFH的高128B的RAM。增加的>RSI、RSO;当前工作寄存器组选

这部份RAM仅能采用间接寻址方式择位

访问。>0V:溢出标志位。有溢出时0V=l,

片外RAM地址空间为64KB,地址范否则ov=o

围是OOOOH~FFFFH。P:奇偶标志位。存于ACC中的运

与程序存储器地址空间不同的是,片算结果仃奇数个“1”时P=l,否

外RAM地址空间与片内RAM地址空则甩

间在地址的低端0000FT007FH是重叠10.P0口、P2口的结构

的。访问片外RAM时采用指令VOVXP0口作为分时复用的低8位地址/数据

实现,访问片内RAM采用指令MOV,总线,P2口作为高8位地址总线。

无读写信号产生。a.P0口的结构

a.工作寄存器区•PO用作通用I/O口

输出驱动级工作在需外接上拉电阻的•P3.0:RXD(串行口输入);

漏极开路方式:

•P3,1:TXD(串行口输出);

POU在作为通用I/O口,属于准双向

口。•P32INT0(外部中断。输入);

•P0用作地址/数据总线•P33INTI(外部中断1输入);

b.P2口的结构

P2口的输出驱动电路与P0口不同,内•P3.4:TO(定时器。的外部输入);

部设有上拉电阻。•P35T1(定时器1的外部输入);

•P2用作通用I/O口

P2口在作为通用I/O口,属于准双向•P3.6:WR(片外数据存储器“写”

口。选通控制输出);

•P2用作地址总线

•P37RD(片外数据存储器“读”

11.P3口结构

a.P3用作第一功能的通用I/O口选通控制输出)。

b.P3用作第二功能使用

第三章80c51的指令系统

1.80C51的寻址方式博学求真惟恒创新

表3.1寻址方式所对应的寄存器和存储空间

序号寻址方式寄存器或者存储空间

寄存器R0~R7,A、AB、DPTR和C

寄存器寻址

基(布尔累加器)

本直接寻址片内RAM低128字节、SFR

3寄存器间接寻址片内RAM(@R,@R,,SP)

片夕卜RAM(@R0,@R,@DPTR)

4即将寻址ROM

5扩变址寻址ROM(@A+DPTR,@A+PC)

6方相对寻址ROM(PC当前值的-128~+127字节)

式可寻址位(内部RAM20H'2FH单元

位寻址

7的位和部份SFR的位)

2.特殊传送指令

表3.3特殊传送指令

编号指令分类指令机器码字节机器周期数

1MOVCA,©A+DPTR93H2

ROM查表

2MOVCA,©A+PC83H2

3MOVXA,@DPTREOH2

读片外RAM

4MOVXA,@RiE2HCE3H)2

5MOVX@DPTR,AFOH2

写片外RAM

6MOVX@Ri,AF2H(~F3H)2

7堆栈操作PUSHdirectCOH2

direct

POPdirectDOH

82

direct

在80C51单片机中,堆栈的生长方向是向上的。入栈操作时,先将SP+1,然后

将指令指定的直接地址单元的内容存入SP指向的单元;出栈操作时,将SP指

向的单元内容传送到指令指定的直接地址单元,然后SPT。

系统复位时,SP的内容位07H。SP的值越小,娃栈深度越深。

PUSHdirect:SP-(SP)+l,(SP)<-(direct)

POPdirect:direct<((SP)),SP(SP)-1

普通在中断、子程序调用时发生堆栈操作

・MOV、MOVX、MOVC区另U

MOV:单片机内部数据传递;MOVX:单片机与片外RAM和I/O口电路的数据

传递;MOVC:ROM的查表

3.逻辑运算与循环类指令

逻辑与:

编号指令分类指令

ANLdirect,A

ANLdirect,#data

ANLA,Rn

ANLA,direct

ANLA,@Ri

ANLA,#data

前两条把源摭作数与直接地址指示内容相与।

后四条是把源操作数与累加器A的内容相与,送入A

逻辑或者:

编号指令分类指令

1ORLdirect,A

2莓ORLdirect,#data

3ORLA,Rn

4ORLA,direct

5者ORLA,©Ri

6_ORLA,ftdata

逻辑异或者:

编号指令分类指令

1XRLdirect,A

2者逻XRLdirect,#data

3

4

1-5-A.@Ri------------------

XRLA,#data

累加器清0和取反

CLRA清。

CPLA取反

累加器循环移位

RR右移

RRC

RL左移

RLC

4.控制转移类指令

短跳转:AJMP:长跳转:IJMP:相对跳转;SJAP0由于LJMP指令提供的是

16位地址,因此程序可以转向64KB的程序存储器地址空间的任何单元。

累加器判0转移:

JZrel:(A)=0,则PC<(pc)+rel;

JNZrel:(A)^0,则PC〈(pc)+rel

比较不相等转移(目的字节与源字节不相等则转移):

CJNEA,direct,rel

,A博学求真惟恒创新

CJNE'Rn,#data,rel

..|@Ri|y._二一.

减1不为o转移:

DJNZ一|丽,⑹

DJNZdirect,rel

将操作数的循环控制电元的内容减L并判断是否为0.若不为0,向来循环。若

为0,程序往下执行。

调用:

ACALL短调用;LCALL长调用

返回:

RET子程序返回指令;RETI中断服务子程序返回指令

CPL取反

第四章

1.查表程序

有一变量存放在片内RAM的20H单元,其取值范围为00FT05H。要求编制一

段程序,根据变量值求平方值,并存入片内RAM的21H单元。

程序如下:

ORG1000H

START:MOVDPTR,#2000H

MOVA,20H

MOVCA,@A+DPTR

MOV21H.A

SJMP$

ORG2000H

TABLE:DB00,01,04,09,16,25

END

2.双字节无符号数加法

设被加数存放在内部RAM的51H、50H单元,加数存放在内部RAM的61H、

60H单元,相加的结果存放在内部RAM的51H、50H单元,进位存放在位寻址

区的00H位中,实现此功能的程序段如下:

MOVR0,#50H:被加数的低字节地址

MOVRI,#60H;加数的低字节地址

MOVA,@R0;取被加数低字节

ADDA,@R1;加之加数低字节

MOV@RO,A;保存低字节相加结果

INCR0;指向被加数高字节

INCR1;指向加数高字节

MOVA,@R0;取被加数高字节

ADDCA,@R1;加之加数高字节(带进位加)

MOV@R0.A;保存高字节相加结果

MOVOOH,C;保存进位博学求真唯恒创新

3.双分支程序

设变量x以补码的形式存放在片内RAM的30H单元,变量y与x的关系是:当

x〉0时,y=x;当x=0时,y=20H;当x<0时,尸/。编制程序,根据x的大小

求y返回原单元。程段如下:

START:MOVA,30H

_JZNEXT

ANLA,#80H;判断符号位

MOVA,机)5H

ADDA,30H

MOV30H,A

SJMPLP

NEXT:MOV30H,#20H

LP:SJMP$

4.多分支程序

根据R7的内容转向相应的处理程序。

设R7的内容为0~N,对应的处理程序的入口地址分别为PPO~PPN。程序段如下:

START:MOVDPTR,#TAB;置分支入口地址表首址

MOVA.R7

ADDA.R7

MOVR3,A

MOVCA,刨+DPTR;取高位地址

XCHA,R3

INCA

MOVCA,©A+DPTR取低位地址

MOVDPL,A;处理程序入口地址低8位送DPL

MOVDPH,R3;处理程序入口地址高8位送DPH

CLRA

JMP@A+DPTR

TAB:DWPPO

DWPPI

DWPPN

5.循环程序

先执行后判断;先判断后执行

50ms延时程序

若晶振频率为12MHZ,则一个机器周期为1Us,执行一条DJNZ指令需要2个

机器周期,即2uso采用循环计数法延时,循环次数可通过计算获得,并选择先

执行后判断的循环结构,程序段如下:

DEL::MOVR7,#200;1MS

DEL1:MOVR6,#123;1ps

NOP;1ps

DEL2:DJNZR6,DEL2;2|is共(2*123)\is

DJNZR7,DEL1;2us共[(2*123+2+2)*200+1]us,即50.001ms

RET

6.子程序及其调用

a.现场保护与恢复的结构.-

•在主程序实现

•在子程序中实现

b.子程序调用时,参数的传递方法—————士

•利用累加器或者寄存器

•利用存储器

・利用堆栈操作

7.常用程序举例

a.多字节无符号数的加法

设两个N字节的无符号数分别存放在内部RAM中以DATA1和DATA2开始的

单元中。相加后的结果要求存放在DATA2数据区中。程序段如下:

MOVR0,#DATA1

MOVR1,#DATA2

MOVR7,#N置字节数

CLRC

LOOP:MOVA,@RO

ADDCA,@R1;求和

MOV­@R1,A;存结果

INGRO;修改指针

INCR1

DJNZR7,LOOP

b.多字节无符号数的减法

设两个N字节的无符号数分别存放在内部RAM中以DATA1和DATA2开始的单

元中。相减后的结果要求存放在DATA2数据区中。程序段如下:

MOVR0,#DATA1

MOVR1,#DATA2

MOVR7,#N;置字节数

CLRC

LOOP:MOVA,@RO

SUBBA,@R1;求差

MOV@R1,A;存结果

INCRO;修改指针

INCRI1

DJNZ:R7,LOOP

c.十六进制数与ASCII码间的转换

当十六进制数在0~9之间时,其对应的ASCII码值为该十六进制数加30H;当

十六进制数在A~F之间时,其对应的ASCI码值为该十六进制数加37H

d.BCD码与二进制数之间的转换

双字节二进制数转换成BCD码

设(R2R3)为双字节二进制数,(R4R5R6)为转换完的压缩型BCD码。程序段如

下:

DCDTH:CLRA博学求真惟恒创新

MOVR4,A;R4清0

MOVR5,A;R5清0.

MO)/R6,A;R6清。

MOVR7,#16;计数初值

LOOP:CLRC

MOVA,R3

RLCA

MOVK3,A;R3左移一位并送回

MOVA,R2

RLCA

MOVR2,A;R2左移一位并送回

MOVA,R6

ADDCA.R6

DAA

MOVE6,A;(R6)乘2并调整后送回

MOVA.R5

ADDCA.R5

DAA

MOVR5,A;(R5)乘2并调整后送回

MOVA.R4

ADDCA,R4

DAA

MOVR4,A;(R4)乘2并调整后送回

DJNZR7.LOOP

第五章80C51的中断系统及定时/计数器

1.80C51的结构

80C51系列单片机的中断系统有5个中断源,2个优先级,可实现二级服务中断

嵌套。

表5.1各中断源响应]优先级及中断服务程序入口表

中断源中断标志中断服务程序入口优先级顺序

外部中断0(INTO)TEO0003H高

定时/计数器0(TO)TFOOOOBH1

外部中断1(INTI)IE10013H

定时/计数器1(T1)TF1001BH1

串行口R1或者T1002311低

注:Rl、T1必须由软件清除。此外,所有能产生中断的标志位均可由软件置1

或者清0,由此可以获得与硬件使之置1或者清0同样的效果。

2.中断响应条件一个周期采样到为低电平,则在

CPU响应中断的条件是:第一,中断IE0或者IE1中将所存一个逻辑1。

源有中断请求;第二,此中断源的中边沿触发方式适合于以负脉冲形

断允许位为1;第三是CPU开中断(即式输入的外部中断请求。

EA=1)o同时满足这3个条件时,CPU4.80C51的定时/计数器

才可能响应中断。80C51单片机片内集成有两个可编程

3.中断返回(使用RETI指令)的定时/计数器:TO和T1,它们既可

RETI指令能使CPU结束中断服务程以工作于定时模式,也可以工作于外

序的执行,返回到曾经被中断过的程部事件计数模式,此外,口还可以作

序处,继续执行主程序。为串行口的波特率发生器。

功能:5.定时/计数器的控制

・将中断响应时压入堆栈保存的断TMOD用于设置其工作方式:TCON

点地址从栈顶弹出送回PC,CPU用于控制其后动和中断申请。

从原来中断的地方继续执行程序;

定时模式C/T=O;计数模式C/T=1

・将相应中断优先级状态触发器清

0,通知中断系统,中断服务程序6.定时/计数器的定时方式和计数方式

已执行完毕。的区别

注:定时方式的计数脉冲源自内部的

・外部中断定义为电平触发方式,中时钟脉冲,每一个机器周期寄存器

断标志位的状态随CPU在每一个的值+1,计数频率为震荡频率的

机器周期采样到的外部中断输入1/12;

引脚的电平变化而变化。电平触计数方式的计数脉冲源自相应的

发方式适合于外部中断输入以低外部输入引脚TO或者T1,每一个

电平输入且在中断服务程序中下降沿寄存器值+1,最高计数频

能清除外部中断的情况。率为振荡频率的1/24.

外部中断定义为边沿触发方式,在7.定时/计数器的工作方式

相继连续的两次采样中,一个周期80c51单片机定时/计数器TO有4种工

采样到外部中断输入为高电平,下作方式(方式0、1、2、3),门有3

种工作方式(方式0、1、2)。CPU发出中断请求,并将THO中的计

a.方式0(MlM0=00)数初值自动送入TLO。TLO从初值重

13位计数器,由TO的低5位(高3新进行加1计数。周而复始,直至

位未用)和THO的8位组成。TLO的TRO=O才会住手。

低5位溢出时向THO进位,TII0溢出计数个数与计数初值的关系:X=28-N

时,置位TCON中的TF0标志,向CPUd.方式;3(M1MO=11)

发出中断请求。只合用于定时/计数器TO,定时器T1

计数初值公式:X=213-N处于方式3时相当于TR1=O,住手计

b.方式1(M1MO=O1)数

16位计数器,由TLO作为低8位、THO方式3时,T0分为两个独立的8位计

作为高8位,组成为了16位加1计数器。数器TLO和THO,TLO使用TO的所有

计数个数与计数初值的关系:X=216-

控制位:C/T、GATE、TRO、TFO和

N

c.方式2(MIMO=10)

INTOo当TLO计数溢出时,由硬件使

方式2为自动重装初值的8位计数方

式。THO为8位初值寄存器。当TLOTFO置1,向CPU发出中断请求。

计数溢出时,由硬件使TFO置1,1句

8.定时/计数器的应用举例】

a.利用定时/计数器T0方式1,产生10nls的定时,并使P1.0引脚上输出周期为

20ms的方波,采用中断方式,设系统时钟频率为12MHZ。,

解:(1)计算计数初值X:-二.

由于晶振为12MHZ,所机器周期T。,为lus。所以:

N=t/T=10*10-3/1*10-6=10000

X=216^N=65536-10000=55536=D8F0H

即应将D8H送入THO中,FOH送入TLO中。

(2)兼TO商方式控制字TMOD:

MlMO=Ol,GATE=O,C/T=O,可取方式控制字为01H。

(3)程序清单如下

ORGOOOOH

LJMPMAIN;跳转到主程序

ORGOOOBHjTO的中断入口地址

LJMPDVTO;转向中断服务程序

ORG0100H

MAIN:MOVTMOD,置TO工作于方式1

MOVTHO,ttOD8H;装入计数初值

MOVTLO.#0F0H

SETBETO;TO开中断

SETBEA;CPU开中断

SETBTRO;启动TO

SJMP$;等待中断

DVTO:CPLP1.0;P1.0取反输出

MOVTHO,#0D8H;重新装入计数值

MOVTLO,#()F()H

RETI;中断返回

END

b.利用定时/计数器TO从PL0输出周期为Is,脉宽为20nls的正脉冲信号,晶振

频率为12MHz。试设计程序。

解:采用定时20ms,然后再计数1、49次的方法实现。

a.TO工作在定时方式1时,控制字TMOD配置:

M1MO=O1,GATE=O,C/T=O,可取方式控制字为01H。

b.计算计数初值X:

晶振为12MHZ,所以机器周期T.为1uso所以:

N=t/Tey=20*10-3/1*10-6=20000

X=216-N=65536-2()0()0=45536=4E20H

即应将4EH送入TH1中,20H送入TU中。

c.实现程序如下:

ORG()()(X)H

AJMPMAIN;跳转到主程序

ORG0030H

MAIN:MOVTMOD.#0111;置TO工作于方式1末真惟恒创新

MOVTHO,#4EH;装入循环计数初值

MOVTLO,#20H;首次计数值

LPO:SETBP1.0

ACALLNTO

CLRPl.O

LP1:ACALLNTO

DJNZR7,LP1

AJMPLPO

NTO:MOVTH0,#4EH

MOVTL0,#20H

SETBTRO

JNBTFO,$

CLRTRO

CLRTFO

RET

END

c.要求从Pl.1引脚输出1000HZ方波,晶振频率为12M11Z。试设计程序。

解:采用T0实现。

①TO工作在定时方式1时,控制字TMOD配置:

M1MO=O1,GATE=O,C/T=O,可取方式控制字为01H。

②计算计数初值:

晶振为12MHZ,所以机器周期T,为lus。1/1000=1*10-3。所以:

N=t/Tcy=().5*[()-3/1*10-6=50()

X=216-N=65536—500=65036=FE0CH

即应将FEH送入THO中,OCH送入TLO中。

③实现程序如下:

ORG(XXJOH

AJMPMAIN;跳转到主程序

ORGOOOBH;TO的中断入口地址

LJMPDV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论