利用按键开关控制点阵进行字母显示说明书

合集下载

按键控制点阵LED广告屏显示

按键控制点阵LED广告屏显示

按键控制点阵 LED 广告屏显示
【实验要求】 16×16LED 点阵由四块 8×8LED 点阵组成。通过按键控制点阵的显示,使 16×16 点阵显示 不同的汉字。 【实验设计思路】 通过不断的循环扫描在 16×16LED 点阵上显示一个稳定的字。 在程序中添加两个外部中断, 不同的外部中断给程序不同的数据起始地址, 使送入点阵的字 码不一样。 【硬件连接图】
// 端口定义
uint count=0; uchar Scan; uchar i, j; void Delay(void) // 延时子程序 { unsigned char i; for(i=0; i<60; i++); } void clear(void) // 清屏 { Row1 = 0x00; Row2 = 0x00; Col1 = 0xff; Col2 = 0xff; } void play() { for(i=0; i<50; i++) { for(j=0; j<8; j++) { Row1 = 0x00; Col1 = ~hzdot[count]; // Col2 = ~hzdot[count+1]; // count+=2; Row1 = Scan; // Scan = (Scan<<1)|(Scan>>7); // Delay(); } Row1 = 0x00; for(j=0; j<8; j++) { Row2 = 0x00; Col1 = ~hzdot[count]; Col2 = ~hzdot[count+1]; count+=2; Row2 = Scan; // Scan = (Scan<<1)|(Scan>>7); Delay(); } Row2 = 0x00; count-=32; } }

利用按键开关控制点阵进行字母显示说明书(完美通过)

利用按键开关控制点阵进行字母显示说明书(完美通过)

中北大学课程设计说明书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显示器采用逐行扫描式工作。

要使点阵显示出一个字符的编程方法是:首先选通第一行;接着,向行码锁存器写入该行的字型码(即列数据)。

字符点阵系列液晶显示模块使用中文说明书

字符点阵系列液晶显示模块使用中文说明书

信息自动送入 AC 中,并做出 AC 作为 DDRAM 的地址指针还是 CGRAM 的地址指针的选择。
AC 具有自动加 1 或者减 1 的功能。当 DR 与 DDRAM 或者 CGRAM 之间完成一次数据传送后,AC
自 动会加 1 或减 1。在 RS=0、R/W=1 且 E 为高电平时,AC 的内容送到 DB6~DB0。
□ CGRAM 数据为 1 时,处于显示状态。
四.指令说明
由于 MPU 可以直接访问模块内部的 IR 和 DR,作为缓冲区域,IR 和 DR 在模块进行内部操作 之前, 可以暂存来自 MPU 的控制信息。这样就给用户在 MPU 和外围控制设备的选择上,增加了余 地。模块的内 部操作由来自 MPU 的 RS、R/W、E 以及数据信号 DB 决定,这些信号的组合形成了模块 的指令。


1
0
将 DB0~DB7 的指令代码写入指令寄存器中
1→0
0
分别将状态标志 BF 和地址计数器(AC)内容读到 DB7 和
1
DB6~
1 1
1→0
将 DB0~DB7 的数据写入数据寄存器中,模块的内部操作自动将数
0
据写到 DDRAM 或者 CGRAM 中
将数 据寄存器内的 数据读 到 DB0~ DB7,模 块的内部操作自动
High order bits
Low order bits
AC6 AC5 AC4 AC3 AC2 AC1 AC0
3-4 显示数据寄存器(DDRAM) DDRAM 存储显示字符的字符码,其容量的大小决定着模块最多可显示的字符数目。除 OCM4X40 的
DDRAM 容量为 2X80X8bits 外,其他型号的 DDRAM 容量均为 80X8bits。 DDRAM 地址与 LCD 显示屏上的显示位置的对应关系如下: □ 一行显示 字符列位置 1 2 3 ……………………………. 78 79 80 DDRAM 地址 00H 01H 03H ……………………………. 4DH 4EH 4FH

点阵模块使用说明书

点阵模块使用说明书

点阵模块使用说明书1. 简介点阵模块是一种常见的显示设备,它由许多小LED灯组成的阵列构成。

每个LED灯可以独立控制,从而实现文字、图案、数字等的显示。

该使用说明书旨在帮助用户了解如何正确使用点阵模块,并提供一些基本操作指南。

2. 规格和参数在使用点阵模块之前,了解其规格和参数是很重要的。

以下是一些常见的规格和参数:- 尺寸:点阵模块的尺寸通常以像素为单位表示,例如8x8,16x16等。

- 电压:点阵模块的工作电压通常在3.3V到5V之间。

- 接口:点阵模块通常使用数字接口(如SPI、I2C)进行控制。

- 显示颜色:有些点阵模块只能显示单色(如红色或绿色),而其他模块可以显示多种颜色。

- 亮度和调节:有些点阵模块允许用户调节亮度和对比度。

3. 连接和控制使用点阵模块之前,首先需要将其连接到您的主控制器(如Arduino、树莓派)或开发板上。

通常,点阵模块会有一组引脚,您需要将其正确连接到相应的引脚上。

连接完成后,您可以使用适当的库或代码来控制点阵模块。

这些库和代码通常可以从开发平台的官方网站或第三方资源库中获取。

在编写代码时,您需要了解点阵模块的接口和操作命令,以正确地控制其显示。

4. 显示文本和图形一旦您成功地连接并控制了点阵模块,您就可以开始显示文本和图形了。

点阵模块通常允许您以像素为单位控制每个LED灯的状态。

通过控制特定的LED灯,您可以在点阵模块上显示所需的文本、图案或数字。

对于文本显示,您需要从字库中选择适当的字符,并使用适当的函数将其显示在点阵模块上。

您可以通过更改LED灯的状态来控制每个像素的亮度和颜色,从而实现更多复杂的显示效果。

5. 实时更新和动画效果除了静态文本和图形之外,点阵模块还允许您实时更新显示内容,并创建动画效果。

通过不断更新点阵模块的状态,您可以实现滚动文本、闪烁效果和动态图像等。

实时更新和动画效果的实现取决于您的控制代码和刷新速率。

您可以使用循环和延迟函数来控制点阵模块的刷新速度,从而实现所需的动画效果。

利用键盘控制点阵进行ASIC字符显示

利用键盘控制点阵进行ASIC字符显示

目录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无法拿来直接使用;另外不同的数字按键也担负不同的功能,因此必须由键盘译码电路来规划某个按键的输出形式,以便执行相应的动作。

MSP430按键输入和led点阵显示解读

MSP430按键输入和led点阵显示解读

第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 左右,再次检测该按键是否按下,只有在两次都测到按键按下时才最终确认有键按下,这样就可以避开抖动时间段,消除抖动影响。

点阵字符型液晶显示模块 说明书 (HD44780、KS0066资料)

点阵字符型液晶显示模块 说明书 (HD44780、KS0066资料)

液晶驱动电压:
4
RS
H/L
寄存器选择: 1: 数据寄存器; 0: 指令寄存器
5
R/W
H/L
读、写操作选择 1: 读; 0: 写
6
E
H,HÆL
使能信号 ENABLE
7
DB0
H/L
数据总线
8
DB1
H/L
数据总线
9
DB2
H/L
数据总线
10
DB3
H/L
数据总线
11
DB4
H/L
数据总线
12
DB5
H/L
数据总线
功能:读忙BF值和地址计数器AC值。 其中:BF = 1:忙; BF = 0:准备好。此时AC值意义为最近一次地址设置(CG RAM或
DD RAM)定义。 10、写数据
运行时间(250Khz): 40 µs 功能:根据最近设置的地址性质,数据写入DD RAM或CG RAM内。 11、读数据
运行时间(250Khz): 40 µs 功能:根据最近设置的地址性质,从DD RAM或CG RAM数据读出。
点阵字符型液晶显示模块
使用手册
(HD44780、KS0066资料)
点阵字符型液晶显示模块使用手册
目录
前言……………………………………………………………………………3 第一章:注意事项项…………………………………………………………3 第二章:字符型液晶显示模块的基本特点…………………………………5 第三章:字符型液晶显示模块特性…………………………………………6 第四章:字符型液晶显示模块指令集……………………………………10 第五章:点阵字符液晶模块应用…………………………………………14 附录:HD44780/KS0066的内部字符集……………………………………16

51单片机—按键控制点阵显示

51单片机—按键控制点阵显示

51单⽚机—按键控制点阵显⽰名称:按键控制 8X8LED 点阵屏显⽰图形说明:每次按下 K1 时,会使 8X8LED 点阵屏循环显⽰不同图形。

本例同时使⽤外部中断和定时中断#include"reg52.h"#include"intrins.h"#define led P0 //宏定义typedef unsigned int u16;typedef unsigned char u8;sbit src=P3^6;//移位寄存器时钟输⼊sbit rc=P3^5;//存储寄存器时钟输⼊sbit ser=P3^4;//串⾏数据输⼊sbit key=P3^2;//按键u8 duan[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};u8 count=0;u8 i;u8 flag=0;//标志位void delay(u16 x)//延时函数1us{while(x--);}void tim_init()//定时器初始化{EA=1;//中断总允许位ET0=1;//定时计数器中断允许位TMOD=0X01;//定时器0的⽅式1 0000 0001TH0=0XD8;//⾼⼋位TL0=0XF0;//低⼋位TR0=1;//开启定时}void int0_init()//中断初始化{EX0=1;//外部中断允许位IT0=1;//下降沿触发}void c595(u8 date)//c595芯⽚初始化{u8 a;src=0;//移位寄存器时钟输⼊rc=0;//存储寄存器时钟输⼊for(a=0;a<8;a++){ser=date>>7;//选择最⾼位date<<=1;//向左移⼀位src=1;_nop_();//⼀个机器周期时间(在intrins头⽂件中)_nop_();src=0;}rc=1;_nop_();_nop_();rc=0;}void main(){led=0xcc;c595(0x00);tim_init();int0_init();while(1);}void int0() interrupt 0//中断服务函数{if(key==0){delay(4);//消抖if(key==0){while(key==0);//判断是否松⼿flag=1;}}}void tim0() interrupt 1{TH0=0XD8;TL0=0XF0;count++;if(count==50){if(flag==1){i++;c595(duan[i]);led=~led;delay(100);if(i==7){i=0;flag=0;}}count=0;}}。

第一课时 用按键切换LED点阵图形-信息技术课件

第一课时 用按键切换LED点阵图形-信息技术课件

智慧校园之文化篇1——
用按键切换LED点阵图形

按键
物理按键
触摸按键 方向按键
RGB点阵
主控板上共有5*5个LED灯,不同 灯的组合可构成不同的图形。除了系 统内置的图形外,也可以自己设置 LED灯组成不同的图形。
使用物理按键控制RGB灯
(RGB点阵全亮或关闭)
(R按键A来实现RGB点阵显示内置的图形
思考
思考:下列的程序会出现了什么bug?怎么解决?
探究
如果要计算机按照我们编程的逻辑顺序切换图形该怎么去实现?
变量 解决方案:将按键按下的次数创建成一个
·变量,是指没有固定的值,可以改变的数。在mPython 软件中,变量的名称由字母、数字和下划线组成。

点阵显示字母课程设计

点阵显示字母课程设计

点阵显示字母课程设计一、课程目标知识目标:1. 学生能理解点阵显示原理,掌握点阵与字母之间的对应关系。

2. 学生能运用点阵显示方法,正确拼写出所学的英文字母。

3. 学生了解点阵显示在信息技术领域的应用及其重要性。

技能目标:1. 学生能运用编程软件,设计并实现点阵显示字母的程序。

2. 学生通过实际操作,培养动手能力和问题解决能力。

3. 学生学会使用点阵显示技术,进行创意字母设计。

情感态度价值观目标:1. 学生培养对信息技术的兴趣和热情,增强学习自信心。

2. 学生在团队协作中,学会互相帮助,培养集体荣誉感。

3. 学生认识到科技发展对生活的影响,激发对科技创新的热情。

课程性质:本课程属于信息技术学科,以实践操作为主,结合理论知识。

学生特点:六年级学生具备一定的计算机操作能力,对新鲜事物充满好奇心,善于团队协作。

教学要求:教师需关注学生个体差异,提供针对性的指导,鼓励学生创新思考,注重实践操作能力的培养。

通过本课程的学习,使学生在掌握知识技能的同时,培养情感态度价值观。

将课程目标分解为具体学习成果,以便于教学设计和评估。

二、教学内容本课程依据课程目标,结合教材内容,组织以下教学安排:1. 理论知识:- 点阵显示原理介绍- 点阵与英文字母的对应关系- 编程软件的基本操作方法2. 实践操作:- 点阵显示字母程序设计- 创意字母设计及展示- 团队协作完成项目任务教学大纲:第一课时:- 点阵显示原理学习- 点阵与英文字母对应关系探讨第二课时:- 编程软件操作方法教学- 点阵显示字母程序设计指导第三课时:- 创意字母设计及展示- 团队协作完成项目任务教学内容进度安排:- 理论知识与实践操作相结合,逐步推进教学进度。

- 第一、二课时重点讲解点阵显示原理及编程操作。

- 第三课时以实践操作为主,巩固所学知识,培养创新能力。

教材章节关联:- 本课程教学内容与教材中关于点阵显示技术章节紧密相关。

- 学生需掌握教材中相关概念、原理和操作方法,为本课程学习打下基础。

利用键盘控制点阵进行点阵显示

利用键盘控制点阵进行点阵显示

中北大学课程设计说明书学生姓名:田晓春学号:0606024114学院: 电子与计算机科学技术学院专业: 微电子学题目: 利用键盘控制点阵进行十六进制加法计数显示指导教师:沈三民职称: 讲师2009年 7 月 11 日目录目录 (2)1、课程设计目的 (3)2、课程设计内容和要求 (3)2.1、设计内容 (3)2.2、设计要求 (3)3、设计方案及实现情况 (3)3.1、设计思路 (3)3.2、工作原理及框图 (4)3.3、各模块功能描述 (4)3.4、仿真结果 (8)3.5、实验箱验证情况 (22)4、课程设计总结 (23)5、参考文献 (23)1、课程设计目的1.学习操作数字电路设计实验开发系统,掌握矩阵键盘输入模块和点阵显示模块的工作原理及应用。

2.掌握组合逻辑电路、时序逻辑电路的设计方法。

3.学习掌握可编程器件设计的全过程。

2、课程设计内容和要求:2.1、设计内容利用键盘控制点阵实现十六进制加法计数,主要包括键盘控制模块、自动计数模块、功能控制模块和点阵显示模块。

2.2、设计要求1.学习掌握键盘控制模块、点阵显示模块的工作原理及应用;2. 熟练掌握VHDL编程语言,编写键盘控制模块的控制逻辑;3. 仿真所编写的程序,模拟验证所编写的模块功能;4. 下载程序到芯片中,硬件验证所设置的功能,能够实现十六进制数字的显示;5. 整理设计内容,编写设计说明书。

3、设计方案及实现情况3.1、设计思路根据题目设计要求,本系统拟采用自顶向下设计方法,顶层采用原理图设计方法,将整个系统分为键盘控制(KEYBOARD)、自动计数(AUTO)、功能控制(CONTROL)、16×16点阵显示(LEDDISP)四个模块,通过对各模块编写程序实现模块功能,最后将四个模块进行综合实现整个系统的功能,通过键盘控制点阵进行十六进制加法计数显示。

3.2、工作原理及框图图1 系统整体设计原理图系统的输入信号有:开关(允许输入及显示)信号RST,系统时钟信号CLK,按键信号(KININ[3..0])。

4×4 键盘在 8×8LED点阵上的应用课程设计 更新

4×4 键盘在 8×8LED点阵上的应用课程设计 更新

目录第1章设计任务及功能要求................. 错误!未定义书签。

1.1设计课程任务................................. 错误!未定义书签。

1.2 功能要求说明................................ 错误!未定义书签。

第2章实验方案及原理..................... 错误!未定义书签。

2.1 实验目的..................................... 错误!未定义书签。

2.2 实验设备..................................... 错误!未定义书签。

2.3 实验要求..................................... 错误!未定义书签。

2.4 实验原理..................................... 错误!未定义书签。

2.5 硬件连接图................................... 错误!未定义书签。

第3章程序流程图 ........................ 错误!未定义书签。

3.1 主程序流程图................................. 错误!未定义书签。

3.2 键值的程序流程图............................. 错误!未定义书签。

第4章实验心得与体会..................... 错误!未定义书签。

参考文献................................. 错误!未定义书签。

附录..................................... 错误!未定义书签。

第1章设计任务及功能要求1.1设计课程任务4×4 键盘在 8×8LED点阵上的应用1.2 功能要求说明给4×4键盘的每个键定义一个功能,其中把定义为0~9的键盘称为数字键,把定义成DEL的键称为删除键,把定义成ENT的键成为确认键,其他键称为保留键。

LED点阵屏上文字显示实验

LED点阵屏上文字显示实验

LED点阵屏上文字显示实验李宇 pb09013011实验要求:在试验板的8×8的LED点阵屏上分别显示“PLD电子技术”。

编程思想:1.首先定义控制LED点阵屏的端口组a,b,及时钟和复位端口Port ( a : inout STD_LOGIC_VECTOR (7 downto 0);b : inout STD_LOGIC_VECTOR (7 downto 0);clk : in STD_LOGIC;reset : in STD_LOGIC);2.字的跳变显示是通过改变整型变量m的值来选择扫描的程序段3.对LED点阵屏的工作方式清楚,XUP板子上采用的是共阴极8x8点阵LED。

8X8点阵LED结构如下图所示从图中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置0电平,某一行置0电平,则相应的二极管就亮;本程序中是通过对行扫描,并对当前行中需要亮灯的列置0来实现显示过程。

示例程序段如下:if(count=N/8) thena<="11111111";b<="01111111";count<=count+1;elsif(count=N/4) thena<="11101111";b<="10111111";count<=count+1;elsif(count=3*N/8) thena<="11101111";b<="11011111";count<=count+1;elsif(count=N/2)thena<="11101111";b<="11101111";count<=count+1;elsif(count=N*5/8) thena<="11101111";b<="11110111";count<=count+1;elsif(count=N*3/4) thena<="11101111";b<="11111011";count<=count+1;elsif(count=7*N/8) thena<="11101111";b<="11111101";count<=count+1;elsif(count=N)thena<="11100011";b<="11111110";count<=0;VHDL代码:------------------------------------------------------------------------------------ Company:-- Engineer:---- Create Date: 10:09:58 05/24/2012-- Design Name:-- Module Name: expp8 - Behavioral-- Project Name:-- Target Devices:-- Tool versions:-- Description:-- Dependencies:-- Revision:-- Revision 0.01 - File Created-- Additional Comments:------------------------------------------------------------------------------------library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;---- Uncomment the following library declaration if instantiating---- any Xilinx primitives in this code.--library UNISIM;--use UNISIM.VComponents.all;entity expp8 isgeneric(N: integer :=16000);Port ( a : inout STD_LOGIC_VECTOR (7 downto 0);b : inout STD_LOGIC_VECTOR (7 downto 0);clk : in STD_LOGIC;reset : in STD_LOGIC);end expp8;architecture Behavioral of expp8 issignal count:INTEGER RANGE 0 to N:=0;--count用来对LED扫描分频用 --count1用来产生1HZ的分频信号signal count1:INTEGER RANGE 0 to 49999999:=0;signal m:integer:=0;--用m的数值来选择该扫描显示那个字beginprocess(reset,clk)begin--复位时的表现为屏上的灯全部点亮if(reset='0') thena<="00000000";b<="00000000";count<=0;m<=0;count1<=0;elseif(rising_edge(clk)) thenif count1=49999999 then --一赫兹的分频信号产生m<=m+1;count1<=0;else count1<=count1+1;end if;--m=0时采用扫描的方式显示第一个字母“P”if m=0 then--所选行中点亮的灯的时间为N/8个周期 if(count=N/8) thena<="11111111";b<="01111111";count<=count+1;elsif(count=N/4) thena<="11100111";b<="10111111";count<=count+1;elsif(count=3*N/8) thena<="11101011";b<="11011111";count<=count+1;elsif(count=N/2)thena<="11101011";b<="11101111";count<=count+1;elsif(count=N*5/8) thena<="11100111";b<="11110111";count<=count+1;elsif(count=N*3/4) thena<="11101111";b<="11111011";count<=count+1;elsif(count=7*N/8) thena<="11101111";b<="11111101";count<=count+1;elsif(count=N)thena<="11101111";b<="11111110";count<=0;elsecount<=count+1;end if;--m=1时显示“L”,时长同样为1秒elsif m=1 thenif(count=N/8) thena<="11111111";b<="01111111";count<=count+1;elsif(count=N/4) thena<="11101111";count<=count+1;elsif(count=3*N/8) thena<="11101111";b<="11011111";count<=count+1;elsif(count=N/2)thena<="11101111";b<="11101111";count<=count+1;elsif(count=N*5/8) thena<="11101111";b<="11110111";count<=count+1;elsif(count=N*3/4) thena<="11101111";b<="11111011";count<=count+1;elsif(count=7*N/8) thena<="11101111";b<="11111101";count<=count+1;elsif(count=N)thena<="11100011";b<="11111110";count<=0;elsecount<=count+1;end if;--m=2显示“D”,时长为一秒 elsif m=2 thenif(count=N/8) thena<="11111111";b<="01111111";count<=count+1;elsif(count=N/4) thena<="11100111";b<="10111111";count<=count+1;elsif(count=3*N/8) thena<="11101011";b<="11011111";count<=count+1;elsif(count=N/2)thenb<="11101111";count<=count+1;elsif(count=N*5/8) thena<="11101101";b<="11110111";count<=count+1;elsif(count=N*3/4) thena<="11101101";b<="11111011";count<=count+1;elsif(count=7*N/8) thena<="11101011";b<="11111101";count<=count+1;elsif(count=N)thena<="11100111";b<="11111110";count<=0;elsecount<=count+1;end if;--m=3显示“电”,时长为一秒elsif m=3 thenif(count=N/8) thena<="11111111";b<="01111111";count<=count+1;elsif(count=N/4) thena<="11101111";b<="10111111";count<=count+1;elsif(count=3*N/8) thena<="10000011";b<="11011111";count<=count+1;elsif(count=N/2)thena<="10000011";b<="11101111";count<=count+1;elsif(count=N*5/8) thena<="10000011";b<="11110111";count<=count+1;elsif(count=N*3/4) thena<="11101111";b<="11111011";count<=count+1;elsif(count=7*N/8) thena<="11101011";b<="11111101";count<=count+1;elsif(count=N)thena<="11100011";b<="11111110";count<=0;elsecount<=count+1;end if;--m=4显示“子”,时长为一秒 elsif m=4 thenif(count=N/8) thena<="11111111";b<="01111111";count<=count+1;elsif(count=N/4) thena<="11100011";b<="10111111";count<=count+1;elsif(count=3*N/8) thena<="11111011";b<="11011111";count<=count+1;elsif(count=N/2)thena<="11000001";b<="11101111";count<=count+1;elsif(count=N*5/8) thena<="11110111";b<="11110111";count<=count+1;elsif(count=N*3/4) thena<="11110111";b<="11111011";count<=count+1;elsif(count=7*N/8) thena<="11100111";b<="11111101";count<=count+1;elsif(count=N)thena<="11110111";b<="11111110";count<=0;elsecount<=count+1;end if;--m=5显示“技”,时长为一秒elsif m=5 thenif(count=N/8) thena<="11111111";b<="01111111";count<=count+1;elsif(count=N/4) thena<="11011011";b<="10111111";count<=count+1;elsif(count=3*N/8) thena<="10000001";b<="11011111";count<=count+1;elsif(count=N/2)thena<="11000001";b<="11101111";count<=count+1;elsif(count=N*5/8) thena<="11010101";b<="11110111";count<=count+1;elsif(count=N*3/4) thena<="10011111";b<="11111011";count<=count+1;elsif(count=7*N/8) thena<="10011011";b<="11111101";count<=count+1;elsif(count=N)thena<="11010101";b<="11111110";count<=0;elsecount<=count+1;end if;--m=6显示“术”,时长为一秒elsif m=6 thenif(count=N/8) thena<="11111111";b<="01111111";count<=count+1;elsif(count=N/4) thena<="11110011";b<="10111111";count<=count+1;elsif(count=3*N/8) thena<="11000001";b<="11011111";count<=count+1;elsif(count=N/2)thena<="11110111";b<="11101111";count<=count+1;elsif(count=N*5/8) thena<="11100011";b<="11110111";count<=count+1;elsif(count=N*3/4) thena<="11110111";b<="11111011";count<=count+1;elsif(count=7*N/8) thena<="11010101";b<="11111101";count<=count+1;elsif(count=N)thena<="10110110";b<="11111110";count<=0;m<=0;--一次循环完成,循环计数变量m归零 elsecount<=count+1;end if;end if;end if;end if;end process;end Behavioral;设计思路:本实验的目的是要在LED点阵屏上显示字符,基本思想是用扫描的方式使整个屏上需要的灯点亮,并通过计数整型变量m使LED屏上的字每秒钟变换一次,其中扫描频率和m的变化频率都是通过分频实现的。

8×8LED点阵显示数字A到F

8×8LED点阵显示数字A到F

摘要本文研究了基于AT89S51单片机LED8×8点阵显示屏的设计并运用PROTEUS软件进行原理图绘制,运用KEIL软件进行仿真和调试。

主要介绍了LED8×8点显示屏的硬件电路设计、汇编程序设计与调试、PROTEUS软件绘制原理图和实物制作等方面的内容,本显示屏的设计具有体积小、硬件少、电路结构简单及容易实现等优点。

能帮助广大电子爱好者了解点阵显示原理,认识单片机的基本结构、工作原理及应用方法,并提高单片机知识技术的运用能力。

利用单片机来设计的系统,既能实现系统所需的功能,也可以满足计数的准确、迅速性,并且电路简单,操作简单,通用性强。

目录1.绪论 (2)1.1前言 (2)1.2国内外的研究概况 (2)2. 系统概述 (3)3.课程设计目的 (3)4.课程设计题目和任务 (3)5.设计内容 (4)5.1系统功能的描述 (4)5.2 系统硬件设计 (4)5.2.1 AT89S51芯片的介绍 (4)5.2.2 单片机系统设计 (7)5.2.3 单片机的发展趋势 (8)5.2.4 时钟电路的设计 (9)5.2.5 复位电路的设计 (9)5.2.6驱动电路的设计 (10)5.2.7 8×8LED点阵 (10)5.3 计数器初值计算 (11)5.4 字母A到F点阵显示代码的形成 (11)5.5 程序流程图 (12)5.6 源程序 (12)6. 调试及性能分析 (13)6.1系统调试 (13)6.1.1软件调试 (13)6.1.2硬件调试 (14)6.2设计分析 (14)7.设计总结 (14)附件调试结果 (15)参考书目 (16)1.绪论1.1 前言LED点阵显示屏是集微电子技术、计算机技术、信息处理技术于一体的大型显示屏系统。

它以其色彩鲜艳,动态范围广,亮度高,寿命长,工作稳定可靠等优点而成为众多显示媒体以及户外作业显示的理想选择。

同时也可广泛应用到军事、车站、宾馆、体育、新闻、金融、证券、广告以及交通运输等许多行业。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中北大学课程设计说明书学生姓名:于微学号: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";。

相关文档
最新文档