ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:30.53KB ,
资源ID:9028004      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9028004.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(AT89C51的特点.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

AT89C51的特点.docx

1、AT89C51的特点 AT89C51的特点4 K 字节EPROM/ 无EPROM128字节RAM 可寻址64K字节外部程序存储器空间 可寻址64K字节外部数据存储器空间 四个8位I/O口 两个16 位定时/计数器 一个全双工串行I/O口(USART) 五个中断源,两个优先级 1. AT89C51系列单片机各引脚中有四个8位的并行I/O口,共占用32个引脚。还有8 个引脚各为:Vss,VCC地和电源端XTAL1,XTAL2振荡器反相放大器的输入,输出端RESET复位输入端PSEB程序存储器使能端EA/VPP访问外部存储器使能端/编程电源ALE/PROG地址锁存使能端/编程脉冲读者务必搞清每个引脚

2、的功能 ,才能得心应手 地应用它。2. 要特别注意有“第二”功能的引脚。有的书上也称特殊功能。为了避免与后面提到的特殊功能寄存器混淆 ,本书中都用“第二”功能来表示一个引脚的另一种功能 。有第二功能的引脚如 P3口的8个引脚。要注意的是在使用它的第二功能作为控制线应用时,该引脚不能再用作数据线。又如P1口的P1.0/T2、P1.1/T2EX这二根线也有第二功能,可用作计数器2的数据和触发输入3.p0口是一个8位漏极开路的双向并行I/O口。当扩展外部程序存储器时,它是一个复用的低8位地址数据总路线。在作编程校验期间,它也用作数据输出。3 程序状态字PSW程序状态字PSW是一个8位寄存器,用来寄存

3、当前指令执行的状态,为下条指令的执行提供状态条件,有许多指令的招待结果将影响PSW的某些状态标志位,这些标志可作为下一条指令执行的依据或由用户读出判断指令的招待情况。PSW寄存器的结构及各状态标志的定义及功能如下: 位序号 CY ACF0RS1RS0OVF1P地址 D0HPSW的复位值是00H。位定义及功CY高位进位标志位。除了用来寄存运算结果高位进位标志外,还在布尔处理中作位累加器胜,所以又称布尔累加器AC辅助进位标志位,常用于BCD运算F0通用标志位,可由用户通过软件定义(置位/清零)或检测RS1 RS0 0 0 0 1 1 0 1 1寄存器组选择控制位组0被选择,数据寄存器地址00H07

4、H组1被选择,数据寄存器地址08H0FH组2被选择,数据寄存器地址10H17H组3被选择,数据寄存器地址18H1FHOV溢出标志位,用于符号数运算的溢出。当运算结果次高位向最高位产生进位,而最高位不产生进位时溢出位置1,否则溢出位置零F1通用标志位P奇偶校验标志位。每一指令周期由硬件设置/清零以指示累加器A中“1”位的个数:偶数个“1”置0,奇数个“1”则置14堆栈指针SPAT89C51单片机允许用户内部RAM的任一连续区域作为堆栈区。AT89C51C51型内部RAM为128字节。AT89C51C51型为256字节,所以堆栈指针SP为8位寄存,指示堆栈栈顶。压入堆栈时SP先自动加工厂,将欲压栈

5、的数据压入SP所指示的单元。出栈时将SP所指示的栈顶地址单元内数据弹出,然后SP自动减肥,因而SP总是指向栈顶。在芯片复位或上电后,栈指针SP总是初始化指向07H单元,所以第一个压入堆栈的数据放08H单元中,并以此为起始单元。堆栈指针SP的内容可以编程,从而再定位到内部数据存储器RAM的任意位置。516 位数据指针DPTRDPTR是一个独特的16位地址寄存器。它可以指向64K字节范围的任一地址单元。它分为二个独立的8位数据指针:DPH和DPL。它的功能是存放16位地址,用于间接调用(CSLL)、转移(JMP)以及外部数据传送和查表指令。6 程序计数器PCPC的内容是要执行的下一条指令的地址,它

6、决定程序执行的次序。指令周期是这样进行的:CPU把PC的内容放在地址总线(片内或片外)上,CPU把指令字(可能是多字节指令从存储器取出,这时PC自动增量,PC内容指出下一条指令地址。例如指令是三字节的,则每取一个字节,PC就增1;取出三字节指令后,PC仍指向下一条指令地址。如此不断执行。一般指令是按顺序执行的。若要改变正常的次序,必须把新的数据送入PC,这叫做转移。必须注意AT89C51系列的PC不在特殊功能寄存SFR中,指令不能直接访问。振荡器及时钟电路 复位电路242具有第二功能的I/O口引脚P3口的8位是双向功能的(AT89C51C52类还有P1口的2位),它们除正常的并行I/O功能外,

7、还可用作特殊的第二功能(也称变异功能)。有第二功能的I/O口各位如下表所示。表2 具有第二功能的I/O口I/O引脚第二功能P3.0RXD串行数据输入端(异步)或串行数据输入/输出端(同步)P3.1TXD串行数据发送端(异步)或串行时钟输出端(同步)P3.2INT0外部中断0请求输入/定时器0选通控制P3.3INT1外部中断1请求输入/定时器1选通控制P3.4T0计数器0的外部输入端P3.5T1计数器1的外部输入端P3.6WR外部数据存储器写控制,把来自P0口的数据字节锁入外部数据存储器P3.7RD外部数据存储器读控制,把外部数据存储器AT89C51系列单片机的I/O口作输入时,一定要按单片机使

8、用手册上的要求,先向I/O口写入“1”,否则I/O口工作不正常,这里再强调一下。低地址RAM区中的001FH单元共同社32个单元为工作寄存器区,共分四组,每组8个8位寄存器,称为工作寄存器组0工作寄存器组3。在某一时刻只能选用其中一个组工作(通过程序状态字PSW的工作寄存器选择位来选择)。从20H2FH共16个字节单元,这16个字节单元既可字节寻址也可位寻址,位地址从00H7FH,共128位。从30H7FH共80个字节单元,为字节寻址的内部RAM区(也称用户RAM区)。AT89C51系列单片机设有七种寻址方式,即:寄存器寻址。直接寻址。寄存器间接寻址。立即寻址。基址寄存器加变址寄存器间接寻址。

9、相对寻址。位寻址。序号寻址方式相应存储器空间1寄存器寻址R0R7,ACC,B,Cy(位),DPTR2直接寻址内部RAM低地址128字节和特殊功能寄存器3寄存器间接寻址内部RAM(R1,R0,SP)外部数据存储器(R1,R0,DPTR)4立即寻址程序存储器立即数5基址寄存器加变址寄存器间接寻址程序存储器(A+DPTR,A+PC)6相对寻址以PC的当前值为基地址+指令中给出的偏移量=有效转移地址。转移范围:PC当前值的+127+128字节7位寻址参内部RAM或特殊功能寄存器的某些单元进行位寻址1 TMOD和TCON寄存器在AT89C51单片机中有二个SFR,即TMOD和TCON寄存器,用来设定定时

10、/计数器的工作方式和有关功能。当用指令来设定TMOD和TCON时,其内容锁存在这二个寄存器中,而在下个指令的第一个机器周期的S1P1时发生作用。这二个SFR各位的含义及功能说明如下。1定时器方式寄存器TMOD 定时器方式寄存器TMOD的格式如下:位序号GATEC/TM1M0GATEC/TM1M0TMODM1 M0工作方式功能说明输入时钟内部(定时吕器)外部(计数吕器)0 0方式013位定时/计数器fosc/(1232)Fosc/(2432)0 1方式116位定时/计数器fosc/12fosc241 0方式2具有8位重装的8位定时/计数器fosc/12fosc241 1方式3定时/计数器0用作一

11、个8位定时/计数器和一个8位定时器。定时/计数器1停止fosc/12fosc24C/T:选择定时方式或计数方式。当。C/T=1时为计数方式;当C/T=0时为定时方式。GATE:门控制。置“1”时,只有当INT0(1)引脚为高电平且TR0(1)置“1”时才运行定时器0(1);清“0”时,只要TR0(1)位置“1”就运行定时器0(1)。低4位用于定义定时/计数吕器0,高4位用于定义定时/计数吕器1。复位时TMOD的所有位均清0。2定时器控制寄存器TCON定时器控制寄存器的格式如下为:位序号 7 6 5 4 3 2 1 0TF1TR1TF0TR0IE1IT1IE0IT0TCON其中:TF1:定时器1

12、溢出中断请求标志。当定时器1溢出时由硬件置1,当主机响应中断,程序 转向中断程序时,由硬件清0。TR1:定时器具运行控制行。由软件置位/复位来开启或关闭定时器1。TF0:定时器0溢出中断请求标志。当定时器0溢出时由硬件置1,当主机响应中断,程序 转向中断服务程序时,由硬件清0。TR0:定时器0运行控制位。由软件置位/复位来开启/关闭定时器0。IE1:外中断定跳变中断请求标志。当检测到INT0引脚上发生由10跳变,且IT1=1时, 由硬件置位IE1;当主机响应中断,程序转向中断服务程序时,由硬件清0 IE0。IT1:用软件置位/清0来选择外中断定 的跳变/电平触发中断请求。如果IT1=1,外中断

13、由 跳变触发,前一周期INT1上为高电平,紧接后一个周期为低电平,即INT1上的跳 变触发产生中断请求;如果IT1=0,则由INT1上的低电平触发产生中断请求。IT0:用软件置位/清洗来选择外中断定的跳变/电平触发中断请求。选择原理同IT1。22.7串行接口AT89C51的串行I/O为全双工接口,即接收和发送可以同时进行。它有接收缓冲器,在读出前一个数据字节时,能开始接收第二个数据字节。如果在第二个字节已接完毕,而第一个字节尚未被读出,则将丢失其中的一个字节,读出SBUF实际就是从接收寄存器中读取信息。串行I/O有4种工作方式(一种同步方式,三种异步方式),这可通过对SCON控制编程来选择。串

14、行接口控制寄存器SCON的格式如下:位序号 7 6 5 4 3 2 1 0SM0SM1SM2RENTB8RB8TIRISCON这个寄存器的内容不仅是方式选择位和控制位,还有发送和接收时的第九数据数(TB8、RB8)和串行口中断位(TI、RI)。下面详细说明:SM0、SM1确定串行口的工作方式:SM0 SM1 工作方式 功能说明 波特率0 0 方式0 同步工作方式 1/12 fOSC 0 1 方式1 10位 可变(定时器溢出率/N)1 0 方式2 11位 1/64或1/32 fOSC1 1 方式3 11位 可变(定时器溢出率/N)SM2:允许方式2和3的多机通讯控制位。在方式2和3中,如SM2由

15、软件置为1,则接收到的第9位数据(RB8)为0时不启动接收中断标志RI(RI=0)。在方式1中,如SM2=1,则只有在接收到有效停止位时才启动RI,没有接收到的效停止位,则RI清0(不启动)。在方式0中,SM2应为0。REN:允许串行I/O接收控制位。软件置位(REN=1时允许接收,启动串行口的接收器RDX,开始接收数据。软件复位(REN=0)时,则禁止接收。TB8:方式2和3中,要发送的第9位数据,按需要由软件进行置位或清0。例如可用作数据的奇偶校验位。RB8:方式2和3中,是接收到的第9位数据。在方式1中,若SM2=0,则RB8是接收到的停止位,在方式0中,不使用RB8。 TI: 发送中断

16、标志。在方式0的串行发送第8位结束时,由硬件置位。CPU响应中断后,必须用软件清“0”。在其它方式中,则在停止位开始时置位,必须用软件清“0”。RI: 接收中断标志。方式0串行接收到第8位结束时由硬件置位。在其它方式中,串行接收到停止位的中间时刻硬件置位(例外情况见SM2的说明)。必须用软件清0。 复位时SCON的所有位都清0。281 中断源的说明下面将5个中断请求源说明如下:INT0:外部中断0请求,低电平有效。它由P3。2引脚输入(第二功能)。在第个机器周期的S5P2采样P3。2引脚,并置位或清0 SFR中IE的EXO标志。INT1:外部中断1请求,低电平有效。它由P3。3引脚输入(第二功

17、能),在每个机器周期S5P2采样P3。3引脚,并置位或清0 SFR中IE的EXI标志。定时器0溢出中断:当定时器0产生溢出,置位内部定时器0中断请求标志TF0,请求中断处理。定时器1溢出中断:当定时器1产生溢出,置位内部定时器1中断请求标志TF1,请求中断处理。串行中断:当完成一串行帧的接收/发送时,置位内部串行中断请求标志TI(发送)或RI(接收),请求中断处理。282 中断允许寄存器IE是否允许中断由中断允许寄存器IE中的各位决定,通过软件对IE中各位的编程,可分别控制各个中断也可实现总的允许中断或禁止中断的控制、IE寄存器的格式如下:位序号EA_ET2ESET1EX1ET0EX0 IEE

18、A(IE7):禁止所有中断。当EA=0,则禁止所有中断响应。当EA=1,则各中断源的允许或禁止取决于各自中断允许位的状态(置位或清0)。(IE6):保留,无意义。ET2(IE5):允许或禁止定时器2(52型)的溢出和捕获中断。ET2=0,禁止中断;ET2=1,允许中断。ES(IE4):允许或禁止串行口的中断。ES=0,禁止中断;ES=1,允许中断。ET1(IE3):允许或禁止定时器1的溢出中断。ET1=0,禁止中断;ET1=1,允许中断。EX1(IE2):允许或禁止外中断1(INTI)的中断。EX1=0禁止中断;EX1=1,允许中断。ET0(IE1):允许或禁止定时器0的溢出中断。ET0=0,

19、禁止中煌;ET0=1,允许中断。EX0(IE0):允许或禁止外中断0(INT0)的中断,EX0=0,禁止中断;EX0=1,允许中断。 283 中断优先级 AT89C51系列单片机的中断具有两级优先级。每一个中断源都可以通过对中断优先级寄存器IP中的相应位置位或清0,编程为两级中断中的任一级高优先级或低优先级,置1为高优先级,清0为低优先级。低优先级可被高优先级所中断,但不能被另一个低优先级中断所中断。高优先级中断不能被任何中断所中断。为了实现这些规定,中断系统中设有二个不可寻址的优先级状态触发器,其中一个用来指出正在服务于高优先级中断,并阴止所有其它中断的响应。另一个则指出正在服务于低优先级中

20、断,并阻止除高优先级中断以外的其它中断的响应。 当同时接收到几个优先级相同的中断请求时,则由内部查询次序来确定响应哪一个中断请求。因此,在每个中断级中又有按查询次序的中断优先次序。查询次序如下:1IE0 (外中断INT0) 最先查询2TF0 (定时器0溢出中断)3IE1 (外中断INTI)4TF1 (定时器1溢出中断)5RITI (串行口中断)6TF2EXF2 (定时器2溢出中断) 最后查询这种“同级内的优先次序”仅用来解决相同优先级中断源同时请求中断的情况,而不能中断正在执行的同优先级的中断。 中断优先级寄存器IP的格式始下:位序号 7 6 5 4 3 2 1 0PT2PSPT1PX1PT0

21、PX0 IP中断优先级寄存器IP中各位功能说明如下:PT2(IP5):定义定时器2的中断优先级。通过编程设置PT2=1为高优先级中断,PT2=0为低优先级中断。PS(IP4):定义串行口中断优先级。通过编程设置PT1=1为高优先级中断,PS=0为低优先级中断。PT1(IP3):定义定时器1中断优先级。通过编程设置PT=1为高优先级中断,PT1=0为低优先级中断。PX1(IP2):定义外中断定(INT1)的优先级。通过编程设置PX1=1为高优先级中断,PX1=0为低优先级中断。PT0(IP1):定义定时器0中断优先级。通过编程设置PT0=1为高优先级中断,PX0=0为低优先级中断。PX0(IP0

22、):定义外中断0(INT0)优先级。通过编程设置PX0=1为高优先级中断,PX0=0为低优先级中断。284 中断执行的过程CPU在每个机器周期的S5P2状态采样中断标志,而在下一个机器周期对采样到的中断进行查询。如果在前一个机器周期的S5P2有中断标志置位,则在查询周期内便会查询到并按优先级进行中断处理。中断系统将产生一个长调用(LCALL)指令,控制程序转入相应的中断服务程序。硬件生成LCALL指令被下列条件所封锁:1一个同级或高一级的中断正在处理中。2当前周期(即查询周期)不是执行当前指令的最后一个周期。3当前正在执行的指令是返回(RETI)指令或对IE或IP寄存器进行读/写指令。上述三个

23、条件的任一个都能封锁转向中断服务程序的长调用。其中每二条是保证把当前指令执行完,第三条是保证在当前执行的是返回(RETI)指令或对寄存器IE、IP进行读/写的指令时,必须至少再执行完一条指令之后才响应。中断查询在每个机器周期中重复执行,所查询到的值为前一个机器周期的S5P2时采样到的中断标志。这里需注意的是:如中断标志被置位,但因上述条件之一而未被响应,或上述封锁条件已撤消后标志位已不再存在(已不是置位状态)时,被拖延的中断就不再被响应。也就是说,对中断标志置位后,未能及时响应转入中断服务程序的状态不作记忆。每个查询周期都重新进行。中断源 向量地址IE0(外部中断0) 0003HTF0(定时器

24、0溢出中断) 000BHIE1(外部中断1) 0013HTF1(定时器1溢出中断) 001BHRITI(串行口是中断) 0023HIF2EXF2(定时器2中断) 002BH中断服务程序从向量地址处开始执行,直到执行返回(RETI)指令时为止。RETI指令的执行,一方面通知中断控制系统,该中断服务程序已经执行完毕;另一方面将原压入堆栈保护的断点地址(PC值)从栈顶弹出装入程序计数器(PC),使被中断的程序继续从断点处恢复执行。AT89C51系列设有二条返回指令RETI和RET。返回指令RET虽然也能使程序返回到原被中断的地方继续往下执行,但它不通知断控制系统,致使中断控制系统误认为仍在继续执行中

25、断服务程序。因此,中断返回一定要用RETI指令,而不能用RET代替。助记符说明字节振荡器周期算术运算类ADDA,Rn加寄存器至累加器112ADDA,direct加直接地址内容至累加器212ADDA,Ri加间接RAM内容至累加器112ADDA,#data加立即数至累加器212ADDCA,Rn带进位加寄存器至累加器112ADDCA,direct带进位加直接地址内容至累加器212ADDCA,Ri带进位加间接RMA内容至累加器112ADDCA,#data带进位加立即数至累加器212SUBBA,Ri带借位从Acc减寄存器112SUBBA,#Ri带借位从Acc减直接地址内容212SUBBA,#data带借

26、位从Acc减间接RMA内容112SUBBA带借位从Acc减立即数212助记符说明字节振荡器周期算术运算类INCAAcc增1112INCRn寄存器增1112INCDirect直接地址内容增1212INCA,Ri间接RAM内容增1112DECAAcc减1112DECRn寄存器减1112DECDirect直接地址内容减1212DECRi间接RMA内容减1112INCDPTR数据指针增1124MULABA乘B148DIVABA被B除148DAA累加器十进制调整112逻辑运算类ANLA,Rn寄存器与Acc相与112ANLA,direct直接地址内容与Acc相与212ANLA,Ri间接RMA内容与Acc相

27、与112ANLA,#data立即数与Acc相与212ANLDirect,AAcc与直接字节相与212ANLDIRECT,#data立即数与直接字节相与324ORLA,Rn寄存器与Acc相或112ORLA,direct直接地址内容与Acc相或212ORLA,Ri间接RMA 内容与Acc相或112ORLA,#data立即数与Acc相或212ORLDirect,A立即数与直接地址内容相或212ORLDirect,#data寄存器与Acc相异或324XRLA,Rn直接地址内容与Acc相异或112XRLA,direct间接RAM内容与Acc相异或212XRLA,Ri立即数与Acc 112XRLA,#da

28、taAcc与直接地址内容相或212XRLDirect,A立即数与直接地址内容相异或312XRLDirect,#data清零Acc124CLRA取反Acc112CPLAAcc向左移位112RLCA通过进位位Acc向左移位112RRAAcc向右移位112RRCA通过进位位Acc向右移位112S内高低4位互换112数据传送类MOVA,Rn寄存器内容传送至Acc112MOVA,direct直接地址内容传送至Acc212MOVA,Ri间接RAM内容Acc112MOVA,#data立即数传送至Acc212MOVRn,AAcc内容传送至寄存器112MOVRn,direct直接地址内容传送至寄存器224MOVRn,#data立即数传送至寄存器212MOVDirect,AAcc内容传送至直接地址212MOVDirect,Rn寄存器内容传送至直接地址224MOVDirect,direct直接地址内容传送到直接地址324

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1