单片机第7章2详解
合集下载
单片机课件第7章
第7章 MCS-51系列单片机的串行接口 ⑦ SM2:多机通信控制位,主要用于方式2和方式3。在 方式0时,SM2不用,一定要设置为0。在方式1中,SM2也应 设置为0,当SM2 = 1时,只有接收到有效停止位时,RI才置1。 当串行口工作于方式2或方式3时,若SM2 = 1,只有当接收到 的第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF, 且置位RI发出中断申请,否则会将接收到的数据放弃;当 SM2 = 0时,不管第9位数据是0还是1,都将接收到的前8 位数 据送入SBUF,并发出中断申请。
第7章 MCS-51系列单片机的串行接口
图7-2 串行通信数据传送的制式
第7章 MCS-51系列单片机的串行接口 半双工制式(Half Duplex):数据可实现双向传送,但不能 同时进行,实际的应用采用某种协议实现收/发开关转换。如 图7-2(b)所示,数据传送是双向的,但任一时刻数据只能是从 甲站发至乙站,或者从乙站发至甲站,也就是说只能是一方发 送另一方接收。因此,甲、乙两站之间只需一条信号线和一条 接地线。收/发开关是由软件控制的,通过半双工通信协议进 行功能切换。
第7章 MCS-51系列单片机的串行接口 SBUF为串行口的收/发缓冲寄存器,它是可寻址的专用寄 存器,其中包含了发送寄存器SBUF(发送)和接收寄存器 SBUF(接收),可以实现全双工通信。这两个寄存器具有相同名 字和地址(99H)。但不会出现冲突,因为它们一个只能被CPU 读出数据,另一个只能被CPU写入数据,CPU通过执行不同的 指令对它们进行存取。CPU执行“MOV SBUF,A”指令,产生 “写SBUF”脉冲,把累加器A中欲发送的字符送入SBUF(发送) 寄存器中;CPU执行“MOV A,SBUF”指令,产生读SBUF脉 冲,把SBUF(接收)寄存器中已接收到的字符送入累加器A中。 所以,MCS-51的串行数据传输很简单,只要向发送缓冲器 SBUF写入数据即可发送数据。而从接收缓冲器SBUF读出数据 即可接收数据。
《单片机原理》第七章-PPT课件
7.2 MCS-51单片机系统的抗干扰措施 •7.2.1 抗干扰硬件措施——看门狗电路
单片机课程
目前,市场上已经出现多种型号的微机监控电路芯片, 这些芯片不仅自带计数脉冲振荡器,而且还能对单片机 的供电电源进行监控,确保系统万无一失。 在一些高档单片机中还内嵌了“监控电路”如PHILIPS 公司生产的8XC552系列单片机(与MCS-51 全兼容), 内部具有一个 “Watch Dog”电路,对系统实行全面监 控。
2019/3/16
大连理工大学电气系
目录
7.2 MCS-51单片机系统的抗干扰措施 •7.2.1 抗干扰硬件措施——看门狗电路 1、看门狗电路工作原理及参数设定
MCS-51
RESET
单片机课程
原始喂狗
死机时的复位脉冲
中间喂狗
ALE P1.0
CP /R
Q
N位计数器
程序飞走
程序正常时 的“喂狗”信号
1)根据程序一次周期的时间T1选择计数器的溢出时间T2; 2)不能影响正常时单片机的工作,即两次“喂狗”的时间间 隔T3要小于计数器溢出的时间;即T2>T1>T3 3)合理选择“喂狗”的位置。 2019/3/16 目录 大连理工大学电气系
常用单片机仿真完成,然后固化软件,脱开仿真器, 插回单片机与固化了的程序存储器。
2019/3/16
大连理工大学电气系
目录
7.2 MCS-51单片机系统的抗件措施——看门狗电路 从理论上讲,只要将程序编好系统就可以正常工作 了。但是在实际应用中,常常会出现系统无缘无故的 “死机”。这种情况会导致不可想象的后果,特别在一 些闭环的控制系统,这是绝对不允许的。 造成“死机”的主要原因:
单片机应用系统的开发一般包括以下步骤: 1、确定系统控制方案,彻底了解控制对象和控制要求。 (1)高速对象(电机调速、图像语音识别等)还是慢速 对象(温度、流量等过程控制); (2)开环控制还是闭环控制; ……
《单片机原理》第七章
《单片机原理》第七章
欢迎来到《单片机原理》第七章的讲座!本章将介绍串行输入输出与并行输 入输出、计数器与定时器、中断系统与定时器、软件中断与硬件中断、定时 器扩展与中断深造、连接与开关控制,以及存储芯片 GPIO 与 ADC 扩展。让我 们一起探索这些精彩的课题!
串行输入输出与并行输入输出
1 串行输入A(直接内存访问)、硬件中断优先级等。
连接与开关控制
1
连接控制
通过引脚连接和电气信号控制,实现与外部设备的数据交换。
2
开关控制
使用开关元件对电路和外设进行控制,实现开关状态的切换和功能的操作。
3
开关电路
使用开关电路可以实现多种功能,如电源控制、信号调节等。
存储芯片 GPIO 与 ADC 扩展
3
定时器与计数器的区别
定时器一般用于计时和产生定时事件,计数器则用于计数和记录事件发生的次数。
中断系统与定时器
中断系统
通过中断机制,实现响应外部 事件的能力,提高单片机的实 时性和并行处理能力。
内部定时器
定时器中断
使用内部定时器可以实现精确 的时间控制和定时任务的执行, 提高系统的稳定性和可靠性。
通过定时器中断,可以在指定 时间间隔内执行特定操作,实 现精确的定时功能。
软件中断与硬件中断
1 软件中断
由软件控制和触发的中断,用于实现特定功能或处理特定事件。
2 硬件中断
由外部硬件设备触发的中断,用于处理实时事件和外设交互。
定时器扩展与中断深造
定时器扩展
使用外部定时器模块进行定时任务的扩展,增加系统的定时功能和灵活性。
GPIO 扩展
通过外部 GPIO 扩展芯片,可以扩展单片机 的 GPIO 数量和功能。
欢迎来到《单片机原理》第七章的讲座!本章将介绍串行输入输出与并行输 入输出、计数器与定时器、中断系统与定时器、软件中断与硬件中断、定时 器扩展与中断深造、连接与开关控制,以及存储芯片 GPIO 与 ADC 扩展。让我 们一起探索这些精彩的课题!
串行输入输出与并行输入输出
1 串行输入A(直接内存访问)、硬件中断优先级等。
连接与开关控制
1
连接控制
通过引脚连接和电气信号控制,实现与外部设备的数据交换。
2
开关控制
使用开关元件对电路和外设进行控制,实现开关状态的切换和功能的操作。
3
开关电路
使用开关电路可以实现多种功能,如电源控制、信号调节等。
存储芯片 GPIO 与 ADC 扩展
3
定时器与计数器的区别
定时器一般用于计时和产生定时事件,计数器则用于计数和记录事件发生的次数。
中断系统与定时器
中断系统
通过中断机制,实现响应外部 事件的能力,提高单片机的实 时性和并行处理能力。
内部定时器
定时器中断
使用内部定时器可以实现精确 的时间控制和定时任务的执行, 提高系统的稳定性和可靠性。
通过定时器中断,可以在指定 时间间隔内执行特定操作,实 现精确的定时功能。
软件中断与硬件中断
1 软件中断
由软件控制和触发的中断,用于实现特定功能或处理特定事件。
2 硬件中断
由外部硬件设备触发的中断,用于处理实时事件和外设交互。
定时器扩展与中断深造
定时器扩展
使用外部定时器模块进行定时任务的扩展,增加系统的定时功能和灵活性。
GPIO 扩展
通过外部 GPIO 扩展芯片,可以扩展单片机 的 GPIO 数量和功能。
单片机讲义第七章
一、中断的起因
什么可以引起中断? 生活中很多事件可以引起中断:有人 按了门铃了,电话铃响了,你的闹钟闹响 了,你烧的水开了….等等诸如此类的事件, 我们把可以引起中断的称之为中断源,单 片机中也有一些可以引起中断的事件, 8051中一共有5个:两个外部中断,两个 计数/定时器中断,一个串行口中断。
三、中断的响应过程
当有事件产生,进入中断之前我们必须先记住现 在看书的第几页了,或拿一个书签放在当前页的位置, 然后去处理不同的事情(因为处理完了,我们还要回 来继续看书):电话铃响我们要到放电话的地方去, 门铃响我们要到门那边去,也说是不同的中断,我们 要在不同的地点处理,而这个地点通常还是固定的。 89C51中也是采用的这种方法,五个中断源,每个 中断产生后都到一个固定的地方去找处理这个中断的 程序,当然在去之前首先要保存下面将执行的指令的 地址,以便处理完中断后回到原来的地方继续往下执 行程序。
二、中断的嵌套与优先级处理
设想一下,我们正在看书,电话铃响了,同时又 有人按了门铃,你该先做那样呢?如果你正是在等一 个很重要的电话,你一般不会去理会门铃的,而反之, 你正在等一个重要的客人,则可能就不会去理会电话 了。如果不是这两者(即不等电话,也不是等人上 门),你可能会按你通常的习惯去处理。总之这里存 在一个优先级的问题, 单片机中也是如此,也有优先级的问题。优先级 的问题不仅仅发生在两个中断同时产生的情况,也发 生在一个中断已产生,又有一个中断产生的情况,比 如你正接电话,有人按门铃的情况,或你正开门与人 交谈,又有电话响了情况。考虑一下我们会怎么办吧。
电平触发的外部中断的清除
对于电平触发的外部中断,CPU响应中断后, 虽然也是由硬件清除了相应的标志位,但是不 能对外部引脚上的电平进行处理,也就是说, 这时如果外部引脚上的低电平依然存在,会造 成重复中断,因此我们应该在电路上增加对外 部引起中断的信号进行处理。P148图7-5是一 个可行的方案之一。通过I/O口输出一个信号, 使得外部引脚上的中断请求信号变为高电平。
单片机原理与应用 第七章 优质课件
上一页 下一页 返回
任务七 MCS-51单片帆双帆通信
LOOP:JNB TZI,$ CLTZ RI
MOV A,SBUF MOV 60H,A
TCALL DISP DISP:MOV A , 60H
M()V DPTR, #TAB MOVC A,@A+DPTR MOV PO,A RET
TAB:DB OCOH,OF9H,OA4H,OBOH,99 H_92 H_82 H_OFBH DB 80H,90 H,88H,83H,OC6H OA1H_RhH_REH END;结束伪指令
TAB:DB OCOH,OF9H,OA4H,OBOH,99H,92 H,82 H,OFBH, DB 80H,90H,88H,83H,OC6H,OA1H,86H,8EH, END
这段程序烧到一个实验板上,开机时显示“o 0},当按下 一个键是显示对应 的键号,与此同时通过TXD发送所显示数据的BCD码。此板就作 为发送机。
上一页 下一页 返回
任务七 MCS-51单片帆双帆通信
KEY4:LCALL DEL JB P3.5,KEYEXIT MOV 60H,#4
KEY44:JNB P3.5,$ LCALL DEL JNB P3.5 , KEY44 LJMP KEYEXIT
SEND:MOV A , 60H CJNE A , #1 , SEND1 LCALL SENDBYTE
任务描述
1.按下按键,数码管显示其键号 2.与此同时发送其键号的BCD码 3.接收机显示收到BCD的数值
下一页 返回
任务七 MCS-51单片帆双帆通信
1.电路原理图 串行通信电路原理图见图7-1所示。
2.参考程序
ORG
OOOOH
MOV TMOD,#20 H
任务七 MCS-51单片帆双帆通信
LOOP:JNB TZI,$ CLTZ RI
MOV A,SBUF MOV 60H,A
TCALL DISP DISP:MOV A , 60H
M()V DPTR, #TAB MOVC A,@A+DPTR MOV PO,A RET
TAB:DB OCOH,OF9H,OA4H,OBOH,99 H_92 H_82 H_OFBH DB 80H,90 H,88H,83H,OC6H OA1H_RhH_REH END;结束伪指令
TAB:DB OCOH,OF9H,OA4H,OBOH,99H,92 H,82 H,OFBH, DB 80H,90H,88H,83H,OC6H,OA1H,86H,8EH, END
这段程序烧到一个实验板上,开机时显示“o 0},当按下 一个键是显示对应 的键号,与此同时通过TXD发送所显示数据的BCD码。此板就作 为发送机。
上一页 下一页 返回
任务七 MCS-51单片帆双帆通信
KEY4:LCALL DEL JB P3.5,KEYEXIT MOV 60H,#4
KEY44:JNB P3.5,$ LCALL DEL JNB P3.5 , KEY44 LJMP KEYEXIT
SEND:MOV A , 60H CJNE A , #1 , SEND1 LCALL SENDBYTE
任务描述
1.按下按键,数码管显示其键号 2.与此同时发送其键号的BCD码 3.接收机显示收到BCD的数值
下一页 返回
任务七 MCS-51单片帆双帆通信
1.电路原理图 串行通信电路原理图见图7-1所示。
2.参考程序
ORG
OOOOH
MOV TMOD,#20 H
(单片机完整课件PPT)第七章
当SM2=1时,只有当接收到第9位数据(RB8)为1时,才将接 收到的前8位数据送入SBUF,并置位RI;否则,将接收到的8位 数据丢弃。当SM2=0时,则不论第9位数据为0还是为1,都将8 位数据装入SBUF中,并置位RI。 REN:允许/禁止接收控制位 0—禁止接收; 1—允许接收。 TB8:发送数据第9位。 RB8:接收数据第9位。 TI: 发送中断标志 RI: 接收中断标志。
(2)输入(接收) 设置:SM0=0,SM1=0,SM2=0,REN=1。
时序:
RXD TXD D0 D1 D2 D3 D4 D5 D6 D7
7.2 MCS-51串行口的结构
内部含有1个可编程全双工串行通信接口,4种工作方式。
1.串行口数据缓冲器SBUF
8位发送/接收缓冲器SBUF,在物理上是独立的两个,包括 发送缓冲器SBUF和接收缓冲器SBUF,只是共用地址 99H,这样可以同时进行发送、接收。 发送缓冲器SBUF只能写入不能读出,接收缓冲器SBUF只能 读出不能写入。
(1)输出(发送)
设置:SM0=0,SM1=0,SM2=0,REN=0。 时序:
RXD TXD D0 D1 D2 D3 D4 D5 D6 D7
串口方式0发送数据时序
发送完8位数据,即SBUF为空,硬件自动置“1”中断标志位TI,
CPU响应中断后必须软件清“0”TI。
应用:扩展一并行口,“串入并出”。
2.串行通信的分类
异步通信(Asynchronous Communication)
数据以字节为单位组成字符帧传送。字符帧由发送端一帧 一帧地发送。两相邻字符帧之间可以无空闲位,也可以有若干 空闲位。这就是异步概念。发送端和接收端的时钟各自独立。 实现双方同步接收是靠字符帧的起始位和停止位。
单片机第7章
为解决这个问题, 为解决这个问题,才发展了中断的概 中断系统是计算机的重要组成部分。 念。中断系统是计算机的重要组成部分。 实时控制、 实时控制、故障自动处理往往采用中断系 统,计算机与外围设备间传送数据及实现 人机联系也常采用中断方式。 人机联系也常采用中断方式。
图7-1
中断处理过程
2.中断的特点
C :功能选择位。 / T = 0 时,设置 功能选择位。 为定时器工作方式; 为定时器工作方式;C / T = 1 时,设置为计 数器工作方式。 数器工作方式。 M1M0:工作方式选择位。共有4 M1M0:工作方式选择位。共有4种工作 方式,如表7 所示。 方式,如表7-3所示。
C/T
表7-3
2.中断服务程序部分
① 在相应的中断入口地址单元设置一 条跳转指令, 条跳转指令,使程序转移到中断服务程序 的入口处。 的入口处。 ② 根据需要保护现场。 根据需要保护现场。 若为电平触发的外部中断, ③ 若为电平触发的外部中断,应有中 断信号撤除操作。 断信号撤除操作。
安排中断服务所做的操作。 ④ 安排中断服务所做的操作。 恢复现场。 ⑤ 恢复现场。 中断返回。 ⑥ 中断返回。 下面给出一个中断系统的应用实例。 下面0溢出标志位。其功能及操 : 溢出标志位 作情况同TF1。 作情况同 。 TR0:T0运行控制位 运行控制位。 ④ TR0:T0运行控制位。其功能及操 作情况同TR1。 作情况同 。 ⑤ IE1:外部中断 ( INT1)请求标志 :外部中断1( 位。 ⑥ IT1:外部中断1触发方式选择位。 :外部中断 触发方式选择位。 触发方式选择位
7.3.3
定时器的工作方式
1.方式0(M1M0=00) 方式0 M1M0=00)
方式0构成一个13位定时器, 方式0构成一个13位定时器, 13位定时器
《单片机原理与技术》课件第7章-中断
1.定时器/计数器控制寄存器TCON
位7
位6
位5
位4
位3
位2
位1
位0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
IT0:外部中断INT0触发方式选择 位。可由用户用软件选择。 • IT0=1:设定外部中断引脚信号为下降 沿触发方式。 •
IT1:外部中断INT1触发方式选择 位,其功能类似于IT0。 • IE0:外部中断INT0触发有效标志 位。 • IE1:外部中断INT1触发有效标志 位,其功能类似于IE0。 •
•
定时器0与定时器1标志为TF0与TF1, 在定时器溢出周期的S5P2设置。然后其值 在下一周期由电路查询。然而,定时器2标 志TF2是在S2P2设置且在定时器溢出的同 一周期内被查询。 Nhomakorabea•
若请求有效且响应的条件正确,至请 求的服务例程的硬件子例程调用将是下一 条要执行的指令。CALL自己需要两个周期。 因此,在外部中断请求的激活与服务例程 的第一条指令的执行开始之间,至少需要3 个完整的机器周期。图7-9所示为中断响应 时序。
图7-4 中断响应、服务及返回流程图
7.3 80C51中的中断结构
7.3.1 中断启用
图7-5 MCS-51中断源
图7-6 80C51中的IE(中断启用)寄存器
7.3.2
中断优先权
图7-7 80C51中的IP(中断优先级)寄存器
7.3.3
•
中断如何处理
在操作中,所有中断标志在每个机器 周期的S5P2期间被采样。在下一个机器周 期期间查询采样。若找到一启用的中断的 标志已设置,中断系统生成一LCALL至在 程序存储器中的适当单元,至中断服务例 程的LCALL的生成,由以下3个条件中的任 一个阻断:
《单片机原理及应用》教学课件 第7章-单片机C语言编程基础知识
12
7.1.2 C51 数据类型
3. sfr16
sfr16也是一种扩充数据类型,它定义的变量占用两个 内存单元。sfr16和sfr一样用于操作特殊功能存放器,不同 的是,sfr16定义的变量可访问16位特殊功能存放器,sfr16 类型变量的取值范围为0~65535。
该数据类型的定义格式如下: sfr16 变量名=变量地址; 此处的变量地址为16位地址中的低8位地址。通过sfr16 类型变量访问16位特殊功能存放器时,先读低字节数据,后 读高字节数据;对特殊功能存放器写入数据时,先写入高字 节地址,再写入低字节地址。
要在数字后面加上字母L,如104L,034L,7850L等。
〔2〕浮点型常量
浮点型常量可分为十进制和指数两种表示形式。
① 十进制浮点型常量由数字和小数点组成,整数或小数局部为0时可以省略,
但必须要保存小数点,如,,,.25,300.等。
② 指数浮点型常量表示形式为:[±]数字[.数字]e[±]数字。[]中的内容为可选
C语言程序本身不依赖于硬件开发平台,程序不做修改或做少量修改就可以移植到 不同的单片机中。目前,使用C语言进行程序设计已经成为单片机软件开发的主流。
基于单片机的C语言又称为C51语 言。和标准C语言所不同的是,C51语 言运行于单片机平台上,并根据单片 机的硬件特点扩展了局部关键字。以 下关于C语言的描述都是基于单片机的, 后面不再强调这一点。
项,如125e3,7e9,−3.0e−3等。
15
7.1.3 常量与变量
〔3〕字符型常量 将单个字符放在单引号内的常量就是字符型常量,如'a''d'等。有一类字符型常量专 门用来表示控制字符,如回车符、换行符等,它们被称为转义字符,其表示方式为在字 符前面加上一个反斜杠“\〞,如'\n'。常用转义字符如表7-3所示。
7.1.2 C51 数据类型
3. sfr16
sfr16也是一种扩充数据类型,它定义的变量占用两个 内存单元。sfr16和sfr一样用于操作特殊功能存放器,不同 的是,sfr16定义的变量可访问16位特殊功能存放器,sfr16 类型变量的取值范围为0~65535。
该数据类型的定义格式如下: sfr16 变量名=变量地址; 此处的变量地址为16位地址中的低8位地址。通过sfr16 类型变量访问16位特殊功能存放器时,先读低字节数据,后 读高字节数据;对特殊功能存放器写入数据时,先写入高字 节地址,再写入低字节地址。
要在数字后面加上字母L,如104L,034L,7850L等。
〔2〕浮点型常量
浮点型常量可分为十进制和指数两种表示形式。
① 十进制浮点型常量由数字和小数点组成,整数或小数局部为0时可以省略,
但必须要保存小数点,如,,,.25,300.等。
② 指数浮点型常量表示形式为:[±]数字[.数字]e[±]数字。[]中的内容为可选
C语言程序本身不依赖于硬件开发平台,程序不做修改或做少量修改就可以移植到 不同的单片机中。目前,使用C语言进行程序设计已经成为单片机软件开发的主流。
基于单片机的C语言又称为C51语 言。和标准C语言所不同的是,C51语 言运行于单片机平台上,并根据单片 机的硬件特点扩展了局部关键字。以 下关于C语言的描述都是基于单片机的, 后面不再强调这一点。
项,如125e3,7e9,−3.0e−3等。
15
7.1.3 常量与变量
〔3〕字符型常量 将单个字符放在单引号内的常量就是字符型常量,如'a''d'等。有一类字符型常量专 门用来表示控制字符,如回车符、换行符等,它们被称为转义字符,其表示方式为在字 符前面加上一个反斜杠“\〞,如'\n'。常用转义字符如表7-3所示。
单片机应用课件第7章2
第7章 输入 输出端口 章 输入/输出端口
图6―6 方式1下的输出时序
第7章 输入 输出端口 章 输入/输出端口
3. 方式2 8255A只有A口具有这种双向输入输出工作方式, 实际上是在方式1下A口输入输出的结合。在这种方式 下,A口为8位双向传输口,C口的PC7~PC3用来作为输入/ 输出的同步控制信号。在这种情况下,B口和PC2~PC0 只能编程为方式0或方式1工作,而C口剩下的3条线可作 0 1 , C 3 为输入或输出线使用或用作B口方式1之下的控制线。
第7章 输入 输出端口 章 输入/输出端口
对工作方式控制字作如下说明: (1) A口有3种工作方式,而B口只有2种工作方式。 (2)A组包括A口与C口的高4位,B组包括B口与C口 的低4位。 (3)在方式1或方式2下,对C口的定义(输入或输出)不 影响作为联络线使用的C口各位的功能。 (4)最高位(D7位)为标志位,D7=1为方式控制字。
第7章 输入 输出端口 章 输入/输出端口
图7―1 8255A的内部结构图
第7章 输入 输出端口 章 输入/输出端口
2) A组和B组控制电路 这是两组根据CPU的命令字控制8255A工作方式的 电路。它们的控制寄存器先接受CPU送出的命令字,然 后根据命令字分别决定两组的工作方式,也可根据CPU 的命令字对端口C的每1位实现按位“复位”或“置 位”。 A组控制电路控制端口A和端口C的上半部(PC7~PC4)。 B组控制电路控制端口B和端口C的下半部(PC3~PC0)。
第7章 输入 输出端口 章 输入/输出端口
图6―8 方式2下的时序图
第7章 输入 输出端口 章 输入/输出端口
1.3 8255A的控制字及初始化 1.8255A的控制字 8255A为可编程接口芯片,以控制字形式对其工作 方式和C口各位的状态进行设置。它有两种控制字:工 作方式控制字和C口置位/复位控制字。 1) 工作方式控制字 工作方式控制字用于确定各口的工作方式及数据 传送方向,其格式如图6―9所示。
单片机原理及应用第07章 单片机系统扩展 共91页
按上图,2764的地址范围是
A[12..0]连接芯片地址 引脚,决定了访问该
芯片的单元地址
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 X X 0 0 0 0 0 0 0 00 00 0 0
0 X X ……………………………………………………
7.2 地址译码 地址译码概念
CPU是通过地址对不同的接口或芯片加以区分的。把CPU送出的 地址转变为芯片选择的依据就是地址译码电路。
地址译码有3种方法
线选法 部分译码法 全译码法
7.2 地址译码
地址译码电路一般有两种结构形式
固定式端口地址译码电路:硬件电路不改动,译码输 出的地址或地址范围不变。
7.3.1 存储器扩展——存储器结构
数据存储器:从物理结构上分为片内数据存储器和片外数据存储 器。
片内数据存储器 MCS-51系列单片机的片内数据存储器除了RAM块外,还有特 殊功能寄存器(SFR)块。 对于51子系列 RAM块有128字节,编址为00H—7FH; SFR块也占128字节,编址为80H—FFH; 二者连续不重叠。 对于52子系列 RAM块有256字节,编址为00H—FFH; SFR块也有128字节,编址为80H—FFH; 后者与前者的后128字节编址重叠的。访问时通过不同 的指令相区分。
值随意
引脚,决定了访问该
按上图,2764的地址2 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
X 0 0 0 0 0 0 0 0 0 00 00 0 0
X 0 0 ……………………………………………………
X 0 0 1 1 1 1 1 1 1 11 1 1 1 1
A[12..0]连接芯片地址 引脚,决定了访问该
芯片的单元地址
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 X X 0 0 0 0 0 0 0 00 00 0 0
0 X X ……………………………………………………
7.2 地址译码 地址译码概念
CPU是通过地址对不同的接口或芯片加以区分的。把CPU送出的 地址转变为芯片选择的依据就是地址译码电路。
地址译码有3种方法
线选法 部分译码法 全译码法
7.2 地址译码
地址译码电路一般有两种结构形式
固定式端口地址译码电路:硬件电路不改动,译码输 出的地址或地址范围不变。
7.3.1 存储器扩展——存储器结构
数据存储器:从物理结构上分为片内数据存储器和片外数据存储 器。
片内数据存储器 MCS-51系列单片机的片内数据存储器除了RAM块外,还有特 殊功能寄存器(SFR)块。 对于51子系列 RAM块有128字节,编址为00H—7FH; SFR块也占128字节,编址为80H—FFH; 二者连续不重叠。 对于52子系列 RAM块有256字节,编址为00H—FFH; SFR块也有128字节,编址为80H—FFH; 后者与前者的后128字节编址重叠的。访问时通过不同 的指令相区分。
值随意
引脚,决定了访问该
按上图,2764的地址2 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
X 0 0 0 0 0 0 0 0 0 00 00 0 0
X 0 0 ……………………………………………………
X 0 0 1 1 1 1 1 1 1 11 1 1 1 1
单片机原理及接口技术 第七章讲解
15
7.2 算术运算程序的设计
例6 多字节二进制除法 2个多字节无符号二进制数的除法是采用移位和 减法运算实现的,实现过程与进行十进制数乘 法形似,每次进行除法运算时,如果余数大于减数 (够减)则商1,否则,商0。 该算法要求被除数的高八位数据必须小于除 数,否则,作为溢出处理,子程序把标志位OV的 状态置为1,从子程序返回。
27
7.4 查表程序的设计
CHECHUP: MOV DPTR, #ASC_TAB;设置表的首地址 MOV A, R2 ;取x MOVC A, @A+DPTR;查表取ASCII码 MOV R2, A ;存查到的ASCII码 RET ASC_TAB: DB 30H, 31H, 32H, 33H, 34H, 35H, 36H, 37H, 38H, 39H DB 41H, 42H, 43H, 44H, 45H, 46H
2015-1-21
单片机原理与应用
2
第7章 汇编语言程序设计
汇编程序设计的步骤: (1)分析题目或课题的要求,正确理解解决什么问 题,如何解决问题、有哪些可利用的资源、对计算 精度的要求等;另外,了解应用系统硬件的结构和 功能与课题任务的关联。 (2)确定解决问题的方案,画出程序流程框图; (2)根据解决方案,确定变量及其数据存储格式, 给各个变量分配存储空间; (3)根据程序流程图,选用合适的指令编写程序, 完成源程序的设计; (4)在集成开发环境上调试,完成设计要求的功能。
FE FF
31
7.4 查表程序的设计
地址 1000H 1001H 1002H 1003H 1004H 1005H 1006H 1007H
数据
3F 0000 23 88 0001 33 54 0002 67 36 0003 36
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
过跳转指令转入执行该键的功能程序,执行完后再返回主
程序。
3).按键结构与特点 行线电压信号通过键盘开关机械触点的断开、闭合, 输出波形如图10-6。
为了克服按键触点机械抖动所致的检测误判,必须采取去 抖动措施。这一点可从硬件、软件两方面予以考虑。在键数
较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。
解: 原理如图9-8所示。 ① 判断是否有键按下: 将列线P1.0、P1.1送全0, 查P0.0、P0.1是否为0。 ② 判断哪一个键按下:
逐列送0电平信号,再逐行 扫描是否为0。
③ 键号=行首键号+列号
键盘扫描原理图
7.3.3
键盘的工作方式
单片机在忙于各项工作任务时,如何兼顾键盘的输 入,取决于键盘的工作方式。 原则:即要保证能及时响应按键操作,又不要过多占用CPU 的工作时间。
硬件去抖 在硬件上可采用在 键输出端加R-S触发器 (双稳态触发器)或单稳 态触发器构成去抖动电 路。右图是一种由R-S触 发器构成的去抖动电路, 当触发器一旦翻转,触 点抖动不会对其产生任 何影响。
+5v
&
开关
+5v
I/O 接 口
单 片 机
&
消除抖动电路
图图 10-6 硬件去抖电路 硬件去抖电路
在扫描过程中,当发现某行有键按下,也就是输入的列 线中有一位为0时,便可判别闭合按键所在列的位置,根据 行线位置和列线位置就能判断按键在矩阵中的位置,知道是 哪一个键按下。
行 读图并归纳,得出: 首 键 按键的值=行号×每行的按键个数 +列号。计数译码法 号
如何 将你知道的 第 i 行 、 第 j 列按键 被按下 的信 息 存放在 A 中?以什么形式 存放?读图10-10
7.3
一、键盘接口原理
键盘接口设计
二、键盘/显示器接口设计实例
7.3.1 键盘接口原理
键盘输入的特点
1).按键的分类 按键按照结构原理可分为两类,一类是触点式开关按键, 如机械式开关、导电橡胶式开关等;另一类是无触点式开关按 键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。 目前,微机系统中最常见的是触点式开关按键。 按键按接口原理可分为键盘分编码键盘和非编码键盘。 这两类键盘的主要区别是识别键符及给出相应键码的方 法。编码键盘主要是用硬件来实现对键的识别,非编码键盘 主要是由软件来实现键盘的定义与识别。 键盘上闭合键的识别由专用的硬件译码器实现,并产生 键编号或键值的称为编码键盘,如BCD码键盘、ASCII码键盘 等;靠软件识别的称为非编码键盘。
1. 动态显示程序设计
内部RAM 6个显示缓冲单元: 79H~7EH存放要显示的6位数据。 8155H的PB口输出相应位的段码; 8155H的PA口输出位选码,如01H。 子程序流程如图10-15 。 8155H的初始化程序:
7.3.4 键盘/显示器接口设计实例
(1) 利用并行I/O芯片实现键盘/显示器接口 一般把键盘和显示器放在一起考虑。 图10-14:8031用扩展I/O接口芯片8255H实现的6位LED 显示和32键的键盘/显示器接口电路。
8031外扩一片8155H。RAM地址:7E00H~7EFFH。 I/O口地址:7F00H~7F05H。 PA口为输出口,控制键盘列线的扫描,同时又是6位共 阴极显示器的位选线。 PB口作为显示器段码输出口,PC 口作为输入口,是键盘的回读线。 75452:反相驱动器,7407:同相驱动器。
软件去抖
如果按键较多,常用软件方 法去抖动,即检测出键闭合后执 行一个延时程序,产生5~10 ms 的延时;让前沿抖动消失后,再 一次检测键的状态,如果仍保持 闭合状态电平,则确认为真正有 键按下。当检测到按键释放后, 也要给5~10 ms的延时,待后沿 抖动消失后,才能转入该键的处 理程序。
有按键信号? Y 延时等待10ms
PKEY1: LJMP RETURN
2. 行列式(矩阵式)键盘接口
按键数目较多的场合,行列式键盘与独立式键盘相比, 要节省很多的I/O口线。
由行线和列线组成,按键位于行、列的交叉点上。
为了编程的需要,更准确的叫法:扫描线和回读线。为了 读到确定的值,回读线被定义在有上拉电阻的线上。
4×4矩阵键盘接口图
;是K1键按下,转K1键处理 ;子程序PKEY1 ;S2键未按下,转KEY3 ;S2键按下,转PKEY2处理 ;S3未按下,转KEY4 ;S3按下,转PKEY3处理 ;S4键未按下,转KEY5 ;S4按下,转PKEY4处理 ;S5未按下,转RETURN ;S5按下,转PKEY5处理 ;重键或无键按下,从子程序返回 PKEY*的 程序框架 怎样
3.中断工作方式
只有在键盘有键按下时,才执行键盘扫描程序,如无键 按下,单片机将不理睬键盘。 键盘所做的工作分为三个层次 第1层:单片机如何来监视键盘的输 入。三种工作方式:①编程扫描②定 时扫描③中断扫描。 第2层:确定具体按键的键号。体现 在按键的识别方法上就是:①扫描法; ②线反转法。 第3层:执行键处理程序。
列号译码
SKEY3: MOV A,R1 JNB ACC.4,SKEY5 JNB ACC.5,SKEY6 JNB ACC.6,SKEY7 JNB ACC.7,SKEY8 AJMP EKEY SKEY5:MOV A,#00H MOV R2,A;存0列号 AJMP DKEY SKEY6:MOV A,#01H MOV R2,A;存1列号 AJMP DKEY SKEY7:MOV A,#02H MOV R2,A;存2列号 AJMP DKEY SKEY8:MOV A,#03H MOV R2,A;存3列号 AJMP DKEY
这样编键号有何好处?
规划:行扫描过程结束后(发现有键按下)得到的行号 存放在R0中,列号存放在R2中。
描述子程序为DECODE的 功能,出、入口参数?
出口: EKEY 键值(键号)在A中或? KEY: MOV P1,#0F0H ;令所有行为低电平 MOV ORL CPL JZ LCALL
SKEY: MOV MOV MOV MOV SKEY2:MOV MOV MOV MOV ORL CPL S123: JNZ
第0行的键值为: 0行×4+列号(0~3)为0、1、2、3; 第1行的键值为: 1行×4+列号(0~3)为4、5、6、7; 第2行的键值为: 2行×4+列号(0~3)为8、9、A、B; 第3行的键值为: 3行×4+列号(0~3)为C、D、E、F。 4×4键盘行首键号为0、4、8、C,列号为0,1,2,3。
然后通过输入口读取各列的电平。检测其中是否有变为低电 平的列线。若有键按下,则进而判别哪一列有键按下,确定 按键位置。
将第2行变为低电平,其余行为高电平时,输出编码为 1011。
判别是否有哪一列键按下的方法同上。
将第3行变为低电平,其余行为高电平时,输出编码为 0111。
判别是否有哪一列键按下的方法同上。
首先判别键盘中有无键按下: 由单片机I/O口向键盘送(输出)全扫描字,然后读入 (输入)列线状态来判断。方法是: 向扫描线(图中水平线)输 出全扫描字00H,把全部行线置为低电平,然后将回读线的 电平状态读入累加器A中。如果有按键按下,总会有一根列 线电平被拉至低电平,从而使列输入不全为1。 判断键盘中哪一个键被按下: 通过将扫描线逐行置低电平后,检查回读线输入状态。 方法是: 依次给扫描线送低电平,然后查所有回读线状态, 称行扫描。如果全为1,则所按下的键不在此行;如果不全 为1,则所按下的键必在此行,而且是在与零电平列线相交 的交点上的那个键。
图为8255A扩展I/O口的独立式按键接口电路。
PA
用三态缓冲器扩展的I/O口的按键接口电路。
MOV
DPTR,#0BFFFH
MOVX A,@DPTR
对独立式键盘编程,软件消抖,查询方式检测键的状态。仅 有一键按下时才有效才处理。
KEYIN: MOV DPTR,#0BFFFH ;键盘端口地址BFFFH
此公式是针对例图,若行、列与扫描线、回读线的对应关系 改变了,公式要改变。
键的位置码及键值的译码过程
按键扫描的工作过程如下: ① 判断键盘中是否有键按下; ② 进行行扫描,判断是哪一个键按下,若有键按下, 则调用延时子程序去抖动; ③ 读取按键的位置码; ④ 将按键的位置码转换为键值(键的顺序号)0、1、 2„、F。
MOVX A,@DPTR
ANL A,#1FH
;读键盘状态
;屏蔽高三位
MOV R3,A
LCALL DELAY10 MOVX A,@DPTR ANL A,#1FH
;保存键盘状态值
;延时10ms去键盘抖动 ;再读键盘状态 ;屏蔽高三位
CJNE A,R3,RETURN ;两次不同,抖动引起转RETURN ;确认是有键按下 CJNE A,#1EH,KEY2 ;相等,有键按下,不等转KEY2
通常,键盘工作方式有3种,即编程扫描、定时扫空闲时,才调用键盘扫描子程序,扫描键盘。 工作过程: 事先写好键盘扫描子程序,在主程序中的适当位置安 排调用子程序。如上所述,一旦有键按下,子程序会把键 值算好,放如A中,主程序中应有相应的程序去对键值作出 反应。 2. 定时扫描工作方式 利用单片机内的定时器,产生10ms的定时中断,在中断 服务程序中对键盘进行扫描。
LJMP PKEY1 KEY2: CJNE A,#1DH,KEY3 LJMP PKEY2 KEY3: CJNE A,#1BH,KEY4 LJMP PKEY3 KEY4: CJNE A,#17H,KEY5 LJMP PKEY4 KEY5: CJNE A,#0FH,PASS LJMP PKEY5 RETURN:RET
A,P1 A,#0FH A EKEY DEL20 ms
A,#00 R0,A R1,A R3 #0FEH A,R3 P1,A A,P1 R1,A A,#0F0H A