51单片机接口(并口串口人机接口)10
基于51单片机的人机接口电路设计(贺铁梅)2012.09.08

基于51单片机的人机接口电路设计一、功能描述键盘和显示是单片机应用系统中实现人机对话的一种基本形式,两种接口设计的好坏,直接影响到人机接口的友好程度。
在对一个系统进行操作时,往往离不开人与机器的对话,人机接口界面可以满足人与机器之间的交流。
可以通过按键将所需要信号与信息输入给系统,经过系统处理后,所期待的效果又可以通过屏幕来显示出来,这样就可以很好的达到人与机器的交流目的。
二、硬件电路图基于51单片机的人机接口电路如图1.1所示。
电路结构包括基本的复位电路、晶振电路、串口程序下载电路、键盘电路及屏幕显示电路。
图1.1 基于51单片机的人机接口电路设计显示电路键盘控制AT89C51图1 人机接口电路结构框图复位电路 晶振电路三、接口定义接口定义说明包括单片机的I/O 口的定义、中断的选择。
在键盘电路中引入了外部中断方式0,减少了CPU 的工作强度。
屏幕接口电路采用的是并行工作方式,51单片的的I/O 口较多,采用并行方式可以增大数据传输的速度,可以将信息实时显示。
具体接口定义如表1.1所示。
表1 A T89C51接口定义I/O 口 定义引脚号 引脚名 接口说明 备注 1~8 P1口 接矩阵键盘 10 RXD 接MAX232 11TXD 接MAX23212 /INT0 接74ls13四输入与非门输出引入中断21 P2.0 接屏幕的RST 22 P2.1 接屏幕的RS 23 P2.2 接屏幕的RW 24 P2.3 接屏幕的E32~38 P0口接屏幕的数据口DB0~DB7 中断类型 中断方式 按键中断中断方式0四、程序流程图1、主程序在主程序中,执行两个任务:1)初始化,键盘初始化,屏幕初始化;2)判断中断是否发生。
程序开始,进行初始化,若有中断发生,则屏幕有相应的显示;若无中断发生,则屏幕不显示或保留原显示,继续等待中断发生。
主程序流程图如图2.1所示。
2、初始化初始化函数主要包括键盘初始化和屏幕初始化。
单片机:第八章 51单片机IO接口

51单片机I/O接口
本章内容
8.1 P0-P3口的功能 (重点) 和内部结构(了解) 8.2 I/O口编程举例 (重点) 8.3 用并行口设计LED数码显示器 (掌握) 8.4 用并行口设计键盘电路 (掌握)
8.1 P0-P3口的功能和内部结构
(1)所谓双向,是既能做输入,又能做输出。
所谓准双向口,是指该端口在用作输入线时,必须先 写入“1”。 (2)内部结构是设计芯片时决定的,如果以后不设计单片 机,那么不必在意。只简单的了解即可。
g
d
(b) e
c
e
f
g
1 2 34 5
com ed c
dp
com
dp
xgf ed cba 0 1 0 1 1 0 1 1 =5bh
8.3 用并行口设计LED数码显示器
8.3 用并行口设计LED数码显示器
• (1)数码管显示方式
静态方式
动态方式
8.3 用并行口设计LED数码显示器
• (2)数码管译码方式
8.2 I/O口编程举例
• 解:4个开关对应4个LED灯,因此适合用字节的方式进行操作。
ORG 0000H
ABC: MOV P1, #0FH 的正确读入
;高四位灭,低四位送“1”,确保开关状态
MOV A, P1
;读P1口引脚开关状态至A
SWAP A
;低四位开关状态转换到高四位
ANL A, #0F0H
8.3 用并行口设计LED数码显示器
• (3)举例 –软件译码
【例8-3】 接有五个共阴极数码管的动态显示接口电路, P1.7接开关,当 开关打向位置“1”(GND)时, 显示“12345”字样,当开关打向 “2”(高电平)时,显示“HELLO”字样,试编写其程序。
51单片机串行通信接口

工 作 方 式 选 择 位
多允 机许 通接 信收 控控 制制 位位
发 接发接 送 收送收 数 数中中 据 据断断 第 第标标 九 九志志 位位
北京交通大学
18
各位功能说明如下: SM0 SM1:串口工作方式选择位
00 方式0: 同步移位寄存器 波特率=主振频率/12
01 方式1: 8位异步,波特率可变
⑵在双机通信中,该位作为奇偶校验位; ⑶在多机通信中用来表示D7-D0是地址帧或数据帧
即:
D8=0:表示数据帧; D8=1:表示地址帧
北京交通大学
20位是接收到的第9位数据。 方式1,SM2=0,停止位。方式0,不用。
⑵在多机通信中是地址帧(RB8=1)和数据帧 (RB8=0)的标识位。
北京交通大学
34
方式2、3的区别是:波特率设置不同 方式2的波特率是固定的。即:
波特率=fosc/32或fosc/64 方式3的波特率是可变的。即:
波特率 2smod
fosc
32 12 (256 X )
X
256
fosc (2s mod ) 384 波特率
北京交通大学
35
表1 波特率与时间常数
第6章 串行通信接口
本章主要内容 • 串行数据通信基本原理 • MCS-51单片机串行口 • 串行口应用举例
北京交通大学
1
一、串行数据通信基本原理
计算机的两种方式数据传送:并行和串行
并行传送的特点:
各数据位同时传送,传送速度快、效率高。
但需要的数据线多,因此传送成本高。并行数据
传送的距离通常小于30米。
3.直到停止位到来之后把它送入到RB8中,并 置位RI,通知CPU从SBUF取走接收到的一个字符。
51单片机串口设置及应用

51单片机串口设置及应用单片机的串口设置及应用是指通过单片机的串口功能来进行通信的一种方式。
串口通信是一种全双工通信方式,可以实现双向数据传输。
单片机通过串口可以与其他设备进行通信,如计算机、传感器、LCD显示屏等。
1. 串口设置:单片机的串口通信一般需要进行以下设置:(1)串口模式选择:要根据实际情况选择串口工作模式,一般有异步串口和同步串口两种。
(2)波特率设置:串口通信需要设置一个波特率,即数据传输速率。
常见的波特率有9600、19200、115200等,需要与通信的设备保持一致。
(3)数据位设置:设置传输的数据位数,常见的有8位、9位等。
(4)停止位设置:设置停止位的个数,常见的有1位、2位等。
(5)校验位设置:可以选择是否启用校验位,校验位主要用于检测数据传输的正确性。
2. 串口应用:串口通信在很多领域都得到广泛应用,下面列举几个常见的应用场景:(1)串口与计算机通信:通过串口可以实现单片机与计算机的通信,可以进行数据的读写、控制等操作。
例如,可以通过串口将传感器采集到的数据发送给计算机,由计算机进行进一步处理分析。
(2)串口与传感器通信:串口可以与各种传感器进行通信,可以读取传感器采集到的数据,并进行处理和控制。
例如,可以通过串口连接温度传感器,读取实时的温度数据,然后进行温度控制。
(3)串口与LCD显示屏通信:通过串口可以实现单片机与LCD显示屏的通信,可以将需要显示的数据发送给LCD显示屏进行显示。
例如,可以通过串口将单片机采集到的数据以数字或字符的形式显示在LCD上。
(4)串口与外部存储器通信:通过串口可以与外部存储器进行通信,可以读写存储器中的数据。
例如,可以通过串口读取SD卡中存储的图像数据,然后进行图像处理或显示。
(5)串口与其他设备通信:通过串口可以和各种其他设备进行通信,实现数据的传输和控制。
例如,可以通过串口与打印机通信,将需要打印的数据发送给打印机进行打印。
总结:单片机的串口设置及应用是一种实现通信的重要方式。
MCS-51单片机的人机界面接口技术知识讲解

Y
图
输入键号
A
返回
-
图 8
6 定 时 扫 描 方 式 程 序 框 图
-
图 8
7 中 断 方 式 键 盘 接 口
3.键盘扫描方式 扫描法:在判定有键按下后逐列(或逐行)置 低电平,同时读入行(或列)的状态,如果行 (或列)的状态出现非全1状态,这时0状态的行、 列交点的键就是所按下的键。特点是逐列(或逐 行)扫描查询。这时相应行(或列)应有上拉电 阻接高电平。 反转法:只要经过两个步骤就可获得键值。反 转法原理如图8-8所示。
l 硬件译码器LED显示器接口(如图8-14所示) l 软件译码LED显示器接口(如图8-15 ~8-16所 示)
图8-14 利用硬件译码器的七段LED接口电路
图8-15 通过8155扩展I/O口控制的 8位LED动态显示接口
-
图 8 16 动 态 显 示 子 程 序 流 程 图
返回本节
8.2.2 LCD显示器接口
电路。每根I/O口线上按键的工作状态不会影响 其他I/O口线的工作状态。独立式按键电路如图 8-1所示。 2.独立式按键的软件结构
包括按键查询、键功能程序转移。FP0~FP7 为功能程序入口地址标号,PROM0~PROM7分 别为每个按键的功能程序。
图8-2为使用扩展I/O的独立式按键电路,按键 数量可多可少。
a b c d e f Rdpa b c d e f Rdp a b c d e f Rdp a b c d e f Rdp a b c d e f Rdp
…
3.8
3.8
3.8
3.1 N位LED显示器
I/O(1)
I/O(2)
I/O(3)
I/O(4)
第15讲:MCS-51单片机系统的人机接口设计

单片机与控制技术
电气学院:胡学军
第06章:人机接口设计【教材第8章】
2、LED显示技术
LED显示器用于显示工业控制参数、 过程状态。 1)LED数码管 共阴极LED和共阳极LED 当LED字段引线与数据线连接,每个 显示字形对应一个字形码。
a
b
h
COM D7 D6 D5 D4 D3 D2 D1 D0 h g f e d c b a
LED的字形码(字段码)
显示字符 共阴极 共阳极
本讲小结
1、非编码键盘(独立式、行列式)的硬件与编程 2、七段LED的显示原理(静态显示、动态显示) 3、掌握利用8155扩展键盘和显示器的方法!(教材实例) 4、掌握利用8255扩展键盘和显示器的方法!(课后习题T5)
课后习题:
P252
D1
D2
D3
D4
D5
a f g e c d h
COM COM COM
显示缓冲区 地址 内容
b
7AH 7BH 7CH 7DH 7EH 7FH
D0 D1 D2
显示缓冲区与多位LED对应关系:
显示程序 DIS: MOV R0,#7AH ;指向显示缓冲区起始单元 MOV R3,#01H ;字位码初值→R3 MOV A,R3 ;取字位码 DLP: MOV DPTR,#PAAR;指向字位口 (PA口) MOVX @DPTR,A ;输出字位码,显示其中1位 MOV A,@R0 ;取一个显示数据 ADD A,#0CH ;查表偏移量 MOVC A,@A+PC ;取出字形码 INC DPTR ;指向字段口(PB口) MOVX @DPTR,A ;输出字形码 ACALL DLY1MS ;延时1ms INC R0 ;指向显缓区下一单元 MOV A,R3 ;修改字位码 RL A ;显示下一位 MOV R3,A JNB ACC.6,DLP ;未显示到最右边LED,继续显示 RET ;全部扫描一遍,结束 DTAB:DB 0C0H,0F9H,0A4H ;字形表 DB 0B0H,99H, DLY1MS:… ;延时1ms子程序
第5章 MCS–51单片机的接口与应用 99页 5.8M

(1) 用键盘连接的I/O线的二进制组合表示键码。例如用4行、
4列线构成的16个键的键盘,可使用一个8位I/O口线的高、低4 位口线的二进制数的组合表示16个键的编码,如图5.4(a)所示。 各键相应的键值为88H、84H、82H、81H、48H、44H、42H、 41H、28H、24H、22H、21H、18H、14H、12H、11H。这种键 值编码软件较为简单直观,但离散性大,不便安排散转程序的 入口地址。
第5章 MCS–51单片机的接口与应用 JNB ACC.2,K2 JNB ACC.3,K3 JNB ACC.4,K4 JNB ACC.5,K5 JNB ACC.6,K6 ;检测2号键是否按下,按下转 ;检测3号键是否按下,按下转 ;检测4号键是否按下,按下转 ;检测5号键是否按下,按下转 ;检测6号键是否按下,按下转
;0号键功能程序
;0号键功能程序执行完返回 ;0号键功能程序
JMP START
……………………… PROM7: ……………………… JMP START …
;1号键功能程序执行完返回
;7号键功能程序 ;7号键功能程序执行完返回
第5章 MCS–51单片机的接口与应用
5.1.4 行列式键盘
行列式键盘又叫矩阵式键盘。用I/O口线组成行、列结构, 按键设置在行列的交点上。例如4×4的行列结构可组成16个键 的键盘。因此,在按键数量较多时,可以节省I/O口线。 1.行列式键盘的接口 行列式键盘的接口方法有许多,例如直接接口于单片机的 I/O口上;利用扩展的并行I/O接口;用串行口扩展并行I/O口接 口;利用一种可编程的键盘、显示接口芯片8279进行接口等。 其中,利用扩展的并行I/O接口方法方便灵活,在单片机应用系
MOVX @DPTR,A
MCS-51单片机的人机接口

1.2 LED显示接口
显示接口是应用系统实时自动地向操作人员提供必要状态信息 的手段和途径之一,能使操作人员及时地观察到系统的运行情 况和对操作命令的响应结果
基于运行环境、可靠性、体积、功耗、成本等综合因素考虑, 发光二极管LED和数码管使用最为广泛,LCD以其显示信息丰 富也有较多应用
1.2.1 单个LED接口
所有情况
行反转法
可加快按键的识别速度 行线和列线所连接的并行端口都应是双向端口 先让连接行线的并行口工作在输出方式,让连接列线的并行口
工作在输入方式。通过程序向行线上全部送0,然后读入所有列 线的值。若有某键按下,必定某位列线值为0 之后,程序重新设置两个并行口的数据传输方向,并将刚才读 得的列线数据从列线所接并行口输出,然后读入所有行线的值
会自动增1或减1
状态标志位:指示LCD是否忙 光标/闪烁控制:用于控制光标是否显示和闪烁频率
1.3.2 LCD模块的CPU接口
LCD模块引线定义
引线号
符号
1 2 3 4 5 6 7~14
VSS VDD VEE RS R/W# E DB0~DB7
名称
功能
地 电源 液晶驱动电压 寄存器选择 读/写选择 片选
单片机原理与应用
人机接口
要了解系统的运行状态、适时干预系统处理过程 最常见的人机接口是键盘和显示器
键盘和显示电路通常由开发人员自行设计
1.1 键盘接口
利用按键可以向单片机输入数据和命令、选择系统功能 是人工操作介入单片机程序运行的主要手段 一组按键称为键盘 硬件上需要解决键盘与单片机的接口电路 软件则要实现对不同按键输入的识别解释功能
动态显示
将所有的段选线并联在一起,由一个8位输出口控制,而每位的 共阴极或共阳极点分别由单独的I/O口线控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
并行、串行接口
10.1 总线和接口
总线 (串行接口、并行接口)(同步,异步) 接口
串行通讯与并行通讯
发送方 数据准备好 数据D0~D7 接收方
8条数据线
数据收到
甲方 发送数据 接收数据
上图:并行单向通讯 下图:串行双向通讯
乙方 接收数据 发送数据
10.1 接口/存储器的扩展
常用译码器
图中E;E1;E2;E3;G1;G2均为使能控制端,可以连接到地址线, 也可以连接固定电平。当这些引脚“有效”时才能译码,否则 芯片输出高电平。ABCD连接低位地址。
3-8译码器举例
高3位地址用于译码, 可得8条选择线,每线 可以选择(64/8=8) 8KB的地址范围: Y0选择0000H~1FFFH;
线选法地址重叠及避免方法
MCU
芯片1 CS
P2.5 P2.6 P2.7
芯片2 CS
芯片3 CS
芯片1地址:110X,XXXX,XXXX,XXXX,起始地址: C000H,最高2位必须保证是1,避免与其它芯片 冲突。末地址:DFFFH 芯片2地址:101X,XXXX,XXXX,XXXX,起始地址: A000H,A15,A13必须是1,避免与其它芯片冲突。 末地址必须小于C000H。 芯片3地址:011X,XXXX,XXXX,XXXX,起始地址: 6000H,A14,A13必须是1,避免与其它芯片冲突。 显然末地址必须小于A000H 上面所说的“必须/保证”由软件完成,如果违反 规定,则可能同时不止访问一个芯片。 常用的0000H~05FFH地址在这里是禁止使用的。 从本例可以看出,线选法比较浪费地址,但是不 需要的地址浪费了也无所谓。其优点是少用一个 译码器。
传送程序,内部RAM30H~3FH单 元置初值00H~0FH,然后传送到 外部RAM(6264)的0000H~000FH 单元中,再将0000H~000FH中内 容求和送到P1口显示。 Org 0000h AJMP main Org 0030h
Main: Mov r0,#10h Mov a,#0 Mov r1,#30h WriAga: mov @r1,a inc a inc r1 djnz r0,WriAga 转移
并口的扩展举例
左边两图使用8D锁存器扩展输出并口 右边图使用8位三态门作为输入并口。74LS245也是三态门。 注意三者CS的使用;73LS377可以免去一个或门。或门作为“负逻 辑与门”使用。
RAM 的扩展
地址 控制时序 编程
RAM 的扩展
根据前面的电路原理图,编写数据
如图,采用8051做CPU,请给出RAM的地址,如果 将#30H放如RAM的第一个单元,如何编写程序
线选法
由于单片机通常不需要太多的扩展,往往只需 扩展2~3个芯片即可,因此没有必要使用译码 器。 直接使用P2.X连接到CS,称为“线选法” 线选法客观上会导致“地址重叠”,软件上需 要考虑不去访问重叠地址。译码法没有这个问 题。
并口应用中已经介绍了地址/数据总线的扩 展,本节举例应用要点。 数据线D0~D7(P0口AD0~AD7),8位 地址线A0~A15(P074LS373=A0~A7,P2=A8~A15) 控制线: CS/CE,WR/RD(OE) ALE
WR RD (PSEN):数据流方向 CS/CE引脚称为“片选:Chip Select”或者“芯 片使能:Chip Enable”.CPU将其用于选中芯片 以确定访问对象,它通常代表一个地址范围, 由“地址译码器”提供。 ALE 地址数据分离信号
Y1选择2000H~3FFFH;
Y2选择4000H~5FFFH;
对于存储器RAM 6264或EPROM 2764;E2PROM 2864,地址A0~A12 可以直接连接到存储器的地址线,Yi连接到CS就行了。对于某些芯片, 它们不需要太多的地址线时,我们只需连接低位地址。例如8255,只 需连接A0和A1就行。
串行通讯基本概念
串行通讯方式分为:单工、双工、半双工。 串行通讯模式分为:同步通讯和异步通讯。
串行通讯方式的
单工、双工、半双工
TXD TXD RXD TXD RXD TXD RXD
RXD
TXD RXD
TXD
RXD
串行通讯的同步模式(位同步)
串行数据
同步时钟
写入并行数据
D Q 同步时钟
CK
地址设计和推导
1. 2.
设计:
确定各芯片地址范围,以最大容量芯片作为参考。 设计高位地址连接译码器的方法。
1. 2. 3. 4.
推导: (分析图纸)
推导地址时,按译码器连接方法将高位地址用二进制的0/1表达出来。 连接到芯片的地址用0000…和1111…表达出来。 没有连接芯片的地址用XXXX…表达。 将2进制地址码换算成16进制地址。换算时,XXXX…一般理解为 0000…。作地址范围推导时,先设为0000…看作起始地址,1111…看 作末地址。
(2)在扩展外部ROM时,用控制信号PSEN, 而在扩展外部RAM时,用控制信号RD和WR。 (3)在选用外接存储器时,应注意ALE信号 与锁存器选通信号的配合。
CS/CE的产生和使用
目的:将64K地址分配给多个芯片使用,各个芯片占用不同的地址 段。(51单片机I/O和存储器采用统一编址) 被扩展的芯片,无论是存储器还是接口都有相应引脚CS/CE ,其 意义是:1.选中此芯片,CPU要对其进行访问。2.它代表地址信息。 CS/CE一般为低电平有效。 地址分配方法(产生CS/CE的方法)有两种,经典方法是使用 “译码器”;单片机还可以使用“线选法”。 使用译码器译码,称为“译码法”。常用的译码器有:双二四译 码器74LS139,三八译码器74LS138,四十六译码器74LS154。 使用高位地址线直接作为CS/CE使用,称为“线选法”。
10.2 并行总线的发展(简介)
测控专用总线 GPIB PXI VXI
测控系统组成技术的发展
总线技术发展
1. GPIB 结构
控制图
硬件结构
优点 结构简单 使用便利 抗干扰 缺点 传输速度低 体积大 无法同步触发
2. VXI 结构
优点 开放 高速传输 灵活 体积小 缺点 价格高
异步通讯数据格式
波特率:数据传送速率BPS,即“位/每秒” 空闲:高电平,宽度不限 起始位:低电平,1位宽度 数据位数:通常是8位,还可设为:6位;7位和9 位等。 数据顺序:通常D0先发,也可以反过来D7先发。 数据逻辑:通常是正逻辑,也有使用负逻辑的 休止位:高电平,1~1.5位宽度 以上全部并含三个“通常”都是默认的,除非特殊 强调。
校验
同步方式分为软件同步和硬件同步 软件同步是一种连续传送(块/包)方式,字节间不需要起始位, 休止位,因而节约传送时间。 同步字符用于判断数据开始,现代通讯还包含了“传输速率”的 信息。 接受方利用“同步字符”校准锁相环电路从而产生自适应的接收 波特率。 这种方式具有异步通讯不需要移位时钟的特点,又有“块方式” 特点,因此传输效率高,自适应能力强。 硬件同步是利用同步时钟信号同步 数据格式通常称为“通讯协议”,不同公司开发的产品使用的协 议可能不同。例如同步帧/字符位数,代码等。
2.
UART电路可以集成在MCU中,也可以是独立芯片。例如常
见的独立芯片UART有:Ins 8250;Intel8251;MC6850; MC6852;Z80SIO等。它们通常需要外接波特率发生电路:振荡 器+分频器。
同步方式
同步字符 同步字符 数据长度
数据
数据
…………
3. PXI
优点: 传输速度快,兼容PCI
特点
并行通讯一次传送1字节(1BYTE),串行通 讯一次传送一位(1Bit)。 并行通讯需要大量导线(>10),串行通讯需 要线路少(1~3)。 通过改善通讯线路驱动方式,传送距离和传送 速度上,串行通讯都远远大于并行通讯。
51 单片机的3总线结构
读写时序
P0 ALE 373出 P2
A0~A7 A8~A15 A0~A7 A8~A15 A0~A7 A8~A15 D0~D7 A0~A7 D0~D7 A0~A7 D0~D7 A0~A7
• 74LS373 是一种“透明”的8D锁存器,当LE引脚为 “高”时,输出=输入。低电平时锁定数据。 • Intel 8282 类似,但引脚不一样。 • 不能用其它锁存器代替。
; r0为循环计数器 ; ; r1为片内RAM地址指针
;写片内RAM一个单元 ;地址指针加1 ;循环计数器减1,不等于0,
mov mov mov
dptr,#0 r2,#10h r0,#30h
;DPTR为片外RAM地址指针 ;r2为循环计数器 ; r0为片内RAM地址指针
;读片内RAM一个单元 ;写入外部RAM一个单元 ;片外RAM地址指针加1 ;片内RAM地址指针加1 ;循环计数器减1,不等于0,转移
扩展电路可以是存储器,也可以是接口芯片。 存储器: 6116(2K),6264(8K),62256(32K),2716(2K),27 64(8K),27256(32K)…… 接口:8255,8253,8279,8259,8251…以 及ADC0809,0804,DAC0832,AD75176……
地址推导举例
图中:A15,A14为限定状态,只有 它们全为0时,译码器才能译码, 因此在表中写0。