SPMC65P2404A做行列式键扫描

本文主要介绍利用spmc65p2404a单片机做行列式键扫描的处理,可作为用户系统设计的参考。
关键词:spmc65p2404a、行列式键扫描 1引言
本系统应用凌阳科技8位工业级单片机spmc65p2404a*28p做行列式键扫描,可作为用户设计参考。
2芯片特性简介
spmc65系列单片机是凌阳科技公司设计开发的8位工业级通用型单片机,具有超强的抗干扰能力,广泛应用于家用电器、工业控制、仪器仪表等控制领域。spmc65p2404a单片机功能特点如下:
● spmc65 cpu
  - 支持 182 条指令
  - 支持 11 种寻址方式
  - 系统时钟频率最高可达 8mhz
  - 支持位操作指令(置 1 、清零、取反、测试)
● 存储空间
  - 4k 字节的程序空间( otp ),并且可设置保密功能。
  - 192 字节的 ram (含堆栈空间)
● i/o 端口
  - 23/15 个具有复用功能的双向 i/o 端口
  - 所有 i/o 端口的输入均由施密特触发器构成
  - 可编程设置为带上拉 / 下拉电阻输入或者悬浮输入
  - i/o 具备 led 驱动能力
  - 其中 2 个 i/o 端口能提供 20ma 的吸入电流
● 中断管理
  - 外部中断选项:非屏蔽中断 nmi 或可屏蔽中断 irq
  - 支持 4 个外部中断,其中的一个可设置为非屏蔽中断 nmi
  - 12 个内部中断
● 复位管理
  - 上电复位 (por)
  - 低电压复位 (lvr)
  - 看门狗复位 (wdr)
  - 外部复位 (erst)
  - 非法地址复位 (iar)
● 时钟管理
  - 3 种时钟源:晶体 / 陶瓷振荡器、 rc 振荡器、外部时钟输入
  - 在 rc 振荡模式下,能够输出时钟信号
● 电源管理
  - 2 种省电模式: stop 模式、 halt 模式
● 2 个外围模拟电路
  - 8 通道 10 位精度的 a/d 转换器( 100khz )
  - 低电压复位( 2.5v/4v )
● 2 通道 8 位定时 / 计数器 (timer0,timer2)
  - 定时、计数功能
  - 捕获功能( 8 位脉宽测量)
  - 8 位比较输出功能
● 2 通道 16 位定时 / 计数器 (timer1,timer3)
  - 定时、计数功能
  - 捕获功能( 8 位脉宽 / 周期测量,或 16 位脉宽测量)
  - 16 位比较输出功能
  - 12 位 pwm 输出功能
● 时基定时器
  - 频率选择: 1khz ~ 62.5khz @8mhz
  - 7 级分频选择
● 蜂鸣器输出
  - 频率选择: 1khz ~ 2mhz @8mhz
  - 12 级分频选择
● 可编程看门狗定时器
  - 中断频率选择: 1.5hz ~ 195hz
● 串行总线接口
  - spi 总线频率:最高为 2mhz @8mhz
3系统总体方案介绍
本例采用芯片spmc65p2404a*28p,外接4x4按键,当按键被按下后,相应的发光二极管便会被点亮来指示当前的键值。系统框图如图3-1所示。
图 3-1系统框图
原理图如图3-2所示,4行4列的键盘。pa口接4x4按键,pc3~pc0分别接4个发光二极管指示当前的按键值。图中电阻均为510欧。
图 3-2 4x4按键扫描原理图
pa3~pa0为行线输入端,初始化为带上拉电阻的输入口。
pa7~pa4为列线输出端,初始化为输出低电平。
pc3~pc0接4个发光二极管用做指示灯,其16种组合0000~1111分别表示键k0~k15被按下。
扫描方法:首先由输出口pa7~pa4向所有的列线输出低电平,读取各行线pa3~pa0的状态,若行线状态全为高电平,则表明无键按下,若行线状态中有低电平,则表明有键按下。若有键按下,先进行消抖,消抖结束,再对每一列进行扫描,即:pa7~pa4四条列扫描线分别输出低电平,在每次输出低电平期间,读取各行线pa3~pa0的状态,确定键值。例如:pa7~pa4输出1011,此时若读取pa3~pa0的状态为1110,则表明按键s2被按下。
扫描时序如图 3-3所示。k0表示列线全部为低电平时行线的状态;
图 3-3 按键扫描时序图
k1表示列线pa4为低电平时行线的状态,用于判断按键s0、s4、s8、s12的状态;
k2表示列线pa5为低电平时行线的状态,用于判断按键s1、s5、s9、s13的状态;
k3表示列线pa6为低电平时行线的状态,用于判断按键s2、s6、s10、s14的状态;
k4表示列线pa7为低电平时行线的状态。用于判断按键s3、s7、s11、s15的状态。
键值计算方法:
设置一个变量,高4位放列扫描线控制字,低4位放行扫描线状态字。按键s0~ s15分别对应不同的变量值,因而可以根据变量值确定当前的按键值。消抖方法:
在按键闭合和打开的瞬间会产生许多尖脉冲,持续时间约几毫秒到几十毫秒。因而在程序中,当检测到按键被按下后,便开始读取键值,每隔4ms读一次键值,直到连续7次读取的键值完全相同,则认为抖动已经消除。消抖时间为4ms x 7=28ms。
注意:本范例只响应单个按键,若同时按下两个或两个以上的按键,则程序不响应。
4系统软件设计
4.1 主流程
程序主流程如图4-1所示。主程序每隔4ms扫描一次键盘,若有按键被按下,则点亮或熄灭相应的指示灯来指示键值。
图4-1 键盘主流程图
4.2 键盘扫描子流程
键盘扫描流程图如图4-2所示。
图4-2 键盘扫描流程图

中鼎股份再获16亿元新项目定点 正考虑向减震器、传感器等延伸
红外避障传感器原理图_红外传感器避障模块电路图
iphone7s、iphone8发布会倒计时:iPhone8确认中国首发,国行价格太贵,中国人买不起?
阿里为餐饮服务提供智能化解决方案
马云第二十届中国科协年会演讲:今天是企业家和科学家“最好的时代”
SPMC65P2404A做行列式键扫描
符合汽车标准的安规电容器有何要求
4K 全IP广电演播室NDI节目制作系统
基于FPGA与PCI总线的并行计算平台设计实现
梅赛德斯-奔驰燃料电池大巴进驻汉堡
无人机机载红外设备完成800千伏新东直流线7基杆塔测温专项作业
如何评估自动化设备在洁净室的适用性
维珍轨道宣布成功将10颗小型卫星送入轨道
人工智能给智能家居领域带来哪些变革
基于ADSP-BF533的数字通信信号发生器设计与实现
统一电力市场建设,促进清洁能源消纳
灿芯半导体出席无锡集成电路产业创新发展高峰论坛
电动汽车高压电池管理系统(BMS)设计考虑因素
LED花卉路灯扮靓广州亚运
报道称联华电子正提高 12 英寸晶圆代工厂产能,主要满足 28nm 工艺产能需求