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

下载本文档

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

文档简介

单片机原理与应用 胡辉 主编 李叶紫 胡力平副主编,普通高等教育“十一五”国家级规划教材,一、课程的性质和目的,单片机是微型计算机应用技术的一个重要分支,近年来在工业智能仪器仪表、光机电设备、自动检测、信息处理、家电等的得到广泛应用和迅速发展。,单片机原理与应用是为电子信息工程、测控技术类专业及计算机应用专业学生开设的专业基础必修课或专业基础选修课,本课程的教学目的是通过理论教学与实验环节,使学生正确理解单片机的基本概念、基本原理,掌握单片机程序设计和微机接口应用的基本方法,并能综合运用单片机的软、硬件技术分析实际问题,为工业生产、科学研究和实验设备等领域的单片机应用和开发打下良好的基础,也是进一步学习计算机原理和有关接口知识重要环节。,二、课程教学内容,本课程以理论教学为主要环节,以学生课堂实验为辅,同时使用计算机辅助教学,28学时理论课和12学时实验课,具体安排如下:,1.计算机基础(2学时),(1)单片机的基本概念主要介绍单片机的发展概况(现状、未来的发展)、特点、应用和当前单片机的系列产品。 (2)单片机的数制表示法主要介绍数制的转换、原码、反码、补码及计算机中常用的编码。 (3)单片机常用逻辑电路简介包括基本门电路、触发器、寄存器、计数器、三态门与缓冲器、译码器。,2.单片机的内部结构及工作原理 (4学时),主要内容:掌握MCS-51单片机的内部结构及基本工作原理;单片机并行I/O口的结构特点;单片机最小系统的设计方法;单片机存储器的扩展方法。,3. 单片机的指令系统(4学时 2学时讲授,2学时实验),主要内容:MCS-51单片机指令的格式、分类和寻址方式;汇编语言的各种指令类型;伪指令的使用及汇编语言程序的完整格式。,.程序设计(共4学时,2学时讲授,2学时实验),主要内容:MCS-51单片机汇编语言程序设计的步骤;循环程序、分支程序、延时程序、查表程序的结构及使用方法;数制的转换原理;定点数、浮点数运算程序。,5. 单片机的中断系统 (共4学时,2学时讲授,2学时实验),主要内容:MCS-51单片机中断源的种类及工作方式;外部中断的结构及原理中断控制寄存器IE、中断优先级寄存器IP及定时器/计数器及外部中断控制寄存器TCON的使用方法;,6.单片机的定时器/计数器(共4学时,2学时讲授,2学时实验),主要内容:单片机定时器/计数器的结构、原理、工作方式及使用方法。,7. 单片机的串行通信(共4学时,2学时讲授,2学时实验),主要内容:单片机串行通信I/O接口的结构及工作方式;串行通信控制寄存器的使用方法;MCS-51单片机串行通信波特率的设置方法;MCS-51单片机的双机通信和多机通信的基本原理。,8. 单片机C51程序设计(自学,6学时讲授,8学时实验),主要内容:C51的结构及特点;C51的的数据类型;C51的常量与变量、C51的运算符及程序的格式;C51的基本语句及C51的程序设计方法。,9. 并行I/O口的应用与扩展(共6学时,4学时讲授,2学时实验),MCS-51单片机基本I/O口的应用与扩展 ;键盘与显示器的扩展原理及方法;常用外围电路接口芯片8255、8155、8279的性能特点及使用方法;存储器的扩展原理与方法。,10. A/D、D/A转换器的应用(共6学时,2学时讲授,4学时实验),主要内容: MCS-51单片机与8位A/D和D/A转换的原理;MCS-51单片机与12位A/D转换器的串、并行接口技术;MCS-51单片机与具有总线接口芯片PCF8591的使用方法。,11. 单片机的应用实例 (共2学时),主要内容: MCS-51单片机在步进电机控制系统中的应用;数据采集系统的设计;单片机在温度控制系统中的应用;IC卡读写器的设计。,单片机原理及应用,课程特点知识点既分散又连贯,结构和指令系统是基础;与电子线路尤其是数字电子线路关系密切;学习方法预习、复习;多动手(硬件、软件实验);多看参考书(包括利用网上资料);其它(上课、作业、答疑)。,第1章 单片机系统基础知识,1.1 单片机的数制表示法在人们的日常生活和数学计算中,我们经常采用的是十进制,但计算机只能“识别”二进制数。所以,二进制数及其编码是所有计算机的基本语言。其基本信息只有“0”和“1”,这是因为数字电路中的开关只有“通”和“断”两个状态。如果计算机要进行十进制或其它进制的计算,那么都要转换成二进制进行计算。,1.1.1 二进制、十进制与十六进制 1二进制 以2为基数的数制叫二进制,它只包括“0”和“1”两个符号二进制数以B作为标识符。 一个含有n位整数, m位小数的二进制数可表示为: N=Xn12n-1Xn22n2 X020X12-1X22-2 Xm2-m 或:,举例,例如:二进制数101.101B等于十进制的5.625其各位数码代表的数值为: 122021120121022123 =5.625,2十进制,以10为基数的数制叫十进制,十进制用0、1、2、3、4、5、6、7、8、9等10个符号来表示。进位规则是“逢十进一”。十进制数以D作为标识符 。一个含有n位整数,m位小数的十进制数可表示为:N=Xn110n-1Xn210n2 X0100X110-1X210-2 Xm10-m 或:,3十六进制,以16为基数的数制叫十六进制,进位规则是“逢十六进一”。十六进制数以H作为标识符。一个含有n位整数,m位小数的十六进制数可表示为: N=Xn116n-1Xn216n2 X0160X116-1X216-2 Xm16-m 或:,1.1.2 数制的转换,1二进制十进制的转换例如: 1101.11B=123122021120121122=13.75 2十六进制十进制的转换例如: 3BH=316111160=59 1A6CH=116310162616112160=6764,3十进制二进制的转换,把一个十进制整数依次除以2,并记下每次所得的余数(1或0),最后所得的余数的组合即为转换的十进制数。第一位余数为最低位(LSB),最后一个余数为最高位(MSB)。例如: 126= 1111110B,例如:213=11010101B,十进制数转换成二进制,例如:0.318=010100010B,4十六进制二进制的转换,将每位十六进制数转换成相应的四位二进制数即可。5二进制十六进制的转换只需从二进制数的最低位算起,每四位一个数,到最高位不够四位填0,即可按位转换成十六进制数。,6十进制十六进制的转换,十进制转换成十六进制与十进制转换成二进制方法一样,只是除数为16而不是2。而余数是0F中的任一个数。 例如: 9168=23D0H,1.1.3 原码、反码与补码,在计算机中,为了运算的方便,数的最高位用来表示正、负数。最高位为“0”表示正数,最高位为“1”表示负数。为了区别原来的数与它在计算机中的表示形式,我们将已经数码化了的带符号数称为机器数。而把原来的数称为机器数的真值。,机器数有三种表示方法:原码、反码、补码。1原码在符号位用0表示正数,在符号位用l表示负数,而数值位保持原样的数,这样的机器数称为原码。8位二进制原码表示的数的范围为:127127。 (1)正数 正数的原码与原来的数相同。 (2)负数 负数的原码为符号位置1,而数值位不变。 (3)0的原码表示 0的原码表示法有两种,即正0和负0。 +0原00000000 -0原10000000,2反码8位二进制反码表示的数的范围为:127127(1)正数 正数的反码与正数的原码相同。(2)负数 负数的反码为数值位的值按位求反,符号位取“1”。(3)0的反码表示 0在反码中也有两种表示法,正0和负0。+0反00000000 -0反11111111,3补码 8位二进制补码表示的数的范围为:128127。补码概念举例:,(1)正数 正数的补码与正数的原码相同。(2)负数 负数的补码由它的绝对值求反加1后得到。 (3)0的补码表示 0的补码表示只有一种,其表达式为: +0补=-0补00000000B 补码的加法规则是: XY补=X补Y补 补码的减法规则是: XY补=X补-Y补,补码运算举例1:,求十进制数7628的运算76的2进制是 0100110028的2进制是 00011100- 28的补码是 11100100,补码运算举例2:求十进制数3652的运算,总结: 对于正数:x原x反x补 对于负数:x反x原数值位取反,符号位不变。 x补=x反1 采取求补运算,可以将计算机中的减法运算转换成加法运算,从而节约了计算机的硬件成本。,1.1.4 计算机中常用的编码,1BCD(8421)码 采用二进制数对每一位十进制数字编码,这种编码方式称为BCD码(Binary coded Decimal Code)。表1-2十进制与二进制的对照,(2)BCD码的换算 (3)BCD码加法 :“逢十进一” ,若各位的和均在09之间,则其加法运算规则完全同二进制数加法的规则一样;若相加后的低4位(或高4位)二进制数大于9,或大于15(即低4位或高4位的最高位有进位),则应对低4位(或高4位)加6修正。 例如:BCD码X=59,Y=78,求X+YX=0101 1001,Y=0111 1000,(4)BCD码减法 BCD码进行减法时,也会出现需要修正的现象,BCD码减法修正的条件和方法是:低4位向高4位借位,或低4位出现非法码,低4位减6修正;高4位出现非法码,或高4位向更高的借位,高4位减6修正。例如:BCD码X=55,Y=38,求X-Y X=0101 0101,Y=0011 1000,2ASC码ASC编码表(American standard Code for information interchange美国信息交换标准代码) ASC码用7位二进制数表示,可表达128个字符,其中包括数码09,英文大小写字母,标点符号和控制字符。7位ASC码分成二组:高3位一组,低4位一组,分别表示这些符号的列序和行序, ASC码的分组如图1-3所示。,1.1.5 二进制的运算,1二进制加法2二进制减法,常用的与门电路有2输入与门、3输入与门、4输入与门。常用的TTL电路的与门芯片有74LS08(四2输入正与门)、74LS09(四2输入正与门)、74LS11(三3输入正与门)、74LS21(二4输入正与门)等。,1.2 单片机常用逻辑电路简介,1.2.1 基本门电路1与门电路 电路符号:,或门电路的形式也有许多种,常用的或门电路有2输入或门。TTL电路的或门芯片有74LS32(四2输入正或门)。,1.2 单片机常用逻辑电路简介,1.2.1 基本门电路2或门电路 电路符号:,TTL电路的非门芯片有74LS04(六反相器)、74LS05(集电极开路型六反相器)。,1.2 单片机常用逻辑电路简介,1.3.1 基本门电路3非门电路 电路符号:,常用的TTL电路的与非门芯片有74LS00(四2输入正与非门)、74LS10(三3输入正与非门)、74LS20(二4输入正与非门)、74LS30(8输入正与非门)、74LS01/03(集电极开路型四2输入正与非门)。 或非门芯片有74LS02(四2输入正或非门)、74LS27(三3输入正或非门)、74LS25(带选通端二4输入正或非门)。,4与非门和或非门电路 电路符号:,RS触发器的工作状态,1.2.2 触发器1基本RS触发器,电路图,D触发器真值表,2D触发器 内部结构,JK触发器真值表,3JK触发器内部结构,常用的TTL电路JK触发器有74LS70(带预置和清除端的正边沿触发器)、74LS72(带预置和清除端的JK主从触发器)、74LS73(带清除端的双JK触发器)、74LS76(带预置和清除端的双JK触发器),2移位寄存器,1.2.3 寄存器 1简单的寄存器常用的这类寄存器有74LS75、74LS175、CC4076等。,常用的这类移位寄存器有74LS194、74LS195、74LS164、74LS165、74LS166等。,1.2.4 计数器,1同步计数器 4位同步二进制计数器有74161,用T触发器构成的同步十六进制加法计数器有CC4520,单时钟同步十六进制加/减计数器有74LS191和74LS193。,同步十进制加法计数器,2异步计数器异步十进制计数器有74LS290、74LS90、异步二进制计数器有74LS293、74LS197与,1.2.5 三态门与缓冲器三态输出门电路可以加到寄存器的输出端上,这样的寄存器就称为三态(缓冲)寄存器。使用三态输出门电路,计算机就可以通过数据总线与一组寄存器接通,而断开另外一组寄存器,从而与任意多个寄存器交换信息。,1.2.6 译码器3 8译码器,习题1将下列一组二进制数转换成十进制数。(1)10011100B (2)110001101001B (3)1001101000110110B5求下列一组数字的原码、反码、补码。(1)86 (2)116 (3)-34 (4)-79,第2章,单片机的工作原理,2.1 单片机概述2.1.1 单片机的基本概念,1.微处理器的概念 MPU是微处理器的缩写(Microprocessor),简称为MP。MPU是集成在同一块芯片上的具有运算和控制功能逻辑的中央处理器。微处理器不仅是构成微型计算机、单片微型计算机系统、嵌入式系统的核心部件,而且也是构成多微处理器系统和现代并行结构计算机的基础。,2微型计算机的概念微型计算机(microcomputer)是指由微处理器加上采用大规模集成电路制成的程序存储器和数据存储器,以及与输入/输出设备相连接的I/O接口电路,微型计算机简称MC。,3单片机的基本概念单片机SCMC(Single Chip MicroComputer) 属于微型机的一种 具有一般微机的基本组成和功能其它名称: 微控制器MCU(MicroController Unit) 嵌入式微控制器(embedded microcontroller) 单片机是单片微型计算机的简称,也就是把微处理器(CPU)、一定容量的程序存储器(ROM)和数据存储器(RAM)、输入/输出接口(I/O)、时钟及其它一些计算机外围电路,通过总线连接在一起并集成在一个芯片上,构成的微型计算机系统。,4嵌入式系统的基本概念嵌入式系统泛指嵌入于宿主设备的系统中,嵌入的目的主要是用智能化提升宿主设备的功能。 嵌入式系统是以应用技术产品为核心,以计算机技术为基础,以通信技术为载体,以消费类产品为对象,引入各类传感器加入,进入Internet网络技术的连接,而适应应用环境的产品。特点:(1)嵌入式微处理器对实时多任务有很强的支持能力; (2)嵌入式微处理器具有功能很强的存储区保护功能。 (3)嵌入式微处理器功耗很低,5SOC的基本概念SOC是片上系统的简称。所谓SOC是一种高度集成化、固件化的系统集成技术。使用SOC技术设计系统的核心思想,就是要把整个应用电子系统全部集成在一个芯片中。在使用SOC技术设计应用系统时,除了那些无法集成的外部电路或机械部分以外,其他所有的系统电路全部集成在一起。,2.1.2 单片机的发展概况,1单片机的发展阶段(1)单片机的初级阶段 (70年代)(2)单片机的中级(成熟)阶段 (3)单片机的高级(发展)阶段 (82年以后),1.1.2 单片机的发展概况,2单片机技术的发展方向 (1)内部结构 (2)功耗和电源电压方面 (3)工艺的进步及抗干扰能力的提高 (4)存储能力和Internet连接,2.1.3 单片机的特点和应用,1.单片机的特点(1)体积小、使用灵活、成本低、易于产业化。 (2)可靠性好,适应温度范围宽。 (3)易扩展,很容易构成各种规模的应用系统、控制功能强。 (4)系统内无监控或系统管理程序。,2单片机的应用,(1)测控系统(2)智能仪器仪表 (3)通讯产品 (4)民用产品 (5)军用产品 (6)计算机外部设备,2.1.4 单片机的系列产品介绍,18051类单片机 2Motorola单片机 3Microchip单片机 4华邦单片机 5Epson单片机 6Epson单片机 7NS单片机 8其它单片机9. AT89系列,2.2 单片机的内部结构MCS-51单片机的主要特点,(1)扩大了内部程序存储器(ROM)和内部数据存储器(RAM)的容量。(2)具有布尔代数运算能力。(3)具有32条双向可被独立寻址的I/O口。(4)具有56个中断源,可分为2个中断优先级。(5)具有丰富的指令系统。(6)具有全双工传输信号UART。(7)片内具有时钟振荡电路。(8)烧写工艺上采用可一次性烧写的内含ROM或可重复烧写的EPROM。,2.2.1 内部结构微计算机组成,单片机的内部结构,总线,1CPU,CPU也叫中央处理器,是单片机的核心部件,主要完成单片机的运算和控制功能。(1)运算器:包括算术逻辑单元ALU、布尔处理器、累加器ACC、寄存器B、暂存器TMP1和TMP2、程序状态字PSW寄存器及十进制调整电路等。(2)控制器:包括定时控制逻辑、指令寄存器、译码器以及信息传送控制部件等,以实现控制功能。,2内部存储器,单片机内的存储器包括程序存储器和数据存储器,它们是相互独立。(1)程序存储器(ROM):为只读存储器,用于存放程序指令,常数及数据表格。(2)数据存储器(RAM):为随机存储器,用于存放数据。数据存储器又可分为内部数据存储器和外部数据存储器。在单片机内部有256个RAM单元来存放可读写的数据,其中,后128单元被专用寄存器占用,作为寄存器供用户使用的只是前128单元。,3定时/计数器,MCS-51单片机内部有2个16位的定时器/计数器,用于实现内部定时或外部计数的功能;并以其定时或计数的结果(查询或中断方式)来实现控制功能。,4中断系统控制器,MCS-51单片机具有中断功能,以满足控制应用的需要。MCS-51共有5个中断源(52系列有6个中断源),即外部中断2个,定时/计数器中断2个,串行口中断1个。全部中断可分为高级和低级两个优先级别。5并行I/O口MCS-51单片机内部共有四个8位的并行I/O口(P0、P1、P2、P3),以实现数据的并行输入和输出。,6全双工串行口,MCS-51单片机还有一个全双工的串行口,以实现单片机与外部之间的串行数据传送。7OSCOSC是单片机的时钟电路。时钟电路用于单片机产生时钟脉冲序列,协调和控制单片机的工作。,MCS-51系列单片机分类,2.2.2 引脚定义及功能,8051,1234567891011121314151617181920,4039383736353433323130292827262524232221,P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST/VPDRXD/ P3.0TXD/ P3.1INT0/ P3.2INT1/ P3.3 T0/ P3.4 T1/ P3.5 WR/ P3.6 RD/ P3.7 XTAL2 XTAL1 Vss,VccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0,2单片机引脚说明,(1)P0口(32脚39脚)有三种使用方法:作为与外部传送数据的8位数据总线(D0D7)。作为扩展外部存储器时的低8位地址总线(A0A7) 作为普通I/O口使用。 (2)P1口(1脚8脚):作为普通I/O口使用,无须外接上拉电阻(3)P2口(21脚28脚)有两种使用方法:作为普通I/O口使用,无须外接上拉电阻。作为扩展外部存储器时的高8位地址总线(A8A15)。(4)P3口(10脚17脚)有两种使用方法。作为普通I/O口使用,无须外接上拉电阻;,P3口的特殊功能,单片机引脚,(5)VDD(40脚):+5V电源。(6)VSS(20脚):GND(7)XTAL1(19脚) XTAL2(18脚):接外部石英晶振的引脚,也可引入外部时钟。(8)RESET(9脚):复位信号引脚。必须在此引脚上出现两个机器周期的高电平,才能保证单片机可靠的复位。复位后,单片机内部各寄存器的状态见表2-2所示。,复位后单片机寄存器的内容,单片机引脚,(9)ALE/PROG(30脚):地址锁存允许信号。有以下三个作用:当外接存储器(RAM/ROM)时,ALE(允许地址锁存)的输出用于锁存地址的低8位。一般ALE接锁存器的EN端。当没有外部存储器时,ALE端可输出脉冲信号,此频率为石英振荡频率的1/6。因此,它可用作对外部芯片提供输出的时钟,或用于定时的目的。在烧写EPROM时,作为烧写时钟输入端 。,单片机引脚,(10)PSEN(29脚):外部程序存储器的读选通信号。(11) /VPP(脚31):访问程序存储器控制信号。当信号接低电平时,对ROM的读操作(执行程序)限定在外部程序储器。当接高电平时,对ROM的读操作(执行程序)从内部开始。在使用内部带程序存储器的单片机时,应接高电平。,2.3 单片机的存储器结构,(1)内部程序存储器(ROM):用来存放程序和表格常数。8051为4KB、8052为8KB。(2)内部数据存储器(RAM):用来存放运算过程中的数据。包括寄存器在内,8051/31为128字节、8052/32为256字节。(3)外部程序存储器(ROM):用来存放程序。最大可扩展64KB空间(包括内部ROM)。(4)外部数据存储器(RAM):在数据采集系统中可存放大量的数据。最大可扩展64KB空间(不包括内部RAM)。,1内部数据存储器,2.3.1 内部数据存储器及专用寄存器,内部数据存储器在结构上可分为两个不同的存储空间,即低128单元的数据存储器空间(00H7FH)和高128单元的具有特殊功能的专用寄存器存贮器空间(80H0FFH)。,2专用寄存器SFR,专用寄存器(Special Function Registers)也叫特殊功能寄存器,就是将内部RAM的高128单元作为特殊功能寄存器使用。其单元地址为80HFFH。,(1)B寄存器B寄存器是一个8位寄存器,即可作为一般寄存器使用,也可用于乘除运算。做乘法运算时,B是乘数。乘法操作后,乘积的高8位存于B中。做除法运算时,B存放除数。除法操作后,余数存放在B中。(2)累加器ACC(Accumulator)累加器A是在编程操作中最常用的专用寄存器,功能较多,可按位寻址。,(3)程序状态字PSW(Program Status Word),CY:进位标志。 加减运算时,保存最高位进位、借位状态。 AC:半进位标志。 例:78H+97H 0111 1000 +1001 0111 1 0000 1111,有进位CY=1,没有半进位AC=0,(4)定时器2寄存器(52系列单片机独有)T2CON:定时器2控制寄存器。T2MOD:定时器2方式寄存器。RCAP2L、RCAP2H:捕获寄存器,一旦8052单片机的T2EX脚出现负跳变,则TL2、TH2的内容立即被捕获到RCAP2L、RCAP2H中。 TL2、TH2:定时器2寄存器。(5)IP寄存器中断优先级寄存器 (6)IE寄存器中断允许寄存器,(7)SCON寄存器串行控制寄存器 (8)SBUF寄存器串行数据缓冲器SBUF用于利用串行口进行发送或接收的数据,在硬件上,实际上由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器。,(9)定时器0和定时器1寄存器TCON:定时器控制寄存器。TMOD:定时器方式寄存器。TL0、TH0:定时器0寄存器。TL1、TH1:定时器1寄存器。(10)P0P3端口寄存器 (11)栈指针SP寄存器栈指针SP寄存器指示出堆栈顶部在内部数据存储器中的位置。系统复位后,SP初始化为07H,如果不重新设置,就使得堆栈由08H单元开始。但08H1FH单元属于工作寄存器区,所以在程序设计中,最好把SP的值设置的大一些,一般将堆栈开辟在30H7FH区域中。SP的值越小,堆栈容量就越大,但最大为128字节。,(12)数据指针DPTR寄存器数据指针DPTR由两个8位寄存器DPH和DPL组合而成一个16位专用寄存器,其中DPH为DPTR的高8位,DPL为DPTR的低8位。,3.程序计数器PC,程序计数器PC中存储的是将要执行的指令地址,是一个16位的计数器。寻址范围达64KB。,2.3.2 外部数据存储器,程序计数器PC中存储的是将要执行的指令地址,是一个16位的计数器。寻址范围达64KB。,2.3.3 程序存储器,2.4 单片机并行IO口,8051单片机有4个I/O端口,每个端口都是8位准双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0P3)、一个输出驱动器和输入缓冲器。通常把4个端口笼统地表示为P0P3。,2.4.1 P0口的结构及特点,P0口的某位P0.n(n=07)结构图,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路及控制电路组成。从图中可以看出,P0口既可以作为I/O用,也可以作为地址/数据线用。,1、P0口作为普通I/O口,输出时CPU发出控制电平“0”封锁“与”门,将输出上拉场效应管T1截止,同时使多路开关MUX把锁存器与输出,驱动场效应管T2栅极接通。故内部总线与P0口同相。由于输出驱动级是漏极开路电路,若驱动NMOS或其它拉流负载时,需要外接上拉电阻。P0的输出级可驱动8个LSTTL负载。, 输入时-分读引脚或读锁存器读引脚:由传送指令(MOV)实现; 下面一个缓冲器用于读端口引脚数据,当执行一条由端口输入的指令时,读脉冲把该三态缓冲器打开,这样端口引脚上的数据经过缓冲器读入到内部总线。, 输入时-分读引脚或读锁存器读锁存器:有些指令 如:ANL P0,A称为“读-改-写” 指令,需要读锁存器。 上面一个缓冲器用于读端口锁存器数据。,*原因:如果此时该端口的负载恰是一个晶体管基极,且原端口输出值为1,那么导通了的PN结会把端口引脚高电平拉低;若此时直接读端口引脚信号,将会把原输出的“1”电平误读为“0”电平。现采用读输出锁存器代替读引脚,图中,上面的三态缓冲器就为读锁存器Q端信号而设,读输出锁存器可避免上述可能发生的错误。*,准双向口: 从图中可以看出,在读入端口数据时,由于输出驱动FET并接在引脚上,如果T2导通,就会将输入的高电平拉成低电平,产生误读。所以在端口进行输入操作前,应先向端口锁存器写“1”,使T2截止,引脚处于悬浮状态,变为高阻抗输入。这就是所谓的准双向口。,2、P0作为地址/数据总线,在系统扩展时,P0端口作为地址/数据总线使用时,分为: P0引脚输出地址/数据信息。,CPU发出控制电平“1”,打开“与”门,又使多路开关MUX把CPU的地址/数据总线与T2栅极反相接通,输出地址或数据。由图上可以看出,上下两个FET处于反相,构成了推拉式的输出电路,其负载能力大大增强。,2、P0作为地址/数据总线,P0引脚输出地址/输入数据 输入信号是从引脚通过输入缓冲器进入内部总线。 此时,CPU自动使MUX向下,并向P0口写“1”,“读引脚”控制信号有效,下面的缓冲器打开,外部数据读入内部总线。,2、P0作为地址/数据总线,-真正的双向口,2.4.2. P1口的结构及特点,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成-准双向口。,2.4.3. P2口的结构及特点,1.P2口作为普通I/O口,CPU发出控制电平“0” ,使多路开关MUX倒向锁存器输出Q端,构成一个准双向口。其功能与P1相同。,2.P2口作为地址总线 在系统扩展片外程序存储器扩展数据存储器且容量超过256B (用MOVX DPTR指令)时,CPU发出控制电平“1”,使多路开关MUX倒内部地址线。此时,P2输出高8位地址。,2.4.4. P3口的结构及特点,D QCLK Q,P3.n,读锁存器,内部总线,写锁存器,读引脚,VCC,R,T,P3口引脚,第二输入功能,第二输出功能,一、作为通用I/O口与P1口类似-准双向口(W=1),W,P3的内部结构,D QCLK Q,P3.n,读锁存器,内部总线,写锁存器,读引脚,VCC,R,T,P3口引脚,第二输入功能,第二输出功能,二、P3第二功能(Q=1)此时引脚部分输入(Q=1、W=1) ,部分输出(Q=1、W输出) 。,W,2.5 单片机的时钟与时序,2.5.1 时钟电路单片机的各项工作都是在时钟信号的控制下协调工作的,单片机的时钟电路可为单片机提供一个时钟信号,根据连接方式的不同,时钟电路可分为内部时钟方式和外部时钟方式。,时钟的连接,XTAL1和XTAL2之间跨接晶体振荡器和两个微调电容,和芯片内部的振荡器电路构成一个稳定的自激振荡器,,2.5.2 单片机的CPU时序,MCS-51包括4个定时单位,它们分别是:振荡周期(节拍)、时钟周期(状态周期)、机器周期和指令周期。单片机两种常用晶振的4个周期信号的对比见表2-7所示。,1.振荡周期振荡周期也叫节拍,用P表示,振荡周期是指为单片机提供定时信号的振荡源的周期。是时序中最小的时间单位。例如:若某单片机时钟频率为2MHz,则它的振荡周期应为0.5s。2.时钟周期时钟周期又叫做状态周期,用S表示。是振荡周期的二倍,其前半周期对应的节拍叫P1拍,后半周期对应的节拍叫P2。P1节拍通常完成算术、逻辑运算,P2节拍通常完成传送指令。,3.机器周期机器周期是实现特定功能所需的时间周期,通常有若干时钟周期构成。MCS-51的一个机器周期是固定不变的,宽度均由6个状态周期(12个振荡周期)组成,并依次表示为S1S6,分别记作S1P1、S1P2S6P1、S6P2。4.指令周期指令周期是最大的时序定时单位,指令周期是指执行一条指令需要的时间。通常MCS-51的指令周期可以包含有14个机器周期。MCS-51的几种典型的指令时序如图2-15所示,每个机器周期内地址锁存信号(ALE)产生两次有效信号,分别出现在S1P2、S2P1期间与S4P2、S5P1期间。,指令时序,2.6.2 节电工作方式 MCS-51单片机中有HMOS和CHMOS两种工艺芯片,它们的节电运行方式不同,HMOS单片机的节电方式只有掉电方式,CHMOS单片机的节电工作方式有掉电方式和空闲方式两种。,2.6 单片机的工作方式,2.6.1 程序执行方式 1连续执行方式 2单步运行方式 3.复位方式,1HMOS的掉电工作方式,掉电工作方式是指由于电源的故障使电源电压丢失或工作电压低于正常值,使单片机系统不能正常运行,若不采取保护措施,将丢失RAM和寄存器中的全部数据,后果严重。为此MCS-51系列单片机设置有掉电保护措施,进行掉电保护处理。具体做法是:检测电路一旦发现掉电,通过外部中断源向CPU发出中断请求,CPU响应此中断请求,调用中断服务子程序,由中断服务子程序将重要数据送内部RAM转存,立即先把程序运行过程中有用信息转存到RAM,然后启用备用电源维持RAM供电。,2CHMOS的节电工作方式,单片机还设计有待机和掉电两种节电工作方式,特别适宜于低功耗场合。,PCON控制寄存器的格式如下:,PCON各位的说明如下:,SMOD:串行口波特率加倍控制位。SMOD=1,波特率加倍。GF1、GF0:通用标志位,由用户置位或复位。PD:掉电方式位,若PD=1,进入掉电工作方式。IDL:待机方式位,若IDL=1,进入待机工作方式。若PD和IDL同时为1,则进入掉电工作方式。,(1)待机工作方式 是将PCON寄存器的IDL位置“1”,即进入待机工作方式。退出待机方式的方法有两种,一种是激活中断,另一种是硬件复位。,(2)掉电保护方式,是将PCON中的PD位置“1”使单片机进入掉电保护方式。80C51单片机一旦检测到电源掉电,即将有用信息转存到片内数据存储器RAM中的低128字节内,并使PCON.1的PD位置“1”,单片机进入掉电方式。掉电方式下送入时钟电路的振荡信号被封锁,不产生时钟信号,片内的一切工作都停止,只有片内RAM的数据保留。只要电源恢复正常值,单片机就可以退出掉电方式,进入正常工作方式,但硬件复位须维持10ms时间。,2.6.3 复位,1复位方式(1)复位条件 为了实现单片机的复位,在时钟电路工作后,必须在单片机的RESET端(9)至少维持2个机器周期以上的高电平,单片机进入复位状态(即程序从0000H地址开始执行)。 时钟频率为12MHZ,机器周期为1s,则在单片机的RESET端只需持续2s以上时间的高电就能进入复位状态。,(2)复位后的状态单片机复位后,片内RAM中低128B的内容不会改变,但特殊功能寄存器(SFR)的值被初始化。复位期间单片机的ALE和端输出高电平。,2复位电路,第3章 单片机的指令系统,3.1 单片机指令系统概述,3.1 单片机指令系统概述 3.1.1 指令格式MCS-51单片机指令格式采用了单地址指令格式。一条汇编语句是由标号、操作码、目的操作数、源操作数和注释等5部分组成的,其中方括号中的部分是可以选择的。,指令的具体格式为:标号:操作码 目的操作数,源操作数;注释例如: HY1:MOV R3 , #08H ;执行数据传送操作,3.1.2 指令符号,A:累加器,用于运算及存放数据。B:专用寄存器,用于MUL和DIV指令中,存放第二操作数、乘积高位字节。CY:进位标志位,或布尔处理器中的累加器。bit:内部RAM或专用寄存器中的直接寻址位。/bit:位地址单元内容取反。DPTR:16位数据指针,也可作为16位地址寄存器。,Rn:工作寄存器中的寄存器Rn、R0R7之一,,Ri:工作寄存器中的寄存器R0或R1,#data:8位立即数,#data16:16位立即数,direct:片内RAM或SFR的地址(8位),:间接寻址寄存器,addr11:11位目的地址,addr16:16位目的地址,rel: 补码形式的8位地址偏移量。 偏移范围为-128127/:位操作指令中,该位求反后参与操作,不影响该位X:片内RAM的直接地址或寄存器(X):相应地址单元中的内容:箭头左边的内容送入箭头右边的单元内,功能,数据传送类:29条算术运算类:24条逻辑运算类:24条控制转移类:17条位操作类: 17条,3.1.3 指令分类,MCS-51单片机共有111条指令,可以实现51种基本操作。 1.按指令功能分类,2按指令字节分类,MCS-51单片机用机器语言表示的指令格式按字节划分,有一字节指令、两字节指令和三字节指令等三种。(1)一字节指令中的8位二进制代码既包含操作码的信息,也包含操作数的信息。例如指令: INC A MOVA,Rn XCHA,Rn ADDA,Ri DECRn,(2)二字节指令中的第一个字节表示操作码,第二个字节表示操作数,操作数既可能是立即数,也可能是地址。其指令格式为:,例如: ANL A,#90HADDA, #06HDEC 30HMOVR2,#0F0H,(3)三字节指令中,第一字节表示操作码,另两个字节是操作数,其指令格式为: 例如:ANL 30H,#66HMOVDPTR,#1000HLJMP0300HCJNEA,20H,HL5,3按指令执行时间分类,MCS-51系列单片机常可以分为单周期指令57条,双周期指令52条和四周期指令2条等。(1)单周期指令的执行指令时间为一个机器周期。例如: XCHA,R1ADDA,R1CLRAMOVR3,#0F0H (2)双周期指令的执行指令时间为2个机器周期。例如:MOVRn,30HDJNZR3,LOOPJMPa+dptr,(3)四周期指令的执行指令时间为4个机器周期。例如:DIV ABMULAB,3.2.1 立即寻址Immediate Addressing,操作数就包含在指令代码中,在操作码之后,称为立即数,用“”表示。 如: MOV P1, #80H MOV R7, #0F5H MOV DPTR,#1245H,3.2 寻址方式,3.2.2 直接寻址 Direct Addressing直接使用数所在单元的地址找到了操作数,所以称这种方法为直接寻址。操作数在SFR、内部RAM、位地址空间。如: MOV A,00H MOV C,60H MOV A,0F0H (B寄存器),3.2.3 寄存器寻址 Register Addressing,对选定的工作寄存器R0R7、累加器A、通用寄存器B、地址寄存器DPTR中的数进行操作。 例:MOV A,R0;将R0工作寄存器中的数据送到累加器A中去。,问题:我们知道,工作寄存器就是内存单元的一部分,如果我们选择工作寄存器组0,则R0就是RAM的00H单元,那么这样一来,MOV A,00H 和 MOV A,R0不就没什么区别了吗?,执行第一条指令需要2个机器周期,而第二条则只需要1个机器周期,第一条指令变成最终的目标码要两个字节(E5H 00H),而第二条则只要一个字节(E8H)。,3.2.4 间接寻址 Register Indirect Addressing,寄存器间接寻址把地址放在另外一个寄存器中,根据这个寄存器中的数值决定该到哪个单元中取数据。 R0,R1-8位地址,片内低128字节或片外DPTR-16位,片外64KB如:MOV A,R0MOVX A,R0MOVX A,DPTR,操作数在片内RAM中,操作数在片外RAM中,操作数在片外RAM中,3.2.5 相对寻址,将PC中的当前内容与指令第二字节给出的数相加,结果作为跳转指令的转移地址(转移目的地址)。 PC中的当前内容称为基地址(本指令后的字节地址)指令第二字节给出的数据称为偏移量,1字节带符号数.常用于跳转指令。 如: JC 23H 若C=0,不跳转; C=1,跳转.,Relative Addressing,如:JC 23,1025H,23H,1002H,指令代码,当前PC,以DPTR或PC为基址寄存器,累加器A为变址寄存器。把两者内容相加,结果作为操作数的地址。 常用于查表操作。 MOVC A, A+DPTR ;(A+DPTR) A MOVC A, A+PC; PC+1 PC,(A+PC)A JMP A+DPTR;(PC)(A+DPTR),3.2.6 变址寻址(基址+变址),Base-Register-plus-Index-Register-Indirect Addressing,操作数在程序存储器中,如:MOVC A,A+DPTR设DPTR=2000H,A=E0H,20E0H,47,指令代码,如:MOVC A,A+PC设A = #E0H,2121H,45,当前PC,指令代码,对片内RAM的位寻址区和某些可位寻址的特殊功能寄存器进行位操作时的寻址方式。 如: SETB 3DH; 将27H.5位置1 CLR C ;Cy位清0,3.2.7 位寻址 Bit Addressing,操作数在片内RAM位地址区或SFR某些位中,寻址方式涉及的存储器空间,3.3指令系统,3.3.

温馨提示

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

评论

0/150

提交评论