版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章微型计算机基本知识
1.1数制与编码
1.2计算机中有符号数的表示方法
1.3微型计算机系统组成及工作过程
1.4单片机概述
1.1数制与编码1.1.1数制
1)
数制的基与权
基:各种数制中可用数字符号的个数。 例: 十进制(Decimal):基数为10;0~9
二进制(Binary):基数为2;0,1
十六进制(Hexdecimal):基数为16;0~9,A,B,C,D,E,F
八进制(Octal):0~7
字母不能做数字的首位,此时给其前面加0,以示与符号的区别。
位置记数法:同一个数字在不同的数位代表的数值是不同的。这种记数方法称为~。权:每一个数位赋以不同的值。1123.4510310210110010-110-2
权十进制值:1×103+1×102+2×101+3×100+4×10-1+5×10-21011.01232221202-12-2
权二进制值:1×23+0×22+1×21+1×20+0×2-1+1×2-2=11.251AC.A816216116016-116-2
权十六进制值:1×162+10×161+12×160+10×16-1+8×16-22)二进制数的特点(1)数值简单,容易表示(2)节省设备(3)运算规则简单
3)数制之间的转换
①任意进制转换为十进制
任意一个数都可用它的按权展开式表示,即:r:为该记数制中的任一个数字,R为基数。1011.01B=1×23+0×22+1×21+1×20+0×2-1+1×2-2=11.251AC.A8H=1×162+10×161+12×160+10×16-1+8×16-2②
十进制数转换成非十进制数十进制转换成二进制:整数用“除2取余”,小数用“乘2取整”的方法,例如,欲将十进制数175转换为二进制数,其过程如下:
175÷2=87余数为187÷2=43143÷2=21121÷2=10110÷2=505÷2=212÷2=101÷2=01
得到结果:(175)10=(10101111)2。低高
总结:非十进制数转换为非十进制数的方法:
整数:除基取余,先低后高小数:乘基取整,先高后低 将十进制小数0.71875转换成二进制小数,其过程如下:
0.71875×2=1.4375整数部分10.4375×2=0.87500.875×2=1.7510.75×2=1.510.5×2=1.01
于是,得到结果为:(0.71875)10=(0.10111)2。
高低
③十六进制转换成二进制:二进制数0101110001111010.00111011∴5C7A.3BH=101110001111010.00111011B
5C7A.3B如:十六进制数5C7A.3B转换为二进制的方法是:十六进制数2E9.D4
二进制数1011101001.110101转换为十六进制数的方法是:
二进制数001011101001.110101001.1.2计算机中的编码
1)BCD码(BinaryCodedDecimal)二进制编码的十进制数
一个十进制数用四位二进制编码表示,即二进制编码的十进制数,简称BCD码。25BCD=0010,0101137BCD=0001,0011,0111BCD码与其它数制的对应关系(1)如果任何两个对应位BCD数相加的结果向高一位无进位时,若得到的结果小于或等于9,则该位不需修正;若得到的结果大小9且小于16位,则该位进行加6修正。(2)如果任何两个对应位BCD数相加的结果向高一位有进位时(即结果大于或等于16),该位进行加6修正。(3)低位修正结果使高位大于9时,高位进行加6修正。十进制调整的内容(BCD调整):2)
字符代码ASCII码(AmericanStandardCodeforInformationinterchange)ASCII码采用7位二进制代码来对字符进行编码。它包括32个通用控制符号,10个阿拉伯数字,52个英文大、小字母,34个专用符号,共128个。0~30H9~39HA~41Ha~61H1.2计算机中有符号数的表示方法1.2.1数的符号表示法D7D6D5D4D3D2D1D0符号位
数值位
假设:8位计算机,D7
为符号位,规定最高位为符号位。
0:表示正数的符号“+”;
1:表示负数的符号“-”。机器数:连正负号也数字化的数称为~。真值:把它们的实际数值称为机器数的~。01001010+7411001010-74机器数真值1)原码:同机器数表示方法(0为正,1为负,其余为数值位)例如:X1=+1010101 则[X1]原=01010101X2=-1011101 则[X2]原=110111010有两种表示形式: [+0]原=00000000
或 [-0]原=100000008位二进制原码所能表示的数值范围为-127—+127。1.2.2原码、反码和补码2)反码
对于正数反码与原码相同;对于负数,符号位不变,其余数值位按位取反。例如:X=-1101001 [X]原=11101001 [X]反=10010110“0”的反码:[+0]反=00000000 [-0]反=111111118位反码表示的数值范围为+127~-127。
补码的概念如钟表,假设标准时间为6点整,而某钟表却指在9点,
校正方法:(1)倒拨3小时:9-3=6
(2)顺拨9小时:9+9=6。原因:钟表采用12小时进位,超过12就从头算起,
即:9+9=12+6,该12称之为模(mod)。3)
补码
模(mod):为一个系统的量程或此系统所能表示的最大数,它会自然丢掉。如:9-3=9+9=12+6→6(mod12自然丢掉)
优点:减法运算变为加法运算。称:+9是-3在模为12时的补数。例如:11-7=11+5→4(mod12)
+5是-7在模为12时的补数。
一般情况下,任一整数X,在模为K时的补数可用下式表示:
[X]补数=X+K(modK)例如:[-3]补数=-3+12(mod12)=9
[X]补=28+X假定计算机的位数为8,则计算机中数码的总数为28,因此,计算机的补码为以28
为模。即: 补码的定义:①正数的补码与其原码相同②对于负数,等于反码加1,即: [X]补=[X]反+1。③零的补码为零,[+0]补=[-0]补=00000000计算机中的数都是以补码的形式出现的。例如:补码的计算1.2.3原码、反码和补码之间的转换3)已知〔X〕补,求〔-X〕补
所谓求补,就是将〔X〕补连同符号位一起按位求反,然后再加1,结果即为〔-X〕补。例如:〔X〕补=01010111B〔+87〕补
〔-X〕补=10101000B+1
=10101001B加法规则:[X+Y]补=[X]补+[Y]补(mod2n)例:用补码进行下列运算:(+33)+(+15);(-33)+(+15)。1.2.4补码的加减法运算减法规则:[X-Y]补=[X]补+[-Y]补 =[X]补-[Y]补(mod2n)例:X=-011,1000,Y=-001,0001,运算:[X]补-[Y]补
[X]补=1100,1000B
[Y]补=1110,1111B[-Y]补=0001,0001B
则1100,1000B[-56]补
+0001,0001B[-9]补
1101,1001B[-65]补1.3微型计算机系统组成及工作工程微型计算机系统组成:硬件和软件。硬件:硬设备,包括主机、外部设备(外存、显示器、键盘、打印机等)和电源。软件:是一批数据和程序。
系统软件:DOS、Windows、Linux等;
用户软件:C++、VisualB等。1.3.1微型计算机的组成微型计算机基本组成图(1)中央处理单元(2)内存(3)系统总线——数据总线(DB)、地址总线(AB)
和控制总线(CB)
(4)接口1.3.2中央处理单元的组成CPU主要由运算器、控制器和寄存器。图1-3CPU的结构1.3.3微型计算机的工作过程如何实现5+6=?voidmain(){a=5;a=a+6;;}ORG80HMOVA,#5ADDA,#6NOPEND程序是由指令构成的,执行程序就是执行指令,且逐条执行。执行一条指令可包括两个阶段——取指令阶段和执行指令阶段。存储器的地址存储器的内容……04H24H03H35H02H74H01H9AH00H80H(1)第一条指令的执行过程图1-4取第一条指令(MOVA,#05)的操作示意图图1-5执行第一条指令(MOVA,#05)的操作示意图(2)第二条指令的执行过程图1-6取第二条指令(ADDA,#06)的操作示意图取指令阶段:图1-7执行第二条指令(ADDA,#06)的操作示意图执行指令阶段:1.4单片机概述1.4.1单片机的特点1.4.2单片机的应用1.4.3单片机的发展历史及未来发展方向1.4.4MCS-51单片机系列1.4.5主流的单片机类型1.4.1单片机的特点
人们通常提到计算机的时候,更多想起的是俗称的电脑,也就是PC机、服务器等由主机、键盘、显示器等组成的具有完整的人机界面,可以高速处理海量数据的现代化智能电子设备。(1)输入输出单片机系统一般直接和自然界的物理量如温度、重量、速度等打交道,需要将这些物理量转换成计算机可以处理的数字量。
计算机大家族中还有一类面向设备使用的计算机统称为嵌入式计算机,而单片机是以单芯片形态进行嵌入式应用的计算机,它有唯一专门为嵌入式控制应用设计的体系结构和指令系统。虽然单片微机系统和常见的PC微机系统都属于计算机系统,但是二者还是有许多不同之处:(3)软件系统单片机系统不是在运行时在RAM中加载用户的程序,而是将程序代码固化、加密、形成可靠的不可改变的程序,程序不存在被修改的可能,因此单片机系统不存在病毒和木马等PC常见的问题。(2)硬件系统为了提高性价比,单片机系统一般不会直接选用通用的硬件平台,而是根据需要自行开发出针对性强的精简的硬件系统。(5)外观和人机接口单片机系统没有固定的外观,而是根据具体应用采用灵活多变的形式,人机接口部分也没有PC机那样的键盘、鼠标、显示屏和多媒体部件,而是采用更简洁的键盘、数码管和液晶屏
(4)程序开发及方法由于单片微机系统存储量限制,为了节省空间提高目标代码程序效率,一般通过汇编语言和C语言来做开发。作为单片机系统开发人员需要更多的关于信号处理、自动控制和通信技术方面的专业知识。1.4.2单片机的应用①在智能仪器仪表上的应用②在工业控制中的应用③在家用电器中的应用④在计算机网络和通信领域中的应用
⑤在医用设备领域中的应用⑥在各种大型电器中的模块化应用应用:单机应用、多机引用
数控机床医用呼吸机
1.4.3单片机的发展历史:自1971年美国Intel公司首先推出4位微处理器以来,它的发展到目前为止大致可分为4个阶段:第一阶段(1971~1974年):单片机雏形阶段。美国Intel公司在1971年11月推出了4位微处理器Intel4004,内含随机存储器RAM和只读存储器ROM。1972年4月,Intel公司又推出了功能较强的8位微处理器Intel8008。1974年,美国Fairchild公司推出F8单片机。实际上,F8只包含8位CPU、64BRAM和2个并行口,还需加—块3851(由1KBROM、定时/计数器和2个并行I/O口构成)才能构成一台完整的计算机。因此,严格说这些产品还不是单片机,但却拉开了研制单片机的序幕。
第二阶段(1975~1977年):单片机初级阶段。
Intel公司于1976年推出的MCS-48单片微型计算机以体积小、功能全、价格低等特点,赢得了广泛的应用,为单片机的发展奠定了基础,也成为单片机发展过程中的一个重要阶段。该阶段单片机虽然在芯片内部集成了CPU、存储器、I/O接口、定时/计数器、简单的中断系统以及时钟等部件,但其存储器容量很小、寻址范围小(不大于4KB),没有串行接口、且指令系统功能不强。
第三阶段(1978~1981年):高性能8位单片机发展阶段。
1978年,Motorola公司推出M6800系列单片机,Zilog公司则推出Z8系列单片机。1980年,Intel公司在MCS-48系列单片机的基础上推出了高性能的MCS-51系列单片机。该类单片机的特点是均有串行接口,其定时/计数器达到16位,片内存储器容量明显增大,寻址范围可达64KB、增加了中断源,具有中断优先级处理功能,而且指令系统更加完善,面向控制的特点进一步突出。目前,MCS-51已经成为公认的单片机经典机种。第四阶段(1982~现在):16、32位单片机的推出和8位单片机性能提高阶段。
1982年,Mostek公司和Intel公司先后推出了比8位单片机性能更高的16位单片机MK68200和MCS-96系列。在MCS-96系列单片机中,Intel公司将一些用于测控系统的模/数转换器(ADC)、程序运行监视器(WDT)、脉宽调制器(PWM)、高速I/O口纳入片中,体现了单片机的微控制器特征。1987年,Intel公司宣布研制出比8096高一档的CHMOS型16位单片机80C196。1988年,该公司推出8098单片机,它类似于8088微处理器,CPU内部数据总线为16位,外部数据总线为8位,便于推广使用。为了满足更高性能的要求,各计算机公司纷纷研制32位通用型单片机。同时,为了适合不同的使用场合,小而廉价型、外围系统集成的专用型单片机也成为研究的重点。尽管目前单片机的品种很多,但最典型的当属Intel公司的MCS-51单片机系列。虽然它仍然是8位的单片机,但其品种全、兼容性强、性价比高,而且软硬件应用设计资源丰富。直到现在,MCS-51仍然是单片机中的主流机型。①大容量高性能②低功耗CMOS化
③外围电路内装化
④I/O端口功能增强化单片机的发展方向:
MCS-51单片机系列:
凡Intel公司生产的以8051为核心单元的其它派生单片机都可以称为MCS-51系列,有时简称为51系列,它仍是目前国内外应用最为广泛的机种。
20世纪80年代中期以后,Intel公司以专利转让的形式把8051内核技术转让给许多半导体芯片生产厂家,如Philips、Atmel、Analogdevices等。这些厂家生产的芯片是MCS-51系列的兼容产品。
MCS-51系列单片机共有二十几种芯片,主要包括51子系列和52子系列,并以芯片型号的最末位数字作为标记,其中51子系列是基本型,52子系列是增强型。256B512B芯片标号:STC89C52RC40I-PDIP1645HNF859.C90C含义芯片标号:STC89C52RC40I-PDIP401645HNF859.C90C含义STC——STC公司(深圳宏晶)8——表示该芯片为8051内核芯片。9——表示内部含FlashE2PROM存储器。80C51中0表示内部含掩模ROM,87C51中7表示内部含EPROM。C——表示该器件为CMOS产品。89S52中的S表示该芯片含有可串行下载功能的Flash存储器,即具有ISP可在线编程功能。5——表示固定不变。2——表示该芯片内部程序存储器空间的大小。1为4KB,2为8KB,3为12KB。RC——STC单片机内部RAM为512字节。还有如RD+表示内部RAM为1280字节。40——表示芯片外部晶振最高可接入40MHz。
AT单片机数值一般为24。C——产品级别,表示芯片使用温度范围。C:商业级,温度范围为0℃~70℃。I:工业用产品,温度范围为-40℃~85℃;A:汽车用产品,温度范围为-40℃~125℃;M:军用产品,温度范围为-55℃~150℃。PDIP——产品封装型号。PDIP表示双列直插式封装
(plasticdual-in-linepackage)1645——表示本批芯片生产日期为2016年第45周。HNF859.C90C——不详,有资料称表示芯片制造工艺或处理工艺。芯片标号:STC89C52RC40I-PDIP401645HNF859.C90C含义主流的单片机类型
通常我们根据运算位或数据处理能力的不同将单片机分为8位、16位、32位单片机等;根据使用场合将其为高端和低端单片机;根据应用领域分为家电类、工控类、通信类和军工类单片机;按通用性又分为通用性和专用型单片机。根据Isuppli公司统计研究,从1991年到2006年间MCU市场主要还是被Freescale(飞思卡尔)、Microchip(微芯)、Renesas(瑞萨)、ATMEL(爱特梅尔)、NEC(日本电气)、Philips(飞利浦)、Toshiba(东芝)等几大芯片制造公司占据。
近十几年MCU市场占有率排名情况而国内市场主流单片机类型有如下几种:(1)ATMEL单片机(2)STC单片机(3)Microchip单片机(4)AVR单片机(5)Motorola单片机(6)TI公司的MSP430单片机(7)凌阳16位单片机(8)Scenix单片机(9)华邦单片机(10)Philips单片机及其他公司单片机小结:
本章介绍了常用的数制、码制以及计算机中有符号数字的表示方法。常用的进制有二、八、十和十六进制等。有符号数的表示方法有原码、反码和补码。计算机中常用的编码为BCD码和ASCII码。
介绍了单片机的定义、发展简史、应用现状和MCS-51单片机的系列。
第2章
MCS-51单片机结构和工作原理§2.1MCS-51单片机的内部组成及信号引脚§2.251子系列的内部存储器§2.3
并行输入/输出端口结构§2.4时钟电路与时序§2.5复位电路2.1MCS-51单片机的内部组成及信号引脚2.1.18051单片机的基本组成:
8051单片机结构框图
虚线1.CPU:8位2.内部RAM:256单元前128单元:用户使用后128单元:专用寄存器占用。3.
内部ROM:4KB掩膜ROM4.
定时器/计数器:2×16位。5.
并行I/O口:4×8位。P0,P1,P2,P3。6.串行口:一个,全双工。7.中断控制系统:5
外中断:2
定时/计数中断:2
串行中断:1个8.时钟电路:fosc振荡频率,典型11.0592MHz。2.1.2MCS-51信号引脚介绍DIP:40引脚双列直插封装(dual-in-linepackage)PLCC:
44引脚方形封装带引线的塑料芯片载体(plasticsleadedchipcarrier)QFP:44引脚四侧引脚扁平封装(quadflatpackage)
40引脚图(DIP)1.主电源引脚Vcc和VssVCC(40脚):接+5V电源正端;VSS(20脚):接+5V电源地端。2.外接晶体引脚XTAL1和XTAL2XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。当采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部振荡信号的输入端。XTAL2(18脚):接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端;对于CHMOS芯片,该引脚悬空不接。3.控制信号或与其它电源复用引脚控制信号或与其它电源复用引脚有:RST/VPD、、和等4种形式。(1)RST/VPD(9脚):RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。(2)(30脚):当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0口的低8位地址。(3)(29脚):片外程序存储器读选通信号输出端,低电平有效。(4)(31脚):为访问外部程序存储器控制信号,低电平有效。4.输入/输出(I/O)引脚P0口、P1口、P2口及P3口(1)P0口(39脚~32脚):P0.0~P0.7统称为P0口。(2)P1口(1脚~8脚):P1.0~P1.7统称为P1口,可作为准双向I/O接口使用。(3)P2口(21脚~28脚):P2.0~P2.7统称为P2口,一般可作为准双向I/O接口。(4)P3口(10脚~17脚):P3.0~P3.7统称为P3口。表2-1P3口线的第二功能
口线第二功能第二功能P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2外部中断0请求输入线P3.3外部中断1请求输入线P3.4T0定时器/计数器0计数输入线P3.5T1定时器/计数器1计数输入线P3.6外部RAM写选通P3.7外部RAM读选通2.251子系列单片机的存储器配置哈佛结构:程序存储器和数据存储器是相互独立的,即程序存放在ROM中,只能进行读操作;而数据存放在RAM中,可读可写。用于单片机中。计算机的存储器结构:普林斯顿结构:程序和数据共存于一个存储器中,地址空间统一编址。应用于PC机及大部分计算机中。
MCS-51单片机的存储空间分为:
程序存储器(64KBROM)
数据存储器(64KBRAM)。
8051有四个存储空间:
片内ROM,
片外ROM,片内RAM,片外RAM.
但从用户使用的角度,8051存储器地址空间分为三类:
(1)片内、片外统一编址的程序存贮器ROM:
64KB,地址:0000~0FFFFH;(2)片外数据存贮器RAM:
64KB,地址:0000~0FFFFH;(3)内部数据存贮器RAM:
256B,地址:0~0FFH。 图2-680C51存储器配置图MOVC指令MOV指令MOVX指令2.2.1程序存储器(ROM)用途:用于存放编好的程序和表格常数。
8051片内有4KBROM,片外16位地址线可扩展64KBROM,二者是统一编址的。当引脚,8051从0000H执行片内ROM中的程序。当指令地址超过0FFFH后,就自动转向片外ROM取指令。当引脚8051片内ROM不起作用,CPU只能从片外ROM/EPROM中取指令,地址可以从0000H开始编址。这种接法特别适合于没有内部ROM的8031单片机,此时必须使/EA=0,以便能够从外部扩展的EPROM中取指令。内部ROM中的一些特殊单元:
表2-2片内ROM的保留单元保留单元地址入口地址用途0000H~0002H0000H复位后初始化引导程序0003H~000AH0003H外部中断0中断服务程序000BH~0012H000BH定时/计数器0中断服务程序0013H~001AH0013H外部中断1中断服务程序001BH~0022H001BH定时/计数器1中断服务程序0023H~002AH0023H串行口中断服务程序002BH~0032H002BH定时/计数器2中断服务程序(52子系列才有)2.2.2数据存储器(RAM)
用途:用于存放运算的中间结果、数据暂存和缓冲、标志位等。
RAM分类:
片内RAM:256字节;地址从0000~00FFH;
片外RAM:64K字节;地址从0000~FFFFH。
1.片外RAM
由于片外RAM与片内RAM的低地址0000H~00FFH单元是重叠的。因此,MCS-51有两种指令使用
MOV--片内RAM MOVX--片外64KRAM。2.片内RAM1.2.1内部数据存储器低128单元三个区域真正的RAM·F0——用户标志位,需要时用软件方法置位或复位,用以控制程序的转向。
·RS0和RS1(PSW.4,PSW.5)——寄存器组选择位RS1RS0寄存器组片内RAM地址通用寄存器名称000组00H~07HR0~R7011组08H~0FHR0~R7102组10H~17HR0~R7113组18H~1FHR0~R7D7D6D5D4D3D2D1D0CYACF0RS1RS0OV…PPSW表2-3R0~R7寄存器与内部RAM的地址对应通用寄存器名称地址第0组第1组第2组第3组R000H08H10H18HR101H09H11H19HR202H0AH12H1AHR303H0BH13H1BHR404H0CH14H1CHR505H0DH15H1DHR606H0EH16H1EHR707H0FH17H1FH2)位寻址区:地址:20H~2FH单元,
共128位。位地址:00H~7FH。性质:既可作为一般RAM单元使用进行字节操作,也可以对单元中的每一位进行位操作,因此把该区称之为位寻址区。表2-4片内RAM中的位寻址区地址分配3)用户RAM区:单元地址为30H~7FH,主要的数据缓冲区。把堆栈开辟在此区。2.2.3内部数据存储器高128单元特殊功能寄存器区、专用寄存器区简称SFR。
单元地址:80H~FFH。SFR(1)累加器A或ACC(Accumulator)
8位寄存器,是最常用的专用寄存器
大部分单操作数指令的操作数就取自ACC,许多双操作数指令中的一个操作数也取自累加器。(2)B寄存器
8位寄存器,主要用于乘除运算。如MULABB寄存器也可作为一般数据寄存器使用。如MOVB,#20HMOVA,#30HADDA,#40H(3)程序状态字PSW(ProgramStatusWord)
8位寄存器,用于寄存程序运行的状态信息。其中:有些位状态是根据程序执行结果,由硬件自动设置的而有些位状态则使用软件方法设定.D7D6D5D4D3D2D1D0CYACF0RS1RS0OV…P·CY——进位标志位。有进位/借位,CY=1,否则,CY=0
·AC——辅助进位标志位
低4位向高4位的进位或借位。有AC=1,否则AC=0。
·P——奇偶标志位。表明累加器A中1个个数的奇偶性。
奇1偶0。D7D6D5D4D3D2D1D0CYACF0RS1RS0OV…P
·OV(PSW.2)——溢出标志位
8位带符号数字加减运算结果是否超出运算范围。
8位有符号数字表示的范围:-128~+127。
OV=0,运算正确,即无溢出产生。D7D6D5D4D3D2D1D0CYACF0RS1RS0OV…P在乘法运算中,OV=1,表示乘积超过255;在除法运算中,OV=1,表示除数为0,除法不能进行。
10101010B-86例:(+72)+(+98)。01001000B+72+01100010B+98无符号数:CY=0有符号数:OV=1例:(-83)+(-80)。
10101101B-83+10110000B-80[1]01011101B+93无符号数:CY=1有符号数:OV=1·F0——用户标志位,需要时用软件方法置位或复位,用以控制程序的转向。
·RS0和RS1(PSW.4,PSW.5)——寄存器组选择位RS1RS0寄存器组片内RAM地址通用寄存器名称000组00H~07HR0~R7011组08H~0FHR0~R7102组10H~17HR0~R7113组18H~1FHR0~R7D7D6D5D4D3D2D1D0CYACF0RS1RS0OV…P(4)数据指针(DPTR)
16位寄存器。
MCS-51中唯一的一个16位寄存器。
DPH:DPTR高位字节
DPL:DPTR低位字节
作用:通常在访问外部RAM时作地址指针使用,由于外部数据存储器的寻址范围为64KB。DPTR既可按16位寄存器使用,也可以按两个8位寄存器分开使用。如:MOVDPTR,#1234H
MOV DPH,#12HMOVDPL,#34H(5)程序计数器PC(ProgramCounter)
PC:16位的计数器。
其内容为将要执行指令的地址,寻址范围达64KB。
有自动加1功能,从而实现程序的顺序执行、但PC没有地址,是不可寻址的、因此无法对它进行读写。但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。可见单片机中的大部分数据操作都是通过累加器进行的.(6)堆栈指针SP
堆栈:只允许在其一端进行数据插入和数据删除操作的线性表。堆栈是内存中一个特殊的存储区域。举例:以P93例5-1说明堆栈的存在。图2-8堆栈和堆栈指针示意图传送数据方式:入栈:PUSH出栈:POP。堆栈操作的最大特点:“先进后出”。(FIFO:先进先出)
堆栈是为子程序调用和中断操作而设立的。堆栈的功能:保护断点和保护现场。
保护断点:PC。 保护现场:寄存器中的内容。(7)I/O端口P0~P3(80H,90H,A0H,B0H)
P0~P3为四个8位特殊功能寄存器,分别是四个并行I/O端口的锁存器。它们都有字节地址,每一个口锁存器还有位地址,所以当每一条I/O线独立地用作输入或输出时,数据可以锁存;作输入时,数据可以缓冲。 当I/O端口某一位用于输入信号时,对应的锁存器必须先置“1”。
MCS-51子系列中共有22个专用寄存器中。有21个是可字节寻址的。可字节寻址寄存器的名称、符号及单元地址见表2-5。
表2-5SFR特殊功能寄存器地址表表2-5SFR特殊功能寄存器地址表几点说明:①专用寄存器不连续地分散在内部RAM高128单元之中、空闲地址不能被用户使用。②
22个SFR中,程序计数器PC是唯一一个不可寻址的SFR.③使用SFR时,既可使用寄存器符号,也可使用寄存器单元地址。例如: MOV B,ACC MOV B,0E0HMOVB,A2.3并行输入/输出端口结构MCS-51单片机共有4个8位双向并行输入/输出(I/O)口,分别为:P0、P1、P2、P3。口:是一个集数据输入缓冲、数据输出缓冲、驱动及锁存等多项功能为一体的I/O电路,也称端口。四个I/O口在结构和特性上基本相同的,但又各具特点。下面介绍这些口的特性和功能。2.3.1P0~P1口的功能
(1)P0口为双向(输入/输出)三态口--AD线。
用作:地址/数据总线口。
低8位地址/8位数据总线分时复用。
(2)P1口:作为可编程的输入或输出线。(3)P2口:用作:输入或输出线用;
作为扩展系统的高8位地址总线,与P0口一起组成16位地址总线。说明:对8031单片机来说,P2口一般只作为地址总线使用,而不作为I/O线直接与外设相连。
(4)P3口:双功能口。
可作为输入或输出口线用;特殊的第二功能。2.3.2P0~P3口的结构与操作1.P0口I/O口应用时:“控制”=0;数据/地址时:“控制”=1。2.3.2P0~P3口的结构与操作1.P0口?P0口要外接上拉电阻。Vcc01用作输入口时,需先给P0.x口输出高电平。MOVP0,#0FFH2.P1口图2-10P1.X口线的逻辑电路图ORG100HMOVP1,#0FEHEND注意问题:1.当用作输入时,需先输出1;2.外接电路一般采用共阳极。2.P2口图2-11P2.X口线的逻辑电路图4.P3口图2-12P3口某一位口线的逻辑电路图2.4时钟电路与CPU时序 时钟电路:用于产生单片机工作所需要的时钟信号;时序:指令执行中各信号之间的相互关系。2.4.1时钟电路
(1)内部时钟方式 芯片内部的高增益反向放大器和在引脚XTAL1和XTAL2两端跨接晶体振荡器和微调电容,就构成了一个稳定的自激振荡器,其发出的脉冲直接输入单片机的内部时钟电路。
(2)外部时钟方式图2-13内部时钟电路与HMOS和CHMOS型单片机的外部时钟电路接法2.4.2CPU的时序MCS-51的时序定时单位共有4个,从小到大依次是:
拍节,状态、机器周期、指令周期。(1)拍节与状态拍节(P):振荡脉冲的周期,又称振荡周期。状态(S):时钟信号的周期,又称时钟周期。关系:振荡频率=2倍时钟频率时钟周期=2倍振荡周期,即1S=2P
(拍节1(P1),拍节2(P2))。(2)机器周期机器周期:指CPU访问存储器一次所需要的时间。例如取指令,读存储器、写存储器等。MCS-51的一个机器周期包括12个振荡周期(12P)=6S
即6个状态:S1~S6。而每个状态又分为两拍,称为P1和P2。因此,一个机器周期中的12个振荡周期表示为S1P1、S1P2、S2P1……、S6P2。(3)指令周期定义:执行一条指令所需要的时间称之为指令周期。最大的时序定时单位,无固定值。指令不同,指令周期不同。MCS-51的指令包含一、二、四个机器周期。例如:外接晶振频率fOSC为12MHz时,MCS—51单片机的4个时间周期值为:
振荡周期P=1/fosc=1/12μs;
状态周期S=2P=1/6μs;
机器周期=6S=12P=1μs;
指令周期=1、2、4μs。2.4.3典型指令的时序根据指令代码所占的字节不同:单字节、双字节、三字节。根据指令执行时间的不同:单机器周期、双机器周期四机器周期。执行指令的两个阶段:取指令和执行指令。ALE:地址锁存允许信号,每有效一次对应单片机进行的一次读指令操作,取指有效时间:S1P2和S2P1,S4P2和S5P1。
ALE取指有效时间:S1P2和S2P1,S4P2和S5P1,出现频率为振荡脉冲频率的1/6。
说明:以上时序图仅表现了取指令的有关时序,而没有表现执行指令的时序。而实际上,每条指令都有具体的数据操作,例如算术和逻辑操作在拍节1进行,片内寄存器对寄存器传送操作在拍节2进行。由于指令种类繁多,不逐一列出。2.5复位电路复位:单片机的初始化操作。复位的功能: (1)进入系统的正常初始化;(PC)=0000H,单片机从0000H单元执行程序;(2)使系统摆脱困境。2.5.1复位信号要求:
高电平;
应持续24个振荡周期(即两个机器周期以上)。SFR名称初始状态SFR名称初始状态ACC00HTMOD00HB00HTCON00HPSW00HTH000HSP07HTL000HDPL00HTH100HDPH00HTL100HP0~P30FFHSBUF不确定IPXXX00000BSCON00HIE0XX00000BPCON0XXX0000B表2-9单片机复位后特殊功能寄存器的初始状态2.5.2复位方式
图2-15(a)上电复位电路及(b)RST引脚电压变化规律图2-16按键复位电路2.5.2掉电保护方式数据转存数据转存是通过中断服务程序完成的,即通常所说的“掉电中断”。2)接通备用电源备用电源由单片机的RST/VPD引脚接入,要求系统中具有备用电源与电源电压的自动切换电路。2.5.3低功耗工作方式空闲模式(待机模式)(CPU不工作,其余都在工作)2)掉电保护模式(休眠模式)(除外部中断外,晶振、CPU、定时器、串口等都不工作)表2-10PCON电源控制寄存器控制字位序D7D6D5D4D3D2D1D0名称SMOD(SMOD0)(LVDF)(P0F)GF1GF0PDIDLPD:PowerDown(PD=1,则进入掉电保护模式)IDL=Idle(IDL=1,则进入待机模式)
对复位信号的要求是什么?复位后内容不为0的寄存器有哪些?复位后SP和P1的值是什么?应用并行口时应该注意的问题是什么?本章小结
8051单片机由8位微处理器、128B数据存储器、4KB掩膜程序存储器、4个8位并行I/O口、1个串行口、2个16位的定时/计数器以及特殊功能器等构成。
4个8位并行I/O口是P0、P1、P2和P3口。P1口是唯一的单功能口,仅能作通用的数据I/O口使用,P0、P2和P3口均有第二功能。
8051单片机的时钟电路有内部时钟和外部时钟二种方式。晶振周期(拍节)、时钟周期(状态)、机器周期和指令周期是单片机的基本时序单位。
复位操作使单片机进入初始化状态。复位操作有上电自动复位和按键手动复位两种方式。复位后,程序计数器PC为0,P0~P3为0FFH,SP为07H,SBUF不定,IP、IE和PCON的有效位为0,其余特殊功能寄存器的状态均为0。要求:了解MCS-51系列单片机的硬件结构、各部分的工作原理、各引脚的功能和指令时序等;掌握存储器的结构及各主要专用寄存器的功能。
1413.1概述
3.2寻址方式
3.3指令系统
第3章MCS-51单片机的指令系统
1423.1概述3.1.1计算机语言(1)机器语言:是用二进制代码表示的,能被计算机直接识别和执行的一种机器指令的集合。优点:灵活、能被计算机直接执行、速度快等。
缺点:直观性差,很容易出错,通用性很差。(2)汇编语言:是一种用助记符表示的仍然面向机器的计算机语言,又将其称为符号语言。
优点:用符号代替了机器指令代码,简化了编程过程,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。占用的内存空间少,运行速度快。
143
缺点:必须对编写的程序进行加工和翻译,才能变成能够被计算机识别和处理的二进制代码程序。仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性差。用汇编语言等非机器语言书写好的符号程序称汇编语言源程序。(3)高级语言:与自然语言相近并为计算机所接受和执行的计算机语言称为高级语言,它是面向用户的语言。优点:编程容易,不需要编程者对机器硬件有较好的了解。缺点:执行速度比机器语言和汇编语言慢。1443.1.2汇编语言程序语句格式汇编指令由操作码或伪操作码、目的操作数和源操作数构成,标准书写格式如下:[标号:]操作码/伪操作码[操作数][;注释]标号:又称指令地址符号。它是用户设定的符号,代表着该条指令所在的地址。标号必须以字母开头,其后跟1~8个字母或数字,并以“:”结尾。标号不能为指令系统中的指令助记符、CPU的寄存器名以及伪指令等,且同一程序内标号必须互不相同。
MOVA,#20H;A←20H145[标号:]操作码/伪操作码[操作数][;注释]
操作码/伪操作码:是用英文缩写的指令助记符。
操作码:规定了指令的操作功能,它所对应的汇编语句称为指令性语句。 如:MOV50H,#10H
机器码:75H,50H,10H。
伪操作码:说明汇编程序如何完成汇编工作,它所对应的语句称为指示性语句,在汇编后没有目标代码。如:ORG,END,EQU等。
146[标号:]操作码/伪操作码[操作数][;注释]操作数:指参加操作的数据或数据所在的地址。在MCS-51单片机中,操作数可以是1、2、3个,也可以没有。例如,MOV A, #10H;两个操作数。 目的操作数 源操作数
DEC A CJNE A, #10H, DELAY;三个操作数规定:操作码/伪操作码和操作数之间必须用空格分开,操作数与操作数之间必须用逗号分开。注释:增加程序的可读性,以“;”号开头。
1473.1.3操作数的类型MOVA,#30MOVB,AMOVR0,#40H1)立即数2)寄存器操作数3)存储器操作数MOVA,20H1483.1.4MCS-51系列单片机指令格式及分类76543210操作码如:DECA机器码:0001,0100B=14H。
(1)单字节指令:两种编码格式①8位编码全部是操作码,操作数隐含在其中。149②8位编码中含有操作码和操作数,该操作数通常是通用寄存器R0~R7的编码。
rrr=000~111,分别表示R0~R7。
如:ADDA,R7机器码为:0010,1111B=2FH。76543210操作码rrr150(2)双字节指令:由两个字节组成,其中一个字节为操作码,另一个字节为参与操作的数据data或数据存放的地址direct。如:ADDA,#60H机器码:24H,60H。
76543210操作码操作数151以(10H+20H)-15为例说明单片机的指令格式以及汇编语言源程序的格式。符号(伪)操作码操作数机器码(H)ORG2000HMOVA,#10HE5,10ADDA,#20H24,20SUBBA,#1594,0FNOP
00MOV40H,AF5,40END2000H1523.1.5MCS-51汇编语言伪指令
主要的8个:ORG、END、DB、DW、DS、EQU、DATA、BIT (1)ORG(Origin)汇编起始地址命令功能:用于规定目标程序的起始地址。格式:
[标号:]ORG地址地址项:16位绝对地址,也可以用标号或表达式表示。如果不用ORG规定,则汇编得到的目标程序将从0000H开始。153(3)三字节指令:指令由三个字节组成,其中操作码占一个字节,操作数占两个字节。操作数既可以是数据,也可以是地址。
如:MOV40H,#20H机器码:75H,40H,20H。
76543210操作码操作数1操作数2154一个源程序中,可多次使用ORG指令以规定不同程序段的起始位置。地址应从小到大顺序排列,不允许重叠。例如:
ORG0 LJMP MAIN
ORG 200HMAIN: MOV A,30H
1552)END(ENDofassembly)汇编终止命令
功能:用于终止源程序的汇编工作。格式:
[标号:]END[表达式]注意:只有主程序模块才有“表达式”项,且“表达式”的值等于该程序模块的入口地址。而其他程序模块就没有“表达式”项。“表达式”可以省略。
一个源程序只能有一个END命令。C语句charsquare[]={0,1,4,9,16,25,36,49,64,81};charstring[]=“Anapple!”;1573)DB(DefineByte)定义数据字节命令功能:用于从指定的地址单元开始,在程序存储器(ROM)中定义字节型数据。例4-1分别从ROM的1000H和1020H单元开始,按顺序存放0~9中每个整数的平方值和字符串“Anapple!”。1158
ORG1000HSQUARE: DB 0,1,4,9,16,25,36,49,64,81 ORG1020HSTRING: DB“Anapple!” END
ORG0START: NOP ;空操作语句159C语言中的实现方法:a=square[i];b=string[i];既然DB定义的是字节型数组,如何访问数组中的第i个变量?161查表时,为确定数据区的起始位置,可采用两种方法:(1)根据DB命令前一条指令的地址确定。例: 8100HMOV A,#49H(2字节)
TAB:DB0C0H,0F9H,0A4H,0B0H(2)使用ORG指令专门规定例: ORG 8100H TAB:DB 0C0H,0F9H,0A4H,0B0H;数码管字形码
定义的数码管字形码从8100地址开始存放。162(4)DW(DefineWord) 定义数据字命令功能:用于从指定地址开始,在程序存储器单元中定义16位的数据字。格式:[标号:]DW16位数表存放规则:高8位在前(低地址),低8位在后(高地址)。ORG1100HDATA2:DW 3478H,10H,-1163
注意:
DB和DW定义的数表,数的个数不得超过80个。 如果数据的数目较多时,可使用多个定义命令。在MCS-51程序设计应用中,常以DB定义数据,以DW定义地址。164(5)DS(DefineStorage)定义存储区命令功能:用于从指定地址开始,保留指定数目的字节单元为存储区,供程序运行使用。汇编时对这些单元不赋值。格式:[标号:]DS16位数表
例: ORG8100H DS 08H注意:对MSC-51单片机来说,DB、DW、DS命令只能对程序存储器使用,不能对数据存储器使用。165例如: X EQU20 Y EQU30 Z EQUX+Y AA EQUR1(6)EQU(Equate)赋值命令功能:用于给字符名称赋予一个特定值。赋值以后,其值在整个过程中有效。(相当于C语言中的define)格式:
字符名称EQU赋值项“赋值项”:可以是常数、地址、标号或表达式。MOVA,#XMOVA,X166(7)DATA数据地址赋值命令格式:字符名称DATA项功能:与EQU基本类似,但有以下差别。*EQU定义的字符名称必须先定义后使用,而DATA定义的字符名可以先使用后定义。*用EQU可以把一个汇编符号赋给字符名称,如上例中的R1,而DATA只能把数据赋给字符名。167(8).BIT位定义命令功能:用于给字符名称赋以位地址。格式:字符名称BIT位地址例如:MOVCy,AAA例如:
AAABIT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026吉林省事业编水利岗面试真题汇编
- 2026年事业编财会岗面试高频题题型分析 含答案含解析
- 胶囊健康宣教方案
- 上海农民工就业前景分析
- 2026年黑龙江联通人员招聘考试题库及答案详解
- 2026年陕西电信人员招聘考试备考题库及答案详解
- 2026年大数据安全治理业务考试题库及答案
- 2026年青岛国际投资有限公司人员招聘笔试参考试题及答案详解
- 物业外来施工单位安全管控规程
- 2026年地下综合管廊业务考试题库及答案
- 克隆动物养殖行业市场供需现状及价值投资规划
- 八年级上册道德与法治第二单元《维护社会秩序》整体教学设计
- 2026年蜜雪冰城加盟考试题及答案
- 产品外观标准检验指导书
- 智联猎头:2026年企业薪酬调研报告
- 致盲性眼病科普
- 场景美术创作技法
- 10KV高压电缆敷设专项施工方案
- 2025年军事理论与国防教育考试题及答案
- 公司门房日常管理制度
- DB50T 1021-2020 电动汽车简易型交流供电装置技术规范
评论
0/150
提交评论