键盘与数码管显示器接口电路
最新-数码管显示驱动和键盘扫描控制器CH451及其应用 精品
数码管显示驱动和键盘扫描控制器CH451及其应用摘要介绍一种新型的键盘显示驱动芯片451的性能特点和工作原理,给出了451键盘显示驱动芯片与-51单片机的接口方法与相应的软件驱动程序。
关键词键盘显示控制;单片机;451单片机在开发过程中,常常会因为资源不足而不得不大量扩展接口芯片以满足应用系统的需要,其中原因之一是人机界面中的键盘显示占用了系统太多资源,从而造成系统庞大,同时降低了系统的可靠性。
在单片机应用系统中,键盘显示通常可采用以下几种方式1采用并行接口的键盘显示专用芯片8279。
但8279所需外围元件多显示驱动、译码等、占用电路板面积大、综合成本高,在中小系统中常常大材小用;2采用通用并行I/O芯片扩展如用8155等,但此方案同样需要驱动显示,同时键盘显示扫描还需占用CPU大量时间;3采用专用显示控制器,并用CPU的I/O引脚完成键盘输入如MC14499、PS7219、MAX7219、ICM7218、TLC5921等,大多是串行接口并有显示驱动能力,I/O占用少。
这种接口方式省去了显示的扫描,而且电路大多也很简单,通常在系统需要的按键较少时比较适用;4采用带I2C总线的键盘显示芯片如显示用SAA1064,键盘用PCF8574,不过这种方式对于无I2C总线接口的CPU来说,编程显得有些不便;5采用串行接口的键盘显示专用芯片,如BC7280/81、HD7279、CH451等。
这类芯片占用CPU的资源少,传输速度较快,外围器件要求也较少,在中小系统中都可得到广泛的应用。
BC7280/81与HD7279中已有介绍,本文着重介绍CH451的主要特性及接口应用方法。
1CH451的功能与引脚介绍CH451是一个整合了数码管显示驱动和键盘扫描控制以及μP监控的多功能外围芯片。
CH451内置RC振荡电路,可以直接动态驱动8位数码管或者64位LED,具有BCD译码或不译码功能,可实现数据的左移、右移、左循环、右循环、各数字独立闪烁等控制功能。
1-单片机键盘与显示电路设计
独立式按键 单片机控制系统中,往往只需要几个 功能键,此时,可采用独立式按键结构。 1.独立式按键结构 独立式按键是直接用I/O口线构成的单 个按键电路,其特点是每个按键单独占 用一根I/O口线,每个按键的工作不会影 响其它I/O口线的状态。独立式按键的典 型应用如图9-3所示。
V CC
P 1.0 P 1.1 P 1.2 P 1.3 P 1.4 P 1.5 P 1.6 P 1.7
P1口某位结构
P1口电路中包含有一个数据输出锁存器、一个三态数据输入缓冲器 、一个数据输出的驱动电路。 P1口的功能和驱动能力
P1口只可以作为通用的I/O口使用;
P1可以驱动4个标准的TTL负载电路; 注意在P1口作为通用的I/O口使用时,在从I/O端口读入数据时,应 该首先向相应的I/O口内部锁存器写“1”。 举例:从P1口的低四位输入数据 MOV MOV P1,#00001111b ;;先给P1口底四位写1 A,P1 ;;再读P1口的底四位
依此规律循环,即可使各位数码管显 示将要显示的字符。虽然这些字符是在不 同的时刻分别显示,但由于人眼存在视觉 暂留效应,只要每位显示间隔足够短就可 以给人以同时显示的感觉。 采用动态显示方式比较节省I/O口,硬 件电路也较静态显示方式简单,但其亮度 不如静态显示方式,而且在显示位数较多 时,CPU要依次扫描,占用CPU较多的时 间。
矩阵式按键 单片机系统中,若使用按键较多时,通 常采用矩阵式(也称行列式)键盘 1.矩阵式键盘的结构及原理 矩阵式键盘由行线和列线组成,按键位 于行、列线的交叉点上,其结构如下图9-4 所示。
+5 V 0 4 8 12 0 1 5 9 13 1 2 6 10 14 2 3 7 11 15 3 0 1 2 3
单片机实验报告——矩阵键盘数码管显示
单片机实验报告信息处理实验实验二矩阵键盘专业:电气工程及其自动化指导老师:***组员:明洪开张鸿伟张谦赵智奇学号:152703117 \152703115\152703118\152703114室温:18 ℃日期:2017 年10 月25日矩阵键盘一、实验内容1、编写程序,做到在键盘上每按一个键(0-F)用数码管将该建对应的名字显示出来。
按其它键没有结果。
二、实验目的1、学习独立式按键的查询识别方法。
2、非编码矩阵键盘的行反转法识别方法。
3、掌握键盘接口的基本特点,了解独立键盘和矩阵键盘的应用方法。
4、掌握键盘接口的硬件设计方法,软件程序设计和贴士排错能力。
5、掌握利用Keil51软件对程序进行编译。
6、会根据实际功能,正确选择单片机功能接线,编制正确程序。
对实验结果能做出分析和解释,能写出符合规格的实验报告。
三、实验原理1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。
2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。
3、识别键的闭合,通常采用行扫描法和行反转法。
行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。
行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。
然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。
这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。
由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。
TM1650_V1.0专业数码管驱动
1特性描述TM1650是一种带键盘扫描接口的LED (发光二极管显示器)驱动控制专用电路。
内部集成有MCU 输入输出控制数字接口、数据锁存器、LED 驱动、键盘扫描、辉度调节等电路。
TM1650性能稳定、质量可靠、抗干扰能力强,可适用于24小时长期连续工作的应用场合。
功能特点两种显示模式:8段×4位和7段×4位段驱动电流大于25mA,位驱动电流大于150mA 提供8级亮度控制键盘扫描:7×4bit内部集成三极管驱动 高速两线式串行接口 内置时钟振荡电路 内置上电复位电路 支持2.8V-5.5V电源电压 提供DIP16及SOP16封装 适用领域:✧ 家用电器产品如机顶盒、空调、DVD/VCD等显示的驱动。
内部结构框图2管脚信息管脚功能端口I/O 功能描述名称管脚 DIG1 1 O LED段位驱动输出1/键盘扫描输出1 DIG2 5 O LED段位驱动输出2/键盘扫描输出2 DIG3 6 O LED段位驱动输出3/键盘扫描输出3 DIG4 7 O LED段位驱动输出4/键盘扫描输出4 SCL 2 I 数据输入端 SDA 3 I 时钟输入端A/KI1 8 O/I LED段驱动输出A/按键扫描输入KI1 B/KI2 9 O/I LED段驱动输出B/按键扫描输入KI2 C/KI3 11 O/I LED段驱动输出C/按键扫描输入KI3 D/KI4 12 O/I LED段驱动输出D/按键扫描输入KI4 E/KI5 13 O/I LED段驱动输出E/按键扫描输入KI5 F/KI6 14 O/I LED段驱动输出F/按键扫描输入KI6 G/KI7 15 O/I LED段驱动输出G/按键扫描输入KI7 DP/KP 16 O LED段输出DP/键盘标志输出KP GND 4 - 逻辑地 VDD10-逻辑电源在干燥季节或者干燥使用环境内,容易产生大量静电,静电放电可能会损坏集成电路,天微电子建议采取一切适当的集成电路预防处理措施,如果不正当的操作和焊接,可能会造成ESD 损坏或者性能下降, 芯片无法正常工作。
51单片机键盘数码管显示(带程序)
期中大作业学院:物理与电子信息工程学院课题:【利用8255和51单片机实现数码管显示按键数值的程序】要求:【4*4矩阵键盘,按0到15,数码管上分别显示0~9,A~F】芯片资料:8255:8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
8255特性:1.一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。
2.具有24个可编程设置的I/O口,即3组8位的I/O口,分别为PA口、PB口和PC 口。
它们又可分为两组12位的I/O口:A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3)。
A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O三种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定.引脚说明RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:芯片选择信号线,当这个输入引脚为低电平时,即CS=0时,表示芯片被选中,允许8255与CPU进行通讯;CS=1时,8255无法与CPU做数据传输。
RD:读信号线,当这个输入引脚为低电平时,即CS=0且RD=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:写入信号,当这个输入引脚为低电平时,即CS=0且WR=0时,允许CPU将数据或控制字写入8255。
8155可编程并行IO扩展接口实验
实验八、8155可编程并行I/O扩展接口实验一、实验目的1.熟悉8155并行接口芯片的基本工作原理及应用2.掌握单片机与8155的接口电路设计和编程二、实验设备1.仿真器2.8155可编程并行I/O扩展接口模块3.单片机最小系统模块4.数码管动态扫描显示模块5.矩阵式键盘模块三、实验要求连接单片机最小系统、8155扩展接口实验模块、数码管动态扫描显示模块、矩阵式键盘模块,要求在键盘按下时,8位LED动态显示器上最低位显示相应的字符,以前的各位字符向高位推进1位。
四、实验原理8155芯片内包含有256字节RAM,2个8位、1个6位的可编程并行I/O口,和1个14位定时器/计数器。
由于8155既具有RAM又具有I/O口,因而是单片机系统中最常用的外围接口芯片之一。
4.1引脚说明8155共40个引脚,采用了双列直插的封装,主要引脚功能如下:◆AD7—AD0:地址数据总线;单片机和8155之间的地址、数据、命令、状态信息都是通过它来传送的。
◆CE:片选信号线,低电平有效。
◆RD:存储器读信号线,低电平有效。
◆WR:存储器写信号线,低电平有效。
◆ALE:地址及片选信号锁存信号线,高电平有效。
在下降沿时将地址及片选信号锁存到器件中。
◆IO/M:IO接口与存储器选择信号线,高电平选择I/O,低电平选择存储器。
◆PA7—PA0:A口输出/输入线。
◆PB7—PB0:B口输出/输入线。
◆PC5—PC0:C口输出/输入或控制信号线,用作控制信号时其功能如下:◆PC0:A INTR(A口中断信号线)◆PC1:A BF(A口缓冲器满信号线)◆PC2:ASTB(A 口选通线)◆PC3:B INTR(B口中断信号线)图8-1 8155引脚与逻辑图◆PC4:B BF(B口缓冲器满信号线)◆PC5:BSTB(B 口选通线)表8-1 地址与寄存器映射◆TIMER OUT:定时器/计数器输出端;◆RESET:复位信号线。
◆8155引脚与逻辑如图8-1所示。
8255扫描键盘、显示实验
实验九8255扫描键盘、显示实验一.实验要求利用8255可编程并行口做一个扫描键盘实验,把按键输入的键码,显示在由8279控制的七段数码管上。
8255PA口做键盘输入线,PB口作扫描线。
二.实验目的1.掌握8255编程方法。
2.掌握扫描键盘和显示的编程方法。
三.实验电路及连线CS8255接8500H,则命令字地址为8506H,PA口地址为8500H,PB口地址为8502H,PC口地址为8504H。
CS8279接8700H,则8279的状态口地址为8701H; 8279的数据口地址为8700H;模块中的十个短路套都套在8255侧。
四.实验说明在PA口与PB口组成的64点阵列上,把按键接在不同的点上,将得到不同的键码,本实验采用8×2的阵列,共可按16个键。
显示部分由8279控制,由7407驱动8位数码管显示。
五.实验程序框图主程序框图读键显示部分框图六.实验程序:D8255 EQU 8506H ;8255状态/数据口地址D8255A EQU 8500H ;8255 PA口地址D8255B EQU 8502H ;8255 PB口地址Z8279 EQU 8701H ;8279状态口地址D8279 EQU 8700H ;8279数据口地址DISPTR EQU 08H ;当前显示位置KEYVAL EQU 09H ;读到的键码ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HLCALL DELAY ;延时MOV DISPTR,#30H ;显示缓冲区头指针MOV DPTR,#D8255MOV A,#90H ;置8255状态;方式0,PB,PC口输出,PA口输入MOVX @DPTR,AMOV DPTR,#Z8279 ;置8279命令字MOV A,#0D3HMOVX @DPTR,A ;清LED显示MOV A,#00HMOVX @DPTR,AMOV A,#38HMOVX @DPTR,AMOV A,#0D1HKB_DIS:LCALL RD_KB ;读键盘MOV A,#0FFHCJNE A,KEYVAL,DISBUF ;判读到键SJMP KB_DIS ;没有则继续读键DISBUF:LCALL DISP ;把键移入显存LCALL DELAY ;延时消抖LCALL DELAYSJMP KB_DISDISP: ;显存依次前移MOV R1,#31H ;在最后加入新键值MOVE:MOV A,@R1DEC R1MOV @R1,AINC R1INC R1CJNE R1,#38H,MOVEMOV 37H,KEYVALMOV KEYVAL,#0FFHMOV DPTR,#Z8279MOV A,#90HMOVX @DPTR,AMOV R0,#08HMOV R1,#30HMOV DPTR,#D8279LP: MOV A,@R1MOVX @DPTR,AINC R1DJNZ R0,LPRETRD_KB: ;键盘扫描MOV A,#02H ;扫描第一行MOV DPTR,#D8255BMOVX @DPTR,AMOV DPTR,#D8255AMOVX A,@DPTRMOV R1,#00HCJNE A,#0FFH,KEYCAL ;判键是否按下MOV A,#01H ;扫描第二行MOV DPTR,#D8255BMOVX @DPTR,AMOV DPTR,#D8255AMOVX A,@DPTRMOV R1,#08HCJNE A,#0FFH,KEYCALSJMP NOKEY ;无键按下KEYCAL: ;计算键码MOV R0,#08HSHIFT:RRC AJNC CALCINC R1DJNZ R0,SHIFTCALC: ;换算显示码MOV DPTR,#DL_DATMOV A,R1MOVC A,@A+DPTRMOV KEYVAL,ARETNOKEY: MOV KEYVAL,#0FFH ;返回无键标志RETDELAY: MOV R0,#0H ;延时子程序DELAY1: MOV R1,#0HDJNZ R1,$DJNZ R0,DELAY1RETDL_DAT: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;0,1,2,3,4,5,6,7DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;8,9,A,B,C,D,E,FEND实验十8279显示实验一.实验要求编制程序,利用8279及键盘显示接口电路,编程实现按键的读取,并将按键值显示在数码管上。
键盘输入与七段数码管显示实验
;查第 5 行无键按下,转查第 6 行 ;第 5 行有键按下,行首键码#05H 送(A) ;转求键码
;查第 6 行无键按下,转查第 7 行 ;第 6 行有键按下,行首键码#06H 送(A) ;转求键码
实 才知道原因,原来是我们那设备箱没有初始化好。后来在老师的指导下,我
验 们把设备箱设置好后,终于做出了结果。也达到了实验目的。①.学会利用
总 8255 扩展 I/O 口;
结
②.掌握行列式键盘、7 段数码显示器接口的设计方法,验证 7 段数码管
显示原理;
③.通过软硬件结合,了解单片机应用中软硬件的相依性。 总的来说,这次实验让我收获颇多啊,锻炼了我独自想考和动手的能力。
;查第 2 行无键按下,转查第 3 行
.
MOV A, #02H
AJMP LKP
LTHR: JB ACC.3, LFOU
MOV A, #03H
AJMP LKP
LFOU: JB
ACC.4, LFIV
MOV A, #04H
AJMP LKP
LFIV: JB
ACC.5, LSIX
MOV A, #05H
AJMP LKP
MOV A, #00H
;第 0 行有键按下,行首键码#00H 送(A)
AJMP LKP
;转求键码
LONE: JB
ACC.1, LTWO
;查第 1 行无键按下,转查第 2 行
MOV A, #01H
;第 1 行有键按下,行首键码#01H 送(A)
AJMP LKP
;转求键码
LTWO: JB
ACC.2, LTHR
单片机原理及接口技术(C51编程)单片机的开关检测、键盘输入 与显示的接口设计
5.2.1 开关检测案例1
图5-3 开关、LED发光二极管与P1口的连接
5.2.1 开关检测案例1
参考程序如下: #include <reg51.h> #define uchar unsigned char void delay( ) {
uchar i,j; for(i=0; i<255; i++) for(j=0; j<255; j++); }
5.1.2 I/O端口的编程举例
03 用循环左、右移位函数实现
OPTION
使用C51提供的库函数,即循环左移n位函数和循环右
移n位函数,控制发光二极管点亮。参考程序:
#include <reg51.h> #include <intrins.h> 函数的头文件 #define uchar unsigned char void delay( ) {
5.1.2 I/O端口的编程举例
#include <reg51.h> #define uchar unsigned char uchar tab[ ]={ 0xfe , 0xfd , 0xfb , 0xf7 , 0xef , 0xdf , 0xbf , 0x7f , 0x7f , 0xbf , 0xdf , 0xef , 0xf7 , 0xfb , 0xfd , 0xfe }; /*前8个数据为左移点亮 数据,后8个为右移点亮数据*/ void delay( ) {
// P1口为输入 // 读入P1口的状态,送入state // 屏蔽P1口的高6位
5.2.2 开关检测案例2
switch (state) {
// 判P1口低2位开关状态
第9章 MCS-51与键盘、显示器的接口设计
MCS-51与键盘、显示器的接口设计9.1LED显示器接口原理9.2 键盘接口原理9.1 LED显示器接口原理单片机应用系统中使用的显示器主要有:⏹发光二极管显示器,简称LED(Light Emitting Diode);⏹液晶显示器,简称LCD(Liquid Crystal Display);⏹CRT显示器LED 数码管的结构:①共阳与共阴@单片机系统扩展LED 数码管时多用共阳LED:0”)点亮的,要求驱动功率很小;而共阴数码管段笔画是用高电平(“0”)点亮的,要求驱动功率较大。
公共阳极h g f e d c b aa b c dg ef h公共阴极h g f e d c b aa b c dg ef hh g f …… a h g f …… a高电平点亮低电平点亮接高电平LED 显示器结构和字段码关系D7D6D5D4D3D2D1D0dp g f e d c b a当LED 显示器与单片机连接时,一般是将LED 各发光二极管的引脚a 、b 、…g 、dp 顺序接到单片机的一个并行I/O 口上。
共阳LEDa b cdg ef hP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5VAT89C51显示字形dp g f e d c b a共阳极段选码共阴极段选码0 1 2 3 4 5 6 7 8 9 A B C D E F “灭”1100000011111001101001001011000010011010100100101000001011111000100000001001000010001000100000111100011010100001100001101000111011111111C0HF9HA4HB0H99H92H82HF8H80H90H88H83HC6HA1H86H8EHFFH3FH06H5BH4FH06H6DH7DH07H7FH6FH77H7CH39H5EH79H71H00H 共阴极和共阳极7段LED段选码(字型码)二、LED显示器工作原理⏹在微机应用系统中使用LED显示块构成N位LED显示器。
键盘输入与LCD显示原理
200Ω×8
g
d
dp
b
e
c
8155
0
1
2
3
4
a 5
f
6
PA0~PA7
电路的接法决定了必须采用逐位扫描显示方式。 即从段选口送出某位LED的字型码,然后选通该位LED, 即从段选口送出某位LED的字型码,然后选通该位LED, 并 保持一段延时时间。然后选通下一位,直到所有位扫描完。
要注意的两个问题:
1.字型码通常通过查表指令MOVC来求得. 1.字型码通常通过查表指令MOVC来求得. 2.换位显示时通常要加一段程序使所有的LED全灭. 2.换位显示时通常要加一段程序使所有的LED全灭.
com
com
例:模拟产品计数显示电路
段 显
编 程
ORG 1000H STAR:MOV TMOD,#60H ;定时器T1工作在方式2计数 MOV TH1,#00H ;T1置初值 MOV TL1,#00H MAIN:MOV P1,#0C0H ;数码管显示0 DISP:JB P3.3,DISP ;监测按键信号 ACALLDELAY ;消抖延时 JB P3.3,DISP ;确认低电平信号 DISP1:JNB P3.3,DISP1 ;监测按键信号 ACALLDELAY ;消抖延时 JNB P3.3,DISP1 ;确认高电平信号 SETB TR1 ;启动计数器 DISP2:MOV A,TL1 MOVC A,@A+DPTR ;查表获取数码管显示值 MOV P1,A ;数码管显示计数值 CJNE A,#8E,DISP2 LJMP STAR TAB:0C0H,0F9H,0A4H … … DELAY:MOV R2,#14H DELAY1:MOV R3,#0FAH DJNZ R3,$ DJNZ R2,DELAY1 RET END
汇编数码显示及键盘实验实验报告
数码显示及键盘实验【实验内容】1、数码管显示0-72、独立按键识别【需要了解的知识】1、GPIO设定2、数码管动态扫描显示原理,键盘扫描工作原理,输入与输出及其处理【实验预习】仔细预读实验指导电子文档的实验六、七及其前面的实验流程【实验设备】Keil C51软件、ICE52 仿真驱动、MEFlash编程软件、USB驱动程序【实验过程】实验一数码管显示0-7实验任务:1)先将“0-7”数码管的段码值写入存储器中,使8位数码管从右至左显示0-7.实验步骤:1)首先在硬盘上建立一个文件夹;2)启动Keil C51软件;3)执行Keil C51软件的菜单“Project|New Project……”,弹出一个名为“Create New Project”的对话框。
输入工程文件名,选择保存路径uv2后缀,点击“保存”按钮;4)紧接着弹出“Options for Target‘Target 1’”,为刚才的项目选择ATMEL的AT89S52的CPU。
选择之后,点击“确定”按钮;5)接下来弹出一个对话框提示你是否要把标准8051的启动代码添加项目中去,此时,点击“否”按钮;6)执行菜单“File|New……”,出现一个名为“Text1”的文档。
接着执行菜单“File|Save”弹出一个名为“Save As”的对话框,将文件名改为“.asm”后缀,然后保存;7)添加源程序文件到工程中,一个空的源程序文件建成。
单击Keil C51软件左边项目工作窗口“Target1”上的“+”,将其展开。
然后右击“Source Group1”文件夹弹出下拉菜单,单击其中的“Add Files to Group‘Source Group1’”项;8)在弹出的对话框中先选择文件类型为“Asm Source file(*.s*;*.src;*.a*)”,这时对话框内创建的空的源程序文件已经出现在项目工作窗口的“Source Group1”文件夹中;输入源程序代码;9)点击工具栏“Options for target”按钮,弹出一个对话框,定义“Xtal”为11.0592.下面依序是存储模式、程序空间大小等设置,均用默认值即可。
基于单片机的键盘和LED数码管工作原理
基于单片机的键盘和LED数码管工作原理单片机是一种集成电路芯片,它包含了中央处理器、存储器和各种输入输出接口等核心功能。
而键盘和LED数码管则是单片机中常用的输入和输出设备之一键盘通常由多个按键组成,每个按键对应一个电路开关。
当按键按下时,电路闭合,形成通路,使电流流过。
按键抬起时,电路断开,通路被切断。
在单片机的键盘应用中,常用的键盘有矩阵键盘和独立按键两种。
矩阵键盘是将多个按键排列成矩阵的形式,通过行和列两个方向上的电极连接到单片机的输入输出引脚上。
当一些按键按下时,对应的行和列的电极会形成电路,单片机通过扫描行和列的方式,来检测按键的状态。
具体的工作原理如下:1.单片机通过输出行电平信号,将每行的引脚设置为输出模式,并将行的电平拉低;2.单片机通过输入列电平信号,将每列的引脚设置为输入模式,并开启输入状态;3.单片机依次扫描每行,检测是否有按键按下;4.如果有按键按下,则表示该行对应的列电平会被单片机检测到;5.单片机根据行和列的组合,确定按下的按键。
独立按键则是将每个按键对应的引脚直接连接到单片机的输入引脚上,按键按下时,直接检测到引脚的电平信号。
LED数码管是一种显示设备,它由多个LED组成,可以用于显示数字、字母和符号等信息。
在单片机的LED数码管应用中,常见的数码管有共阳和共阴两种类型,在工作时,需要通过单片机的输出引脚来控制数码管的亮灭。
共阳数码管的工作原理如下:1.单片机通过输出引脚产生一个高电平信号,与数码管的相应位相连接;2.当输出引脚电平为高时,该位的LED被通电,发出光亮;3.当输出引脚电平为低时,该位的LED断电,熄灭。
共阴数码管的工作原理与共阳相反:1.单片机通过输出引脚产生一个低电平信号,与数码管的相应位相连接;2.当输出引脚电平为低时,该位的LED被通电,发出光亮;3.当输出引脚电平为高时,该位的LED断电,熄灭。
通常,为了达到流水灯效果或同时显示多位数字,需要使用多个输出引脚来控制多个LED数码管。
单片机键盘显示接口电路设计
单片机键盘显示接口电路设计设计单片机键盘显示接口电路,需要考虑到键盘输入与显示输出两个方面。
以下是一个简单的设计示例,供参考:键盘通常采用矩阵键盘连接电路的方式,通过扫描矩阵的方式读取键盘输入信息。
以下是矩阵键盘接口电路的设计流程:1.确定键盘的规格和类型:键盘一般有正方形、矩形、圆形等几种形状,需要根据键盘的规格和类型选择适合的扫描方式。
2.确定键盘的逻辑矩阵大小:根据键盘的布局和规格,确定键盘的逻辑矩阵的行和列数,例如4行4列。
3.确定键盘的连接方式:键盘的连接方式一般有行列扫描、列行扫描、行列+列行扫描等几种方式,需要根据键盘的输出信号特点和单片机的输入要求进行适当的选择。
4.设计按键输入的译码电路:将键盘的输出信号通过译码电路解码成易于读取的二进制数,以便单片机的输入端口读取。
显示输出接口电路设计一般有两种方式:数码管和液晶显示。
1.数码管显示电路设计:数码管是通过控制各个数码管的段选和位选,实现数字或字符的显示。
以下是数码管显示电路的设计流程:a.确定显示的数字或字符类型:根据设计需求,确定要显示的数字或字符类型,例如整数、小数、字母等。
b.确定数码管的位数和类型:根据显示需求,确定数码管的位数和类型,有共阴数码管和共阳数码管两种类型,需要选择适合的数码管。
c.设计数码管的译码电路:根据数码管的类型和位数,设计数码管的译码电路,将输入的数字或字符转换为控制各个数码管的段选和位选的电信号。
2.液晶显示电路设计:液晶显示器是一种常见的显示设备,通过控制液晶的极性来实现图形和字符的显示。
以下是液晶显示电路设计的流程:a.确定显示的内容类型:根据设计需求,确定要显示的内容,例如字符、图像等。
b.选择适合的液晶显示器:根据显示的内容和要求,选择适合的液晶显示器,有字符型液晶显示器和图形型液晶显示器两种类型。
c.设计液晶的驱动电路:根据液晶显示器的类型和特性,设计液晶的驱动电路,将输入的数字或字符转换为控制液晶的电信号。
键盘显示器接口
4
10.1.2 LED数码管工作原理 图10-3所示为显示4位字符的LED数码管的结构原理
图。N位位选线和8 N条段码线。段码线控制显示字型, 而位选线控制着该显示位的LED数码管的亮或暗。
图10-3 4位LED数码管的结构原理图
5
LED数码管有静态显示和动态显示两种显示方式。 1.LED静态显示方式
另一种是采用专用的键盘/显示器接口芯片,这类芯片 中都有自动去抖动的硬件电路。
12
10.2.2 键盘的工作原理 键盘可分为两类:非编码键盘和编码键盘。 非编码键盘是利用按键直接与单片机相连接而成,这种 键盘通常使用在按键数量较少的场合。使用这种键盘,系 统功能通常比较简单,需要处理的任务较少,但是可以降 低成本、简化电路设计。按键的信息通过软件来获取。 1.非编码键盘 常见的为两种结构:独立式键盘和矩阵式键盘。 (1)独立式键盘 特点是:一键一线,各键相互独立,每个键各接一条 I/O口线,通过检测I/O输入线的电平状态,可容易地判断 哪个按键被按下,如图10-8所示。
KEY1: MOV C,P1.1;读P1.1的按键状态 JC KEY2 ;P1.1为高,该键未按下,跳KEY2, ;判下一个键 LJMP PKEY1 ;P1.1的键按下,跳PKEY1处理
17
KEY2: MOV C,P1.2 JC KEY3
LJMP PKEY2 KEY3: MOV C,P1.3
…… …… KEY7: MOV C,P1.7 JC RETURN
一种软件延时,本思想是:在检测到有键按下时,该键 所对应的行线为低电平,执行一段延时10ms的子程序后, 确认该行线电平是否仍为低电平,如果仍为低电平,则确 认该行确实有键按下。当按键松开时,行线的低电平变为 高电平,执行一段延时10ms的子程序后,检测该行线为 高电平,说明按键确实已经松开。采取本措施,可消除两 个抖动期t1和t3的影响。
按键控制1位LED数码管显示0-9
单片机课程设计姓名:陈素云班级:09电力方向2班学号:200920305340设计题目:按键控制1位LED数码管显示0-9 设计要求:通过单片的I/O口与LED数码管所构成的单片机系统的软件编程,使学生掌握简单的单片机系统的设计,同时初步学全用汇编语言和C语言两种方式编程的基本方法。
学生必须采用单片机AT89C51为LED显示屏的控制为核心,分别置“1”或“0”,让某些段的LED 发光,其它的熄灭,然后达到显示不同的字符和图符号的目的. 学生根据前期设计的步骤按照设计报告内容的具体要求,选择前期设计的一个典型题目,写出详尽的课程设计报告,重点内容包括方案论证、完整的电路图、软件系统流程图及开发程序、组装调试内容和总结等。
目录第1节引言 (3)1.1 LED数码显示器概述 (3)1.2 设计任务 (5)1.3设计目的 (6)第2节AT89C51单片机简介 (6)2.1 AT89C51单片机 (6)2.2 单片机管脚图 (7)2.3管脚说明 (7)2.4振荡器特性 (9)第3节设计主程序与硬件电路设计 (9)3.1设计的主程序 (10)3.2系统程序所需硬件 (10)3.2.1所需的硬件 (10)3.2.2所需硬件的结构图 (11)3.3 硬件电路总连接图 (12)第4节程序运行过程 (12)4.1分析步骤 (12)4.2 程序执行过程 (13)第5节程序运行结果 (13)总结参考文献第1节引言还记得我们小时候玩的“火柴棒游戏”吗,几根火柴棒组合起来,能拼成各种各样的图形,LED数码管显示器实际上也是这么一个东西。
在单片机系统中,常常用LED数码数码管显示器来显示各种数字或符号。
LED 数码显示器是单片机嵌入式系统中经常使用的显示器件。
一个“8”字型的显示模块用“a、b、c、d、e、f、g、h” 8 个发光二极管组合而成。
每个发光二极管称为一字段。
LED 数码显示器有共阳极和共阴极两种结构形式。
由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。
基于TM1620的数码管驱动电路
基于TM1620的数码管驱动电路TM1620 是一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部集成有MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。
本产品性能优良,质量可靠。
主要应用于VCR、VCD、DVD 及家庭影院等产品的显示屏驱动。
TM1620最大的有点简单好用,硬件电路简单,不需要限流电阻,亮度软件可调,芯片内部自带扫描电路,只需要将要显示的内容写入寄存器,即可稳定显示,非常方面。
驱动代码如下:TM1620.c文件#include "TM1620.h"sbit STB = P2^5;sbit CLK = P2^6;sbit DIO = P2^7;unsigned char const dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};// 显示段码值0123456789-static void delay5us(void) //误差-0.026765046296us{uint8 a;for(a=12;a>0;a--);_nop_(); //if Keil,require use intrins.h}void TM16_Wdata(uint8 dat){uint8 i;CLK = 1;DIO = 1;for(i=0;i<8;i++){CLK = 0;DIO = (bit)(dat&0x01);delay5us();CLK = 1;dat>>=1;delay5us();}CLK = 1;DIO = 1;}void TM16_Wcmd(uint8 cmd){STB = 0;TM16_Wdata(cmd);STB = 1;delay5us();}void Init_TM1620(void){TM16_Wcmd(0x02);TM16_Wcmd(0x44);}void Display(uint16 num,bit sw,uint8 point){uint8 i;if(num>9999){for(i=0;i<4;i++){STB = 0;TM16_Wdata(0xC0+6-2*i);//计算地址TM16_Wdata(dofly[10]);STB = 1;}}else{for(i=0;i<4;i++){STB = 0;TM16_Wdata(0xC0+6-2*i);//计算地址if(3-i == point-1){TM16_Wdata(dofly[num%10]|0x80);}else{TM16_Wdata(dofly[num%10]);}num /= 10;STB = 1;}}if(sw){TM16_Wcmd(0x88);}else{TM16_Wcmd(0x80);}}TM1620.h文件#ifndef __TM1620_H_#define __TM1620_H_#include "STC12C5A.h"#define DIS_MODE_D0#define DIS_MODE_H 1void Init_TM1620(void);void Display(uint16 num,bit sw,uint8 point);void Display_limit(uint16 num,bit mode,bit flicker);#endif。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1k +5V
a S
GN
b
D
1k
1 UA
3
Q
2
4
UB
6
5
软件上采取的措施是在检测到有按键按 下时,执行一个10ms左右(具体时间应视 所使用的按键进行调整)的延时程序,再 确认该键电平是否仍保持闭合状态电平, 若仍保持闭合状态电平,则确认该键处 于闭合状态;同理,在检测到该键释放 后,也应采用相同的步骤进行确认,从 而消除抖动的影响。
2. 矩阵式键盘
单片机系统中,若使用按键较多时,通常采用矩阵 式键盘,其结构如下图所示。由图可知,一个4×4的行、 列结构,可以构成一个含有16个按键的键盘,节省了很 多I/O口。 控制方式:先判断是否有键按下。
如有,再判断哪一键按下,并得到 键码值,然后根据键码值转向不同 的功能程序。 矩阵式结构键盘比独立式按键要复 杂,识别也要复杂一些。最常用的 识别方法是键盘扫描法。
为了克服按键触点机械抖动所致的检测误判, 必须采取去抖动措施,可从硬件、软件两方面 予以考虑。在键数较少时,可采用硬件去抖; 而当键数较多时,采用软件去抖。
在硬件上可采用在键输出端加R-S触发器(双稳态触发 器)或单稳态触发器构成去抖动电路,如下图所示是 一种由R-S触发器构成的去抖动电路,当触发器翻转 时,触点抖动不会对其产生任何影响。键盘输出经双 稳态电路之后变为规范的矩形方波。
第二节键盘与数码管显示器接口电路
1 键盘接口电路 2 数码管显示器 3 LCD显示器及其应用
一、键盘接口电路
键盘是单片机应用系统中人机交流不可缺少的 输入设备。
键盘由一组规则排列的按键组成,一个按键实 际上是一个开关元件。键盘通常使用机械触点 式按键开关,其主要功能是把机械上的通断转 换为电气上的逻辑关系(1和0)。
3. 键盘设计应注意的问题
机械式按键在按下或释 放时,由于机械弹性作 用的影响,通常伴随有 一定时间的触点机械抖 动,然后其触点才稳定 下来。其抖动过程如右 图所示,抖动时间的长 短与开关的机械特性有 关,一般为510ms。
键按下
前沿抖动
后沿抖动
闭合 稳定
在触点抖动期间检测按键的通与断状态,可能 导致判断出错,即按键一次按下或释放被错误 地认为是多次操作。系统设计中如果开关脉冲 是作为外部中断触发信号或要对开关脉冲进行 计数时,这种情况是不允许出现的。
********** 左移 ******************************* A0: MOV DPTR, #TAB ; 左移常数表首地址送DPTR ACALL DISP SJMP START
********* 右移 ******************************** A1: MOV DPTR, #TAB1 ; 右移常数表首地址送DPTR ACALL DISP SJMP START
程序设计流程图如下图所示。
ORG 0000H MOV SP, #60H MOV P2, #00H MOV P1, #0FH
START: JNB P1.0, A0 ; 如P1.0键按下,就跳至A0 JNB P1.1, A1 ; 如P1.1键按下,就跳至A1 JNB P1.2, A2 ; 如P1.2键按下,就跳至A2 JNB P1.3, A3 ; 如P1.3键按下,就跳至A3 SJMP START
常见的种类有:独立式按键和矩阵式键盘。
1. 独立式按键
结构如下图所示,其特点是每个按键单独占用 一根I/O口线,每个按键工作不会影响其他I/O口 线的状态。多用于所需按键不多的场合。可采用 JNB(或JB)来查询哪一个按键按下,并转向相应的 功能处理程序。
JNB P1.0, A0 ;如P1.0键按下,就跳到A0 JNB P1.1, A1 ;如P1.1键按下,就跳到A1 JNB P1.2, A2 ;如P1.2键按下,就跳到A2 JNB P1.3, A3 ;如P1.3键按下,就跳到A3 JNB P1.4, A4 ;如P1.4键按下,就跳到A4 JNB P1.5, A5 ;如P1.5键按下,就跳到A5 JNB P1.6, A6 ;如P1.6键按下,就跳到A6 JNB P1.7, A7 ;如P1.7键按下,就跳到A7
【例2】 信号灯控制电路如下图所示,其 功能是当按下不同的键时发光二极管有 不同的亮灭规律。按1号键LED从左到右 依次亮,按2号键从右到左依次亮,按3 号键闪烁,按4号键呈流水追逐效果。
解:电路图中P1口分别接了4个开关,每个开关 都有相对应的功能,当某一开关闭合时,相应 的口线变为低电平,而其他口线依然为高电平, 因此,可以用4条JNB指令对开关状态进行检测。 如果某一按键按下,则跳转执行其所对应的控 制功能。八个发光二极管经74LS04接P2口,主 要因单片机的驱动能力较差,故用74LS04来加பைடு நூலகம்大驱动能力。P2口输出控制信号控制发光规律。
********* 闪烁 ******************************** A2: MOV DPTR, #TAB2 ; 闪烁常数表首地址送DPTR ACALL DISP SJMP START
******** 流水追逐 ***************************** A3: MOV DPTR, #TAB3 ; 流水追逐常数表首地址送DPTR ACALL DISP SJMP START
ORG 0000H CLR P1.0
NEXT: SETB P1.1 JB P1.1, L1 SETB P1.0 SJMP NEXT
L1 : CLR P1.0 SJMP NEXT END
; 使发光二极管灭 ; 先对P1.1写"1" ; 开关断开,跳至L1 ; 开关合上,发光二极管亮
; 开关断开,发光二极管灭
独立式键盘应用实例
【例1】 监视某开关S,用发光二极管LED显示开 关状态,如果开关闭合,LED亮;如果开关断 开,LED灭。
解:设计电路图如下图所示。开关接P1.1,当开 关断开时,P1.1为+5V,对应数字量为“1”; 开关闭合时,P1.1为0V,对应数字量为“0”, 这样就可以用JB指令对开关状态进行检测。 P1.0输出“1”,LED亮。当P1.0输出“0”,LED 两端电压相等,熄灭。 参考程序如下: