基于CY8C21534的通用操作面板解析方案

来源:元器件交易网 作者:—— 时间:2012-04-23 11:15

        图中,S1~S9为感应按键的感应区域,U101为显示组件(在设计中采用的是一体化的显示组件),CN101为与控制板的接口,同时也是在线烧写程序的接口。

  只要按键对应口线不变,按键可以排列在通用操作面板任何位置。显示组件可以是分离器件组成,连接关系只要满足图中COM1~8和SEG1~8对应就可以了,其中COM1~8是显示的行扫描端,SEG1~8是显示段码驱动端。64段可以组合成8段数码管,也可以是独立的LED指示灯按照行列方式连接。注意,在图中的连接关系中,显示部件必须是共阳结构的。


  软件设计


  软件分成如下几个主要部分:

  显示扫描部分—负责把显示数据按照对应关系送出。

需要开辟一个显示缓冲区,用来保存接收到的显示内容,定义为Dis_buf[8],共8个字节,64段需要8个字节,按照每行一个字节保存,规定Dis_buf[0] 对应COM1行,Dis_buf[1]对应COM2行,依此类推,Dis_buf[7]对应COM8行。

  在定时扫描里,按照行列关系扫描显示即可,具体显示内容则由控制板通过通讯接口发来。这部分程序流程比较简单,但操作要点需要特别注意:先关闭所有显示行,根据扫描行标志送出扫描段码,再打开对应的扫描行,点亮显示,最后扫描行标志加1。

  按键扫描部分—负责扫描按键状态,并把扫描结果保存在缓冲区,以便控制板查询。开辟一个2字节的按键缓冲区Key_buf[2],每一位对应一个按键,例如规定Key_buf[0]的最低位对应S1……,Key_buf[0]的最高位对应S8,Key_buf[1]的最低位对应S9,其余保留备用。

  CY8C21534定时对按键进行扫描,并把去抖动后的结果保存在按键缓冲区,规定“1”为按键按下,“0”为按键抬起。

  需要说明的是,按键是否按下,是通过读CY8C21534内部寄存器的值来确定的,这与普通机械按键按下判断电平高低是不同的。与控制板通讯部分—负责接收控制板的显示数据,同时接受控制板查询按键状态的指令,发出按键状态数据。通讯采用I2C接口,并且通用操作面板上的CY8C21534工作在从模式,控制板上的单片机I2C接口工作在主模式。

资讯排行榜

  • 每日排行
  • 每周排行
  • 每月排行

华强资讯微信号

关注方法:
· 使用微信扫一扫二维码
· 搜索微信号:华强微电子