键盘扫描及数码管显示电路设计任务书
实验四 键盘扫描与数码管显示实验

院别:电子信息学院课程名称:微处理器实验
班级:通信11A姓名:xxxx学号:
实验名称:键盘扫描与数码管显示实验实验时间:2013年10月21日
成绩:教师签名:批改时间:
一、实验原理与目的
原理:
74HC164
74HC165
目的:
1、学会利用单片机进行键盘扫描行LED点阵的扫描显示;
2、学会利用单片机实现数码管显示。
二、实验仪器
1、PC机一台
2、DP-51PRO单片机综合仿真实验仪一台
三、实验内容与分析
1、编写一段程序,此程序的目的是通过单片机的P1口控制扫描,用C5区的74HC164控制显示输出,使C3区的8×8LED点阵显示一个“X”。
CLKEQUP3.2
DINAEQUP3.3
DINBEQUP3.4
CLEAREQUP3.5
ORG0000H
AJMPMAIN
ORG 0100H
MAIN:
MOVSP,#70H
MOV50H,#07EH
MOV51H,#0BDH
MOV52H,#0DBH
MOV53H,#0E7H
MOV54H,#0E7H
MOV55H,#0DBH
MOV56H,#0BDH
MOV57H,#07EH
PLEQUP3.0
CLK1EQUP3.1
CLK2EQUP3.2
SEREQUP3.3
Q7EQUP3.5
ORG0000H
LJMPMAIN
ORG0100H
MAIN:MOVSP,#60H;设置堆栈
MOVR4,#00;延时
DJNZR4,$
MOVA,#0;变量清零
SETBQ7;Q=1,端口设为输出状态
键盘、数码管显示综合实验

实验项目名称:键盘、数码管显示综合实验实验室(中心):电子实验室实验完成时间: 09 年11 月 5 日1一.实验目的与要求通过实验,掌握单片机在输入输出口线不够用时,怎样扩展接口的方法来支持8位LED 显示和16键盘集成实现。
熟悉8155、8279等芯片性能;掌握其编程方法。
掌握键盘子程序调试方法,掌握按一个键并将键值显示出来的编程方法,这是诊断硬件、测试硬件、产品开发、软件编程必须掌握的方法。
二.实验原理及实验线路(1)通过8155芯片的扩展功能,建立描述线与数据线同步功能,如图三.实验内容①编写并调试出一个键盘实验子程序;②用子程序调用方法,分别调用键盘子程序和显示子程序,将按一个键的键值(0-F),在数码管上显示出来。
四.实验器材表2.4.5(1):以8155为扩展方式的器件80C51.BUS CRYSTAL PHYC0402NP022P7404 7SEG-MPX6-CC-BLUE RESPACK-88155 HITEMP10U50VBUTTON MINRES10K五、实验程序流程图六.实验步骤1)仿真实验过程:打开Keil程序,执行菜单命令“Project”→“New Project”创建“键盘数码管显示综合实验”项目,并选择单片机型号为AT89C52.BUS。
执行菜单命令“File”→“New”创建文件,输入源程序,保存为“键盘数码管显示综合实验.A51或键盘数码管显示综合实验.c”。
在“Project”栏的File项目管理窗口中右击文件组,选择“Add Files to Group ‘Source Group1’”将源程序“键盘数码管显示综合实验.A51或键盘数码管显示综合实验.c”添加到项目中。
执行菜单命令“Project”→“Options for Target ‘Target 1’”,在弹出的对话框中选择“Output”选项卡,选中“Greate HEX File”。
执行菜单命令“Project”→“Build Target”,编译源程序。
数码管显示和键盘扫描实验资料

数码管显示和键盘扫描实验资料实验三LED数码管动态显示及4 X4 键盘控制实验一、实验目的1.巩固多位数码管动态显示方法。
2.掌握行扫描法矩阵式按键的处理方法。
3.熟练应用AT89S52学习板实验装置,进一步掌握keil C51的使用方法。
二、实验内容使用AT89S52学习板上的4位LED数码管和4 X 4矩阵键盘阵列做多位数码管动态显示及行扫描法键盘处理功能实验。
用P0口做数据输出,利用P1做锁存器74HC573的锁存允许控制,编写程序使4位LED数码管按照动态显示方式显示一定的数字;按照行扫描法编写程序对4 X 4矩阵键盘阵列进行定期扫描,计算键值并在数码管上显示。
三、实验系统组成及工作原理1.4位LED数码管和4 X 4矩阵键盘阵列电路原理图2.多位数码管动态显示方式说明4位共阴极LED动态显示3456数字的工作过程首先由I/O口(1)送出数字3的段选码4FH即数据01001111到4个LED共同的段选线上,接着由I/O口(2)送出位选码××××0111到位选线上,其中数据的高4位为无效的×,唯有送入左边第一个LED的COM端D3为低电平“0”,因此只有该LED的发光管因阳极接受到高电平“1”的g、d、c、b、a段有电流流过而被点亮,也就是显示出数字3,而其余3个LED因其COM端均为高电平“1”而无法点亮;显示一定时间后,再由I/O口(1)送出数字4的段选码66H即01100110到段选线上,接着由I/O 口(2)送出点亮左边第二个LED的位选码××××1011到位选线上,此时只有该LED的发光管因阳极接受到高电平“1”的g、f、c、b段有电流流过因而被点亮,也就是显示出数字4,而其余3位LED不亮;如此再依次送出第三个LED、第四个LED的段选与位选的扫描代码,就能一一分别点亮各个LED,使4个LED从左至右依次显示3、4、5、6。
数码管显示和键盘扫描实验资料

实验三LED数码管动态显示及4 X4 键盘控制实验一、实验目的1.巩固多位数码管动态显示方法。
2.掌握行扫描法矩阵式按键的处理方法。
3.熟练应用AT89S52学习板实验装置,进一步掌握keil C51的使用方法。
二、实验内容使用AT89S52学习板上的4位LED数码管和4 X 4矩阵键盘阵列做多位数码管动态显示及行扫描法键盘处理功能实验。
用P0口做数据输出,利用P1做锁存器74HC573的锁存允许控制,编写程序使4位LED数码管按照动态显示方式显示一定的数字;按照行扫描法编写程序对4 X 4矩阵键盘阵列进行定期扫描,计算键值并在数码管上显示。
三、实验系统组成及工作原理1.4位LED数码管和4 X 4矩阵键盘阵列电路原理图2.多位数码管动态显示方式a b c d e f g dp com a b c d e f g dpcoma b c d e f g dpcoma b c d e f g dpcomD0IO(2)IO(1)说明4位共阴极LED动态显示3456数字的工作过程首先由I/O口(1)送出数字3的段选码4FH即数据01001111到4个LED共同的段选线上,接着由I/O口(2)送出位选码××××0111到位选线上,其中数据的高4位为无效的×,唯有送入左边第一个LED的COM端D3为低电平“0”,因此只有该LED的发光管因阳极接受到高电平“1”的g、d、c、b、a段有电流流过而被点亮,也就是显示出数字3,而其余3个LED因其COM端均为高电平“1”而无法点亮;显示一定时间后,再由I/O口(1)送出数字4的段选码66H即01100110到段选线上,接着由I/O 口(2)送出点亮左边第二个LED的位选码××××1011到位选线上,此时只有该LED的发光管因阳极接受到高电平“1”的g、f、c、b段有电流流过因而被点亮,也就是显示出数字4,而其余3位LED不亮;如此再依次送出第三个LED、第四个LED的段选与位选的扫描代码,就能一一分别点亮各个LED,使4个LED从左至右依次显示3、4、5、6。
键盘扫描与LED数码管显示课件

设计温度传感器模块,如 DS18B20,用于获取环境温
度。
编写程序读取温度传感器数 据,并进行处理和转换。
04
05
使用LED数码管显示当前温 度值,如“25℃”。
THANKS
感谢观看
特点
LED数码管具有高亮度、低功耗、寿命长、耐腐蚀等特点,且体积小、重量轻, 易于安装和携带。
LED数码管的应用场景与优势
应用场景
LED数码管广泛应用于各种需要数字 显示的场合,如仪表盘、计时器、遥 控器等。
优势
LED数码管具有高亮度、低功耗、寿 命长等特点,能够提供清晰、稳定的 数字显示,同时价格相对较低,易于 实现大规模生产。
联合应用的常见问题与解决方案
常见问题
键盘扫描可能会出现按键抖动、串扰等 问题;LED数码管显示可能会出现亮度不 均、闪烁等问题。
VS
解决方案
针对按键抖动问题,可以采用软件消抖或 硬件消抖的方法;针对串扰问题,可以增 加隔离电路或采用差分信号传输方式。针 对LED数码管亮度不均问题,可以调整各 段数码管的电流参数;针对闪烁问题,可 以增加刷新频率或采用动态扫描显示方式 。
放相应音符。
01
设计音符键区,包括 do-re-mi等音符按键。
03
使用LED数码管显示当 前播放的音符名称,如
“C”。
05
详细描述
02
编写程序识别按键并播 放相应音符,如播放C
大调音阶。
04
案例四:温度显示系统设计
详细描述
总结词:通过温度传感器获 取温度值,使用LED数码管
显示温度值。
01
02
03
键盘扫描原理
通过逐行或逐列扫描键盘的每个按键 ,检测是否有键被按下。当某个按键 被按下时,相应的行或列电平发生变 化,从而识别出被按下的按键。
基于VHDL的键盘扫描及显示电路毕业设计

基于VHDL的键盘扫描及显示电路一、工作原理:可编程器件的KEY_HANG[3..0]行信号输出端不停循环输出“1110”“1101”“1011”“0111”。
当没有键按下时可编程器件的KEY_LIE[3..0]列信号输入端检测到的是“1111”。
当有按键按下时,如按下1,此时KEY_HANG[3..0]行信号输出为“0111”,即KEY_HANG[3..0]的3管脚为“0”,可由电路看出,此时输入端KEY_LIE[3..0]检测到的将是“0111”。
KEY_LIE[3..0]的3管脚为0,可以在编写程序时,将输出信号KEY_HANG[3..0]与输入信号KEY_LIE[3..0]同时判断,比如可以认为当数据“KEY_HANG&KEY_LIE”为“01110111”时,可译码成数据1,。
同理可得其他按键的编码。
根据不同数据的编码译成不同的数据。
名称IO属性描述备注clk in 输入时钟,1K和40K频率KEY_HANG[3..0]out矩阵键盘的扫描输入端口KEY_LIE[3:0] in矩阵键盘的扫描输出端口START out 数据输出标志DISP DATA[6..0]out 数码管译码显示译码输出7bitDASP SEL[1..0] out数码管扫描输出2bitCLK_1K CLK_40K CLK_1K STARTKEY_HANG[3..0] CLE_40K DATA_P[7..0]DISP DATA[6..0] KEY_LIE DASP SEL[1..0]二、设计思路:1.循环输出行信号,检测列信号输入,将行列信号相并。
2.译键值。
3.去抖动。
在译没一个键值后,为了防止抖动,加了一个计算环节,一旦检测到列信号后,译码,紧跟着进入计数环节,此时键抖动不会进入其他环节,这样可以防止抖动。
4.数码管译码、循环显示。
电路的具体功能罗列如下:1) 采用4×4矩阵键盘作为操作数和操作符的输入设备。
单片机外围电路键盘扫描设计说明书

University of South China单片机课程设计总结报告设计题目:单片机最小系统及外围电路设计班级:学院: 机械工程学号:姓名:指导教师:袁锋伟蒋彦王玉林摘要【摘要】本次课程设计主要是关于单片机简易开发板的设计。
实现8位流水灯控制,按键扫描双位数码管显示。
本次设计主要采用89C52单片机芯片制作而成,包括流水灯电路,按键扫描电路,数码管显示电路,ISP及USB供电部分,单片机P1口控制数码管,P0口控制八位流水灯,P2控制扫描键盘,通过读写口进行ISP下载。
【关键词】流水灯、按键扫描、数码管显示、ISP下载目录1. 课程设计的目标与设计任务 ..........................1.1设计的任务...............................................2、硬件电路设计方案及功能分析...................2.1 原理图.................................................2.2 单元电路设计及分析.....................................2.2.189C52芯片简介....................................2.2.2 下载线电路........................................2.2.3 最小外围电路......................................3、程序的设计...................................3.1开发软件及编程语言简介...................................3.2软件程序的编写及调试.....................................4、电路板的制作.................................5、电路板的焊接与调试 ..........................6、课程设计总结.................................7、参考文献..................................... 附录1主要电子元件清单..........................1. 课程设计的设计任务1.1 设计任务图1 系统设计要求方框图根据题目要求,系统可以划分为最小外围电路,指示灯及流水电路,按键扫描,数码管显示电路,及ISP下载模块。
基于FPGA的数码显示和键盘扫描的电路设计

文档从互联网中收集,已重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。
前言现在,电子技术的发展非常迅猛高新科技日新月异。
特别是专用集成电路(ASIC)设计技术的日趋进步和完善,推动着数字电路系统设计方法的发展,使他从单纯的ASIC设计走向了系统设计和单片系统的设计。
而经过几十年的发展越来越成熟的FPGA设计方式以他的短周期,低成本,灵活方便的独特优势走红于电子技术业内。
FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、PLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既能解决定制电路的不足,又能克服原有可编程器件门电路数有限的缺点。
本设计的的内容是基于FPGA的数码显示和键盘扫描电路的设计,通过键盘对数码显示调控来实现FPGA的思想。
键盘输入通过按键扫描检测和去抖动在通过编码输入到显示电路中,在显示过程中能通过键盘输入对显示内容进行校正和调节。
在通过编译仿真下载到FPGA电子板上后能显示预期的信号,当按下键盘时候能产生预期的结果。
在设计这个课题的过程中,遇到很多问题,比如开始的时候遇到的一个问题就是自己在在quartus中进行仿真,把模块单个的拿出来仿真仿真波形正常,但当把几个模块连在一起的时候仿真就出不来预期的波形。
最后在老师和同学的帮助下发现要对每个模块进行了解,对模块之间的连接要适当的处理。
经过这次设计,尽管结果不是那么完美,但为自己以后的生活,学习有了很大的帮助,特别是在设计过程中不断遇到问题不断解决问题的经验会让我受用终生。
第一章绪论.................................... 错误!未定义书签。
1.1选题背景...................................错误!未定义书签。
1.1.1 课题相关技术的发展.....................错误!未定义书签。
实验四键盘及显示设计实验报告

实验四键盘扫描及显示设计实验报告一、实验要求1. 复习行列矩阵式键盘的工作原理及编程方法。
2. 复习七段数码管的显示原理。
3. 复习单片机控制数码管显示的方法。
二、实验设备1.PC 机一台2.TD-NMC+教学实验系统三、实验目的1. 进一步熟悉单片机仿真实验软件 Keil C51 调试硬件的方法。
2. 了解行列矩阵式键盘扫描与数码管显示的基本原理。
3. 熟悉获取行列矩阵式键盘按键值的算法。
4. 掌握数码管显示的编码方法。
5. 掌握数码管动态显示的编程方法。
四、实验内容根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能:1.扫描键盘输入,并将扫描结果送数码管显示。
2.键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。
实验具体内容如下:将键盘进行编号,记作 0~F,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近 4 次按下的按键编号。
五、实验单元电路及连线矩阵键盘及数码管显示单元图1 键盘及数码管单元电路实验连线图2实验连线图六、实验说明1. 由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。
因而在闭合及断开的瞬间均伴随有一连串的抖动。
抖动时间的长短由按键的机械特性决定,一般为 5~10ms。
这是一个很重要的时间参数,在很多场合都要用到。
键抖动会引起一次按键被误读多次。
为了确保 CPU 对键的一次闭合仅做一次处理,必须去除键抖动。
在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。
按键的抖动,可用硬件或软件两种方法消除。
2. 为了减少键盘与单片机接口时所占用 I/O 线的数目,在键数较多时,通常都将键盘排列成行列矩阵形式。
3. 从数码管显示方式看,数码管分为静态显示和动态显示两种方式。
单片机4X4键盘扫描和显示课程设计

二、设计内容1、本设计利用各种器件设计,并利用原理图将8255单元与键盘及数码管显示单元连接,扫描键盘输入,最后将扫描结果送入数码管显示。
键盘采用4*4键盘,每个数码管可以显示0-F共16个数。
将键盘编号,记作0-F,当没按下其中一个键时,将该按键对应的编号在一个数码管上显示出来,当在按下一个键时,便将这个按键的编号在下一个数码管上显示,数码管上可以显示最近6次按下的按键编号。
设计并实现一4×4键盘的接口,并在两个数码管上显示键盘所在的行与列。
三、问题分析及方案的提出4×4键盘的每个按键均和单片机的P1口的两条相连。
若没有按键按下时,单片机P1口读得的引脚电平为“1”;若某一按键被按下,则该键所对应的端口线变为地电平。
单片机定时对P1口进行程序查询,即可发现键盘上是否有按键按下以及哪个按键被按下。
实现4×4键盘的接口需要用到单片机并编写相应的程序来识别键盘的十六个按键中哪个按键被按下。
因为此题目还要求将被按下的按键显示出来,因此可以用两个数码管来分别显示被按下的按键的行与列表示任意一个十六进制数)分别表示键盘的第二行、第三行、第四行;0xXE、0xXD、0xXB、0xX7(X表示任意一个十六进制数)则分别表示键盘的第一列、第二列、第三列和第四列。
例如0xD7是键盘的第二行第四列的按键对于数码管的连接,采用了共阳极的接法,其下拉电阻应保证芯片不会因为电流过大而烧坏。
五、电路设计及功能说明4×4键盘的十六个按键分成四行四列分别于P1端口的八条I/O数据线相连;两个七段数码管分别与单片机的P0口和P2口的低七位I/O数据线相连。
数码管采用共阳极的接法,所以需要下拉电阻来分流。
结合软件程序,即可实现4×4键盘的接口及显示的设计。
当按下键盘其中的一个按键时,数码管上会显示出该按键在4×4键盘上的行值和列值。
所以实现了数码管显示按键位置的功能四、设计思路及原因对于4×4键盘,共有十六个按键。
【单片机实验七】键盘扫描及显示设计实验

程序及注解见附件CLEAR: MOV DPTR, #B_8255 ;清屏 MOV A,#00H MOVX @DPTR,A RET DIS: PUSH ACC ;显示子程序 PUSH 00H PUSH 03H MOV R0,#50H ;显示缓冲首地址 MOV R3,#0DFH ;显示扫描值AGAIN: MOV A,#0FFH ;关闭显示 MOV DPTR,#A_8255 MOVX @DPTR,A MOV A,@R0 MOV DPTR,#DSEGS ;数码管段表地址 MOVC A,@A+DPTR ;查表 MOV DPTR,#B_8255 ;送段显示 MOVX @DPTR,A MOV A,R3 MOV DPTR,#A_8255 MOVX @DPTR,A ACALL DL1MS INC R0 ;显示缓冲加1 MOV A,R3 JNB ACC.0,OUT ;扫描结束否 RR A ;向右移一位 MOV R3,A AJMP AGAIN OUT: POP 03H POP 00H POP ACC RET ;数码管段显示值DSEGS: DB 03FH, 06H,05BH,04FH,066H,06DH,07DH, 07H DB 07FH,06FH,077H,07CH,039H,05EH,079H,071H DL1MS: MOV R7,#01H DL0: MOV R6,#080H DL1: DJNZ R6,DL1 DJNZ R7,DL0 RET PUTBUF: PUSH 00H ;保存键值到缓冲RAM 中 PUSH ACC MOV A,R5 MOV R0,A POP ACC MOV @R0,A DEC R5 CJNE R5,#04FH,GOBACK MOV R5,#55H ;重置缓冲地址GOBACK: POP 00H RET END ;==============================================================; 文件名称: KeyScan.Asm; 功能描述: 8255扩展IO, 完成键盘及数码管显示实验.; 按下按键, 数码管显示相应键值.;==============================================================A_8255 EQU 7F00H ;8255端口定义B_8255 EQU 7F01HC_8255 EQU 7F02HCON_8255 EQU 7F03HORG 0000HLJMP MAINORG 0100HMAIN: MOV 50H,#00H ;键值缓冲清0MOV 51H,#00HMOV 52H,#00HMOV 53H,#00HMOV 54H,#00HMOV 55H,#00HMOV R5, #55HMOV A, #81H MOV DPTR, #CON_8255 ;8255控制端口MOVX @DPTR, A ;写入控制字BEGIN: LCALL DIS ;调用显示子程序LCALL CLEAR ;清屏LCALL CCSCAN ;调用键扫子程序JNZ INK1 ;判是否有键按下LJMP BEGININK1: LCALL DISLCALL DL1MS ;消除按键抖动LCALL DL1MSLCALL CLEARLCALL CCSCANJNZ INK2AJMP BEGININK2: MOV R2,#0FEHMOV R4,#00H ;从第0列开始扫描COLUM: MOV DPTR,#A_8255MOV A,R2MOVX @DPTR,A ;写入列扫描值MOV DPTR, #C_8255MOVX A,@DPTRJB ACC.0,LINE1 ;判第0行的值MOV A,#00H ;第0行AJMP KCODELINE1: JB ACC.1,LINE2MOV A,#04H ;第1行AJMP KCODELINE2: JB ACC.2,LINE3MOV A,#08H ;第2行AJMP KCODELINE3: JB ACC.3,NEXTMOV A, #0CH ;第3行KCODE: ADD A,R4 ;得到键值ACALL PUTBUFPUSH ACCKON: ACALL DISACALL CLEARACALL CCSCANJNZ KONPOP ACCNEXT: INC R4MOV A,R2JNB ACC.4,KERRRL AMOV R2,AAJMP COLUMKERR: AJMP BEGINCCSCAN: MOV DPTR,#A_8255 ;按键扫描MOV A,#00HMOVX @DPTR,AMOV DPTR,#C_8255MOVX A,@DPTRCPL A ;取反ANL A,#0FHRET。
键盘扫描及数码管显示

键盘制作键盘有两类:一个是独立键盘,另一个是矩阵键盘。
从名字上就知道,后者复杂。
那我们先看看前者,这个不复杂的怎么样。
这就是一个独立键盘的电路图其特点是每个按键单独占用一个IO口,每个按键工作不会影响其他的IO口线的状态。
多用于按键不多的场合。
当然,我们说了,这是用到不多的键盘的时候。
如果多的话这个方法不免过于麻烦。
这样,后者就派上用场了。
这就是传说中的矩阵键盘,看起来就比独立键盘复杂的多,矩阵键盘又称行列键盘,它是用四条I/O线作为行线,四条I/O线作为列线组成的键盘。
在行线和列线的每个交叉点上设置一个按键。
这样键盘上按键的个数就为4*4个。
这种行列式键盘结构能有效地提高系统中I/O口的利用率。
矩阵键盘的工作原理最常见的键盘布局如图1所示。
一般由16个按键组成图1这个外观也没什么意思了,大家也经常见到,比如电话键盘、银行的密码盘都是这个样子的。
下面还是让我们看看他的原理。
图2 4*4矩阵键盘当无按键闭合时,P10~P13与P14~P17之间开路。
当有键闭合时,与闭合键相连的两条I/O口线之间短路。
判断有无按键按下的方法是:第一步,置列线P14~P17为输入状态,从行线P10~P13输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。
第二步,行线轮流输出低电平,从列线P14~P17读入数据,若有某一列为低电平,则对应行线上有键按下。
综合一二两步的结果,可确定按键编号。
但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。
这个矩阵的工作原理很不好理解,要仔细看,不过也很简单的了。
通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号小型如下图。
由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。
因而在闭合及断开的瞬间均伴随有一连串的抖动,如下图。
抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。
基于VHDL的键盘扫描及显示电路设计

取消所有断点。
断点设置完毕后,按F5键或点击Debug下的GO,程序将执行到断点处停止,这时寄存器窗口中sec的值便是定时时间(10ms),如图16所示。
在μV2仿真环境下可以真实地模拟单片机定时器的工作状态。
6.单片机串行通信的模拟仿真Keil C51的μV2调试器提供了对单片机串行通信的模拟仿真,当源程序编译通过后,鼠标单击菜单栏的Debug/Start DebugSession,进入模拟调试环境并选择Peripherals/Serial,打开Serial串口参数窗口,如图17所示,其中Mode栏里表示单片机的通信方式,“8 bit var ,baudrate”表示当前的通信格式是8位,速率可变。
SBUF栏内的数值即为单片机发送的数据,Baudrate栏中的Audrate框里的数值为通信速率,IRQ代表中断标志TI或RI。
当然你也可以在命令栏中键入“SBUF”来随时观察SBUF缓存器的数据,如图18。
一般情况下在命令栏中键入“SBUF”看到的是单片机的发送数据,如果要给单片机发送数据,并观察数据运行结果,可采用“SIN”指令。
假设发到单片机的数据是01H,如果你想模拟这个过程,可以在命令栏中键入“SIN=0X01”,这时单片机通过串口收到的数据即是“01H”,然后可以在μV2环境下采图18图17用单步或其它方式调试程序,可一目了然地看到单片机串口参数的变化过程。
在μV2下通过这种调试程序的方法可以准确地模拟通信口的发送和接收数据的全过程。
总之, Keil公司的μVision2内嵌的单片机软件仿真器可以真实地模拟单片机的工作过程及状态,在许多场合下甚至可以不使用硬件仿真器,仅仅通过在μV2下的模拟调试便可以完成一个中小规模的单片机项目的调试工作,提高了单片机的开发效率。
◆VHDL语言是一种标准硬件描述语言,本文介绍的是用VHDL来对键盘扫描电路进行描述的设计。
矩阵式键盘是一种常见的输入装置,在日常生活中,矩阵式键盘在计算机、电话、手机、微波炉等各式电子产品上已经被广泛应用。
硬件实验十七 键盘扫描显示实验

硬件实验十七键盘扫描显示实验一、实验要求在上一个实验的基础上,利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。
实验程序可分成三个模块。
①键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。
②显示模块:将显示单元的内容在显示器上动态显示。
③主程序:调用键输入模块和显示模块。
二、实验目的1、掌握键盘和显示器的接口方法和编程方法。
2、掌握键盘扫描和LED八段码显示器的工作原理。
三、实验电路及连线这里只是键盘草图,详细原理参见图1四、实验说明本实验仪提供了一个6×4的小键盘,向列扫描码地址(0X002H)逐列输出低电平,然后从行码地址(0X001H)读回。
如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。
这样就可以通过输出的列码和读取的行码来判断按下的是什么键。
在判断有键按下后,要有一定的延时,防止键盘抖动。
地址中的X 是由KEY/LED CS 决定,参见地址译码。
做键盘和LED实验时,需将KEY/LED CS 接到相应的地址译码上。
以便用相应的地址来访问。
例如将KEY/LED CS信号接CS0 上,则列扫描地址为08002H,行码地址为08001H。
列扫描码还可以分时用作LED的位选通信号。
五、实验框图程序:ORG 0000HLJMP MAINORG 0030HMAIN:MOV SP,#60H ;第一条指令入口地址KEYI:ACALL KS1 ;调用判定有无键闭合子程序KS1JNZ LK1 ;有键闭合,跳转至LK1NI: ACALL DIR ;无键闭合,调用显示子程校,延迟6毫秒,跳转至KEYI AJMP KEYILK1:ACALL DIR ;可能有键闭合,延迟12毫秒,软件去抖动ACALL DIR ;ACALL KS1 ;调用判定有无闭合子程序JNZ LK2 ;经去抖动,判定键确实闭合,跳转至LK2去处理ACALL DIR ;调用显示子程序延迟6毫秒AJMP KEYI ;是抖动引起,跳转至KEYILK2:MOV R2,#0FEH ;定义R2列选码MOV R4,#00H ;定义R4列号计数器LK4:MOV DPTR,#08002H ;列选码入口地址MOV A,R2MOVX @DPTR,A ;送入列选码MOV DPTR,#08001H ;行码地址MOVX A,@DPTR ;读行码JB ACC.0,LONE ;0行线为高电平,无键闭合,跳转,转判1行MOV A,#00H ;0行首建号AJMP LKP ; 跳转,计算键号LONE:JB ACC.1,LTWO ; 1行线为高电平,无键闭合,跳转,转判2行MOV A,#06H ;1行首建号AJMP LKP ; 跳转,计算键号LTWO:JB ACC.2,LTHR ;2行线为高电平,无键闭合,跳转,转判3行MOV A,#0CH ;2行首建号AJMP LKP ;跳转,计算键号LTHR:JB ACC.3,NEXT ;3行线为高电平,无键闭合,跳转MOV A,#12H ;3行首建号LKP:ADD A,R4 ;计算建号,即行首建号加列号PUSH A ;键号进栈保护LK3: ACALL DIR ;调用显示子程序延迟6毫秒ACALL DIRACALL KS1 ;调用判定有无键闭合子程序6毫秒JNZ LK3 ;判定键是否释放,未释放,则循环POP A ;键已释放,建号出栈MOV B,#0AH ; 赋值DIV AB ; 除法运算MOV 5AH,AMOV A,BMOV 59H,A ;置缓冲器指针初值RET ;返回NEXT: INC R4 ;列计数器加1MOV A,R2 ;判定是否已扫到最后一列JNB ACC.5,KND ;若扫到最后一列,跳转,重新键盘扫描RL A ;未扫到最后一列,位选码左移一位MOV R2,AAJMP LK4KND:AJMP KEYIKS1:MOV DPTR,#08002H ;判定有无键闭合子程序MOV A,#00H ; 列线全0MOVX @DPTR,AMOV DPTR,#08001H ;行线MOVX A,@DPTR ;读取状态CPL A ;行状态取反,无键按下,A中内容为0ANL A,#0FH ;屏蔽无用的高四位RET ; 返回DIR:MOV R0,#59HMOV R3,#01H ;把位选码的初值送R3MOV A,R3 ;(A)=01HLD0:MOV DPTR,#08002H ;置位选码的地址(DPTR)=8002HMOVX @DPTR,A ;((DPTR))=01H 向片外数据存储器写内容MOV DPTR,#08004H ;置段码的地址(DPTR)=8004HMOV A,@R0 ;读取第一个数据ADD A,#0DH ; 加偏移量(下条指令到表首间所有指令占得单元数)MOVC A,@A+PC ; 根据显示数据来查表取段码DIR1:MOVX @DPTR,A ; 数据对应的段码送到段码地址ACALL FY1ms ; 延时1毫秒,即该位显示1毫秒INC R0 ; 显示数据缓冲区指针指向下个数据单元MOV A,R3 ; 位选码送入A中JB Acc.1,LOOP ; 直接寻址位为1则转移,判断是否扫描到最右边的LED,如到最右边,则返回RL A ; 位选码向左移一位,准备让显示位右边的下一位LED亮MOV R3,A ; 位选码送R3中保存AJMP LD0 ; 跳转LOOP: RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH ; 共阴极LED段码表DB 7DH,07H,7FH,6FH,77H,7CHDB 39H,5EH,79H,71H,73H,3EHDB 31H,6EH,1CH,23H,40H,03HDB 18H,00FY1ms: MOV R7,#02H ; 延时1毫秒子程序DL: MOV R6,#0FFHDL6: DJNZ R6,DL6DJNZ R7,DLRET遇到的问题及解决方法1.问题:去除抖动调用显示子程序而不用延时子程序解决方法:如果调用延时子程序不仅增加程序的复杂度而且会影响显示子程序的效果,调用显示子程序的作用除了能够消除抖动期还有一个作用是显示数据保证之前输入的数据不会消失。
实验四、键盘扫描与数码管显示

特点:编码过程简单,编码复杂且不连续,不便处理
0、1、2、3 → 列号
0、4、8、C → 行首码
按键编码 = 列号+行首码
特点:编码过程复杂,编码简单且连续,便于处理
二进制组合编码键位识别:
(1)检测是否有键按下 ① 行线送全扫描字(P1=F0H),让P1.0~P1.3都为低电平; ② 读列线状态(P1?=F0H),若P1.4~P1.7全为高电平,则无键按下,反之则有键按下。
(2)确认键位
① 行线送全扫描字(P1=F0H),读出列线值;
② 列线送全扫描字(P1=0FH),读出行线值; ③ 行列值组合确认键位。
二进制组合编码 共阳极字段码 显示数字 二进制组合编码 共阳极字段码 显示数字
EEH DEH BEH 7EH EDH DDH BDH 7DH C0H F9H A4H B0H 99H 0 1 2 3 4 92H 82H 5 6 F8H 7 77H 8EH F
(2)键盘原理与按键消抖
前沿抖动
后沿抖动
机械式按键抖动时间 一般为5ms~10ms
抖动会引起一次按键被误读多次,必须消抖:
① 硬件消抖:利用RS触发器反馈形成双稳态电路
② 软件消抖:利用延时程序跳过抖动
(3)矩阵键盘与键位编码
独立键盘: ① 每个按键占用一根I/O线 ② 电路、程序简单 ③ 适合按键少 矩阵键盘: ① 按键采用行列结构复用I/O线 ② 电路、程序复杂 ③ 适合按键多
EBH DBH BBH 7BH E7H D7H B7H 80H 90H 88H 83H C6H A1H 86H 8 9 A B C D E
4×4矩阵键盘扫描与7段数码管显示
键盘采用二进制组合编码,数码管为7段共阳极
单片机的键盘与数码显示电路

[例题7-3] 4x4扫描键盘
如下的键盘扫描程序,对图7-3所示的键盘进行扫描。P3高4位(P3_4~P3_5)为列扫描(KL0~KL3), 顺序输出低电平;P3低4位为行扫描(Kh0~Kh3),顺序读入数据,检测哪一行为0;
源程序如下:
#include <AT89X51.H>
unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90
unsigned char i;
//i是数码管扫描变量
unsigned char a,b; //a、b是循环变量
void main(void)
{while(1)
{ for(i=0;i<8;i++)
{
P0=table1[i];
//P0口输出段码,显示变量i
P2=table3[i];
//P2输出位码,驱动9013晶体管
[例题7-2] 采用总线法扫描数码管,8位共阴极数码管,显示输出数字1、2、3、4、5、6、7、8。 源程序如下:
#include <AT89X51.H>
unsigned char code table1[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
key=5; break;
case 0x0b:
//如果P3低4位为1011,所以1101 1011
key=6; break;
case 0x07:
//如果P3低4位为0111,所以1101 0111
key=11; break;
}
temp=P3;
实验8 键盘扫描和显示实验

实验八键盘扫描和显示实验实验目的:掌握键盘和显示器的接口方法和编程方法;掌握键盘扫描和LED八段数码管显示器的工作原理。
实验内容:利用LAB6000通用微控制器提供的键盘扫描电路和显示电路,完成键盘扫描和显示实验。
把按键输入的键码在六位LED数码管上显示出来。
可分成三个模块:①键输入模块:扫描键盘,读取一次键盘并将键值存入键值缓冲单元。
②显示模块:将显示单元的内容在六位LED数码管上动态显示。
③主程序:调用键输入模块和显示模块。
实验步骤:1.按照流程图分析参考程序,在读懂的基础上编写或修改程序;2.将键盘和显示器的片选连接孔KEY/LED—CS与片选口CS0连接;3.输入编好的程序,汇编并运行。
4.观察程序运行后LED 的显示,按下数字键,再观察LED 的显示。
5.按照思考题的要求,修改程序进行实验。
实验电路原理图:实验报告要求:记录实验现象,分析原因。
整理好运行正确的程序,写出总结和体会。
思考题:1.如果显示5、6、7、8如何修改?2.LEDTAB(字形表)每一个码代表什么?3.如果把CS0改为CS1,程序如何修改?4.怎样关显示,开放键盘?5.CPL A 指令是什么功能?为什么要用该指令?6.MOVC 和MOVX 指令有何不同?7.LEDBuf equ 60H 是什么指令?什么含义?8.MOV LEDBuf+1,#5BH是什么含义?附: 参考流程图附: 参考程序Org 0000hOUTBIT equ 8002h ;位控制口OUTSEG equ 8004h ;段控制口IN equ 8001h ;键盘读入口LEDBuf equ 60h ;显示缓冲器首址 ljmp StartLED字形表LEDTAB:db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay: mov r7, #00h 延时子程序Delay1:djnz r7, Delay1djnz r6, Delay1retDisplay: LED显示子程序mov r0, #LEDBufmov r1, #06h ;共6个八段LEDmov r2, #00100000b ;从左边开始显示Loop: mov dptr, #OUTBIT ;指向位控制口mov a, #00h ;关显示movx @dptr, amov a, @r0 ;取一个待显示数mov dptr, #OUTSEG ;指向段控制口movx @dptr, a ;输出段码mov dptr, #OUTBIT ;指向位控制口mov a, r2 ;取位码movx @dptr, a ;输出位码mov r6, #01hcall Delaymov a, r2 ;位码右移一位rr amov r2, ainc r0 ;指向下一个待显示数djnz r1, Loop ;6个LED都显示完了吗? retTestKey: 扫描键盘mov dptr, #OUTBIT ;指向位控制口mov a, #00h ;开放键盘movx @dptr, amov dptr, #IN ;指向键盘读入口movx a, @dptr ;读入键盘状态cpl aanl a, #0fh ;高4位不用retKeyTab:db 16h, 15h, 14h, 0ffh 键值表db 13h, 12h, 11h, 10hdb 0dh, 0ch, 0bh, 0ahdb 0eh, 03h, 06h, 09hdb 0fh, 02h, 05h, 08hdb 00h, 01h, 04h, 07hGetKey:mov dptr, #OUTBITmov P2, dphmov r0, #Low(IN)mov r1, #00100000bmov r2, #06h ;共6列KLoop: mov a, r1 ;找出键所在列cpl amovx @dptr, acpl arr a ;右移一位,指向下一列mov r1, amovx a, @r0cpl aanl a, #0fhjnz Goon1 ;该列有键入djnz r2, KLoopmov r2, #0ffh ;没有键按下, 返回 0ffh sjmp ExitGoon1: mov r1, a ;键值 = 列*4 + 行mov a, r2dec arl arl amov r2, a ;r2 = (r2-1)*4mov a, r1 ;r1中为读入的行值mov r1, #4LoopC: rrc a ;移位找出所在行jc Exitinc r2 ;r2 = r2+ 行值djnz r1, LoopCExit: mov a, r2mov dptr, #KeyTabmovc a, @a+dptrmov r2, aWaitRelease: 等待键释放mov dptr, #OUTBITclr amovx @dptr, amov r6, #10call Delaycall TestKeyjnz WaitReleasemov a, r2retStart: mov sp, #50hmov LEDBuf+0, #06h ;显示 1mov LEDBuf+1, #5bh ;显示 2mov LEDBuf+1, #4fh ;显示 3mov LEDBuf+2, #66h ;显示 4mov LEDBuf+3, #66hmov LEDBuf+4, #0mov LEDBuf+5, #0MLoop: call Display ;显示(调显示子程序)call TestKey ;有键入? (调扫描键盘子程序) jz MLoop ;无键入, 继续显示call GetKey ;读入键码anl a, #0fh ;显示键码mov dptr, #LEDTABmovc a, @a+dptrmov LEDBuf+5, aljmp MLoopend。
微机原理键盘扫描及显示设计实验

一、实验名称:键盘扫描及显示设计实验二、实验目的1.学习按键扫描的原理及电路接法;2.掌握利用8255完成按键扫描及显示。
三、实验内容及步骤1. 实验内容编写程序完成按键扫描功能,并将读到的按键值依次显示在数码管上。
实验机的按键及显示模块电路如图1所示。
按图2连线。
图1 键盘及显示电路图2 实验连线2. 实验步骤(1)按图1接线;(2)键入:check命令,记录分配的I/O空间;(3)利用查出的地址编写程序,然后编译链接;(4)运行程序,观察数码管显示是否正确。
四、流程图五、源程序;Keyscan.asm;键盘扫描及数码管显示实验;***************根据CHECK配置信息修改下列符号值*******************IOY0 EQU 9800H ;片选IOY0对应的端口始地址;*****************************************************************MY8255_A EQU IOY0+00H*4 ;8255的A口地址MY8255_B EQU IOY0+01H*4 ;8255的B口地址MY8255_C EQU IOY0+02H*4 ;8255的C口地址MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTDTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71HDATA ENDS ;键值表,0~F对应的7段数码管的段位值CODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,3000H ;建立缓冲区,存放要显示的键值MOV AL,00H ;先初始化键值为0MOV [SI],ALMOV [SI+1],ALMOV [SI+2],ALMOV [SI+3],ALMOV DI,3003HMOV DX,MY8255_MODE ;初始化8255工作方式MOV AL,81H ;方式0,A口、B口输出,C口低4位输入OUT DX,ALBEGIN:CALL DIS ;显示刷新CALL CLEAR ;清屏CALL CCSCAN ;扫描按键JNZ GETKEY1 ;有键按下则跳置GETKEY1MOV AH,1 ;判断PC键盘是否有按键按下INT 16HJZ BEGIN ;无按键则跳回继续循环,有则退出QUIT:MOV AX,4C00H ;返回到DOSINT 21HGETKEY1:CALL DIS ;显示刷新CALL DALLYCALL DALLYCALL CCSCAN ;再次扫描按键JNZ GETKEY2 ;有键按下则跳置GETKEY2JMP BEGIN ;否则跳回开始继续循环GETKEY2:MOV CH,0FEHMOV CL,00H ;设置当前检测的是第几列COLUM:MOV AL,CH ;选取一列,将X1~X4中一个置0 MOV DX,MY8255_AOUT DX,ALMOV DX,MY8255_C ;读Y1~Y4,用于判断是哪一行按键闭合IN AL,DXL1:TEST AL,01H ;是否为第1行JNZ L2 ;不是则继续判断MOV AL,00H ;设置第1行第1列的对应的键值JMP KCODEL2:TEST AL,02H ;是否为第2行JNZ L3 ;不是则继续判断MOV AL,04H ;设置第2行第1列的对应的键值JMP KCODEL3:TEST AL,04H ;是否为第3行JNZ L4 ;不是则继续判断MOV AL,08H ;设置第3行第1列的对应的键值JMP KCODEL4:TEST AL,08H ;是否为第4行JNZ NEXT ;不是则继续判断MOV AL,0CH ;设置第4行第1列的对应的键值KCODE:ADD AL,CL ;将第1列的值加上当前列数,确定按键值CALL PUTBUF ;保存按键值PUSH AXKON:CALL DIS ;显示刷新CALL CLEAR ;清屏CALL CCSCAN ;扫描按键,判断按键是否弹起JNZ KON ;未弹起则继续循环等待弹起POP AXNEXT:INC CL ;当前检测的列数递增MOV AL,CHTEST AL,08H ;检测是否扫描到第4列JZ KERR ;是则跳回到开始处ROL AL,1 ;没检测到第4列则准备检测下一列MOV CH,ALJMP COLUMKERR:JMP BEGINCCSCAN PROC NEAR ;扫描是否有按键闭合子程序MOV AL,00HMOV DX,MY8255_A ;将4列全选通,X1~X4置0 OUT DX,ALMOV DX,MY8255_CIN AL,DX ;读Y1~Y4NOT ALAND AL,0FH ;取出Y1~Y4的反值RETCCSCAN ENDPCLEAR PROC NEAR ;清除数码管显示子程序MOV DX,MY8255_B ;段位置0即可清除数码管显示MOV AL,00HOUT DX,ALRETCLEAR ENDPDIS PROC NEAR ;显示键值子程序PUSH AX ;以缓冲区存放的键值为键值表偏移找到键值并显示MOV SI,3000HMOV DL,0F7HMOV AL,DLAGAIN:PUSH DXMOV DX,MY8255_AOUT DX,AL ;设置X1~X4,选通一个数码管MOV AL,[SI] ;取出缓冲区中存放键值MOV BX,OFFSET DTABLEAND AX,00FFHADD BX,AXMOV AL,[BX] ;将键值作为偏移和键值基地址相加得到相应的键值 MOV DX,MY8255_BOUT DX,AL ;写入数码管A~DpCALL DALLYINC SI ;取下一个键值POP DXMOV AL,DLTEST AL,01H ;判断是否显示完?JZ OUT1 ;显示完,返回ROR AL,1MOV DL,ALJMP AGAIN ;未显示完,跳回继续OUT1:POP AXRETDIS ENDPPUTBUF PROC NEAR ;保存键值子程序MOV SI,DIMOV [SI],ALDEC DICMP DI,2FFFHJNZ GOBACKMOV DI,3003HGOBACK: RETPUTBUF ENDPDALLY PROC NEAR ;软件延时子程序PUSH CXMOV CX,00FFHD1: MOV AX,00FFHD2: DEC AXJNZ D2LOOP D1POP CXRETDALLY ENDPCODE ENDSEND START六、体会和感想通过这次的实验我了解到自己还有很多的不足,比如做实验的速度很慢,效率很低,思维不集中导致最后老师验收的时候没有来的及交,对书本的了解不是很透彻,也因此我决定下次实验的时候一定要好好地去思考,尽量在课外把实验看懂!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
拟
达
到
的
要
求
或
技
术
指
标
一、拟达到的要求:
(1)恰当地运用所学理论知识,对总体方案进行必要的技术、经济比较,然后选定较佳的设计方案。
(2)编写各模块VHDL源程序,绘制原理框图、顶层电路模块划分图、系统总原理图电路图、流程图采用规范的标准绘制,要求设计参数正确、布局合理。
指导教师
意见
签名:
年月日
教研室
意见
签名:
年月日
[3]刘延飞等.基于ALTERA FPGA/CPLD的电子系统设计及工程实践[M].北京:人民邮电出版社,2009
[4]刘江海.EDA技术[M].武汉:华中科技大学出版社, 2013
[5]艾明晶.EDA设计实验教程[M].北京:清华大学出版社,2014
[6]陈苏婷.EDA设计与应用基础[M].北京:气象出版社, 2015
二、技术指标:
键盘为4*4键盘,数码管为7段8位,以数字形式显示键盘16个输入键的识别,并设置控制开关及防抖动电路
功能扩展(自选):完成某一外部硬件对象的控制
主
要
参
考
资
料
[1]林明权.VHDL数字控制系统设计范例[M].北京:电子工业出版社,2003
[2]刘欲晓等.EDA技术与VHDL电路开发应用实践[M].北京:电子工业出版社,2009
《EDA技术》课程设计任务书
学院:电气与信息工程学院适应专业:14级电子信息工程和通信工程
指导教师
胡红艳
学生姓名
课题名称
键盘扫描及数码管显示电路设计
内
容
及
任
务
一、设计内容
运用EDA技术,设计一个4*4键盘描电路及8个数码管显示电路。
二、主要任务:
(1)确定体方案.
(2)运用EDA技术完成各模块的软件设计,运用所学的电路及电子技术知识完成硬件模块设计仿真.
[7]范秋华.EDA技术及实验教程[M].北京:电子工业出版社, 2015
[8]马玉清.EDA技术(VHDL版) [M].合肥:中国科学技术大学出版社,2014
[9]李俊.EDA技术与VHDL编程[M].北京:电子工业出版社.2012
[10]陈炳权,曾庆立.EDA技术及实例开发教程[M].湘潭:湘潭大学出版社,2013