配色: 字号:
单片机原理与应用
2019-08-09 | 阅:  转:  |  分享 
  
21世纪高职高专规划教材《单片机原理与应用》电子教案第1章??单片机概述本章主要介绍单片机的发展,基本的结构和特
点,单片机的应用模式和领域,单片机的供应状态等。单片微型计算机就是将CPU、RAM、ROM、定时/计数器和多种接口都集成到一块集
成电路芯片上的微型计算机。因此,一块芯片就构成了一台计算机。它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计
算机。1.1单片机的发展历史我们可以把单片机的发展历史划分为四阶段:第一阶段(1976~1978年):低性能单片机的探索
阶段。以Intel公司的MCS-48为代表,采用了单片结构,即在一块芯片内含有8位CPU、定时/计数器、并行I/O口、RAM和RO
M等。主要用于工业领域。第二阶段(1978~1982年):高性能单片机阶段,这一类单片机带有串行I/O口,8位数据线、16位地址
线可以寻址的范围达到64K字节、控制总线、较丰富的指令系统等。这类单片机的应用范围较广,并在不断的改进和发展。第三阶段(1982
~1990年):16位单片机阶段。16位单片机除CPU为16位外,片内RAM和ROM容量进一步增大,实时处理能力更强,体现了微控制
器的特征。例如Intel公司的MCS-96主振频率为12M,片内RAM为232字节,ROM为8K字节,中断处理能力为8级,片内带有
10位A/D转换器和高速输入/输出部件等。第四阶段(1990年~):微控制器的全面发展阶段,各公司的产品在尽量兼容的同时,向高速
、强运算能力、寻址范围大以及小型廉价方面发展。1.2单片机的软硬件系统硬件系统是指构成微机系统的实体和装置,
通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。其中,运算器和控制器一般做在一个
集成芯片上,统称中央处理单元(CentralProcessingUnit),简称CPU,是微机的核心部件。CPU配上存放程序和
数据的存储器、输入/输出(Input/Output,简称I/O)接口电路以及外部设备即构成微机的硬件系统。图1-1微型计算机
硬件系统组成示意图下面把组成计算机的5个基本部件作简单说明。1)运算器运算器是计算机的运算部件,用于实现
算术和逻辑运算。计算机的数据运算和处理都在这里进行。2)控制器控制器是计算机的指挥控制部件,它控制计算机各部分自
动、协调地工作。运算器和控制器是计算机的核心部分,常把它们合在一起称之为中央处理器,简称CPU。3)存储器存储器
是计算机的记忆部件,用于存放程序和数据。存储器又分为内存储器和外存储器。实训中使用的EPROM2764便是存贮器。4)输入设备
输入设备用于将程序和数据输入到计算机中,如键盘等。5)输出设备输出设备用于把计算机数据计算或加工的
结果,以用户需要的形式显示或打印出来,如显示器、打印机等。通常把外存储器、输入设备和输出设备合在一起称之为计算机的外
部设备,简称“外设”。单片微型计算机是指集成在一个芯片上的微型计算机,也就是把组成微型计算机的各种功能部件,包括
CPU(CentralProcessingUnit)、随机存取存储器RAM(RandomAccessMemory)、只读存
储器ROM(Read-onlyMemory)、基本输入/输出(Input/Output)接口电路、定时器/计数器等部件都制作在一
块集成芯片上,构成一个完整的微型计算机,从而实现微型计算机的基本功能。单片机内部结构示意图如图1-2所示。图1-2单片机内部
结构示意图软件系统是微机系统所使用的各种程序的总称。人们通过它对整机进行控制并与微机系统进行信息交换,使微机按照人
的意图完成预定的任务。软件系统与硬件系统共同构成完整的微机系统,两者辅相成,缺一不可。微型计算机系统组
成示意图如图所示。微型计算机系统组成示意图1.3MCS-51系列单片机尽管各类单片机很多,但无论是从世界范围
或是从全国范围来看,使用最为广泛的应属MCS-51单片机。MCS-51单片机系列共有十几种芯片,如表1-1所示。表
1-1MCS-51系列单片机分类表MCS-51系列又分为51和52两个子系列,并以芯片型号的最末位数字作为标志。
其中,51子系列是基本型,而52子系列则属增强型。52子系列功能增强的具体方面,从表1-1所列内容中可以看出:(1)
片内ROM从4KB增加到8KB。(2)片内RAM从128B增加到256B。(3)定时/计
数器从2个增加到3个。(4)中断源从5个增加到6个。MCS-51系列单片机采用两种半导体工艺生产。
一种是HMOS工艺,即高速度、高密度、短沟道MOS工艺。另外一种是CHMOS工艺,即互补金属氧化物的HMOS工艺。表1.1中,芯片
型号中带有字母“C”的,为CHMOS芯片,其余均为一般的HMOS芯片。CHMOS是CMOS和HMOS的结合,除保持了
HMOS高速度和高密度的特点之外,还具有CMOS低功耗的特点。在便携式、手提式或野外作业仪器设备上,低功耗是非常有意义的,因此,在
这些产品中必须使用CHMOS的单片机芯片。MCS-51单片机片内程序存储器有三种配置形式,即掩膜ROM、EP
ROM和无ROM。这三种配置形式对应三种不同的单片机芯片,它们各有特点,也各有其适用场合,在使用时应根据需要进行选择。一般情况下,
片内带掩膜型ROM适用于定型大批量应用产品的生产;片内带EPROM适合于研制产品样机;外接EPROM的方式适用于研制新产品。最近,
Intel公司又推出片内带EEPROM型的单片机,可以在线写入程序。第2章MCS-51单片机结构
本章主要介绍MCS-51系列的8051的基本结构、工作原理、存储器结构、P0、P1、P2、P3四个I/O口的基本工作原理和操作特
点。单片机的各种工作方式、单片机的时序等。2.1MCS-51单片机的内部组成及信号引脚MCS-51单片机的典型
芯片是8031、8051、8751。8051内部有4KBROM,8751内部有4KBEPROM,8031内部无ROM;除此之外
,三者的内部结构及引脚完全相同。因此,以8051为例,说明本系列单片机的内部组成及信号引脚。8051单片机的基本组成
请参见图2-1。下面介绍各部分的基本情况。图2-1MCS-51单片机结构框图1)中央处理器(CPU)
中央处理器是单片机的核心,完成运算和控制功能。MCS-51的CPU能处理8位二进制数或代码。2)内部数据存
储器(内部RAM)8051芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器供用户使用的
只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。3)内部程
序存储器(内部ROM)8051共有4KB掩膜ROM,用于存放程序、原始数据或表格,因此,称之为程序存储器,简称内部R
OM。4)定时/计数器8051共有两个16位的定时/计数器,以实现定时或计数功能,并以其定时或计数结
果对计算机进行控制。5)并行I/O口MCS-51共有4个8位的I/O口(P0、P1、P2、P3),以
实现数据的并行输入/输出。6)串行口MCS-51单片机有一个全双工的串行口,以实现单片机和其它设备之
间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。7)中断控制系统
MCS-51单片机的中断功能较强,以满足控制应用的需要。8051共有5个中断源,即外中断两个,定时/计数中断两个,串行中
断一个。全部中断分为高级和低级共两个优先级别。8)时钟电路MCS-51芯片的内部有时钟电路,但石英晶
体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率一般为6MHz和12MHz。MCS-51
是标准的40引脚双列直插式集成电路芯片,引脚排列请参见图2-2。1)信号引脚介绍P0.0~P0.7:P0口
8位双向口线。P1.0~P1.7:P1口8位双向口线。P2.0~P2.7:P2口8位双向口
线。P3.0~P3.7:P3口8位双向口线。4.1汇编语言及汇编语言程序设计4.1.3简单程序设
计4.1.4分支程序设计7.2.3可编程RAMI/O接口芯片8155及其扩展I/O口技术1.8155内部结构及引
脚8155内部结构 (b)8155引脚配置图图7-128155内部结构及引脚图表7?38155口地址
分布AD0~AD7选中寄存器A7A6A5A4A3A2A1A0××××
×000内部命令寄存器×××××001通用I/O口A寄存器×××××01
0通用I/O口B寄存器×××××011口C:通用I/O口或控制口×××××10
0定时/计数器的低8位寄存器×××××101定时/计数器的高8位寄存器2.8155的RAM和I/O口
地址编码3.8155的工作方式与基本操作图7-138155命令状态寄存器格式2.方式1T0(或T1)方式1的逻
辑电路结构3.方式2图5?3T0(或T1)方式2的逻辑电路结构4.方式3图5?4T0方式3的逻辑电路结构和T
1结构由于定时/计数器是可编程的,因此在定时或计数之前要用程序初始化,初始化一般有以下几个步骤:(1)确定工作方式—
对方式寄存器TMOD赋值。(2)预置定时或计数初值,直接将初值写入TL0、TH0或TL1、TH1中。(3)根据需要对中断允许寄
存器有关位赋值,以开放或禁止定时/计数器中断。(4)启动定时/计数器,使TCON中的TR1或TR0置“1”,计数器计按既定的工作
方式和初值技术或定时。5.定时/计数器的初始化在初始化过程中,要置入定时或计数的初值,要做一点计算。由于计数器是加
“1”计数器,并在溢出时产生中断请求,因此不能直接将计数初值置入计数器,而应送计数初值的补码数。设计数器最大计数值为M
,选择不同的工作方式最大计数值不同。方式0:M=213=8192方式1:M=216=65536方式2:M=28=256方式
3:M=28=256置入计数初值X可这样计算:计数方式时:X=M-计数值(X即为计数值的补码)定时方式时:(M-X)T=定
时值,故X=M-定时值/T其中T为计数周期,是单片机时钟的12分频,即单片机机器周期。当晶振为6MHz时,t=2μs;当晶振12
MHz时,T=1μs。【例5.1】若单片机晶振为12MHz,要求产生500μs的定时,试计算X的初值。解:由于T=1μ
s,产生500μs定时,则需要“+1”500次,定时器方能产生溢出。采用方式0:X=213-(50010-6/10-6)=7
692=1E0CH但方式0的TL0高3位是不用的,都设为“0”,这1E0CH应写成:F00CH=1111000001100B
实际上,我们可以看出F00CH去掉了3个不用的位后,就是1E0CH,即将F0H装入TH0,0CH装入TL0。采用方式1:X=2
16-(50010-6/10-6)=65536=FE0CH即将FEH装入TH1,0CH装入TL1。【例5.2】用定时器1,
方式0实现1s的延时。解:因方式0采用13位计数器,其最大定时时间为:81921μs=8192μs,因此,定时时间可选择为8m
s,再循环125次;或者定时时间选择为5ms,再循环200次。本例我们选择前者。定时时间选定后,再确定计数值为5000,则定时器1
的初值为X=M-计数值=8192-5000=3192=C78H=0110001111000B因13位计数器中TL1的高3位未用
,应填写0,TH1占高8位,所以,X的实际填写值应为X=0110001100011000B=6318H即TH1=63H,TL1
=18H,又因采用方式0定时,故TMOD=00H。1s延时子程序如下:DELAY:MOV R0,#200 ;置5ms计数循环初
值MOVTMOD,#00H ;设定时器1为方式0MOVTH1,#63H ;置定时器初值MOV
TL1,#18HSETBTR1 ;启动T1LP1: JBCTF1,LP2
;查询计数溢出SJMPLP1 ;未到5ms继续计数LP2: MOV
TH1,#63H ;重新置定时器初值MOVTL1,#18HDJNZR0,LP1
;未到1s继续循环RET ;返回主程序【例5.3】用定时器1
,方式1实现1s的延时。DELAY:MOVR0,#20 ;置50ms计数循环初值MOVTMOD,#10H
;设定时器1为方式1MOVTH1,#3CH ;置定时器初值MOVTL1,#0B0HSETB
TR1 ;启动T1LP1: JBCTF1,LP2 ;查询计数溢出SJMPLP1 ;未到50m
s继续计数LP2:MOVTH1,#3CH ;重新置定时器初值MOVTL1,#0B0HDJNZR
0,LP1 ;未到1s继续循环RET ;返回主程序【例5.4】用定时器1,方式2实现1s的延时。解:因方式2是
8位计数器,其最大定时时间为:2561μs=256μs,为实现1s的延时,可选择定时时间为250μs,再循环4000次。定时时间
选定后,可确定计数值为250,则定时器1的初值为:X=M-计数值=256-250=6=6H。采用定时器1,方式2工作,因此,TMO
D=20H。DELAY:MOVR7,#40 ;置25ms计数循环初值MOVR6,#100 ;置250
μs计数循环初值MOVTMOD,#20H ;设定时器1为方式2MOVTH1,#06H ;置定时器初
值MOVTL1,#06HSETBTR1 ;启动T1LP1: JBCTF1,LP2 ;查询
计数溢出SJMPLP1 ;无溢出则继续计数LP2: DJNZR6,LP1 ;未到25ms继续循环MO
VR6,#100DJNZR7,LP1 ;未到1s继续循环RET ;返回主程序5.2MCS
-51单片机的中断系统图5-5MCS-51中断系统内部结构示意图1、中断源及中断入口中断源入口地址外部中断000
03H定时器T0中断000BH外部中断10013H定时器T1中断001BH串行口中断0023H2、外部中断请求标
志2.SCON的中断标志1.TCON中的中断标志3、中断允许控制4、中断源优先级的设定5、中断响应处理过程2.中断处
理1.中断响应的过程3.中断返回4.外部中断响应时间5.2.4外部中断源的扩展1.用定时器作外部中断源M
CS-51单片机有两个定时器,具有两个内中断标志和外计数引脚,如在某些应用中不被使用,则它们定时器中断可作为外部中断请求使用。
此时,可将定时器设置成计数方式,计数初值可设为满量程,则它们的计数输入端T0(P3.4)或T1(P3.5)引脚上发生负跳变时,计数
器加1产生溢出甲断。利用此特性,可把T0脚或T1脚作为外部中断请求输入线,而计数器的溢出中断作为外部中断请求标志。【
例5.5】将定时器0扩展为外部中断源n解:将定时器0设定为方式2(自动恢复计数初值),TH0和TFO的初值均设置为FFH,允许定
时器0中断,CPU开放中断。源程序如下:MOV TMOD,#06HMOV TH0,#0FFHMOV TL0,#
0FFHSETB TR0SETB ET0SETB EA…当连接在T0(P3.4)引
脚上的外部中断请求输入线发生负跳变时,TL0加1溢出,TF0置1,向CPU发出中断申请,同时,TH0的内容自动送至TL0使TL0恢
复初值。这样,T0引脚每输入一个负跳变,TF0都会置1,向CPU请求中断。此时,T0脚相当于边沿触发的外部中断源输入线。
同样,也可将定时器1扩展为外部中断源。2.中断和查询相结合图5-8一个外中断扩展成多个外中断的原理图由图可
知,4个外部扩展中断源通过4个OC门电路组成线或取非后再与(P3.2)相连;4个外部扩展中断源EXINT0~E
XINT3中有一个或几个出现高电平则输出为0,使脚为低电平,从而发出中断请求。因此,这些扩充的外部中断源都是电平触
发方式(高电平有效)。CPU执行中断服务程序时,先依次查询P1口的中断源输入状态,然后,转入到相应的中断服务程序,4个扩展中断源的
优先级顺序由软件查询顺序决定,即最先查询的优先级最高,最后查询的优先级最低。中断服务程序如下:ORG 0003H ;外部中
断0入口AJMP INT0 ;转向中断服务程序入口…INT0: PUSH PSW ;保护现场PUSH ACCJB P1
.0,EXT0 ;中断源查询并转相应中断服务程序JB P1.1,EXT1JB P1.2,EXT2JB P1.3,EXT3E
XIT: POP ACC ;恢复现场POP PSWRETI…EXT0: … ;EXINT0中断服务程序AJMP EXI
TEXT1: … ;EXINT1中断服务程序AJMP EXITEXT2: … ;EXINT2中断服务程序AJMP EX
ITEXT3: … ;EXINT3中断服务程序AJMP EXIT同样,外部中断1也可作相应的扩展。第6章????存储器
与存储器扩展6.1单片机存储器概述8051的引脚定义及功能MCS-51的引脚图及功能分类图图6-1单片机扩展构造
总线结构框图6.2程序存储器扩展技术外部程序存储器的扩展及取指过程外部程序存储器一般连接方法EPROM程序存储器扩
展实例图6-8单片程序存储器扩展连接用译码法扩展多片E2PROM图6-10E2PROM程序存储器扩展电路连接图
扩展2KB数据存储器的线路图6.3数据存储器扩展技术图6-12线选法扩展1片6264电路图综合扩展实例扩展
16KBRAM和16KBEPROM7.2并行I/O口扩展7.2.1并行I/O口的简单扩展第7章????单片机接
口技术图7-2简单I/O口扩展7.2.2采用8255扩展I/O口图7-38255内部结构1.8255的
内部结构和引脚功能。图7-48255A引脚图2.MCS-51与8255A的连接方法图7-58031与825
5A的连接方法3.8255的方式控制字图7-68255A方式选择控制字(1)方式选择控制字图7-7C口
按位复位/置位控制寄存器(2)C口按位复位/置位控制字2.3.2P1口图2?6P1口的口线逻辑电路图2.3
.3P2口图2?7P2口的口线逻辑电路图2.3.4P3口图2?8P3口的口线逻辑电路图2.4.1时
钟电路与时序基本定时时序关系2.4MCS-51单片机的时序1.时钟信号的产生图2-9时钟振荡电路和图2-10外
部时钟源接法(1)节拍与状态图2?11MCS-51的取指/执行时序(2)机器周期4.MCS-51指令时序(3
)指令周期1.复位操作?表格2?4各专用寄存器的复位值专用寄存器复位值PC0000HACC00HB
00HPSW00HSP07HDPTR0000HP0~P3FFHIPXXX00000BIE0XX00000B
TMOD00HTCON00HTH000HTL000HTH100HTL100HSCON00HSBUF
不定PCON(CHMOS)0XXX0000B2.4.2单片机的复位电路2.复位信号及其产生图2?12复位电路逻
辑图3.复位方式图2?13各种复位电路第3章MSC-51指令系统3.1MCS-51指令系统
概述3.1.1指令格式汇编语言格式为:[标号:]操作码助记符[目的操作数,][源操作数][;注释]
其中,标号是该语句的符号地址,可根据需要而设置。当汇编程序对汇编语言源程序进行汇编时,再以该指令所在的地址值来代替标号。
在编程的过程中,适当的使用标号,使程序便于查询、修改以及转移指令的编程。标号通常用于转移指令所需的转移地址。标号一般由1~6个字符
组成,但第一个字符必须是字母,其余的可以是字母也可以是其他符号或数字。标号和操作码之间用冒号“:”分开。功能助记
符又称为操作码。操作码和操作数(源操作数和目的操作数)是指令的核心部分。操作码使用MCS-51系列单片机所规定的助记符来表示,其功
能在于告诉单片机的CPU做何种操作。操作数分为目的操作数和源操作数,采用符号(如寄存器、标号等)或者常量(如立即数、地址值等)表示
。操作码和目的操作数之间用空格分隔,而目的操作数和源操作数之间用逗号“,”隔开。在某些指令中可以没有操作数。注释
是对指令的功能或作用的说明,但是注释不是一个指令的必要组成部分,可有可无。注释的主要作用是对程序段或者某条指令在整个程序中的作用进
行解释和说明,以帮助阅读、理解和使用源程序。有无注释对源程序并无影响,但是如果使用注释的话,注释部分一定要用分号“;”隔开。3.
1.2寻址方式1.寄存器寻址2.直接寻址4.立即寻址3.寄存器间接寻址6.变址寻址7.相对寻址5.
位寻址MSC-51单片机的指令系统按照指令的功能,可以把MSC-51的111条指令分成五类:l?????数据传送类
指令(29条)l??????算术运算类指令(24条)l??????逻辑操作类指令(24条)l??????控制转移类指令
(17条)l??????位操作类指令(17条)第4章MCS-51汇编语言程序设计基本程序结构
机器语言(MachineLanguage)是指直接用机器码编写程序、能够为计算机直接执行的机器级语言。机器码是一串由二进制
代码“0”和“1”组成的二进制数据,其执行速度快,但是可读性极差。机器语言一般只在简单的开发装置中使用,程序的设计、输入、修改和调
试都很麻烦。汇编语言(AssemblyLanguage)是指用指令助记符代替机器码的编程语言。汇编语言程序结构
简单,执行速度快,程序易优化,编译后占用存储空间小,是单片机应用系统开发中最常用的程序设计语言。汇编语言的缺点是可读性比较差,只有
熟悉单片机的指令系统,并具有一定的程序设计经验,才能研制出功能复杂的应用程序。高级语言(High-Level
Language)是在汇编语言的基础上用自然语言的语句来编写程序,例如PL/M-51、FranklinC51、MBASIC5
1等,程序可读性强,通用性好,适用于不熟悉单片机指令系统的的用户。高级语言编写程序的缺点是实时性不高,结构不紧凑
,编译后占用存储空间比较大,这一点在存储器有限的单片机应用系统中没有优势。简单程序也就是顺序程序,是最简单、最基
本的程序结构,其特点是按指令的排列顺序一条条地执行,直到全部指令执行完毕为止。不管多么复杂的程序,总是由若干顺序程序段所组成的。
【例4.1】双字节二进制数求补。本程序对R3(高)、R2(低)中的二进制定点数取反加1,便得到其补码,程序流程图
如图4-1所示。图4-1双字节二进制数求补程序流程图程序清单如下:BINPL:MOV A,R2 CPL A
ADD A,#01H MOV R2,A ;低位字节补码送R2 MOV A,R3 CPL A ADDCA,#00H ;高
位加进位位 MOV R3,A ;高位字节补码送R3 RET在一个实际的应用程序中,程序不可能始终都是直线执行的。要
用计算机解决某个实际问题,往往要求计算机能够做出一些判断,并根据不同的判断结果做出不同的处理,即产生不同的分支结构。分支结构程序可
根据程序要求无条件或有条件地改变程序执行的顺序,选择新的程序流向。编写分支结构程序主要在于正确使用转移指令,即无条件转移和条件转移
指令。【例4.2】设变量X存在VAR单元之中,函数值y存放在FUNC中,按以下的表达式给变量y赋值:图4-
2分支程序流程图程序流程图如图4-2所示。程序清单如下:VAR EQU 30HFUNC EQU 31HSTART
:MOV A,VAR JZ COMP JNB ACC.7,POSI MOV A,#0FFH SJMP COMPPOSI:
MOV A,#01HCOMP:MOV FUNC,A在程序设计过程中,常常遇到反复执行某一段程序的情况,这种情况下采用循环
程序结构,构,可以缩短程序代码的长度,提高程序的质量和运行效率。循环的这四个部分有两种情况,如图4-3所示。4.1.5循
环结构程序图4-3循环结构程序流程图循环结构程序一般包括以下几个部分:(1)置初值。置初值是设置用于循环过程工作单元
的初始值,例如设置循环次数计数器、地址指针初值、存放变量的单元的初值。(2)循环体。重复执行的程序段。(3)循环修改。在单片机
中,一般用一个工作寄存器Rn作为计数器,并给这个计数器赋初值作为循环的次数,运行程序时,每循环一次,则对该计数器进行修改。(4)
循环控制。判断循环控制变量(保存循环次数的变量)是否满足终止值的条件,如果满足则结束循环,顺序执行循环短一些的程序;如果不满足,则
继续重复执行循环的工作部分,直到达到循环结束条件(死循环除外)。【例4.3】求1、2、3…N之和(N<256)。
这是一个简单的重复相加的问题。设R2为加数指针,R5为循环次数计数器,R6为加数总和的高位字节寄存器,N保存在内部RAM的23
H当中,加数总和的高位字节和低位字节分别存入23H和24H中。程序流程图如图4-4所示。图4-4例4.3程序流程图
程序清单如下: ORG 0100H MOV R5,23H ;R5←N CLR A ;A清零 MOV R6
,#00H ;R6清零 MOV R4,#01H ;R4赋值LOOP:ADDA,@R4 ;求和 JNC NEX
T ;CY=0即总和小于256,则转移 INC R6 ;总和高位加工NEXT:INC R4 ;修改指针 DJN
Z R5,LOOP ;未完,重复加 MOV 23H,R6 ;保存总和的高位 MOV 24H,A ;保存总和的低位
END【例4.4】延时10ms子程序(设晶振的频率为6MHz)。在知道系统的晶振频率之后,延时时间主要与两个因素有关:一
是内循环中指令的执行时间;二是外循环时间常数(内循环的循环次数)的设置。在本例中,已知晶振频率为6MHz,则可得一个机器周期为0.
5μs,执行一条DJNZRn,rel的指令的时间为两个机器周期即1μs,10ms的延时子程序设计如下:DELAY: MO
V R5,#100DELAY0: MOV R4,#100DELAY1: DJNZ R4,DELAY1 DJNZ R5
,DELAY0 RET第5章MCS-51定时/计数器和中断系统5.1MCS-51定时/计数器5.1.
18051单片机定时/计数器的结构与工作原理定时/计数器逻辑结构图5?18051定时/计数器逻辑结构5.1.2
定时/计数器方式寄存器和控制寄存器表5?1方式选择位意义M1M0工作方式功能说明00方式
013位计数器01方式116位计数器10方式2自动再装入8位计数器11方式3定时器0:分成两
个8位计数器定时器1:停止计数TMOD格式如下:TCON的格式如下?TCON8FH8EH8DH8CH8BH
8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT05.1.3定时/计数器的4种工作方式
1.方式0当M1M0两位为00时,定时/计数器被选为工作方式0,其逻辑结构如图5?2所示。图5?2T0(或T1
)方式0的逻辑电路结构第1章??单片机概述第2章MCS-51系列单片机结构第3章MSC-51指令
系统第6章存储器与存储器扩展第4章????MCS-51汇编语言程序设计第7章????单片机接口技术第5章????MCS
-51定时/计数器和中断系统第9章????MCS-51单片机应用系统设计单片机原理及应用第8章????串行口通信技术1.2
.1单片机的硬件系统1.2.2单片机的软件系统子系列片内ROM形式片内ROM容量片内RAM容量
寻址范围I/O特性中断源无ROMEPROM计数器并行口串行口51子系列80318051
87514KB128B2×64KB2×164×81580C3180C5187C514KB
128B2×64KB2×164×81552子系统8032805287528KB2
56B2×64KB3×164×81680C3280C5287C528KB256B
2×64KB3×164×8161.3.151子系列和52子系列1.3.2单片机芯片半导体工艺1.3
.3片内ROM存储器配置形式2.1.18051单片机的基本组成2.1.2MCS-51的信号引脚图2-2MCS-51引
脚图表2?1P3口的第二功能表2)信号引脚介绍2.28051的内部存储器图2-3片内RAM的配置2.2
.1内部数据存储器低128单元字节地址位地址?2FH2EH2DH2CH2BH
2AH29H28H27H26H25H24H23H22H21H20HD7D6D5D4D3D2D1
D07FH7EH7DH7CH7BH7AH79H78H77H76H75H74H73H72H71H70
H6FH6EH6DH6CH6BH6AH69H68H67H66H65H64H63H62H61H60H
5FH5EH5DH5CH5BH5AH59H58H57H56H55H54H53H52H51H50H
4FH4EH4DH4CH4BH4AH49H48H47H46H45H44H43H42H41H40H3
FH3EH3DH3CH3BH3AH39H38H37H36H35H34H33H32H31H30H2F
H2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H1FH1EH1DH1CH1BH1AH19H18H17H16H15H14H13H12H11H10H0FH0EH0DH0CH0BH0AH09H08H07H06H05H04H03H02H01H00H图2?48051内部RAM位地址区表2?2片内RAM位寻址区的位地址表格2?2特殊功能寄存器表符号单元地址名称位地址符号地址ACCE0H累加器ACC.7~ACC.0E7H~E0HBF0H乘法寄存器B.7~B.0F7H~F0HPSWD0H程序状态字PSW.7~PSW.0D7H~D0HSP81H堆栈指针??DPL82H数据存储器指针(低8位)??DPH83H数据存储器指针(高8位)??IEA8H中断允许控制器IE.7~IE.0AFH~A8HIPB8H中断优先控制器IP.7~IP.0BFH~B8HP080H通道0P0.7~P0.087H~80HP190H通道1P1.7~P1.097H~90HP2A0H通道2P2.7~P2.0A7H~A0HP3B0H通道3P3.7~P3.0B7H~B0HPCON87H电源控制及波特率选择??SCON98H串行口控制SCON.7~SCON.09FH~98HSBUF99H串行数据缓冲器??TCON88H定时控制TCON.7~TCON.08FH~88HTMOD89H定时器方式选择??TL08AH定时器0低8位??TL18BH定时器1低8位??TH08CH定时器0高8位??TH18DH定时器1高8位??:可位寻址的特殊功能寄存器2.2.2内部数据存储器高128单元表2?3MCS-51专用寄存器一览表图2?5P0口的口线逻辑电路图2.3.1P0口2.3并行输入/输出口电路结构
献花(0)
+1
(本文系楼外楼书馆原创)