单片机与液晶显示器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
独立键盘
Vcc
k0
k1 k2 k3 k4 k5 k6 k7
10K
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
独立键盘原理图
团结 信赖 创造 挑战
说明 :采用轮询方式查询P1口,采用延时法消除键盘抖
动 ----------------*/
case 0x01:
key1(); //键盘1功能函数。
团结 信赖 创造 挑战
团结 信赖 创造 挑战
LED数码管和单片机的连接1
P2.0
P2.7
单片机
P0.0
a b c d e f g dp
+5v
P0.7
静态连接
a b c d e f g dp
+5v
编程:(以共阳极为例)
MOV P2,#11111001B(0F9H)
MOV )
P0,#10100100B(0A4H
单片机与液晶显示器
团结 信赖 创造 挑战
• 1.多位LED显示 • 2.键盘管理模块 • 3.点阵、字符液晶显示器 • 4.字模提取软件
团结 信赖 创造 挑战
LED的工作原理
(a)典型的七段式LED器件 (b) 共阳极LED (c) 共阴极LED
团结 信赖 创造 挑战
四位数七段LED数码管模块 (左为正面图、右为背面图)
case 0x20:
void main(void)
key6();//键盘6功能函数。
{
break;
unsigned char key;
case 0x40:
while(1)
key7(); //键盘7功能函数。
{ P1=0xff; //要想从P1口读数据必须先给P1口写1 key=P1; //读入P1口的数据,赋值给变量key if(key!=0x00) //判断是否有键按下,当没有键按下时 ,P1口的数据为0x00
电路的接法决定了必须采用逐位扫描显示方式。
即从段选口送出某位LED的字型码,然后选通该位LED, 并保持一段延时时间。然后选通下一位,直到所有位扫 描完。
团结 信赖 创造 挑战
静态、动态显示方式总结
静态显示连接
所有LED的位选均共同连接到+VCC或GND,每个LED的8根段选 线分别连接一个8位并行I/O口。
#include <reg51.h>
break;
/******************************** 函数名称:delay() 功能:用于键盘消抖的延时函数 说明:无 入口参数:无 返回值 :无
case 0x02: key2();//键盘2功能函数。
break;
case 0x04: key3(); //键盘3功能函数。
原理简单;显示无闪烁;占用I/O资源较多。
• 动态显示连接
– 所有LED的段选线共同连接在一起共用一个 8位I/O口 – 而每个LED的位选分别由一根相应的I/O口线控制。 – 因此必须采用动态扫描显示方式。
团结 信赖 创造 挑战
例:74ls164+led(proteus)
团结 信赖 创造 挑战
动作按键 Key 0 Key 1 Key 2 Key 3 Key 4 Key 5 Key 6 Key 7 Key 8 Key 9 Key A Key B Key C Key D Key E Key F
无按键按下
团结 信赖 创造 挑战
4×4键盘扫描电路
团结 信赖 创造 挑战
1. 行扫描法的原理 基本原理: 分行扫描
动作按键 Key 0 Key 1 Key 2 Key 3 Key 4 Key 5 Key 6 Key 7 Key 8 Key 9 Key A Key B Key C Key D Key E Key F
无按键按下
团结 信赖 创造 挑战
高电平扫描-按下“0”键
团结 信赖 创造 挑战
高电平动作键盘动作分析表
SJMP $ 静态显示
团结 信赖 创造 挑战
LED数码管和单片机的连接2
a
P2.0
b
c
d
e
f
g
P2.7
dp
单片机
P0.0 P0.1 P0.2 P0.3
想一想:和静态连接的区别在哪里?
团结 信赖 创造 挑战
P2.0
P2.7
单片机
怎样实现显示呢?
a b c d e f g dp
P0.0 P0.1 P0.2 P0.3
X3 X2 X1 X0 0 00 1 0 01 0 0 10 0 1 00 0 x xx x
Y3 Y2 Y1 Y0 0 00 1 0 01 0 0 10 0 1 00 0 0 00 1 0 01 0 0 10 0 1 00 0 0 00 1 0 01 0 0 10 0 1 00 0 0 00 1 0 01 0 0 10 0 1 00 0 0 00 0
X3 X2 X1 X0 1 11 0 1 10 1 1 01 1 0 11 1 x xx x
Y3 Y2 Y1 Y0 1 11 0 1 10 1 1 01 1 0 11 1 1 11 0 1 10 1 1 01 1 0 11 1 1 11 0 1 10 1 1 01 1 0 11 1 1 11 0 1 10 1 1 01 1 0 11 1 1 11 1
检查是否有键按下 若有,确定哪个键被按下
团结 信赖 创造 挑战
break;
********************************/
ca百度文库e 0x08:
void delay()
key4();//键盘4功能函数。
{
break;
unsigned char i;
case 0x10:
for (i=400;i>0;i--);
} // 主函数 main()
key5(); //键盘5功能函数。 break;
矩阵式键盘控制
团结 信赖 创造 挑战
4x4 键盘的内部结构
团结 信赖 创造 挑战
市售一体成型的4x4键盘
正面
背面
X0 X1 X2 X3 Y3 Y2 Y1 Y0
Y0 Y1 Y2 Y3 X3 X2 X1 X0
团结 信赖 创造 挑战
低电平扫描-按下“0”键
团结 信赖 创造 挑战
低电平动作键盘动作分析表
break;
case 0x80: key8();//键盘8功能函数。 break; default:break;
{ delay(); //延时去抖 key=P1; //再次读入P1口的数据,赋值给变量key
} } }
if(key!=0x00) //再次判断是否有键按下}
switch(key)
{
团结 信赖 创造 挑战