基于fpga的多功能万年历(编辑修改稿)内容摘要:
接口电路原理 校时控制模块在本系统中也就是键盘接口电路部分。 下面先介绍键盘接口电路的工作原理 ,如图 49。 本系统采用的就是这种行列式键盘接口,相对个按键的键盘接口来说节省了 I/O 接口。 其中行线与列线分别与按键的两端相连。 在查询工作方式中判断是否有按键按下的方法是:先有响应的 I/O 接口将列线输出为 0电平,在由相应的 I/O 接口将所有的行线结果读入到控制器中。 若有行线输入为 0,则有键按下,反之,则没有键按下。 如果发现有按键按下界限来就是通过安检扫描来确定是哪个按键被按下,键盘扫描的过程是依次轮流将列线输出为 0 电平,然后再检查各行线的状态。 若某行线输入为 0,组对应的该行线与该列线的按键被按下,即可确定对 应的键号。 第 15 页 共 37 页 图 49 键盘接口电路 键盘接口的 VHDL 描述 (1).按键消抖 本系统采用的是软件消抖的办法去除按键抖动,基本原理是:首先判断有没有按键按下,如发现有按键按下则延时一段时间,在判断是否有按键按下的信号,如果有则确定有按键按下,就产生一个有按键按下的信号。 这样就消除了按键的机械抖动。 该模块的逻辑框图如图 410所示。 图 410 去抖逻辑框图 该电路的 VHDL 程序如下: library ieee。 use。 use。 use。 第 16 页 共 37 页 entity qudou is port(clk1:in std_logic。 row:in std_logic_vector(3 downto 0)。 key_pre:out std_logic)。 end qudou。 architecture behav of qudou is signal sig1,counter:std_logic_vector(3 downto 0)。 signal tmp1,sig2:std_logic。 begin sig1=row。 tmp1=sig1(0)and sig1(1)and sig1(2)and sig1(3)。 key_pre=counter(0)and counter(1)and counter(2)and counter(3)。 process(clk1) begin if(clk139。 event and clk1=39。 139。 )then if(tmp1=39。 039。 )then if(sig2=39。 039。 )then sig2=39。 139。 end if。 end if。 if(sig2=39。 139。 )then if(counter=1111)then sig2=39。 039。 第 17 页 共 37 页 counter=0000。 else counter=counter+39。 139。 end if。 end if。 end if。 end process。 end behav。 (2).键扫描模块 键扫描模块的框图如图 411所示。 图 411 按键扫描模块 CLKY 是由分频器模块分出的 4MHZ 的输入时钟信号,因为键扫描是一个比较快的过程所以这里采用的是频率较高的时钟信号。 Key_pre 是去抖模块输出的有按键按下的信号作为启动按键扫描的使能信号。 ROW[3..0]与键盘的行线相连, COM[3..0]与键盘的列线相连。 SCAN_CODE[7..0]输出被按下键的键码。 键盘扫描程序如下: library ieee。 use。 use。 use。 第 18 页 共 37 页 entity ajsm is port(clky,key_pre:in std_logic。 row:in std_logic_vector(3 downto 0)。 :out std_logic_vector(3 downto 0)。 scan_code:out std_logic_vector(7 downto 0))。 end ajsm。 architecture behav of ajsm is signal sig_:std_logic_vector(3 downto 0)。 signal counter:std_logic_vector(1 downto 0)。 signal tmp,sig1,sig2:std_logic。 begin sig2=key_pre。 tmp=row(0) and row(1) and row(2) and row(3)。 process(clky) begin if(clky39。 event and clky=39。 139。 )then 计数进程 if(sig2=39。 139。 )then if(counter=11)then sig1=39。 039。 counter=00。 else sig1=39。 139。 counter=counter+39。 139。 第 19 页 共 37 页 end if。 end if。 end if。 end process。 process(clky) 列线逐位输出低电平 variable jt :std_logic。 begin if(clky39。 event and clky=39。 139。 )then if(sig1=39。 139。 )then jt:=sig_(3)。 for i in 3 downto 1 loop sig_(i)=sig_(i1)。 end loop。 sig_(0)=jt。 else sig_=1110。 end if。 end if。 end process。 process(clky) begin if(clky39。 event and clky=39。 139。 )then if(sig1=39。 139。 )then 第 20 页 共 37 页 =sig_。 else =0000。 end if。 end if。 end process。 process(clky) 键码信号赋值 begin if(clky39。 event and clky=39。 139。 )then if(sig1=39。 139。 )then if(tmp=39。 039。 )then scan_code=row amp。 sig_。 else scan_code=11111111。 end if。 else scan_code=11111111。 end if。 end if。 end process。 end behav。 (3).键码转换模块 该模块框图如图 412 所示。 模块主要完成从键扫描码到按键编码的转换。 第 21 页 共 37 页 图 412 键码转换模块逻辑框图 键码转换的核心程序如下: library ieee。 use。 use。 use。 entity jmzh is port(clky:in std_logic。 scan_code:in std_logic_vector(7 downto 0)。 key_code:out std_logic_vector(3 downto 0))。 end jmzh。 architecture behav of jmzh is begin process(clky) begin if(clky39。 event and clky=39。 139。 )then case scan_code is when 11101110=key_code=0000。 when 11101101=key_code=0001。 when 11101011=key_code=0010。 第 22 页 共 37 页 when 11100111=key_code=0011。 when 11011110=key_code=0100。 when 11011101=key_code=0101。 when 11011011=key_code=0110。 when 11010111=key_code=0111。 when 10111110=key_code=1000。 when 10111101=key_code=1001。 when 10111011=key_code=1010。 when 10110111=key_code=1011。 when 01111110=key_code=1100。 wh。基于fpga的多功能万年历(编辑修改稿)
相关推荐
实现同步或异步FIFO,具体的设计时可采用两种方式,一是在原理图或 VHDL 语言输入方式下调用库元件 LPM_FIFO+,再对端口和参数进行编辑即可。 方法二是对 FIFO进行 编程,完成相应的功能。 图 为向导生成的 FIFO 符号, FIFO 深度为 1024,宽度为 8。 4 图 FIFO 原理图 FIFO 只是对数据的一个缓存作用,进取什么数据,出来什么数据,对其进行功能仿真
B3310。 该模块具有低功耗、抗干扰能力和抗遮挡能力强等特点,适用范围包括汽车定位导航、保全系统、地图制作等。 在交通事故紧急呼救系统中,该模块的主要作用是接收 GPS卫星信号并计算出车辆当前所在地理位置以便给单片机提供图 STC12C5A60S2的外围电路 毕业论文 第 10 页 位置信息。 本系统所涉及 REB3310的主要性能如下: 数据特性: 接口 TTL 电平, 30pin SMD,
)(nh 的线性非时变系统时,其输出序列 )}({ ny 也是一平稳随机序列。 它的自相关函数为: )(kryy )()()( * krkhkh xx (37) )()*1(*)()( zPzHzHzP xxyy (38) 若 )(nh 为实系统,则 )1()*1(* zHzH 。 令 )2e xp ()e xp ( fjjz ,得到相应的功率谱表达: )()()( 2
以便缩短行宽。 以上的列在实现时可视情况和习惯加以删减。 2) . 当码表的列较多且也行较多时,可将上述的标识列和常用的信息存于一个表,将其 它的信息另表存储。 3)、 业务数据表 1) . 设有 „录入人 ‟和 „录入日期 ‟列,由系统自动记录。 2) . 记录单据的表中设置 “自动单据号 ”,由两个字符开始以区分单据类型,后跟一数 字序列表示序号。 „自 动单据号 ‟由系统自动生成
的会员可浏览的频道栏目:后台管理可以设置不懂的频道由不同的人员添加,编辑,并且可以把添加、审核、发布权限指给不同的操作人员。 ( 6) 强大的模板管理机制,网站改版无需推倒重来,只需设计一套新的风格模板,且资料内容无需重新添加,就可以获得一个全新的网站。 校园网站 建设的规划 学校校园网作为学校门户网,师生活动的平台,应该具有以下基本功能: ( 1)作为学校的宣传阵地。 及时发布学校的活动情况
ual binding for a number of elements, and then the remaining elements of the puter and by hand to optimize the bination of elements bound to algorithm design sought to reduce the difficulty of