程序的主流程如图1所示。
图1 程序的主流程
程序主要分为两个部分:一个部分不停地监测是否有按键按下,另一个部分查看哪一个键按下。
在初始状态下,4个列输出端口输出低电平,即RD0~RD3输出低电平,然后持续监测4个行输入端口RD4~RD7的状态是不是高电平。
如果没有按键按下,则RD4~RD7的状态是高电平;如果有按键按下,则被按下的键对应的行输入端口的电平就会被拉低,RD4~RD7会有低电平出现,对4个行输入端口RD4~RD7的电平的监测即为对按键的监测。
在4个行输入端口RD4~RD7上出现低电平时,就转到查询程序SEE。键盘扫描子程序流程如图2所示,按键查询子程序流程如图3所示。
图2 键盘扫描子程序流程
图3 按键查询子程序流程
查询程序SEE分以下5个步骤。
· 在4个列输出端口RD0~RD3上输出,判断哪一个端口输入低电平。
· 在4个列输出端口RD0~RD3上输出0111,查看4个行输入端口RD4~RD7是否有低电平出现;如果有低电平出现,则可以确定哪个键按下,跳出查询程序:否则进入下一项。
· 在4个列输出端口RD0~RD3上输出1011,查看4个行输入端口RD4~RD7是否有低电平出现;如果有低电平出现,可以确定哪个键按下,并跳出查询程序;否则进入下一项。
· 在4个列输出端口RD0~RD3上输出1101,查看4个行输入端口RD4~RD7是否有低电平出现;如果有低电平出现,可以确定哪个键按下,跳出查询程序;否则进入下一顼。
· 在4个列输出端口RD0~RD3上输出1110,查看4个行输入端口RD4~RD7是否有低电平出现;如果有低电平出现,可以确定哪个键按下,跳出查询程序;否则进入下一项。
程序清单如下。
(1)主程序。
完成初始化,对4×4的键盘输入进行扫描,然后将其输入通过端口D的低4位输出,显示时先闪两下再输出。
(2)键盘扫描子程序。
TEST为出口参数,若有键按下则子程序返回时teST=0FFH,若没有键按下,则子程序返回时TEST=0。
(3)按键查询子程序。
当有按键按下时,运行该程序。VALUE中存放被按下的按键的键值,S0~515的键值为0~15。
(4)延时自程序。
COUNT1存放外部循环次数,COUNT2存放内部循环次数。
关键字:PIC单片机 人机接口
引用地址:
PIC单片机人机接口模块4×4行列式键盘的程序设计
推荐阅读最新更新时间:2024-05-02 21:47
PIC单片机的中断资源及应用
摘要: PIC系列单片机是美国Microchip技术公司推出的8位嵌入式控制器。它以其控制速度高、工作电压低、功耗小及性价比高等优点而备受青睐。本文以PIC16CXX系列单片机为例介绍了PIC单片机中断资源的特点、应用及应用中应注意的问题,并给出了具体的应用源程序。
关键词: PIC单片机 中断资源 中断源 唤醒
1 PIC单片机简介
PIC系列单片机是美国Microchip技术公司推出的高性能价格比的8位嵌入式控制器(Embedded Controller),它采用了精简指令集计算机RISC(Reduced Instruction Set Computer)和哈佛(H
[工业控制]
PIC单片机软件平台----MPLAB IDE和MPLAB X IDE
这里主要是针对PIC18单片机开发平台,当然对于16位或32位单片机的开发平台是一样的,只是编译器不一样。PIC18单片机有两个开发平台,一个是MPLAB IDE,对应的编译器为MPLAB C Compiler for PIC18 MCUs.exe;一个是MPLAB X IDE,对应的编译器为xc8-v2.00-full-install-windows-installer.exe。 下载链接如下: https://download.csdn.net/download/euxnijuoh/10889265
[单片机]
PIC单片机C语言程序设计(3)
在上期连载中,我们已将C语言的一些基本知识通过表1~表3列出,希望初学者加强对上述表格内容的记忆,在编制C语言程序时,逐步学会其使用,直到灵活应用。下面继续介绍C语言中的循环语句及其应用。 3.for语句 for语句在前面的程序实例中已使用过一次。这里作进一步介绍。 一般形式: 说明语句; for(初始化条件;条件表达式;自增量++) 执行语句; 运行过程如下:先求解初始化条件(初始化值由用户设置);再判断条件表达式,若其值满足条件表达式,则执行for的内嵌语句(for以下的执行语句);在执行for的内嵌语句之后,求自增量4-+;求解自增量++之后,返回运行过程的第2)步继续执行。如果
[单片机]
温度传感器DS75LX与PIC单片机的接口设计
1 概述 DS75LX是一款高精度的串行数字输出型温度传感器,测量的温度数据可通过两线串行总线(与I2C总线兼容)输出。DS75LX工作电压为1.7 V到3.7 V。除了基本的测温功能外,DS75LX还具有温度报警功能,允许用户通过软件设置报警温度的门限值。DS75LX测温范围为-55℃~+125℃,当测温范围为-25℃~+100℃时,测量精度为±2℃。DS75LX同时具有可编程的9至12位的温度数据输出格式。输出的温度数据为12位时,其分辨率可达0.0625℃。该传感器具有三个地址引脚,可设置为三种状态中的任意一种:接GND、VDD,或悬空,可设置27种地址组合。例如A2、A1和A0分别为接电源、接地和悬空时,DS75LX的器
[单片机]
Microchip推出的集成LCD控制功能的8位PIC单片机
Microchip Technology Inc.(美国微芯科技公司)推出五款全新器件PIC16LF1902/3/4/6/7(PIC16LF190X)单片机,扩展其8位分段式LCD MCU系列。PIC16LF190X系列支持多种通用应用,有助于在低功耗和成本敏感设计中LCD的实现,这些应用包括安全令牌、智能卡、医疗设备、家用电器、密钥卡或任何涉及分段式LCD的应用。该系列MCU采用超低功耗(XLP)技术,休眠电流低至20 nA,且典型工作电流为35 μA/MHz,不仅延长了电池寿命,而且在驱动分段式LCD的同时保证了RTC的精确计时。
通过采用Microchip的增强型中档架构,PIC16LF190X系列为客户
[单片机]
基于PIC单片机和LCD模块对电流的驱动
偏置电压是通过使用外部梯形电阻网络(电路见下图)而产生。因为梯形电阻网络连接在VDD和Vss之间,所以会有电流通过梯形电阻网络,电流大小与电阻成反比。也就是说,电阻越大,通过梯形电阻网络的电流就越小。如果使用10kΩ电阻,且VDD=5V,则梯形电阻网络将不断消耗166μA的电流。这对于一些使用电池供电的应用来说是很大的电流。 如何最大程度增大电阻,而又不会对显示质量产生负面影响?一些基本的电路分析可以帮助确定梯形网络中电阻增大的程度。 LCD模块实际上就是一个模拟多路开关,它交替地将LCD电压连接到各个段和公共引脚(段电极和公共电极交叉于每一个LCD像素点)。LCD像素可用电容进行模拟。梯形电阻网络中的每个分接点可以用戴维
[单片机]
VR带动人机接口全新体验,众多技术汇流 创造想像空间
谈到人机介面的发展,就形式上可以分成触控与手势辨识两大类别,但就技术层次上,可以分成触控、红外线、超音波、音频与影像辨识等,近期较为热门的应用,莫过于语音输入或是语音控制为主流。
VR开启全新人机介面体验
随着VR(虚拟实境)在这近半年成为科技产业的主流话题时,某一程度它亦可被归纳为人机介面的应用之一。Lattice(莱迪思半导体)亚太区资深事业发展经理陈英仁表示,就VR应用来说,Lattice的确非常关注其未来的发展,现阶段在人机介面领域的生态系统投入了相当多的心力与资源,其中亦不乏采取投资行动。
陈英仁进一步谈到,广泛来看,VR最为需要的,就是影像延迟的基本问题是不被允许发生的,所以FPGA(可编程逻辑闸阵列
[手机便携]
PIC单片机人机接口模块元器件选择说明
PIC单片机人机接口模块元器件选择说明: (1)芯片引脚。 12~20根为PIC16C5X的双向可独立编程I/O口,每根I/O口都可由程序来编程决定其输入/输出方向。PIC16C5X有5种型号,如表1所示 表一 PIC16C5X管脚 PIC16C5X管脚图如图1所示 图1 PIC16C5X管脚图 各引脚的功能描述如表2所示 表2 各引脚的功能 (2)内部结构。 PIC16CSX在一个芯片上生成了一个8位算术逻辑单元ALU和工作寄存器W;384bit~2KB的12位程序存储器ROM;32~80个8行数据寄存器RAM;12~20个I/O口端:8位计数器及预分频器;时钟、
[工业控制]