单片机系统的设计与制作文档格式.docx
《单片机系统的设计与制作文档格式.docx》由会员分享,可在线阅读,更多相关《单片机系统的设计与制作文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
8051共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。
全部中断分为高级和低级共二个优先级别
(8)时钟电路(需外接晶振和微调电容)MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。
时钟电路为单片机产生时钟脉冲序列。
系统允许的晶振频率一般为6MHZ和12MHZ。
(二)指令系统
1.指令格式
标号:
操作码
操作数或操作地址
;
注释
注意区分
(1)单字节指令、双字节指令、三字节指令
(2)目的操作数、源操作数
2.寻址方式
(1)寄存器寻址R0~R7Rn(n=0~7):
表示当前工作寄存器R0~R7中的任一个寄存器
(2)直接寻址direct(30H)direct:
表示片内RAM的8位单元地址
(3)立即数寻址#data(#30H)#data:
表示8位直接参与操作的立即数
(4)寄存器间接寻址@Rn(n只能取0或1)Ri(i=0或1):
表示通用寄存器组中用于间接寻址的两个寄存器R0,R1。
(5)变址寻址@A+DPTR(用于查表操作操作码MOVC)在间接寻址方式中,表示间接寻址寄存器指针的前缀标志
DPTR:
数据指针,用于寄存器间接寻址方式和变址寻址方式
(6)相对寻址相对寻址
定义:
将程序计数器PC的当前值(取出本条指令后的PC值)与指令第二个字节给出的偏移量(rel)相加,形成新的转移目标地址。
称为相对寻址方式。
特点:
相对寻址方式是为实现程序的相对转移而设计的,为相对转移指令所使用,其指令码中含有相对地址偏移量,能生成浮动代码。
如:
SJMPrel;
(PC)←(PC)+2+rel
相对转移指令的目的地址=指令地址+指令字节数+偏移量
寻址范围:
只能对程序存储器ROM进行寻址。
相对地址偏移量(rel)是一个带符号的8位二进制补码,其取值范围为128~+127(以PC为中间的256个字节范围)。
(7)位寻址位寻址
指令中给出的操作数是一个可单独寻址的位地址,这种寻址方式称为位寻址方式。
位寻址是直接寻址方式的一种,其特点是对8位二进制数中的某一位的地址进行操作。
片内RAM低128B中位寻址区、部分SFR(其中有83位可以位寻址)。
可位寻址的位地址的表示形式如下:
(1)直接使用位地址形式。
MOV00H,C;
(00H)←(Cy)
其中:
00H是片内RAM中20H地址单元的第0位。
3.指令系统1)指令的格式、功能。
(2)操作码的含义,操作数的表示方法。
(3)寻址方式,源、目的操作数的范围。
(4)对标志位的影响。
(5)指令的适用范围。
(6)正确估算指令的字节数。
一般地,操作码占1字节;
操作数中,直接地址derict占1字节,#data占1字节,#data16占两字节;
操作数中的A、B、R0~R7、@Ri、DPTR、@A+DPTR、@A+PC等均隐含在操作码中。
(1)数据传送指令传送指令共29条,可分为内部RAM数据传送、外部RAM数据传送、程序存储器数据传送、数据交换和堆栈操作等五类。
寻址范围:
累加器A、片内RAM、SFR、片外RAM。
功能:
(目的地址)←(源地址)。
可表示为:
<
dest>
←<
src>
源地址单元的内容不变。
对标志位的影响:
除以累加器A为目的操作数的数据传送指令对P标志位有影响外,其余均不影响标志位。
1)8位数据传送如MOVA,30H
2)16位数据传送如MOVDPTR,#data16位数据传送指令(1条)
MOVDPTR,#data16
3)外部数据传送MOVX位数据传送指令(2条)
在可寻址位与位累加器Cy之间进行的。
不能在两个可寻址位间直接进行传送。
指令格式:
MOVC,bit;
(Cy)←(bit)
MOVbit,C;
(bit)←(Cy)
4)查表指令MOVC
(2)算术指令对标志位的影响:
逻辑运算和移位指令中除了两条带进位的循环移位指令外,其余均不影响PSW中的各标志位。
但当目的操作数是累加器A时,影响PSW中的奇偶校验位P。
常用的逻辑运算和移位类指令有:
逻辑与、逻辑或、逻辑异或、循环移位、清0、求反(非)等24条指令,它们的操作数都是8位的。
逻辑运算都是按位进行的,除用于逻辑运算外,还可用于模拟各种数字逻辑电路的功能,进行逻辑电路的设计。
1.逻辑与运算指令(6条)
功能:
实现两个操作数的逻辑与。
ANLA,<
包括Rn、@Ri、direct、#data。
ANLdirest,<
包括A、#data。
.逻辑或运算指令(6条)
实现两个操作数的逻辑或。
ORLA,<
ORLdirest,<
适用场合:
实现逻辑或,主要用于操作数的某些位不变(这些位或“0”),某些位置1(这些位或“1”)。
ADD,ADDC,SUBB,MULL,DIV
(3)控制转移指令
(1)以进位标志位Cy内容为.位条件(控制)转移指令(5条)
以位的状态作为实现程序转移的判断条件。
条件的转移指令
JCrel;
若(Cy)=1,则转移(PC)←(PC)+2+rel,否则顺序执行
JNCrel;
若(Cy)=0,则转移(PC)←(PC)+2+re
2)以位地址bit内容为条件的转移指令
JBbit,rel;
若(bit)=1,则转移(PC)←(PC)+3+rel,否则顺序执行
JNBbit,rel;
若(bit)=0,则转移(PC)←(PC)+3+rel,否则顺序执行
JBCbit,rel;
若(bit)=1,则转移(PC)←(PC)+3+rel,且(bit)←0,
否则顺序执行
AJMP,JZ,JNZ,CJNE,DJNZ,ACALL,RET,RETI
(4)位操作
(5)位操作(布尔变量操作):
操作数不是字节,而是字节中的某个位。
每位的取值只能取0或1。
(6)指令的寻址范围:
片内RAM位寻址区20H~2FH,SFR中的11个可位寻址特殊寄存器中的83个可寻址位。
(7)特点:
以进位标志Cy作为位累加器,可以实现布尔变量的传送、运算和控制转移等功能。
(8)指令中的位地址的表达方式:
直接地址方式(如0AFH)、特殊功能寄存器名.位序号(如PSW.3)、字节地址.位序号(如0D0H.0)、位名称方式(如F0)和用户定义名称等几种方
MOV,CLR,SETB,JB,JNB,JBC
(5)伪指令
ORG,DB,EQU,END
(三)定时中断
1.定时/计数原理当定时/计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器增1,直至计满溢出。
定时器的定时时间与系统的振荡频率紧密相关,因MCS-51单片机的一个机器周期由12个振荡脉冲组成,所以,计数频率
。
如果单片机系统采用12M晶振,则计数周期为:
,这是最短的定时周期,适当选择定时器的初值可获取各种定时时间。
当定时/计数器设置为计数工作方式时,计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外部信号计数,外部脉冲的下降沿将触发计数。
在每个机器周期的S5P2期间采样引脚输入电平,若前一个机器周期采样值为1,后一个机器周期采样值为0,则计数器加1。
新的计数值是在检测到输入引脚电平发生1到0的负跳变后,于下一个机器周期的S3P1期间装入计数器中的,可见,检测一个由1到0的负跳变需要两个机器周期,所以,最高检测频率为振荡频率的1/24。
计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。
方式寄存器TMOD、控制寄存器TCON各位的含义
2.定时器初始化的步骤
(1)对TMOD赋值
、定时/计数器方式寄存器TMOD
TMOD为T1、T2的工作方式寄存器,其格式如下:
TMODD7D6D5D4D3D2D1D0
GATE
M1
M0
(89H)
定时器1定时器0
TMOD的低4位为T0的方式字段,高4位为T1的方式字段,它们的含义完全相同。
(1)M1和M0:
方式选择位。
定义如下:
M1M0
工作方式
功能说明
00
方式0
13位计数器
01
方式1
16位计数器
10
方式2
自动再装入8位计数器
11
方式3
定时器0:
分成两个8位计数器
定时器1:
停止计数
(2)预置初值TMOD赋值。
如定时器1工作在方式1,且工作在定时器方式,TMOD=0x10。
(2)
方式0:
方式1:
预置定时或计数的初值——直接将初值写入TH0、TL0或TH1、TL1。
定时器/计数器的初值因工作方式的不同而不同。
设最大计数值为M,则各种工作方式下的M值如下:
方式2:
方式3:
定时器0分成2个8位计数器,所以2个定时器的M值均为256。
因定时器/计数器工作的实质是做“加1”计数,所以,当最大计数值M值已知时,初值X可计算如下:
X=M计数值
如定时器1采用方式1定时,M=65536,因要求每50ms溢出一次,如采用12M晶振,则计数周期T=1s,计数值
,所以,计数初值为
将3C、B0分别预置给TH1、TL1。
(3)根据需要开启定时/计数器中断)根据需要开启定时器/计数器中断——直接对IE寄存器赋值。
(4)启动定时/计数器工作将TR0或TR1置“1”。
GATE=0时,直接由软件置位启动;
GATE=1时,除软件置位外,还必须在外中断引脚处加上相应的电平值才能启动。
3.中断系统
(1)中断的概念MCS-51的中断系统
1、中断的概念
中断是通过硬件来改变CPU的运行方向。
计算机在执行程序的过程中,当出现CPU以外的某种情况,由服务对象向CPU发出中断请求信号,要求CPU暂时中断当前程序的执行而转去执行相应的处理程序,待处理程序执行完毕后,再继续执行原来被中断的程序。
这种程序在执行过程中由于外界的原因而被中间打断的情况称为“中断”。
“中断”之后所执行的相应的处理程序通常称之为中断服务或中断处理子程序,原来正常运行的程序称为主程序。
主程序被断开的位置(或地址)称为“断点”。
引起中断的原因,或能发出中断申请的来源,称为“中断源”。
中断源要求服务的请求称为“中断请求”(或中断申请)。
调用中断服务程序的过程类似于调用子程序,其区别在于调用子程序在程序中是事先安排好的;
而何时调用中断服务程序事先却无法确定,因为“中断”的发生是由外部因素决定的,程序中无法事先安排调用指令,因此,调用中断服务程序的过程是由硬件自
(2)中断源通常,计算机的中断源有如下几种:
(1)一般的输入输出设备。
如键盘、打印机等,它们通过接口电路向CPU发出中断请求。
(2)实时时钟及外界计数信号。
如定时时间或计数次数一到,则向CPU发出中断请求。
(3)故障源。
当采样或运算结果溢出或系统掉电时,可通过报警、掉电等信号向CPU发出中断请求。
(4)为调试程序而设置的中断源。
调试程序时,为检查中间结果或寻找问题所在,往往要求设置断点或进行单步工作(一次执行一条指令),这些人为设置的中断源的申请与响应均由中断系统来实现。
(3)IE寄存器MCS-51的5个中断源详述如下:
(1)
:
外部中断0请求,由P3.2脚输入。
通过IT0脚(TCON.0)来决定是低电平有效还是下跳变有效。
一旦输入信号有效,则向CPU申请中断,并建立IE0标志。
外部中断1请求,由P3.3脚输入。
通过IT1脚(TCON.2)来决定是低电平有效还是下跳变有效。
一旦输入信号有效,则向CPU申请中断,并建立IE1标志。
(3)TF0:
定时器T0溢出中断请求。
当定时器T0产生溢出时,定时器T0中断请求志位(TCON.5)置位(由硬件自动执行),请求中断处理。
(4)TF1:
定时器T1溢出中断请求。
当定时器T1产生溢出时,定时器T1中断请求标志位(TCON.7)置位(由硬件自动执行),请求中断处理。
RI或TI:
串行中断请求。
当接收或发送完一串行帧时,内部串行口中断请求标志位RI(SCON.0)计算机中断系统有两种不同类型的中断:
一类称为非屏蔽中断,另一类称为可屏蔽中断。
对非屏蔽中断,用户不能用软件的方法加以禁止,一旦有中断申请,CPU必须予以响应。
对可屏蔽中断,用户则可以通过软件方法来控制是否允许某中断源的中断,允许中断称中断开放,不允许中断称中断屏蔽。
MCS-51系列单片机的5个中断源都是可屏蔽中断,其中断系统内部设有一个专用寄存器IE用于控制CPU对各中断源的开放或屏蔽。
IE寄存器各位定义如下:
(1)IE.7EA:
总中断允许控制位。
EA=1,开放所有中断,各中断源的允许和禁止可通过相应的中断允许位单独加以控制;
EA=0,禁止所有中断。
(2)IE.4ES:
串行口中断允许位。
ES=1,允许串行口中断;
ES=0禁止串行口中断。
(3)IE.3ET1:
定时器T1中断允许位。
ET1=1,允许T1中断;
ET1=0,禁止T1中断。
(4)IE.2EX1:
外部中断1(
)中断允许位。
EX1=1,允许外部中断1中断;
EX1=0,禁止外部中断1中断。
(5)IE.1ET0:
定时器T0中断允许位。
ET0=1,允许T0中断;
ET0=0,禁止T0中断。
(6)IE.0EX0:
外部中断0(
EX0=1,允许外部中断0中断;
EX0=0,禁止外部中断0中断。
8051单片机系统复位后,IE中各中断允许位均被清0,即禁止所有中断。
开中断过程是:
首先开总中断:
EA=1,然后,开T1中断:
ET1=1,这2条位操作指令也可合并为1条字节指令:
IE=#88H。
(5)或TI(SCON.1)置位(由硬件自动执行),请求中断
(6)
EA
X
ES
ET1
EX1
ET0
EX0
(4)CPU响应中断的条件a.有中断源发出中断请求。
b.中断总允许位EA=1。
c.申请中断的中断源允许。
满足以上基本条件,CPU一般会响应中断,但若有下列任何一种情况存在,则中断响应会受到阻断。
a.CPU正在响应同级或高优先级的中断。
b.当前指令未执行完。
c.正在执行RETI中断返回指令或访问专用寄存器IE和IP的指令。
若存在上述任何一种情况,中断查询结果即被取消,CPU不响应中断请求而在下一机器周期继续查询,否则,CPU在下一机器周期响应中断。
CPU在每个机器周期的S5P2期间查询每个中断源,并设置相应的标志位,在下一机器周期S6期间按优先级顺序查询每个中断标志,如查询到某个中断标志为1,将在再下一个机器周期S1期间按优先级进行中断
二、程序设计
子程序设计(包括程序框图设计及程序代码编写)
1.延时
2.数码管显示
动态
3.独立式按键