键盘及LED驱动设计方案_第1页
键盘及LED驱动设计方案_第2页
键盘及LED驱动设计方案_第3页
键盘及LED驱动设计方案_第4页
键盘及LED驱动设计方案_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.1. 模块描述 该模块能够直接驱动8个共阴式(或8个共阳式)数码管位(或64只独立的LED),同时还可以扫描管理多达64只按键。其中有8只按键还可以作为功能键使用,如同电脑键盘上的Ctrl、Shift、Alt 键一样。2. 模块总体设计2.1总体实现结构 图1:键盘扫描及LED驱动模块结构图2.2 总体实现描述 timedistribute模块为displayctrl和keyscan模块分配工作时间,并控制interface模块双向端口的输入输出的转换。 displayctrl模块根据dpram提供的显示数据及要扫描的数码管的个数scannum提供相应的显示控制信号及显示数据。 keysca

2、n模块完成对键盘的扫描及对功能键、普通键及连击次数、按键键值的判断。2.3 接口信号定义 序号信号名位宽I/O描述1dpram0dpram764I对应的8个数码管的数据。2scannum3I要显示的数码管的个数。3sel8O数码管的位选信号。4dt8O数码管的显示数据5p_wr1O寄存器PressKey和RepeatCnt的写信号。6presskey8O普通按键的键值。当扫描到有普通按键按下时,输出按键键值,结果将存于键值寄存器PressKey中。7repeatcnt8O普通键的连击次数。当普通按键连续按下时,输出按键的连击次数,结果将存于连击次数计数器RepeatCnt中。8function

3、key8O功能键的状态。每一位对应一个功能键(F7F0),第0位(LSB)对应F0,第1位对应F1,依次类推,第7位(MSB)对应F7。某一功能键被按下时,相应的功能键寄存器FunctionKey对应的位就清零。9f_wr1O寄存器FunctionKey写使能信号。10flashswh8I数码管位的闪烁和不闪烁状态。例:当FlashSwth.0设置为1时,则对应的管位0处于闪烁状态;若设置为0时,该管位不闪烁。(FlashSwth.7FlashSwth.0 对应 DIG7DIG0)。11flashfreq8I数码管闪烁频率和占空比。高4 位表示闪烁时亮的持续时间,低4 位表示闪烁时灭的持续时间

4、。FlashFreq的1个单位相当于256ms(亮和灭的时间范围为116,0000B相当1个时间单位)。12chg1ODig端口的控制信号。13kin8I扫描输入信号。14kout_data1O扫描输出信号。15kout_sel8OSeg端口控制信号。3. 模块划分 该部分电路可划分为三个部分:timedistribute(时间分配模块)、displayctrl(显示控制模块)、keyscan(键盘扫描模块)。1.timedistribute模块完成的基本功能 分配displayctrl模块和keyscan模块的工作时间; 提供端口复用的控制信号; 2.displayctrl模块完成的基本功能

5、 分析扫描数码管的个数,然后为要显示的数码管分配扫描时间; 产生数码管显示控制信号,并选择相应的显示数据; 分析闪烁信息,控制数码管闪烁显示;3.keyscan模块完成的基本功能 在系统分配的时间内完成键盘的扫描,并检测扫描结果; 消除按键抖动的影响; 分析判断按键是普通按键还是功能键; 判断按键键值及连击的次数; 提供产生的按键信息数据有效信号;4. 分模块实现4.1 timedistribute模块实现 该模块将系统时间分为两部分,一部分模块displayctrl工作,另一部分模块keyscan工作,其中1ms中keyscan工作时间为8us,其余时间displayctrl工作;产生控制端

6、口复用的控制信号。 该模块实际上就是一个分频器,将系统1MHz时钟分为所需要的时钟频率(1KHz)。具体实现略。4.2displayctrl模块实现 该模块产生数码管的显示控制信号及选择相应的输出数据。4.2.1 接口信号定义序号信号名位宽I/O描述1dpram64I8个数码管64个管段的显示数据。2scannum3I显示数码管的个数。3en1I控制信号,为1时工作,为0时不工作。4clk1I工作时钟。5res1I系统复位信号。6sel8O数码管显示控制信号。7dt8O数码管显示数据。 8flashswh8I数码管位的闪烁和不闪烁状态。例:当FlashSwth.0设置为1时,则对应的管位0处于

7、闪烁状态;若设置为0时,该管位不闪烁。(FlashSwth.7FlashSwth.0 对应 DIG7DIG0)。 9flashfreq8I数码管闪烁频率和占空比。高4 位表示闪烁时亮的持续时间,低4 位表示闪烁时灭的持续时间。FlashFreq的1个单位相当于256ms(亮和灭的时间范围为116,0000B相当1个时间单位)。4.2.2displayctrl详细设计 该模块的电路结构框图如下: 图2:displayctrl模块结构图 图中,state_reg是当前状态寄存器,存储当前的状态,当res无效且en有效时,在时钟的上升沿将下一个状态存入当前状态;可变频信号发生器课产生flashfre

8、q指示的频率和占空比的信号;其他的模块如next_state、dig_ctrl、lg_c和data_sel都是组合电路,他们的逻辑描述如下:1、 next_state的逻辑: Scannum=000 y0=0;y1y7=1; Scannum=001 y1=0;y0y7=1; Scannum=010 y2=0;y0y7=1; Scannum=011 y3=0;y0y7=1; Scannum=100 y4=0;y0y7=1; Scannum=101 y5=0;y0y7=1; Scannum=110 y6=0;y0y7=1; Scannum=111 y7=0;y0y6=1; 图3:displayct

9、rl模块状态转移图注:s0s7表示当前状态。2、 dig_ctrl的逻辑: s0:dig=11111110;s1:dig=11111101; s2:dig=11111011;s3:dig=11110111; s4:dig=11101111;s5:dig=11011111; s6:dig=10111111;s7:dig=01111111;3、 data_sel的逻辑: s0:seg=dpram0;s1=flashswh0s1:seg=dpram1;s1=flashswh1 s2:seg=dpram2;s1=flashswh2s3:seg=dpram3;s1=flashswh3 s4:seg=dp

10、ram4;s1=flashswh4s5:seg=dpram5;s1=flashswh5 s6:seg=dpram6;s1=flashswh6s7:seg=dpram7;s1=flashswh7注:dpram0=dpram7:0,dpram1=dpram15:8.dpram7=dpram63:56。4、 lg_c的逻辑: 图4:lg_c电路逻辑实现图4.3 keyscan模块的实现4.3.1总体实现结构 该模块主要完成键盘扫描、按键去抖动、连击判断、按键识别等功能,该模块系统框图如下: 图5: keyscan模块结构框图 扫描电路产生逐行扫描信号,对键盘进行逐行扫描,同时将扫描的结果及产生相关的

11、控制信号给按键识别电路;按键识别电路根据扫描电路传递来的数据,经过消除抖动处理后产生按键信息数据及数据有效的标志信号。4.3.2接口信号定义序号信号名位宽I/O描述1en1I工作使能信号。2res1I系统复位信号。3clk3I工作时钟;电路工作时需3个频率的时钟,均有外部提供。4kin8I扫描结果输入端口。5kout_data1O扫描输出数据端口。 6p_wr1OPressKey、RepeatCnt寄存器的写使能信号。 7presskey8O普通按键的键值。当扫描到有普通按键按下时,输出按键键值,结果将存于键值寄存器PressKey中。 8repeatcnt8O普通键的连击次数。当普通按键连续

12、按下时,输出按键的连击次数,结果将存于连击次数计数器RepeatCnt中。9functionkey8O功能键的状态。每一位对应一个功能键(F7F0),第0位(LSB)对应F0,第1位对应F1,依次类推,第7位(MSB)对应F7。某一功能键被按下时,相应的功能键寄存器FunctionKey对应的位就清零。16f_wr1O寄存器FunctionKey的写使能信号。17kout_sel8O顶层端口Seg转换控制信号。4.3.3详细设计 本模块又可以分为两个模块:扫描电路及按键识别电路。下面分模块详细介绍各模块的实现。1、 扫描电路 该模块主要完成的任务:1.产生扫描信号;2.分析扫描结果按键信息数据

13、(keymes0keymes7)。1)接口信号定义序号信号名位宽I/O描述1kin8I扫描输入数据。2kout_data1O扫描数据输出;该电路工作时输出0,不工作是输出1。3kmes8O扫描到的按键信息。4clk1I工作时钟。5res1I系统复位信号。6en1I工作使能信号。 7pf_w1O寄存器写信号,0时写入pressreg,1时写入functionreg。 8kout_sel8O顶层端口Seg转换控制信号。2)该模块的结构电路图 图6: 扫描电路结构框图3) 详细实现描述A.扫描信号 这部分电路的工作逻辑描述如下:当res有效时,电路被复位,复位时kout_data=1;否则en有效时

14、kout_data=0,kout_sel输出顶层双向端口Seg的控制信号(其控制逻辑将在后面描述),p_w为pressreg的写信号,即在对普通键的一次扫描结束后将本次扫描结果写入pressreg中,f_w为功能键写使能信号,f_w=0时keymes将写入functionreg中,为1时将写入scanreg(扫描数据暂存寄存器)中,state为扫描行信息。kout_sel的逻辑描述:state=000:kout_sel=01111111state=001:kout_sel=10111111state=010:kout_sel=11011111state=011:kout_sel=1110111

15、1state=100:kout_sel=11110111state=101:kout_sel=11111011state=110:kout_sel=11111101state=111:kout_sel=11111110B.数选器的实现略。C.编码器 编码器这部分电路时组合电路,主要用来产生第二次扫描的行扫描信号和扫描到的普通按键的按键信息pkd(pkd为8bit,低四位为按键的列信息,高四位为行信息)。 这部分的主要逻辑为:当kin7:0为FFH时(无按键按下)输出scmes、pdk为00H;当有按键按下时对按键信息进行编码,编码格式为:pdk的编码原则为:低四位为按键的列信息,高四位为行信息

16、;当按下按键为多个时(即0的个数有2个以上),只对优先级最高的进行编码。scmes的编码原则为:它的编码只与kin7:0有关,有按键按下则为按下按键行的扫描信号,如由kin7:0知第二行和第四行同时有按键按下,则输出第二行的扫描信号scmes=FDH;没按键按下scmes=FFH,即不扫描任何行。2、按键识别电路1)该电路的主要功能 该电路主要完成按键识别工作,包括消除按键的抖动、记录普通按键的连击次数、普通按键的键值、功能按键的状态及产生相应的控制信号。2)接口信号定义序号信号名位宽I/O描述1en1I工作使能信号。2res1I系统复位信号。3clk1I工作时钟。4kmes8I检测到的按下按

17、键的信息。 5presskey8O普通按键的键值。当扫描到有普通按键按下时,输出按键键值,结果将存于键值寄存器PressKey中。 6repeatcnt8O普通键的连击次数。当普通按键连续按下时,输出按键的连击次数,结果将存于连击次数计数器RepeatCnt中。7functionkey8O功能键的状态。每一位对应一个功能键(F7F0),第0位(LSB)对应F0,第1位对应F1,依次类推,第7位(MSB)对应F7。某一功能键被按下时,相应的功能键寄存器FunctionKey对应的位就清零。8f_wr1O寄存器FunctionKey的写使能信号。9p_wr1OPressKey、RepeatCnt寄

18、存器的写使能信号。 10f_w1I寄存器写信号,0时写入functionregreg,1时写入scanreg。 11p_w1I一次扫描结束信号,0为有效值。3) 寄存器说明 普通键信息寄存器pressreg(8bit):用来暂存检测到的普通按键的键值信息。 标志寄存器flag(8bit):第0bit为普通按键消除抖动后的状态,为1表示按键按下, 0表示按键没按下;第1bit为普通键信息寄存器pressreg状态标志位,0表示寄存器中没数据,1表示有数据。 功能键状态寄存器functionreg(8bit):暂存每次扫描到的功能键的状态。 扫描数据暂存寄存器scanreg(8bit):暂存一次扫

19、描的中扫描到的普通按键的键值信息,在一次扫描结束后,将其中的数据写入pressreg中。 4) 电路实现结构 图7:按键识别电路结构图 图中pressreg、flag、functionreg、scanreg是8位的寄存器(其功能请参照寄存器说明);pscancnt用来记录presseg里记录的按键连续被扫描到的次数;keynum产生按下按键的键值;repeat用来记录pressreg中按键的连击的次数;f_cnt记录每个功能键按下状态持续的时间,分析记录结果后产生功能键的状态信息;ctrl是pressreg和pscancnt的控制中心,对相关信息分析后产生对其的控制信号。5) 各部分的详细设计 A. ctrl详细设计 图8:ctrl电路实现逻辑图 图中cmp为比较器,sdata比pdata小,则s1输出0,否则输出1;相等时s2输出0,否则输出1;ps_lg的逻辑描述如下:c_en=0:fd0=0,p_w=0,s2=0;fd0=1,p_w=0,s2=1;c_clr=0:p_w=0,s2=1;p_w=0,s3=0;B. pa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论