《单片机原理及应用》课程教案(共14页).doc

上传人:飞****2 文档编号:13463384 上传时间:2022-04-29 格式:DOC 页数:14 大小:87.50KB
返回 下载 相关 举报
《单片机原理及应用》课程教案(共14页).doc_第1页
第1页 / 共14页
《单片机原理及应用》课程教案(共14页).doc_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《《单片机原理及应用》课程教案(共14页).doc》由会员分享,可在线阅读,更多相关《《单片机原理及应用》课程教案(共14页).doc(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上单片机原理及应用课程教案第三次课 2学时主要内容:第二部分 单片机的原理与结构(3)2.5 并行I/O端口 2.6 时钟电路与时序2.7 复位操作和复位电路重点: P0P3端口功能及使用中应注意的问题机器周期、时钟周期、指令周期的定义,及时钟周期、频率的计算复位后,特殊功能寄存器的初值难点: P0端口的功能2.5 并行I/O端口 4个双向的8位并行I/O端口(Port) ,记作P0P3 属于特殊功能寄存器,还可位寻址。 2.5.1 P0端口 (讲解时强调端口完成的功能)P0口某一位的电路包括:(1) 一个数据输出锁存器,用于数据位的锁存(2) 两个三态的数据输入缓冲器

2、。(3) 一个多路转接开关MUX,设置多路转接开关的目的:P0口既作通用I/O口,又可作为系统的地址/数据线口。(4) 数据输出的驱动和控制电路,由两只场效应管(FET)组成,上面的场效应管构成上拉电路。P0口传送地址或数据时,CPU发出控制信号为高电平,打开上面的与门,使多路转接开关MUX打向上边,使内部地址/数据线与下面的场效应管处于反相接通状态。这时的输出驱动电路由于上下两个FET处于反相,形成推拉式电路结构,大大提高负载能力。P0口作通用的I/O口使用。这时,CPU发来的“控制”信号为低电平,上拉场效应管截止,多路转接开关MUX打向下边,与D锁存器的Q*端接通。(1)作输出口使用来自C

3、PU的“写入”脉冲加在D锁存器的CP端,内部总线上的数据写入D锁存器,并向端口引脚P0.x输出。注意:由于输出电路是漏极开路(因为这时上拉场效应管截止),必须外接上拉电阻才能有高电平输出。(2)作输入口使用应区分“读引脚”和“读端口”(或称“读锁存器”)。“读引脚”信号把下方缓冲器打开,引脚上的状态经缓冲器读入内部总线;“读锁存器”信号打开上面的缓冲器把锁存器Q端的状态读入内部总线。2.5.2 P1端口 字节地址90H,位地址90H97H。P1口只作为通用的I/O口使用,在电路结构上与P0口有两点区别:(1)因为P1口只传送数据,不再需要多路转接开关MUX。(2)由于P1口用来传送数据,因此输

4、出电路中有上拉电阻,这样电路的输出不是三态的,所以P1口是准双向口。因此:(1)P1口作为输出口使用时,外电路无需再接上拉电阻。(2)P1口作为输入口使用时,应先向其锁存器先写入 “1”,使输出驱动电路的FET截止。2.5.3 P2端口 字节地址为A0H,位地址A0HA7H。在实际应用中,因为P2口用于为系统提供高位地址,有一个多路转接开关MUX。但MUX的一个输入端不再是“地址/数据”,而是单一的“地址”,因为P2口只作为地址线使用。当P2口用作为高位地址线使用时,多路转接开关应接向“地址”端。正因为只作为地址线使用,口的输出用不着是三态的,所以,P2口也是一个准双向口。P2口也可以作为通用

5、I/O口使用,这时,多路转接开关接向锁存器Q端。 2.5.4 P3端口 P3口的字节地址为B0H,位地址为B0HB7H。P3口的第二功能定义,应熟记。 P3口的第二功能定义: 口引脚 第二功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INT0* (外部中断0) P3.3 INT1* (外部中断1) P3.4 T0(定时器0外部计数输入) P3.5 T1(定时器1外部计数输入) P3.6 WR* (外部数据存储器写选通)P3.7 RD* (外部数据存储器读选通) 2.5.5 P0P3端口功能总结使用中应注意的问题:(1)P0P3口都是并行I/O口,都可用于数据的

6、输入和输出,但P0口和P2口除了可进行数据的输入/输出外,通常用来构建系统的数据总线和地址总线,所以在电路中有一个多路转接开关MUX,以便进行两种用途的转换。而P1口和P3口没有构建系统的数据总线和地址总线的功能,因此,在电路中没有多路转接开关MUX。由于P0口可作为地址/数据复用线使用,需传送系统的低8位地址和8位数据,因此MUX的一个输入端为“地址/数据”信号。而P2口仅作为高位地址线使用,不涉及数据,所以MUX的一个输入信号为“地址”。 (2)在4个口中只有P0口是一个真正的双向口,P1P3口都是准双向口。原因:P0口作为系统的数据总线使用时,为保证数据的正确传送,需要解决芯片内外的隔离

7、问题,即只有在数据传送时芯片内外才接通;不进行数据传送时,芯片内外应处于隔离状态。为此,要求P0口的输出缓冲器是一个三态门。在P0口中输出三态门是由两只场效应管(FET)组成,所以是一个真正的双向口。而其它的三个口P1P3中,上拉电阻代替P0口中的场效应管,输出缓冲器不是三态的,因此不是真正的双向口,只能称其为准双向口(3)P3口的口线具有第二功能,为系统提供一些控制信号。因此在P3口电路增加了第二功能控制逻辑。这是P3口与其它各口的不同之处。2.6 时钟电路与时序时钟电路用于产生MCS-51单片机工作所必需的时钟控制信号。2.6.1 时钟电路时钟频率直接影响单片机的速度,电路的质量直接影响系

8、统的稳定性。常用的时钟电路有两种方式:内部时钟方式和外部时钟方式。2.6.2 机器周期、指令周期与指令时序单片机执行的指令的各种时序均与时钟周期有关一、时钟周期单片机的基本时间单位。若时钟的晶体的振荡频率为fosc,则时钟周期Tosc=1/fosc。如fosc=6MHz,Tosc=166.7ns。二、机器周期CPU完成一个基本操作所需要的时间称为机器周期。执行一条指令分为几个机器周期。每个机器周期完成一个基本操作。MCS-51单片机每12个时钟周期为一个机器周期,一个机器周期又分为6个状态:S1S6。每个状态又分为两拍:P1和P2。因此,一个机器周期中的12个时钟周期表示为:S1P1、S1P2

9、、S2P1、S2P2、S6P2。 三、指令周期 执行任何一条指令时,都可分为取指令阶段和指令执行阶段 。取指令阶段,PC中地址送到程序存储器,并从中取出需要执行指令的操作码和操作数。指令执行阶段,对指令操作码进行译码,以产生一系列控制信号完成指令的执行。ALE信号是为地址锁存而定义的,以时钟脉冲1/6的频率出现,在一个机器周期中,ALE信号两次有效(但要注意,在执行访问外部数据存储器的指令MOVX时,将会丢失一个ALE脉冲)2.7 复位操作和复位电路2.7.1 复位操作单片机的初始化操作,摆脱死锁状态。引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可使MCS-51复位。复位时

10、,PC初始化为0000H,使MCS-51单片机从0000H单元开始执行程序。除PC之外,复位操作还对其它一些寄存器有影响,见表2-6(P34)。 SP=07H ,P0-P3的引脚均为高电平。 在复位有效期间,ALE脚和PSEN*脚均为高电平,内部RAM的状态不受复位的影响。2.7.2 复位电路 片内复位结构: 复位电路通常采用上电自动复位和按钮复位两种方式。 最简单的上电自动复位电路:按键手动复位,有电平方式和脉冲方式两种。 电平方式:脉冲方式:两种实用的兼有上电复位与按钮复位的电路。图2-19中(b)的电路能输出高、低两种电平的复位控制信号,以适应外围I/O接口芯片所要求的不同复位电平信号。

11、74LS122为单稳电路,实验表明,电容C的选择约为0.1mF较好。第四次课 2学时主要内容:第三部分 寻址方式,指令系统(1)3.1 指令系统概述3.2 指令格式 3.3 指令系统的寻址方式3.4.1 数据传送类指令 重点:指令系统的寻址方式 数据传送类指令难点:指令系统的寻址方式第三部分 寻址方式,指令系统(1) 介绍MCS-51汇编语言的指令系统。3.1 指令系统概述 MCS-51的基本指令共111条,按指令所占的字节来分: (1) 单字节指令49条; (2) 双字节指令45条; (3) 三字节指令17条。按指令的执行时间来分: (1) 1个机器周期(12个时钟振荡周期)的指令64条;

12、(2) 2个机器周期(24个时钟振荡周期)的指令45条; (3) 只有乘、除两条指令的执行时间为4个机器周期(48个时钟振荡周期)。12MHz晶振:机器周期为1ms。3.2 指令格式 两部分组成,即操作码和操作数。 操作码用来规定指令进行什么操作,操作数则是指令操作的对象,有单字节指令、双字节指令、三字节不同长度的指令,格式不同。(1)单字节指令:指令只有一个字节,操作码和操作数同在一个字节中。 (2)双字节指令:一个字节为操作码,另一个字节是操作数。(3)三字节指令:操作码占一个字节,操作数占二个字节。其中操作数既可能是数据,也可能是地址。3.3 指令系统的寻址方式 寻址方式就是在指令中说明

13、操作数所在地址的方法。共7种寻址方式。 1寄存器寻址方式 操作数在寄存器中 MOV A,Rn ;(Rn)A,n=07 表示把寄存器Rn的内容传送给累加器A 寻址范围包括:(1)4组通用工作寄存区共32个工作寄存器。(2)部分特殊功能寄存器,例如A、B 以及数据指针寄存器DPTR等。2直接寻址方式 操作数直接以单元地址的形式给出: MOV A,40H 寻址范围: (1) 内部RAM的128个单元(2) 特殊功能寄存器。除了以单元地址的形式外,还可用寄存器符号的形式给出。例如: MOV A,80H 与 MOV A,P0是等价的。直接寻址方式是访问特殊功能寄存器的唯一寻址方式 3. 寄存器间接寻址方

14、式 寄存器中存放的是操作数的地址,在寄存器的名称前面加前缀标志“” 访问内部RAM或外部数据存储器的低256个字节时,只能采用R0或R1作为间址寄存器。例如:MOV A,Ri ;i=0或1 其中Ri中的内容为40H,把内部RAM中40H单元的内容送到A。寻址范围:(1)访问内部RAM低128个单元,其通用形式为Ri(2)对片外数据存储器的64K字节的间接寻址,例如: MOVX A,DPTR(3)片外数据存储器的低256字节 ,例如: MOVX A,Ri(4)堆栈区,堆栈操作指令PUSH(压栈)和POP(出栈)使用堆栈指针(SP)作间址寄存器。4立即寻址方式 操作数在指令中直接给出,需在操作数前

15、面加前缀标志“#”。例如: MOV A,#40H 5基址寄存器加变址寄存器间址寻址方式 本寻址方式是以DPTR或PC作基址寄存器,以累加器A作为变址寄存器。 例如:指令 MOVC A,A+DPTR 其中A的原有内容为05H,DPTR的内容为0400H,该指令执行的结果是把程序存储器0405H单元的内容传送给A。说明: (1)本寻址方式是专门针对程序存储器的寻址方式,寻址范围可达到64KB。(2)本寻址方式的指令只有3条: MOVC A,A+DPTR MOVC A,A+PC JMP A+DPTR6位寻址方式 MCS-51有位处理功能,可以对数据位进行操作,例如MOV C,40H 是把位40H的值

16、送到进位位C。寻址范围包括:(1)内部RAM中的位寻址区。位有两种表示方法,例如,40H;另一种是单元地址加上位,例如,(28H).0,指的是28H单元中的最低位。它们是等价的。(2)特殊功能寄存器中的可寻址位 可寻址位在指令中有如下4种的表示方法: a. 直接使用位地址。例如PSW.5的位地址为0D5H。 b.位名称的表示方法。例如:PSW.5是F0标志位,可使用F0表示该位。c.单元地址加位数的表示方法。例如 :(0D0H).5。d.特殊功能寄存器符号加位数的表示方法。例如:PSW.5。7相对寻址方式 在相对寻址的转移指令中,给出了地址偏移量,以“rel”表示,即把PC的当前值加上偏移量就

17、构成了程序转移的目的地址: 目的地址=转移指令所在的地址 + 转移指令的字节数+ rel 偏移量rel是一带符号的8位二进制数补码数 。范围是:128 +127 。向地址增加方向最大可转移(127+转移指令字节)个单元地址,向地址减少方向最大可转移(128-转移指令字节)个单元地址。3.4 MCS-51指令系统分类介绍111条指令,按功能分类,可分为下面5大类:(1)数据传送类(28条) (2)算术操作类(24条) (3)逻辑运算类(25条) (4)控制转移类(17条)(5)位操作类(17条)指令中符号的意义:Rn 当前寄存器区的8个工作寄存器R0R7(n=07)。Ri 当前选中的寄存器区中可

18、作间接寻址寄存器的2 个寄存器R0、R1(i=0,1)。Direct 直接地址,即8位的内部数据存储器单元或特殊功能寄存器的地址。#data 包含在指令中的8位立即数。#data16 包含在指令中的16位立即数。rel 相对转移指令中的偏移量,为8位的带符号补 码数DPTR 数据指针,可用作16位的地址寄存器。bit 内部RAM或特殊功能寄存器中的直接寻址位。C(或Cy) 进位标志位或位处理机中的累加器。addr11 11位目的地址addr16 16位目的地址 间接寻址寄存器前缀,如Ri,A+DPTR(X) X中的内容。(X) 由X寻址的单元中的内容。 箭头右边的内容被箭头左边的内容所取代。3

19、.4.1 数据传送类指令 使用最频繁的一类指令,通用格式: MOV ,属“复制”性质,而不是“搬家”,数据传送类指令不影响标志位, Cy、Ac和OV,但不包括奇偶标志位P。1以累加器为目的操作数的指令 MOV A,Rn ; (Rn)A,n=07 MOV A,Ri ; (Ri)A,i=0,1 MOV A,direct ;(direct)A MOV A,#data ; #dataA 例如: MOV A,R6 ;(R6)A,寄存器寻址 MOV A,70H ;(70H)A,直接寻址 MOV A,R0 ;(R0)A,间接寻址 MOV A,#78H ;78HA,立即寻址2. 以Rn为目的操作数的指令 MO

20、V Rn,A ; (A)Rn,n=07 MOV Rn,direct ;(direct)Rn,n=07 MOV Rn,#dat ; #dataRn,n=07功能:是把源操作数的内容送入当前一组工作寄存器区的R0R7中的某一个寄存器。3.以直接地址direct为目的操作数的指令 MOV direct,A ; (A)direct MOV direct,Rn;(Rn)direct, n=07 MOV direct1,direct2; MOV direct,Ri ; (Ri)direct MOV direct,#data; #datadirect功能:把源操作数送入直接地址指出的存储单元。direct指

21、的是内部RAM或SFR的地址。4.以寄存器间接地址为目的操作数的指令 MOV Ri,A ;(A)(Ri),i=0,1 MOV Ri,direct ; (direct)(Ri) MOV Ri,#data ; #data(Ri)5.16位数传送指令 MOV DPTR,#data16 ; #data16DPTR唯一的16位数据的传送指令 ,立即数的高8位送入DPH,立即数的低8位送入DPL。6堆栈操作指令 MCS-51内部RAM中可以设定一个后进先出(LIFO-Last In First Out)的区域称作堆栈.堆栈指针SP指出堆栈的栈顶位置。(1)进栈指令 PUSH direct先将栈指针SP加1

22、,然后把direct中的内容送到栈指针SP指示的内部RAM单元中。例如: 当(SP)=60H,(A)=30H,(B)=70H时,执行下列指令 PUSH ACC ; (SP)+1=61HSP,(A)61H PUSH B ; (SP)+1=62HSP,(B)62H 结果:(61H)=30H,(62H)=70H,(SP)=62H(2)出栈指令 POP directSP指示的栈顶(内部RAM单元)内容送入direct字节单元中,栈指针SP减1.例如: 当 (SP)=62H,(62H)=70H,(61H)=30H,执行下列指令: POP DPH ;(SP)DPH,(SP)-1SP POP DPL ;(S

23、P)DPL,(SP)-1SP 结果:(DPTR)=7030H,(SP)=60H7.累加器A与外部数据存储器传送指令 MOVX A,DPTR ;(DPTR)A,读外部RAM/IO MOVX A,Ri ;(Ri)A,读外部RAM/IO MOVX DPTR,A;(A)(DPTR),写外部RAM/IO MOVX Ri,A ;(A)(Ri),写外部RAM/IO功能:读外部RAM存储器或I/O中的一个字节,或把A中一个字节的数据写到外部RAM存储器或I/O中。 注意:RD*或WR*信号有效。采用DPTR间接寻址,高8位地址(DPH)由P2口输出,低8位地址(DPL)由P0口输出。采用Ri(i=0,1)间接

24、寻址,可寻址片外256个单元的数据存储器。Ri内容由P0口输出。8位地址和数据均由P0口输出,可选用其它任何输出口线来输出高于8位的地址(一般选用P2口输出高8位的地址)。MOV后 “X”表示单片机访问的是片外RAM存储器或I/O。8.查表指令 共两条,用于读程序存储器中的数据表格的指令,均采用基址寄存器加变址寄存器间接寻址方式。 (1) MOVC A,A+PC 以PC作基址寄存器,A的内容作为无符号整数和PC中的内容(下一条指令的起始地址)相加后得到一个16位的地址该地址指出的程序存储单元的内容送到累加器A。注意:PSEN*信号有效。例如: (A)=30H,执行地址1000H处的指令 100

25、0H: MOVC A,A+PC 本指令占用一个字节,执行结果将程序存储器中1031H的内容送入A。优点:不改变特殊功能寄存器及PC的状态,根据A的内容就可以取出表格中的常数。缺点:表格只能存放在该条查表指令后面的256个单元之内,表格的大小受到限制,且表格只能被一段程序所利用。(2) MOVC A,A+DPTR以DPTR作为基址寄存器,A的内容作为无符号数和DPTR的内容相加得到一个16位的地址,把由该地址指出的程序存储器单元的内容送到累加器A. 例如 (DPTR)=8100H (A)=40H 执行指令 MOVC A,A+DPTR 本指令的执行结果只和指针DPTR及累加器A的内容有关,与该指令

26、存放的地址及常数表格存放的地址无关,因此表格的大小和位置可以在64K程序存储器中任意安排,一个表格可以为各个程序块公用。两条指令是在MOV的后面加C,“C”是CODE的第一个字母,即代码的意思。9字节交换指令 XCH A,Rn XCH A,direct XCH A,Ri例如: (A)=80H,(R7)=08H,(40H)=F0H (R0)=30H,(30H)=OFH执行下列指令: XCH A,R7 ;(A)与(R7)互换 XCH A,40H ;(A)与(40H)互换 XCH A,R0 ;(A)与(R0)互换 结果:(A)=0FH,(R7)=80H,(40H)=08H,(30H)=F0H10半字节交换指令 XCHD A,Ri 累加器的低4位与内部RAM低4位交换。例如: (R0)=60H,(60H)=3EH,(A)=59H执行完 XCHD A,RO 指令,则(A)=5EH,(60H)=39H。 专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com