单片机接口技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VSS VDD VO RS R/W
E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7
A
K
RS:数据和指令选择控制端,RS=0:命令/状态;RS=1:数据 R/W:读写控制线,R/W=0:写操作;R/W=1:读操作
E:数据读写操作控制位,E线向LCD模块发送一个脉冲, LCD模块与单片机之间将进行一次数据交换
键盘和显示器综合应用 停车场计数器
•硬件设计
•软件设计
硬件电路设计
显示部分
计数部分
实际电路多数采用传感器,这里用按键模拟代替
停车场计数器程序设计
编写程序的基本思路
•主程序完成单片机的初始设定、初始显示等 •两个按键可采用查询或者中断方式,本例子采用中 断方式
各段功能程序地址确定
MAIN主程序流程
LCD模块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
VSS VDD VO RS R/W
E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7
A
K
A:背光控制正电源
K:背光控制地
LCD模块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
微功耗、体积小、显示内容丰富、超薄轻巧。
这里介绍的字符型液晶模块是一种用5x7点阵图形来 显示字符的液晶显示器,根据显示的容量可以分为1行16 个字、2行16个字、2行20个字等等,这里以常用的2行16 个字的1602液晶模块来介绍它的编程方法。
任务:如何在LCD的指定位置显示出 指定的字符以及字符串。
0 1 1 DL
S/C R/L * * N F * *
A5 A4 A3 A2 A1 A0
1 A6 A5 A4 A3 A2 A1 A0
BF AC6 AC5 AC4 AC3 AC2 AC1 AC0
读BF和AC
写数据 读数据
数 数
据 据
return
指令名称
清屏 归home位
输入方式设置 显示状态设置 光标画面滚动
如:写清屏命令字、写DDRAM光标定位地址命令字
显示数据 ——写数据子程序 读入状态字——读状态子程序
1. 写命令
读写操作、屏幕和光标的操作都是通过指令编程来实现
清除屏幕---01H ,光标复 位到地址00H位置
指令名称
清屏
归home位
输入方式设置 显示状态设置 光标画面滚动 功能设置
CGRAM地址设置 DDRAM地址设置
2. 行列(矩阵)式非编码键盘接口及处理 程序
用于较多按键,节省I/O线。 判断是否有健按下: •向列线输出全扫描字00H。 •读入行线状态。若行线有0, 则有键按下;若行线全1,则 无键按下。 KS: MOV MOV CPL ANL RET P1, #0FH A, P1 A A, #0FH
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P7.7
P1.4 P1.5 P1.6 P1.7
例:键盘扫描程序
SERCH: MOV MOV LINE0: MOV MOV MOV JB MOV AJMP LINE1: JB MOV AJMP LINE2: JB MOV R2,#0EFH R3,#00H A,R2 P1,A A,P1 ACC.3,LINE1 A,#00H TRYK ACC.2,LINE2 A,#04H TRYK ACC.1,LINE3 A,#08H LINE3:
控制信号
RS RW
D7 D6
控制代码
D5 D4 D3 D2 D1 D0
0
0 0 0 0 0 0 0 0 1 1
0
0 0 0 0 0 0 0 1 0 1
0
0 0 0 0 0 0
0
0 0 0 0 0 1
0
0 0 0
0
0 0 0
0
0 0 1
0 0 1
0 1 *
光标复位。光标返 回到地址00H
1 I/D S D C B
第七章 单片机接口技术
第一节 键盘接口 第二节 显示器接口
第三节 A/D转换器接口
第四节 D/A转换器接口
89C51
图7-1 89C51应用系统框图
7.1 键盘接口
非编码键盘:按键的动作靠软件识别 编码键盘:硬件电路识别按键动作,并产生按 键的键值或编号
89C51
按下:P1.0输入低电平0
于位数较少的场合。 D0 D1 74LS D2 273 D3 D4 D5 D6 D7 CLK + MOV A,#0FFH ;显示‘8’ MOV DPTR,#0FEFFH; P2.0=0 MOVX @DPTR,A a b c d e f g h
P0
共阴 LED
com
WR P2.0
LED显示方式:
与静态显 示区别?
控制信号
RS RW 0 0 0 0 0 0 0 0 0 0
D7 D6
控制代码
D5 D4 D3 D2 D1 D0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 1
0 0 0 1
0 0 1 0 1 * 1 I/D S D C B
光标和显示模式设置。I/D: 光标移动方向,1:右移,0: 左移; S:屏幕上所有文字 是否左移或者右移。S=1: 移位 S=0:不移位
动态显示
连接:将各个显示器的输入 (段选)线并联,由一个I/O口 提供字形代码;由另一个I/O口 提供位选代码。 显示:采用软件扫描显示方法, 某个时刻只点亮1个显示器, 点亮时间不超过20ms,分时 逐个点亮LED。
逐位扫描 显示方式
与静态显示相比,特点: 节省硬件电路及I/O资源; 占用CPU时间多; 亮度相对较低; 适用于LED位数较多的场合。
LCD模块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
VSS VDD VO RS R/W
E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7
A
K
DB0~DB7:数据线,可以用8位连接,也可以只用高 4位连接,节约单片机资源,本实验中采用的是八位 连接方法。
6位共阴LED。利用8155的PA口(假设地址7F01H)作为位选,75452反 相驱动;PB口(7F02H)作为段选,7407同相驱动。在片内RAM中设一 显示缓冲区40H~45H,依次存放要显示的6个字符(高4位清0,即00~ 09H,0A~0FH)。反复调用显示子程序。
DIS: MOV MOV MOV LP0: MOV MOVX INC MOV ADD MOVC MOVX ACALL DEC R0,#45H R2,#01H A,R2 DPTR,#7F01H @DPTR,A DPTR A,@R0 A,#0DH A,@A+PC @DPTR,A DIMS R0 A,R2 ACC.5,LP1 A R2,A LP0 3FH,06H,5BH,… ;显示代码表格 ;位选端口PA ;输出位选代码 ;段选端口PB ;取显示字符 ;加偏移量 ;查表得显示字符的代码 ;输出显示 ;调用延时子程序 ;修改显示缓冲区指针 ;修改位选指针 ;判断是否全部显示一次? ;没有,则左移一位 ;显示缓冲区首址 ;位选初始值
松开:P1.0输入高电平1
抖动-去抖
按键产生机械抖动, 一次按键被误读为多 次按键
•硬件去抖:利用RS触发器
•软件去抖:检测到键动作,延 时5~10ms,再次读键,确认 真正有键按下
1. 独立式非编码键盘接口及处理程序
为什么 P1口写 1? MOV A,#0FFH MOV P1,A MOV A,P1 JNB ACC.0,KEY0 JNB ACC.1,KEY1 ……… 假设为P1口 独立式非编码键盘
由发光二极管组成,分共阳、共阴两种。
LED显示器如何显示出指定数字/字符?
COM接低电平(共阴极), COM接高电平(共阳极);
COM接低电平; 各输入端输入一个显示代码,如 5BH=01011011,对应c,f灭, 而a,b,d,e,g点亮,则LED显示字 符“2” 显示各种字符的代码见下表。对 于共阳极LED,将显示代码取反。 若显示小数点,可利用D7位。
主程序 中断初始化 初始车数设为0 设置查表首地址 十位显示(P2口) 个位显示(P0口)
进车中断子程序
模拟“进车”按键按下后
出车中断子程序
DEC
总结
通过静态显示和独立式按键完 成了一个应用系统的设计。 实际系统通常需传感器。
二、LCD液晶显示器
Liquid Crystal Display
S/C R/L * *
功能设置
CGRAM地址设置 DDRAM地址设置
0
0 0 0 1 1
0
0 0 1 0 1
0
0
0
1
1 DL N
F * *
A5 A4 A3 A2 A1 A0
1 A6 A5 A4 A3 A2 A1 A0
BF AC6 AC5 AC4 AC3 AC2 AC1 AC0
设整体显示开关(D), 光标显示开关(C),光 标位的字符闪耀(B) D=1;C=0;B=0 00001100——0cH
只有当单片机空闲时才调用键盘扫描子程序
定时扫描方式
利用定时器的溢出中断请求,每隔一定的时间对键
盘扫描一次
中断扫描方式
提高CPU的效率,当键盘上有键闭合时产生中断
请求
7.2 显示器接口
LED
LCD
点阵双色显示屏 LED16数段码管
7.2 显示器接口
一、Light Emitting Diode
读数据操作(可以把显示存储 区中的数据反读出来)
二、单片机与字符型LCD模块接口
数据线: DB7~DB0接 单片机的 P1.7 ~P1.0
控制端:
RS ~ ~P3.0 R/W ~ ~P3.1 E ~ ~P3.2
return
三、LCD接口程序设计
程序设计
功能设置 ——写命令子程序 LCD初始化:按一定顺序写命令字
40H 41H 42H 43H 44H 45H
01h 02h 01h 06h 03h 00h
MOV JB RL MOV SJMP LP1: RET DB
通用键盘显示器接口芯片8279
实现对键盘和显示器的自动扫描 识别闭合键的键号 完成显示器的动态扫描,节约CPU的时间
通用键盘显示接口芯片8279
NROW:
TRYK: BACK:
AJMP JB MOV AJMP INC MOV RL JNB MOV AJMP ADD RET
TRYK ACC.0,NROW A,#0CH TRYK R3 A,R2 A ACC.0,BACK R2,A LINE0 A,R3
单片机对非编码键盘的控制
程序控制扫描方式
LCD模块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
VSS VDD VO RS R/W
E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7
A
K
RS 0
R/W 0
操作 写命令操作(初始化、光标定 位等)
0 1
1
1 0
1
读状态操作(读忙标志) 写数据操作(要显示内容)
A bFra Baidu bibliotek
2行×16列
Hello world
主要内容
1. 2.
3.
TC1602A LCD模块引脚及结构 单片机与字符型LCD模块接口 LCD接口程序设计
一、TC1602A LCD模块引脚及结构
LCD模块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
VSS VDD VO RS R/W
行列式非编码键盘
; 全扫描字0送P1高4位,设置P1低4位为输入 ;读入P1口状态(行线) ;变正逻辑,P1.0-3高电平表示有键按下 ;屏蔽高4位 ;返回,A不为0表示有键按下
列扫描法:依次将列线送低电平,逐个检查行线 状态,确定按键在某行某列交叉的点上,取得键 值,执行相应程序。
P1.0 P1.1 P1.2 P1.3
E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7
A
K
Vss: +5V电源管脚(Vcc) VDD: 地管脚(GND)
Vo: 液晶显示驱动电源(0V~5V)
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源 时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一 个10K的电位器调整对比度。
D0 D1 D2 D3 D4 D5 D6 D7
1 1 0 1 1 0 1 0
a b c d e f g h
共阴 LED
com
限流电阻
字型表
LED显示方式
静态显示: 电路解法:所有LED的位选均共同 连接到+VCC或GND,每个LED的8 根段选线分别连接一个8位并行 I/O口,从该I/O口送出相应的 字型码显示字型。 CPU送出一个显示代码,LED一直 显示该字形,直到送下一个代 码才改变显示字形。 特点:原理简单;显示亮度强,无 闪烁;占用I/O资源较多。 常用