第4章MCS-51功能模块的编程与仿真讲义课件.ppt(102页)
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第4章MCS-51功能模块的编程与仿真讲义课件.ppt(102页)》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS 51 功能模块 编程 仿真 讲义 课件
- 资源描述:
-
1、第第4 4章章 MCS-51MCS-51功能模块的编程与仿真功能模块的编程与仿真 4.1 单片机的并行输入单片机的并行输入/输出口输出口4.2 中断的系统中断的系统4.3 MCS-51的定时的定时/计数器计数器4.4 串行接口串行接口4.1 单片机的并行输入输出端口单片机的并行输入输出端口u8051单片机有单片机有4个个8位位并行并行I/O端口,每条端口,每条I/O口线都能独立口线都能独立地用作地用作输入或输出输入或输出。u 在无片外扩展存储器的系统中,这四个在无片外扩展存储器的系统中,这四个I/O口都可以作为口都可以作为通用通用I/O口使用口使用。u 在有片外扩展存储器的系统中,在有片外扩展
2、存储器的系统中,P2口送出高口送出高8位地址位地址,P0口分时送出低口分时送出低8位地址和位地址和8位数据。位数据。图图4.1 P0 的位结构图的位结构图1.并行并行I/O的结构和原理的结构和原理(1)P0口口 1 D CP Q Q MUX&T1 T2 锁存器 地址/数据 控制信号C VCC 内部总线 写锁存器 读锁存器 读引脚 P0.X引脚 1 2 uP0口用作通用口用作通用I/O口。口。P0口用作输出口口用作输出口,此时必须外接上拉电阻。,此时必须外接上拉电阻。P0口用作输入口口用作输入口,分读引脚和读锁存器两种情况。分读引脚和读锁存器两种情况。读引脚读引脚:CPU在执行在执行“MOV”类
3、输入指令时类输入指令时(如:如:MOV A,P0),内部产生的操作信号是内部产生的操作信号是“读引脚读引脚”。P0.X引脚上的数据经过缓引脚上的数据经过缓冲器冲器2读入到内部总线。注意在读引脚时,必须先向电路中的读入到内部总线。注意在读引脚时,必须先向电路中的锁存器写入锁存器写入1。读锁存器读锁存器:CPU在执行在执行“读读-改改-写写”类输入指令时类输入指令时(如:如:ANL P0,A),内部产生的操作信号是,内部产生的操作信号是“读锁存器读锁存器”,锁存器中的数据,锁存器中的数据经过缓冲器经过缓冲器1送到内部总线,然后与送到内部总线,然后与A的内容进行逻辑的内容进行逻辑“与与”,结果送回结
4、果送回P0的端口锁存器并出现在引脚。除了的端口锁存器并出现在引脚。除了MOV类指令外,类指令外,其他的读端口操作指令都属于这种情况。其他的读端口操作指令都属于这种情况。u在扩展系统中,在扩展系统中,P0口作地址口作地址/数据总线数据总线。(2)P1口口 P1口仅作通用口仅作通用I/O口使用。由于在内部输出端已接有上拉口使用。由于在内部输出端已接有上拉电阻,所以不需再外接上拉电阻。电阻,所以不需再外接上拉电阻。图图4.2 P1 的位结构图的位结构图(3)P2口口u 当控制信号等于零时,当控制信号等于零时,MUX拨向下方,拨向下方,P2口作为通用口作为通用I/O口使用口使用u 当控制信号等于当控制
5、信号等于1 时,时,MUX拨向上方,拨向上方,P2口作为高口作为高8位地址线使用。位地址线使用。图图4.3 P2 的位结构图的位结构图 4、P3口口 锁存器锁存器Q端接与非门的一个输入端,第二功能输出线接端接与非门的一个输入端,第二功能输出线接与非门的另一个输入端。与非门的另一个输入端。图图4.4 P3 的位结构图的位结构图引引 脚脚第第 二二 功功 能能P3.0RXD:串行口输入:串行口输入P3.1TXD:串行口输出串行口输出P3.2INT0:外部中断:外部中断0请求输入请求输入P3.3INT1:外部中断外部中断1请求输入请求输入P3.4T0:定时器定时器/计数器计数器0外部计数脉冲输入外部
6、计数脉冲输入P3.5T1:定时器定时器/计数器计数器1外部计数脉冲输入外部计数脉冲输入P3.6WR:外部数据存储器写控制信号输出:外部数据存储器写控制信号输出P3.7RD:外部数据存储器读控制信号输出外部数据存储器读控制信号输出表表4.1 P3口的第二功能表口的第二功能表2、MC5-51并行并行I/O的应用举例的应用举例1、七段数码管的结构与原理、七段数码管的结构与原理 在单片机应用系统中通常使用的是在单片机应用系统中通常使用的是8段式段式LED数码管显数码管显示器,它有共阴极和共阳极两种,如图所示。示器,它有共阴极和共阳极两种,如图所示。数码管数码管不同的发光段亮,可组成不同字型,这种组合称
7、为不同的发光段亮,可组成不同字型,这种组合称为字型码或断码。在字型码或断码。在COM送入低电平或高电平,然后控制送入低电平或高电平,然后控制个各段引脚电平,即可形成相应段码个各段引脚电平,即可形成相应段码。n共阳顺序段码:共阳顺序段码:C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90Hn共阴顺序段码共阴顺序段码:3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH(Dpa)例例4.1:要求通过开关输入要求通过开关输入4位二进制数,送到数码管显示出来位二进制数,送到数码管显示出来如图如图(见书见书)。汇编源程序汇编源程序 ORG 0000H
8、LJMP STA ORG 0100hSTA:MOV P1,#0FFH ;关数码管关数码管LOP:MOV P0,#0FFH ;读引脚前端口置读引脚前端口置1 MOV A,P0 ;读开关状态读开关状态 CPL A ;转成数据信息转成数据信息 ANL A,#0FH ;保留低保留低4位信息位信息 MOV DPTR,#TAB MOVC A,A+DPTR ;查表取得断码信息查表取得断码信息 MOV P1,A ;断码送数码管显示断码送数码管显示 AJMP LOP END C程序#include reg51.h /包含8051单片机寄存器定义头文件#define LED P1#define KEY P0cha
9、r code disp=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 x88,0 x83,0 x0C6,0 xA1,0 x86,0 x8E;/定义断码表main()int i;LED=0 xFF;/关数码管 while(1)KEY=0XFF;/读引脚前端口置1 i=KEY;i=i;/转成数据信息 i=i&0 x0f;/保留低4位信息 LED=dispi;/查表取得断码信息,断码送数码管显?仿真实验仿真实验u在Proteus ISIS 中画出设计电路,并进行电气检测。u根据电路设计图,在Keil C中编写源程序。u编译
10、程序,并产生HEX文件。u将HEX文件加入AT89c51,并仿真电路,通过拨动开关观察发光二极管的显示状况,如图所示。图图4.7 例例4.1的仿真图的仿真图n例例4.2:要求对某引脚送入的脉冲进行计数,把脉冲的个要求对某引脚送入的脉冲进行计数,把脉冲的个数送到八个发光二极管以二进制数的形式显示出来,并进数送到八个发光二极管以二进制数的形式显示出来,并进行仿真实验。行仿真实验。汇编语言源程序:汇编语言源程序:ORG 0000h AJMP STAR ORG 0100H STAR:MOV A,#0ffh MOV P1,A CLR A ;计数器清计数器清0L081D:JB P3.0,L081D ;P3
11、.0为低吗为低吗?MOV R2,#10H LCALL DELY JNB P3.0,$;延时后再判断延时后再判断P3.0为低吗为低吗?INC A ;累加器加累加器加1 PUSH ACC CPL A ;转成驱动二极管的电平转成驱动二极管的电平 MOV P1,A ;A送送P1口口 POP ACC AJMP L081DDELY:;延时子程序延时子程序 RET END 仿真实验:仿真实验:u在在Proteus ISIS 中画出设计电路,并进行电气检中画出设计电路,并进行电气检测。测。u根据电路设计图,在根据电路设计图,在Keil C中编写源程序。中编写源程序。u编译程序,并产生编译程序,并产生HEX文件
12、。文件。u 将将HEX文件加入文件加入AT89c51,并仿真电路,通过拨并仿真电路,通过拨动开关观察发光二极管的显示状况,如图所示。动开关观察发光二极管的显示状况,如图所示。图图4.8-9 例例4.2的仿真图的仿真图4.2 中断系统中断系统4.2.1 中断的概述中断的概述1.中断的基本概念中断的基本概念2.中断优先权与嵌套中断优先权与嵌套图4.10 中断过程流程图图4.11 中断嵌套过程图4.2.2 MCS-51的中断系统的中断系统 8051共有5个中断源。分为高级和低级两个中断优先级,可实现2级中断服务嵌套。1.MCS-51的中断源的中断源 8051允许5个中断源:外部中断源外部中断源 由外
13、部原因引起的,可以通过两个固定引脚 INT0(P3.2)和INT1(P3.3)来引入。这两个中断源的请求方式有两种:低电平触发或下降沿触发。内部中断源内部中断源 T0:定时/计数器0中断,由T0回零溢出引起。T1:定时/计数器1中断,由T1回零溢出引起。TI/RI:串行I/O中断,完成一帧字符发送/接收引起。2、中断控制、中断控制 图图4.12 8051中断系统结构中断系统结构 IE0 PX0 EA EX0 1 中断 矢量地址 1 0 ET0 EX1 ET1 ES PT0 PX1 PT1 PS 1 0 1 0 1 0 1 0 自然优先级 中断 矢量地址 自然优先级 IT0=1 IT0=0 TF
14、0 IE1 1 IT1=1 IT1=0 TF1 TI RI T0 T1 INT1 TX RX TCON IE IP SCON 中断标志 各中断 源允许 总允许 优先级 硬件查询 PC 低级中断请求 PC 高级中断请求 INT0 1 定时控制寄存器定时控制寄存器TCONTCON(88H)D7D6D5D4D3D2D1D0TF1 TR1 TF0 TR0 IE1IT1IE0IT0nTF0/TF1:定时器溢出中断申请标志位(由硬件自动置定时器溢出中断申请标志位(由硬件自动置位)。位)。=0:定时器未溢出;:定时器未溢出;=1:定时器溢出(由全:定时器溢出(由全“1”变成全变成全“0”)时由硬件自动)时由
15、硬件自动置位,申请中断,中断被置位,申请中断,中断被CPU响应后由硬件自动清零响应后由硬件自动清零。nTR0/TR1:定时器运行启停控制位 =0:定时器停止运行;:定时器停止运行;=1:定时器启动运行。:定时器启动运行。nIE0/IE1:外部中断申请标志位(由硬件自动置位,中 断响应后转向中断服务程序时,由硬件自动清0)。=0:没有外部中断申请;=1:有外部中断申请。u IT0/IT1:外部中断请求的触发方式控制位(可由用户通过软件设置)。=0:在INT0/INT1端申请中断的信号低电平有效;=1:在INT0/INT1端申请中断的信号负跳变有效。u TI/RI:串行口发送串行口发送/接收中断申
16、请标志位接收中断申请标志位 =0:没有串行口发送:没有串行口发送/接收中断申请;接收中断申请;=1:有串行口发送:有串行口发送/接收中断申请。接收中断申请。这两位不会由硬件自动置位,所以用户必须在中断服务子这两位不会由硬件自动置位,所以用户必须在中断服务子程序中用软件清程序中用软件清0。例如:例如:CLR TI RE TI 串行口控制寄存器串行口控制寄存器SCONSCON(98H)D7D6D5D4D3D2D1D0 SM0 SM1 SM2 REN TB8 RB8TIRI中断允许寄存器中断允许寄存器IEIE(A8H)D7D6D5D4D3D2D1D0EAET2ESET1EX1ET0EX0 ES:串行
17、口中断允许位。ET1:定时器/计数器T1的溢出中断允许位。EX1:外部中断1中断允许位。ET0:定时器/计数器T0的溢出中断允许位。EX0:外部中断0中断允许位。EA:总的中断允许控制位(总开关):=0:禁止全部中断;=1:允许中断。中断优先级寄存器中断优先级寄存器IPIP(B8H)D7D6D5D4D3D2D1D0PT2PSPT1PX1PT0PX0PX0/PX1:外部中断外部中断0/外部中断外部中断1 优先级控制位:优先级控制位:=0:属低优先级;:属低优先级;=1:属高优先级。:属高优先级。PT0/PT1:T0/T1中断优先级控制位:中断优先级控制位:=0:属低优先级;:属低优先级;=1:属
18、高优先级。:属高优先级。PS1:串行口中断优先级控制位:串行口中断优先级控制位:=0:属低优先级;:属低优先级;=1:属高优先级。:属高优先级。当同级的几个中断源同时发中断请求时,当同级的几个中断源同时发中断请求时,MCS-51单片机的中断系统对各中断源的中断单片机的中断系统对各中断源的中断优先级有一个统一的规定,称为自然优先级。优先级有一个统一的规定,称为自然优先级。自然优先级的排列如下:自然优先级的排列如下:中断源 自然优先级 外部中断 0 最高级 定时器 T0 中断 外部中断 1 定时器 T1 中断 串行口中断 最低级 3.中断响应及处理过程中断响应及处理过程 中断响应的条件中断响应的条
19、件u相应的中断是开放的;相应的中断是开放的;u没有同级的中断或更高级别的中断正在处理;没有同级的中断或更高级别的中断正在处理;u正在执行的指令必须执行完最后正在执行的指令必须执行完最后 1个机器周期;个机器周期;u若当前正在执行的是中断返回指令(若当前正在执行的是中断返回指令(RETI),或对),或对IE或或IP寄存器操作的指寄存器操作的指令,则必须执行完当前指令的下一条指令才能响应中断。令,则必须执行完当前指令的下一条指令才能响应中断。中断响应的过程中断响应的过程 中断过程包括中断请求、中断响应、中断服务、中断返回四个阶段。中断过程包括中断请求、中断响应、中断服务、中断返回四个阶段。u中断优
20、先级状态触发器置中断优先级状态触发器置1。u由硬件自动生成一条长调用指令由硬件自动生成一条长调用指令,将断点的地址压入堆栈区进行保护,将断点的地址压入堆栈区进行保护,uCPU将执行中断服务子程序,包含保护现场、执行中断主体、恢复现场。将执行中断服务子程序,包含保护现场、执行中断主体、恢复现场。u中断返回:中断子程序最后为中断返回中断返回:中断子程序最后为中断返回RETI指令,该指令使断点出栈,然指令,该指令使断点出栈,然后开放中断允许,中断过程结束,后开放中断允许,中断过程结束,CPU返回原程序。返回原程序。中断服务程序入口地址(中断矢量)中断服务程序入口地址(中断矢量)中断入口地址就是中断服
21、务子程序的起始地址,即第中断入口地址就是中断服务子程序的起始地址,即第一条指令的第一个字节在程序存储器中的位置。单片机的一条指令的第一个字节在程序存储器中的位置。单片机的中断入口地址由单片机硬件电路决定,各中断服务子程序中断入口地址由单片机硬件电路决定,各中断服务子程序的入口地址为:的入口地址为:中断源中断源 入口地址入口地址 INT0 0003 T0 000BH INT1 0013H T1 001BH RI/TI 0023H 外部中断触发方式的选择外部中断触发方式的选择n边沿触发边沿触发 当当ITx=1时,外部中断为边沿触发方式。时,外部中断为边沿触发方式。CPU在每个机器周在每个机器周期的
22、期的S5P2期间采样期间采样INT1(P3.3)引脚。若在连续两个机器引脚。若在连续两个机器周期采样到先高电平后低电平,则认为有中断申请,硬件周期采样到先高电平后低电平,则认为有中断申请,硬件自动使自动使IE0置置1,此标志一直保持到,此标志一直保持到CPU响应中断时,才由响应中断时,才由硬件自动清硬件自动清0。在边沿触发方式下,为保证。在边沿触发方式下,为保证CPU在两个机在两个机器周期内检测到先高后低的负跳变,输入高低电平的持续器周期内检测到先高后低的负跳变,输入高低电平的持续时间至少要保持时间至少要保持12个时钟周期。个时钟周期。u电平触发电平触发当当ITx=0时,外部中断为电平触发方式
23、。若时,外部中断为电平触发方式。若CPU检测外部中检测外部中断请求输入引脚为低电平,硬件自动置位相应的中断标志断请求输入引脚为低电平,硬件自动置位相应的中断标志位位IEx;若为高电平,则认为无中断申请,硬件自动清除;若为高电平,则认为无中断申请,硬件自动清除中断标志位。所以,外部中断请求输入信号,必须保持到中断标志位。所以,外部中断请求输入信号,必须保持到CPU响应该请求为止。当响应该请求为止。当CPU响应请求后通过硬件清零响应请求后通过硬件清零IEx,但请求信号并没有被清除,在该中断服务子程序返,但请求信号并没有被清除,在该中断服务子程序返回之前,这个中断请求信号必须撤掉,否则,将引起再次回
24、之前,这个中断请求信号必须撤掉,否则,将引起再次响应。为此,用以下电路清除外部中断请求信号,并在中响应。为此,用以下电路清除外部中断请求信号,并在中断服务程序中执行以下指令断服务程序中执行以下指令:ORL P1,#01HANL P1,#0FEH4.2.3 MCS-51中断的应用举中断的应用举【例例4.3】:见书:见书P85。图图4-12 用二极管显示中断请求信号用二极管显示中断请求信号 汇编语言源程序汇编语言源程序:ORG 0000H AJMP MAIN ;转向主程序 ORG 0013H ;外部中断1入口地址 AJMP PINT ORG 0050HMAIN:SETB IT1 ;置边沿触发方式
25、SETB EX1 SETB EA ;开发外部中断1LOOP:MOV A,P1 ANL A,#0FH CJNE A,#0FH,LOOP ;有外部 中断请求,去LOOP ORL P1,#0FFH ;无中断请求,外部灯全灭 LJMP LOOP SJMP$;中断子程序;中断子程序 JB P1,0,L2 CLR P1.4L2:JB P1.1,L3 CLR P1.5L3:JB P1.2 L4 CLR P1.6L4:JB P1.3 L5 CLR P1.7L5:RETI END C语言程序语言程序#include reg51.h sbit P11=P11;sbit P12=P12;sbit P13=P13;s
展开阅读全文