利用按键开关控制点阵进行字母显示说明书
- 格式:doc
- 大小:3.55 MB
- 文档页数:29
中北大学课程设计说明书2013/2014 学年第二学期学院:专业:学生姓名:学号:课程设计题目:利用按键开关控制点阵进行字母显示起迄日期:课程设计地点:指导教师:专业负责人:下达任务书日期: 2014年6月10日目录1、课程设计目的 (1)2、课程设计内容和要求 (1)2.1、设计内容 (1)2.2、设计要求 (1)3、设计方案及实现情况 (1)3.1、设计思路 (1)3.2、工作原理及框图 (1)3.3、各模块功能描述 (3)3.4、仿真结果 (4)3.5、实物结果图 (6)4、课程设计总结 (6)5、参考文献 (7)6、附录程序清单 (8)1、课程设计目的(1)学习操作数字电路设计实验开发系统,掌握点阵显示模块的工作原理及应用。
(2)掌握组合逻辑电路、时序逻辑电路的设计方法。
(3)学习掌握可编程器件设计的全过程。
2、课程设计内容和要求2.1、设计内容利用按键开关控制点阵进行字母显示2.2、设计要求(1)学习掌握按键开关控制模块、点阵显示模块的工作原理及应用;(2)熟练掌握VHDL编程语言,编写按键开关控制模块的控制逻辑;(3)仿真所编写的程序,模拟验证所编写的模块功能;(4)下载程序到芯片中,硬件验证所设置的功能,能够实现字母显示;(5)整理设计内容,编写设计说明书。
3、设计方案及实现情况3.1、设计思路根据题目设计要求,本系统拟采用自顶向下设计方法,顶层采用原理图设计方法,将整个系统分为分频(FENPIN)、消抖(XIAODOU)、按键开关控制(BUTTON)、16×16点阵显示(LENDISP)四个模块,通过对各模块编写程序实现模块功能,最终将模块进行综合实现整个系统的功能,通过按键开关控制点阵进行二十六个字母的显示。
3.2、工作原理及框图(1)工作原理系统的输入信号有:系统时钟信号CLK,按键信号(ADD、SUB)。
系统的输出信号有:点阵行驱动输出信号(LEDOUT[0..15]),点阵列选和按键开关扫描公用信号(SEL[3..0])。
多功能点阵式大屏幕设置软件用户说明书(软件版本:一、软件安装打开及卸载软件适用操作系统:Windows 2000,Windows XP,Windows Vista,Windows 7。
软件使用需求:串口,.Net Framework 2.0。
1. 软件安装双击安装光盘中【DPMSetup.exe】文件,打开多功能点阵式大屏幕设置软件安装程序。
若电脑未安装过.Net Framework 2.0,软件会跳出.Net Framework 2.0 安装界面。
请按照默认设置完成安装。
软件安装过程中,请选择【我同意此协议】,并选择软件安装目录和开始菜单生成目录,其余可按默认设置完成软件安装。
2. 软件打开软件安装完毕后,会在桌面和开始菜单生成快捷方式【多功能点阵式大屏幕设置软件】。
默认开始菜单位置为【开始】-【程序】-【多功能点阵式大屏幕设置软件】-【多功能点阵式大屏幕设置软件】。
启动该快捷方式即可运行软件。
3. 软件卸载点击开始菜单快捷方式【卸载多功能点阵式大屏幕设置软件】即可启动卸载程序。
默认开始菜单位置为【开始】-【程序】-【多功能点阵式大屏幕设置软件】-【卸载多功能点阵式大屏幕设置软件】。
卸载程序会跳出提示框,询问用户是否确认卸载软件。
点击【是】后完成软件卸载,否则可按【否】取消卸载。
二、软件登录界面软件启动后,首先出现软件登录界面,如图1 所示。
图1 软件登录界面1. 首次登录首次使用软件或未修改用户密码时,不需要输入密码,即密码输入框留空,直接点击【登录】按键登录软件主界面。
建议登录软件后立即进行用户密码修改,防止非相关人员操作本软件。
2. 修改用户密码后登录修改用户密码后登录时,需要在【密码】文本框中输入上次设置的用户密码,并点击【登录】按键登录软件主界面。
三、软件主界面软件登录成功后,出现软件主界面,如图2 所示。
图2 软件主界面软件主界面分为七大部分,分别为:①:大屏幕连接设置②:大屏幕全部参数设置③:大屏幕广告设置④:大屏幕参数设置⑤:大屏幕时间同步设置⑥:菜单栏⑦:用户自定义状态栏1. 修改密码强烈建议首次使用本软件后立即修改用户密码。
中北大学课程设计说明书学生姓名:刘锦峰学号:08060441X40学院: 信息商务学院专业: 电子科学与技术题目: 利用键盘控制点阵进行汉字显示指导教师:王红亮段俊萍职称: 讲师2011 年 6 月 24 日目录1.课程设计目的 (2)2.课程设计内容及要求 (2)2.1设计内容 (2)2.2设计要求 (2)3.设计方案及实现情况 (2)3.1设计思路 (2)3.2工作原理及框图 (2)3.3各模块功能描述 (4)3.4仿真结果 (12)3.5试验箱验证情况 (14)4.课程设计总结 (16)5.参考文献 (16)1、课程设计目的1.学习操作数字电路设计实验开发系统,掌握点阵显示模块的工作原理及应用。
2.掌握组合逻辑电路、时序逻辑电路的设计方法。
3.学习掌握可编程器件设计的全过程。
2、课程设计内容和要求2.1、设计内容用VHDL语言编写程序,使键盘控制点阵显示模块显示汉字。
2.2、设计要求1.学习掌握键盘控制模块、点阵显示模块的工作原理及应用;2. 熟练掌握VHDL编程语言,编写键盘控制模块的控制逻辑;3. 仿真所编写的程序,模拟验证所编写的模块功能;4. 下载程序到芯片中,硬件验证所设置的功能,能够实现汉字显示;5. 整理设计内容,编写设计说明书。
3、设计方案及实现情况3.1、设计思路通过键盘扫描程序的行输出与列输入就可以确认按键的状态,再通过键盘处理程序便可识别键值。
将产生的键值信号送到4-16译码器,经过译码器译码将键值通过LED点阵显示出来。
3.2、工作原理及框图3.2.1、矩阵式键盘的工作原理矩阵式键盘又叫行列式键盘,是用I/O口线组成的行、列矩阵结构,在每根行线与列线的交叉处,二线不直接相通而是通过一个按键跨接接通。
采用这种矩阵结构只需M根行输出线和N根列输入线,就可连接M×N个按键。
通过键盘扫描程序的行输出与列输入就可确认按键的状态,再通过键盘处理程序便可识别键值。
如图1图1 4×8矩阵键盘电路原理图键盘译码电路,主要是根据当按键时键盘会输出四个KIN值(KIN3—KIN0)和三个SEL 值(SEL2—SEL0)。
目录1、课程设计目的 (2)2、课程设计内容和要求 (2)2.1、设计内容 (2)2.2、设计要求 (2)3、设计方案及实现情况 (2)3.1、设计思路 (2)3.2、工作原理及框图 (3)3.3、各模块功能描述 (4)3.4、仿真结果 (15)3.5、实验箱验证情况 (15)4、课程设计总结 (17)5、参考文献 (18)1、课程设计目的(1)学习操作数字电路设计实验开发系统,掌握点阵显示模块的工作原理及应用。
(2)掌握组合逻辑电路、时序逻辑电路的设计方法。
(3)学习掌握可编程器件设计的全过程。
2、课程设计内容和要求2.1、设计内容用VHDL语言编写程序,使按键开关控制点阵显示十进制数字。
2.2、设计要求(1)学习掌握按键开关控制模块、点阵显示模块的工作原理及应用;(2)熟练掌握VHDL编程语言,编写按键开关控制模块的控制逻辑;(3)仿真所编写的程序,模拟验证所编写的模块功能;(4)下载程序到芯片中,硬件验证所设置的功能,能够实现十进制数字的显示;(5)整理设计内容,编写设计说明书。
3、设计方案及实现情况3.1、设计思路此电路共由三个模块组成:按键消抖模块、行选通信号产生模块与列扫描控制模块。
8×8的LED点阵显示器是由64个LED组成, 内部电路如图1所示。
图1 8×8LED点阵电路原理图共阳极的8 × 8的LED点阵显示器的典型连接方式是:每一行的8个阳极连在一起,由行扫描码锁存器和驱动器的一位控制,总共8行阳极连线由8位分别控制;每一列的8个阴极连在一起,由列扫描码锁存器和驱动器的一位控制,总共8列阴极连线由8位分别控制。
本实验采用四块8 × 8的LED点阵拼成的一个16× 16点阵(16列16行)作为1位字符显示的点阵码图。
点阵式LED显示器采用逐行扫描式工作。
要使点阵显示出一个字符的编程方法是:首先选通第一行;接着,向行码锁存器写入该行的字型码(即列数据)。
点阵模块使用说明书1. 简介点阵模块是一种常见的显示设备,它由许多小LED灯组成的阵列构成。
每个LED灯可以独立控制,从而实现文字、图案、数字等的显示。
该使用说明书旨在帮助用户了解如何正确使用点阵模块,并提供一些基本操作指南。
2. 规格和参数在使用点阵模块之前,了解其规格和参数是很重要的。
以下是一些常见的规格和参数:- 尺寸:点阵模块的尺寸通常以像素为单位表示,例如8x8,16x16等。
- 电压:点阵模块的工作电压通常在3.3V到5V之间。
- 接口:点阵模块通常使用数字接口(如SPI、I2C)进行控制。
- 显示颜色:有些点阵模块只能显示单色(如红色或绿色),而其他模块可以显示多种颜色。
- 亮度和调节:有些点阵模块允许用户调节亮度和对比度。
3. 连接和控制使用点阵模块之前,首先需要将其连接到您的主控制器(如Arduino、树莓派)或开发板上。
通常,点阵模块会有一组引脚,您需要将其正确连接到相应的引脚上。
连接完成后,您可以使用适当的库或代码来控制点阵模块。
这些库和代码通常可以从开发平台的官方网站或第三方资源库中获取。
在编写代码时,您需要了解点阵模块的接口和操作命令,以正确地控制其显示。
4. 显示文本和图形一旦您成功地连接并控制了点阵模块,您就可以开始显示文本和图形了。
点阵模块通常允许您以像素为单位控制每个LED灯的状态。
通过控制特定的LED灯,您可以在点阵模块上显示所需的文本、图案或数字。
对于文本显示,您需要从字库中选择适当的字符,并使用适当的函数将其显示在点阵模块上。
您可以通过更改LED灯的状态来控制每个像素的亮度和颜色,从而实现更多复杂的显示效果。
5. 实时更新和动画效果除了静态文本和图形之外,点阵模块还允许您实时更新显示内容,并创建动画效果。
通过不断更新点阵模块的状态,您可以实现滚动文本、闪烁效果和动态图像等。
实时更新和动画效果的实现取决于您的控制代码和刷新速率。
您可以使用循环和延迟函数来控制点阵模块的刷新速度,从而实现所需的动画效果。
目录1、课程设计的目的 (2)2、课程设计内容和要求 (2)2.1 设计内容 (2)2.2 设计要求 (2)3、设计方案及实现情况 (2)3.1 设计思路 (2)3.2 工作原理及框图 (2)3.3 各功能模块描述 (6)3.4 仿真结果 (13)3. 5 实验箱验证情况 (14)4、课程设计总结 (17)4.1 自上而下的设计思想 (17)4.2 课程设计实验心得 (17)5、参考文献 (18)1、课程设计目的(1)学习操作数字电路设计实验开发系统,掌握点阵显示模块的工作原理及应用。
(2)掌握组合逻辑电路、时序逻辑电路的设计方法。
(3)学习掌握可编程器件设计的全过程。
2、课程设计内容和要求:2.1、设计内容(1)键盘扫描模块实现对键盘的扫描控制。
(2)编写控制点阵的程序,实现对点阵时序的控制,使点阵能够正常工作。
(3)添加其他功能模块,协调两个主模块更好地进行工作。
2.2、设计要求(1)学习掌握键盘控制模块、点阵显示模块的工作原理及应用;(2)熟练掌握VHDL编程语言,编写键盘控制模块的控制逻辑;(3)仿真所编写的程序,模拟验证所编写的模块功能;(4)下载程序到芯片中,硬件验证所设置的功能,能够实现字符显示;(5)整理设计内容,编写设计说明书。
3、设计方案及实现情况3.1、设计思路通过对键盘的控制来显示字符的输出,采用模块化的设计思想,对于不同的功能用不同的程序模块来实现。
基于这种设计思想,对本次课程设计题目分为以下几个模块:时序产生电路模块、键盘与点阵扫描电路模块、键盘译码模块、显示模块(此模块对应产生列字符扫描信号). 工作概况如下:当按下键盘后,键盘扫描到对应的输出信号,然后进行第一次译码,接着把译码结果传递给xiansi 模块,xianshi模块根据译码结果产生对应的列字符扫描信号,从而进行输出。
3.2、工作原理及框图1、键盘译码电路键盘中的按键可分为数字键和功能键。
数字键主要用来输入数字,但从上述内容发现,键盘所产生的输出KIN3~KIN0无法拿来直接使用;另外不同的数字按键也担负不同的功能,因此必须由键盘译码电路来规划某个按键的输出形式,以便执行相应的动作。
第4章键盘和显示器的应用在单片机应用系统中,键盘和显示器是非常重要的人机接口。
人机接口是指人与计算机系统进行信息交互的接口,包括信息的输入和输出。
常用输入设备主要是键盘,常用输出设备包括发光二极管、数码管和液晶显示器等。
4.1 键盘输入键盘用于实现单片机应用系统中的数据信息和控制命令的输入,按结构可分为编码键盘和非编码键盘。
编码键盘上闭合键的识别由专用的硬件编码器实现,并产生相应的键码值,如计算机键盘。
非编码键盘是通过软件的方法产生键码,不需要专用的硬件电路。
为了减少电路的复杂程度,节省单片机的I/O口,在单片机应用系统中广泛使用非编码键盘,主要对象是各种按键或开关。
这些按键或开关可以独立使用(称之为独立键盘),也可以组合使用(称之为矩阵式键盘)。
4.1.1 按键电路与按键抖动处理按键电路连接方法非常简单,如图4.1所示。
此电路用于通过外力使按键瞬时接通开关的场合,如单片机的RESET电路中,通过按键产生一个瞬时的低电压,CPU感知这个低电压后重启。
图4.1 按键复位电路由于按键的闭合与断开都是利用其机械弹性实现的,当机械触点断开、闭合时,会产生抖动,这种抖动操作用户感觉不到,但对CPU来说,其输出波形则明显发生变化,如图4.2所示。
图4.2 按键开、闭时的电压抖动波形按键按下和释放时的抖动时间一般为10~20ms ,按键的稳定闭合期由操作用户的按键动作决定,一般为几百毫秒到几秒,而单片机CPU的处理速度在微秒极,因此,按键的一次闭合,有可能导致CPU的多次响应。
为了避免这种错误操作,必须对按键电路进行去抖动处理。
常用的去抖动方法有硬件方式和软件方式两种。
使用硬件去抖动的方式,需要在按键连接的硬件设计上增加硬件去抖电路,比如将按键输出信号经过R-S 触发器或 RC 积分电路后再送入单片机,就可以保证按一次键只发出一个脉冲。
软件方式去抖动的基本原理是在软件中采用时间延迟,对按键进行两次测试确认,即在第一次检测到按键按下后,间隔 10ms 左右,再次检测该按键是否按下,只有在两次都测到按键按下时才最终确认有键按下,这样就可以避开抖动时间段,消除抖动影响。
中北大学课程设计说明书学生姓名:于微学号:0906044204 学院: 电子与计算机科学技术学院专业: 电子科学与技术题目: 利用按键开关控制点阵进行字母显示指导教师:王红亮职称: 讲师2012 年 6 月 22 日目录1、课程设计目的 (1)2、课程设计内容和要求 (1)2.1、设计内容 (1)2.2、设计要求 (1)3、设计方案及实现情况 (1)3.1、设计思路 (1)3.2、工作原理及框图 (1)3.3、各模块功能描述 (2)3.4、仿真结果 (4)4、课程设计总结 (26)5、参考文献 (27)1、课程设计目的1.学习操作数字电路设计实验开发系统,掌握点阵显示模块的工作原理及应用。
2.掌握组合逻辑电路、时序逻辑电路的设计方法。
3.学习掌握可编程器件设计的全过程。
2、课程设计内容和要求2.1、设计内容利用按键开关控制点阵进行字母显示2.2、设计要求1.学习掌握按键开关控制模块、点阵显示模块的工作原理及应用;2. 熟练掌握VHDL编程语言,编写按键开关控制模块的控制逻辑;3. 仿真所编写的程序,模拟验证所编写的模块功能;4. 下载程序到芯片中,硬件验证所设置的功能,能够实现字母显示;5. 整理设计内容,编写设计说明书。
3、设计方案及实现情况3.1、设计思路根据题目设计要求,本系统拟采用自顶向下设计方法,顶层采用原理图设计方法,将整个系统分为按键开关控制(BUTTON)、16×16点阵显示(LENDISP)两个模块,通过对各模块编写程序实现模块功能,最后将两个模块进行综合实现整个系统的功能,通过按键开关控制点阵进行二十六个字母的显示。
3.2、工作原理及框图图1 系统整体设计原理图系统的输入信号有:系统时钟信号CLK,按键信号(ADD、SUB)。
系统的输出信号有:点阵行驱动输出信号(LEDOUT[0..15]),点阵列选和按键开关扫描公用信号(SEL[3..0])。
系统工作过程为:按键开关按下一次,扫描信号扫描到按键按下时,在点阵上显示对应的字母。
如按键开关按下一次时,点阵显示字母“A”;按下两次时,点阵显示字母“B”……如此,按键开关按下26次就分别对应了26个字母。
3.3、各模块功能描述(1)按键控制模块(BUTTON)按键控制模块的功能是:通过按键的按下与释放产生计数,进行二十六进制计数,以控制二十六个字母的生成。
该模块中,clk为系统时钟,add为加法计数,sub为减法计数,reset为复位。
selout[4..0]为按键扫描后的对应的译码输出。
图2 按键控制模块引脚功能图(2)16×16点阵显示模块(LENDISP)16×16点阵显示模块引脚功能如下图。
其中clk为系统时钟,selin为键盘扫描后的对应的译码输出,和图3中的selout[4..0]对接。
selout[3..0]为点阵列选择信号,ledout[15..0]为点阵行显示。
图3 点阵显示模块引脚功能图3.4、仿真结果1、VHDL语言源程序(1)按键控制模块(BUTTON.VHD)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity anjia isport(add,sub:in std_logic;clk,reset:in std_logic;selout:out std_logic_vector(4 downto 0));end entity anjia;architecture rt1 of anjia issignal seloutn: std_logic_vector(4 downto 0);signal addn:std_logic;signal subn:std_logic;signal resetn:std_logic;beginprocess(clk)beginif(clk'event and clk='1')then --将按键和进(借)位的值在CLK上升沿来时赋给一个新的信号中。
addn<=add;subn<=sub;resetn<=reset;end if;end process;process(clk,add,addn,sub,subn) --个位计数beginif(reset='1' and resetn='0')thenelsif(clk'event and clk='1')thenif (add='1' and addn='0') then --按键上升沿跳变,下同if (seloutn ="11001") thenseloutn <="00000";elseseloutn <= seloutn +1;end if;elsif (sub='1' and subn='0')thenif (seloutn ="00000") thenseloutn <="11001";elseseloutn <= seloutn -1;end if;end if;end if;end process;selout <= seloutn;end architecture rt1;(2) 点阵显示模块(LENDISP.VHD)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity lendisp isport(clk:in std_logic;--clkin:in std_logic_vector(3 downto 0);selin:in std_logic_vector(4 downto 0);selout:out std_logic_vector(3 downto 0);ledout:out std_logic_vector(15 downto 0));architecture ctl of lendisp issignal temp:std_logic_vector(15 downto 0);signal clkin:std_logic_vector(3 downto 0); beginprocess(clk,clkin,selin)beginif (clk'event and clk='1') thenif clkin="1111" thenclkin<="0000";elseclkin<=clkin+1;end if;end if;selout<=clkin;case selin iswhen "00000"=>case clkin iswhen "0000"=>temp<="0000000000000100";when "0001"=>temp<="0000000000000100";when "0010"=>temp<="0000000000001100";when "0011"=>temp<="0000000001111100";when "0100"=>temp<="0000000111111100";when "0101"=>temp<="0000011111100100";when "0110"=>temp<="0001111111000000";when "0111"=>temp<="0001110001000000";when "1000"=>temp<="0001100001000000";when "1001"=>temp<="0000111001000000";when "1010"=>temp<="0000001111000100";when "1101"=>temp<="0000000000001100";when "1110"=>temp<="0000000000000100";when "1111"=>temp<="0000000000000100";when others=>temp<="0000000000000000";end case;when "00001"=>case clkin iswhen "0000"=>temp<="0000000000000000";when "0001"=>temp<="0000010001111000";when "0010"=>temp<="0000111011111000";when "0011"=>temp<="0001111111111100";when "0100"=>temp<="0001111110001100";when "0101"=>temp<="0001000110000100";when "0110"=>temp<="0001000110000100";when "0111"=>temp<="0001000110000100";when "1000"=>temp<="0001000110000100";when "1001"=>temp<="0001000110000100";when "1010"=>temp<="0001000110000100";when "1011"=>temp<="0001000110000100";when "1100"=>temp<="0001111111111100";when "1101"=>temp<="0001111111111100";when "1110"=>temp<="0001000000000100";when "1111"=>temp<="0001000000000100";when others=>temp<="0000000000000100";end case;when "00010"=>case clkin iswhen "0000"=>temp<="0000000000000000";when "0011"=>temp<="0001000000001100";when "0100"=>temp<="0001000000000100";when "0101"=>temp<="0001000000000100";when "0110"=>temp<="0001000000000100";when "0111"=>temp<="0001000000000100";when "1000"=>temp<="0001000000000100";when "1001"=>temp<="0001000000000100";when "1010"=>temp<="0001100000001100";when "1011"=>temp<="0000110000011000";when "1100"=>temp<="0000111111111000";when "1101"=>temp<="0000011111110000";when "1110"=>temp<="0000001111100000";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "00011"=>case clkin iswhen "0000"=>temp<="0000000010000000";when "0001"=>temp<="0000011111100000";when "0010"=>temp<="0000111111110000";when "0011"=>temp<="0000111111111000";when "0100"=>temp<="0001100000001000";when "0101"=>temp<="0001100000001100";when "0110"=>temp<="0001000000000100";when "0111"=>temp<="0001000000000100";when "1000"=>temp<="0001000000000100";when "1001"=>temp<="0001000000000100";when "1010"=>temp<="0001000000000100";when "1100"=>temp<="0001111111111100";when "1101"=>temp<="0001000000000100";when "1110"=>temp<="0001000000000100";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "00100"=>case clkin iswhen "0000"=>temp<="0000000000000000";when "0001"=>temp<="0000110000011000";when "0010"=>temp<="0001100000001100";when "0011"=>temp<="0001100000000100";when "0100"=>temp<="0001001111000100";when "0101"=>temp<="0001000110000100";when "0110"=>temp<="0001000110000100";when "0111"=>temp<="0001000110000100";when "1000"=>temp<="0001000110000100";when "1001"=>temp<="0001000110000100";when "1010"=>temp<="0001111111111100";when "1011"=>temp<="0001111111111100";when "1100"=>temp<="0001111111111100";when "1101"=>temp<="0001000000000100";when "1110"=>temp<="0001000000000100";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "00101"=>case clkin iswhen "0000"=>temp<="0000000000000000";when "0010"=>temp<="0001100000000000";when "0011"=>temp<="0001001111000000";when "0100"=>temp<="0001001111000000";when "0101"=>temp<="0001000110000000";when "0110"=>temp<="0001000010000000";when "0111"=>temp<="0001000010000000";when "1000"=>temp<="0001000010000100";when "1001"=>temp<="0001000010000100";when "1010"=>temp<="0001111111111100";when "1011"=>temp<="0001111111111100";when "1100"=>temp<="0001111111111100";when "1101"=>temp<="0001000000000100";when "1110"=>temp<="0001000000000100";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "00110"=>case clkin iswhen "0000"=>temp<="0000000001000000";when "0001"=>temp<="0000000001000000";when "0010"=>temp<="0000110001111100";when "0011"=>temp<="0001110001111100";when "0100"=>temp<="0001100001111100";when "0101"=>temp<="0001000001000100";when "0110"=>temp<="0001000000000100";when "0111"=>temp<="0001000000000100";when "1000"=>temp<="0001000000000100";when "1001"=>temp<="0001000000000100";when "1010"=>temp<="0001100000001100";when "1100"=>temp<="0000111111111000";when "1101"=>temp<="0000011111110000";when "1110"=>temp<="0000001111100000";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "00111"=>case clkin iswhen "0000"=>temp<="0001000000000100";when "0001"=>temp<="0001000000000100";when "0010"=>temp<="0001111111111100";when "0011"=>temp<="0001111111111100";when "0100"=>temp<="0001111111111100";when "0101"=>temp<="0001000010000100";when "0110"=>temp<="0000000010000000";when "0111"=>temp<="0000000010000000";when "1000"=>temp<="0000000010000000";when "1001"=>temp<="0000000010000100";when "1010"=>temp<="0001000010000100";when "1011"=>temp<="0001111111111100";when "1100"=>temp<="0001111111111100";when "1101"=>temp<="0001111111111100";when "1110"=>temp<="0001000000000100";when "1111"=>temp<="0000000000000100";when others=>temp<="0000000000000000";end case;when "01000"=>case clkin iswhen "0000"=>temp<="0000000000000000";when "0011"=>temp<="0001000000000100";when "0100"=>temp<="0001000000000100";when "0101"=>temp<="0001000000000100";when "0110"=>temp<="0001111111111100";when "0111"=>temp<="0001111111111100";when "1000"=>temp<="0001111111111100";when "1001"=>temp<="0001000000000100";when "1010"=>temp<="0001000000000100";when "1011"=>temp<="0001000000000100";when "1100"=>temp<="0001000000000100";when "1101"=>temp<="0000000000000000";when "1110"=>temp<="0000000000000000";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "01001"=>case clkin iswhen "0000"=>temp<="0000000000000000";when "0001"=>temp<="0000000000000000";when "0010"=>temp<="0000000000000000";when "0011"=>temp<="0001000000000000";when "0100"=>temp<="0001111111111100";when "0101"=>temp<="0001111111111110";when "0110"=>temp<="0001111111111110";when "0111"=>temp<="0001000000000011";when "1000"=>temp<="0001000000000001";when "1001"=>temp<="0001000000000001";when "1010"=>temp<="0001000000000001";when "1101"=>temp<="0000000000000111";when "1110"=>temp<="0000000000000010";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "01010"=>case clkin iswhen "0000"=>temp<="0000000000000000";when "0001"=>temp<="0000000000000000";when "0010"=>temp<="0001000000001100";when "0011"=>temp<="0001000000011100";when "0100"=>temp<="0001100000111100";when "0101"=>temp<="0001110001110100";when "0110"=>temp<="0000011011100000";when "0111"=>temp<="0000001111000000";when "1000"=>temp<="0000001110000000";when "1001"=>temp<="0001000110000100";when "1010"=>temp<="0001000010000100";when "1011"=>temp<="0001111111111100";when "1100"=>temp<="0001111111111100";when "1101"=>temp<="0001000000000100";when "1110"=>temp<="0001000000000100";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "01011"=>case clkin iswhen "0000"=>temp<="0000000000010000";when "0011"=>temp<="0000000000000100";when "0100"=>temp<="0000000000000100";when "0101"=>temp<="0000000000000100";when "0110"=>temp<="0000000000000100";when "0111"=>temp<="0000000000000100";when "1000"=>temp<="0000000000000100";when "1001"=>temp<="0001000000000100";when "1010"=>temp<="0001111111111100";when "1011"=>temp<="0001111111111100";when "1100"=>temp<="0001111111111100";when "1101"=>temp<="0001000000000100";when "1110"=>temp<="0001000000000100";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "01100"=>case clkin iswhen "0000"=>temp<="0001000000000100";when "0001"=>temp<="0001111111111100";when "0010"=>temp<="0001111111111100";when "0011"=>temp<="0001111111111100";when "0100"=>temp<="0001111000000100";when "0101"=>temp<="0000011110000100";when "0110"=>temp<="0000000111100000";when "0111"=>temp<="0000000001111000";when "1000"=>temp<="0000000000111100";when "1001"=>temp<="0000000011111100";when "1010"=>temp<="0000011111100000";when "1101"=>temp<="0001111111111100";when "1110"=>temp<="0001000000000100";when "1111"=>temp<="0000000000000100";when others=>temp<="0000000000000000";end case;when "01101"=>case clkin iswhen "0000"=>temp<="0001000000000000";when "0001"=>temp<="0001000000000000";when "0010"=>temp<="0001111111111100";when "0011"=>temp<="0001000000011000";when "0100"=>temp<="0001000000110000";when "0101"=>temp<="0000000001100000";when "0110"=>temp<="0000000011000000";when "0111"=>temp<="0000000110000000";when "1000"=>temp<="0000001100000000";when "1001"=>temp<="0000011000000000";when "1010"=>temp<="0000110000000100";when "1011"=>temp<="0001110000000100";when "1100"=>temp<="0001111111111100";when "1101"=>temp<="0001111111111100";when "1110"=>temp<="0001000000000100";when "1111"=>temp<="0000000000000100";when others=>temp<="0000000000000000";end case;when "01110"=>case clkin iswhen "0000"=>temp<="0000000111000000";when "0011"=>temp<="0000111000111000";when "0100"=>temp<="0001100000001100";when "0101"=>temp<="0001000000000100";when "0110"=>temp<="0001000000000100";when "0111"=>temp<="0001000000000100";when "1000"=>temp<="0001000000000100";when "1001"=>temp<="0001000000000100";when "1010"=>temp<="0001100000001100";when "1011"=>temp<="0001110000011000";when "1100"=>temp<="0000111111111000";when "1101"=>temp<="0000011111110000";when "1110"=>temp<="0000001111000000";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "01111"=>case clkin iswhen "0000"=>temp<="0000000000000000";when "0001"=>temp<="0000111000000000";when "0010"=>temp<="0000111100000000";when "0011"=>temp<="0001111110000000";when "0100"=>temp<="0001000110000000";when "0101"=>temp<="0001000010000000";when "0110"=>temp<="0001000010000000";when "0111"=>temp<="0001000010000000";when "1000"=>temp<="0001000010000100";when "1001"=>temp<="0001000010000100";when "1010"=>temp<="0001111111111100";when "1101"=>temp<="0001000000000100";when "1110"=>temp<="0001000000000100";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "10000"=>case clkin iswhen "0000"=>temp<="0000000111000000";when "0001"=>temp<="0000011111110110";when "0010"=>temp<="0000111111111010";when "0011"=>temp<="0000111001111111";when "0100"=>temp<="0001100000001110";when "0101"=>temp<="0001000000001110";when "0110"=>temp<="0001000000011100";when "0111"=>temp<="0001000000110100";when "1000"=>temp<="0001000000110100";when "1001"=>temp<="0001000000110100";when "1010"=>temp<="0001100000011100";when "1011"=>temp<="0001110000011000";when "1100"=>temp<="0000111111111000";when "1101"=>temp<="0000011111110000";when "1110"=>temp<="0000001111100000";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "10001"=>case clkin iswhen "0000"=>temp<="0000000000000100";when "0011"=>temp<="0001111100011100";when "0100"=>temp<="0001100100111000";when "0101"=>temp<="0001000111110000";when "0110"=>temp<="0001000111100000";when "0111"=>temp<="0001000011000000";when "1000"=>temp<="0001000010000000";when "1001"=>temp<="0001000010000100";when "1010"=>temp<="0001111111111100";when "1011"=>temp<="0001111111111100";when "1100"=>temp<="0001111111111100";when "1101"=>temp<="0001000000000100";when "1110"=>temp<="0000000000000100";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "10010"=>case clkin iswhen "0000"=>temp<="0000000000000000";when "0001"=>temp<="0000000000110000";when "0010"=>temp<="0001110001111000";when "0011"=>temp<="0001100001111100";when "0100"=>temp<="0001100011000100";when "0101"=>temp<="0001000011000100";when "0110"=>temp<="0001000010000100";when "0111"=>temp<="0001000110000100";when "1000"=>temp<="0001000110000100";when "1001"=>temp<="0001000110000100";when "1010"=>temp<="0001000100000100";when "1101"=>temp<="0000111000111100";when "1110"=>temp<="0000000000000000";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "10011"=>case clkin iswhen "0000"=>temp<="0000000000000000";when "0001"=>temp<="0001110000000000";when "0010"=>temp<="0001100000000000";when "0011"=>temp<="0001000000000000";when "0100"=>temp<="0001000000000100";when "0101"=>temp<="0001000000000100";when "0110"=>temp<="0001111111111100";when "0111"=>temp<="0001111111111100";when "1000"=>temp<="0001111111111100";when "1001"=>temp<="0001000000000100";when "1010"=>temp<="0001000000000100";when "1011"=>temp<="0001000000000100";when "1100"=>temp<="0001000000000000";when "1101"=>temp<="0001100000000000";when "1110"=>temp<="0000110000000000";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "10100"=>case clkin iswhen "0000"=>temp<="0000000000000000";when "0011"=>temp<="0001000000001000";when "0100"=>temp<="0001000000001100";when "0101"=>temp<="0000000000000100";when "0110"=>temp<="0000000000000100";when "0111"=>temp<="0000000000000100";when "1000"=>temp<="0000000000000100";when "1001"=>temp<="0000000000000100";when "1010"=>temp<="0001000000001100";when "1011"=>temp<="0001111111111100";when "1100"=>temp<="0001111111111000";when "1101"=>temp<="0001111111110000";when "1110"=>temp<="0001000000000000";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "10101"=>case clkin iswhen "0000"=>temp<="0000000000000000";when "0001"=>temp<="0001000000000000";when "0010"=>temp<="0001100000000000";when "0011"=>temp<="0001110000000000";when "0100"=>temp<="0001011100000000";when "0101"=>temp<="0000000111000000";when "0110"=>temp<="0000000001110000";when "0111"=>temp<="0000000000011100";when "1000"=>temp<="0000000001111100";when "1001"=>temp<="0000000111111000";when "1010"=>temp<="0001011111100000";when "1101"=>temp<="0001000000000000";when "1110"=>temp<="0001000000000000";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "10110"=>case clkin iswhen "0000"=>temp<="0001000000000000";when "0001"=>temp<="0001100000000000";when "0010"=>temp<="0001111100000000";when "0011"=>temp<="0001001111100000";when "0100"=>temp<="0000000011111000";when "0101"=>temp<="0000000111111100";when "0110"=>temp<="0001111111110000";when "0111"=>temp<="0001111110000000";when "1000"=>temp<="0001111111000000";when "1001"=>temp<="0001000111110000";when "1010"=>temp<="0000000001111100";when "1011"=>temp<="0010011111111100";when "1100"=>temp<="0011111111000000";when "1101"=>temp<="0011111000000000";when "1110"=>temp<="0010000000000000";when "1111"=>temp<="0000000000000000";when others=>temp<="0000000000000000";end case;when "10111"=>case clkin iswhen "0000"=>temp<="0000000000000100";。