版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及应用
第一章绪论
•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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届河北省名校联盟高三上学期模拟考试历史试题(含答案)
- 2026年智能血糖AI预测系统项目评估报告
- 基于量子密码认证
- 市级财税政策对企业自主创新激励效应的多维度剖析与策略优化
- 工程承包商绩效评估方案
- 外科基本技能图谱:烧伤外科修复课件
- 建筑施工图审查流程方案
- 钢结构节点抗剪设计
- 推进深化医改政策落实的策略及实施路径
- 建筑设计变更管理流程
- 2025年河南农业大学马克思主义基本原理概论期末考试真题汇编
- 2025年国企副总经理年终述职报告
- 昆山钞票纸业有限公司2026年度招聘备考题库及一套答案详解
- 施工消防安全评估措施
- 高考语文复习古代诗歌形象鉴赏课件
- 2025中国医学科学院北京协和医学院劳务派遣制工作人员招聘3人笔试备考重点试题及答案解析
- 区域创新一体化机制-洞察及研究
- 儿科健康评估与护理
- 四诊合参在护理评估中的综合应用
- 2026年青海省交通控股集团有限公司招聘(45人)笔试考试参考题库及答案解析
- GB 46768-2025有限空间作业安全技术规范
评论
0/150
提交评论