单片机原理与接口技术第5章显示与按键
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
for(i=0;i<120;i++);
}
main()
{ uchar k,m=0x80; //定义变量,m为字位码初值
P0=0xff;
//8个数码管全灭
P2=0x00;
while(1)
{for(k=0;k<8;k++)
{m=_crol_(m,1); //字位码循环左移
矩阵式键盘结构
矩阵式键盘又叫行列式键盘,其结构如图5-9 所示。图中有4根行线和4根列线,行线经限 流电阻接+5V电源上。按键跨接在行线和列 线上。4×4的行列结构可构成16个键的键盘, 与独立式键盘相比,键数相同时其引出线数 少,因此适用于键数较多的场合。
任务5-1 静态显示方式应用
1.目的与要求
独立式键盘与51单片机的接口
独立式键盘与单片机的接口如图5-8所示,独 立式键盘是直接用P1口线构成的单个按键电 路,其特点是每个按键单独占用一根I/O接口 线,每根I/O接口线上按键的工作状态不会影 响其他I/O接口线的工作状态,按键识别(编 程)简单;按键电路配置灵活,但占用较多 I/O接口线,适合8键以下使用
设计要求:利用单片机控制8个共阳极数 码管,采用动态显示方式稳定地显示不同的 字符1~8。显示效果为“12345678”。
2.电路设计
3.流程图和源程序设计
源程序如下:
#include <reg51.h>
//文件包含命令
#include <intrins.h>
Байду номын сангаас
#define uchar unsigned char //定义数据类型
1602液晶显示器的外形及引脚如图所示。
键的状态输入及去抖动
由于机械触点的弹性作用,触点在闭合和断 开瞬间的电接触情况不稳定,造成了电压信 号的抖动现象,如图所示。键的抖动时间一 般为5~10ms。这种现象会引起单片机对于 一次键操作进行多次处理,因此必须设法消 除键通断时的抖动现象。去抖动的方法有硬 件和软件两种。在键数较少时,可采用硬件 去抖,而当键数较多时,采用软件去抖。
点阵LED显示接口
LCD显示器结构及工作原理
物质有固态、液态、气态三种型态。液体分 子质心的排列虽然不具有任何规律性,但是 如果这些分子是长形的(或扁形的),它们的分 子指向就可能有规律性。于是可将液态又细 分为许多型态。分子方向没有规律性的液体 直接称为液体,而分子具有方向性的液体则 称之为“液态晶体”,又简称“液晶”, 英 文全称为Liquid Crystal Display
2.字段码
当LED显示器与单片机连接时,一般是将LED 各发光二极管的引脚a、b、…g、dp顺序接 到单片机的一个并行I/O口D0、D1、…D6、 D7。当从这个I/O口输出某个特定的数据时, 就能使LED显示器显示出某个字符
静态显示方式
所谓静态显示,就是每一位显示器的字段 控制线是独立的。当显示某一字符时,该数 码管显示器的各字段线和字位线的电平不变, 也就是各字段的亮灭状态不变。
P2=m;
//字位码送P2口
P0=dis[k+1];
//字段码送P0口
delayms(3);
//延时
}
}
}
任务5-4 1602液晶显示器的应用
1.目的与要求
通过对字符型液晶显示器的应用,掌握1602 液晶显示器与单片机的接口方法,理解LCD 显示控制程序的设计思路。
0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //字段码数组
void delay(uint t) //延时函数定义
{ int i,j;
for(i=0;i<t;i++)
for( j=0;j<120;j++);
}
void main()
{ uchar m;
#include <reg51.h>
//文件包含命令
#define uint unsigned int 据类型
//定义无符号整型数
#define uchar unsigned char 型数据类型
//定义无符号字符
ucharcode tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x 80,
//定义循环控制变量m
while(1)
{ for(m=0;m<8;m++) //循环8次,每次显 示2个字符
{ P0=tab[m];
P3=tab[15-m];
delay(1000);
}
}
}
任务5-2 动态显示方式应用
1.目的与要求
通过动态显示电路的设计与制作,掌握 动态显示方式的特点,字段码与字位码的确 定方法,单片机与多个数码管的连接方式以 及控制程序的编写。
静态显示方式下LED显示器的电路连接方 法是:每位LED的字位控制线(即共阴极点或 共阳极点)连在一起,接地或接+5V;其字段 控制线(a~dp)分别接到一个8位I/O口。 静态显示方式编程简单,但占用I/O口线多, 适合于显示器位数较少的场合。
动态显示方式
当LED显示器位数较多时,为了简化电路, 降低成本,将所有位的字段线对应并联, 由一个8位I/O口控制,而共阴极点或共阳 极点另由相应的I/O口线控制。每一个时刻 只选通其中一个LED,同时在段选口送出该 位LED的字段码,并保持一段延时时间,然 后选通下一位,直到所有位扫描完。这样 用两个8位I/O口能控制8位LED显示器。
#define uint unsigned int
uchar code dis[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8 ,0x80,0x90};
void delayms(uint x)
//定义延时函数
{uchar i;
while(x--)
通过静态显示电路的设计与制作,掌握静态 显示方式的特点、字符共阳极字段码的确定 方法、单片机与数码管的连接方式以及控制 程序的编写。
设计要求:在两位数码管上同时显示不同的 字符,循环显示0F,1E,2D,3C,4B,5A,69,78 字符。每两个字符的延时时间为1s左右。
电路设计
3.源程序设计