键盘课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程名称EDA课程设计
课题名称键盘扫描与数码管
显示电路设计
专业电子科学与技术
班级0902班
学号05
姓名张泉良
指导教师陈意军
2012年06月20日
湖南工程学院
课程设计任务书
课程名称: EDA技术
题目:键盘扫描与数码管显示电路设计
专业班级:电子科学与技术
学号:200901180205
学生姓名:张泉良
指导老师:陈意军
审批:
任务书下达日期2012 年06月09日设计完成日期2012 年06月20日
引言 (2)
第一章总体方案设计分析 (2)
1.1基本设计思路 (2)
1.2总体框图 (3)
第二章子模块程序模块分析 (3)
2.1 键盘扫描程序设计与分析 (3)
2.1.1 基本设计思路 (3)
2.1.2键盘扫描、编码输出、消抖模块 (4)
2.2 加减功能模块程序与分析 (4)
2.2.1功能模块基本设计思路 (4)
2.2.2加减功能模块 (5)
2.3 数码管显示模块 (5)
2.3.1显示模块基本设计思路 (5)
2.3.2数码管显示模块 (5)
第三章子模块仿真图 (6)
3.1 键盘扫描模块仿真图 (6)
3.2防抖动电路仿真图 (7)
3.3加减法电路仿真图 (7)
3.4数码管电路仿真图 (8)
3.5总电路仿真波形图 (8)
第四章程序下载 (9)
4.1程序下载 (9)
第五章心得体会 (10)
附录A:系统硬件原理图 (11)
附录B:程序清单 (12)
附录C:参考文献 (21)
电气信息学院课程设计评分表 (22)
随着电子技术在工业、医疗、商业等领域的发展,人们对数据传输率的要求越来越高,传统的单片机早已不能满足这种高速数据传输的要求。与此同时,可编程器件FPGA/CPLD以其强大的功能,开发过程投资小、周期短,可反复编程修改,开发工具智能化等特点,成为当今硬件设计的潮流;相比而言,FPGA即现场可编程门阵列,它的集成度高,可完成极其复杂的时序与组合逻辑电路功能,更适用于告诉、高密度的高端数字逻辑电路设计领域。
近几十年来,可编程器件FPGA/CPLD成本大幅降低,且随着EDA技术的日益普及,FPGA/CPLD以其较好的集成度和稳定性、可编程实现与升级的特点,在电子设计领域得到了越来越多的应用。
本设计使用altera的芯片,开发过程中采用quartusII实现设计。基本流程为:首先根据设计任务要求进行方案的设计,包括引脚的确定、时序关系、功能框图和模块划分、数据处理流程和方法等;然后依据模块设计进行仿真,确定结果无误后进行布局和布线,生成配置文件;在下载前进行时序分析;最后下载、测试,从而完成设计。
第一章总体方案设计分析
1.1基本设计思路
本设计利用键盘扫描程序完成4*4键盘的扫描并编码输出按键值,然后对按键输出值进行消抖,以保证每次按键值都能准确无误的输出,同时利用加减功能模块对输入值进行简单的加法、减法操作,并将加减之后的结果转换成BCD码输出到显示控制模块,通过显示控制模块将加减后的结果显示在数码管上。
本设计对时钟的利用充分,通过同一个时钟使各个模块之间协同工作,充分利用时钟的上下边沿,使整个系统处于一种高速工作状态,以提高整个系统工作效率。
1.2总体框图
第二章子模块程序模块分析
2.1 键盘扫描程序设计与分析
2.1.1 基本设计思路
本模块采用行输入,列输出,并定义一个4进制计数信号,在时钟脉冲的上升沿输入时计数,利用4进制提供行扫描信号,在没有按键按下时,行扫描的输出信号变化顺序为0001→0010→0100→1000→……依次周而复始。
当有按键按下时,在时钟的下降沿延按键输出,同时将行扫描值与列输入值合并形成组合值作为按键的输入值,并对按键的输入值进行编码使其输出为4位二进制值。
按键时通常会造成持续时间不大于10ms的信号抖动,这种抖动使系统无法正确识别按键的操作次数,本系统的抖动消除电路使用一个16进制计数器,当输入值在计数16次的过程中没有变化时,则认为该值为一个正确的可识别的数值,同时输出该值。
2.1.2键盘扫描、编码输出、消抖模块
图中clkin为时钟脉冲输入,在该模块中利用时钟的上下边沿,使该工作模块更高效,keyin为按键输入值,keyvalueout为编码,消抖输出值。
2.2 加减功能模块程序与分析
2.2.1功能模块基本设计思路
本模块能完成简单的加、减操作和清0显示操作,由于该模块从键盘得到的编码值每次只能输入一个按键值,所以在加减法中首先用一个信号保存第一次输入的值,当输入的是加号或减号时,将第一次的输入值与‘0’组成组合值,可以当再次按键时,用另一个信号保存一个新的输入值,最后当“=”按下时两个输入值根据加减号所对应的编码执行将相加或相减,从组合值最高位可以得到加减后的结果的进位或借位,并通过对最高位和低四位的判断的判断,将最后结果转换成BCD码并输出输出到数码管显示。
2.2.2加减功能模块
图中diavaluein[3..0]为按键输入值,disvalueout0[3..0]为计算结果的十位值,disvalueout1[3..0]为个位值
2.3 数码管显示模块
2.3.1显示模块基本设计思路
每个数码管有8个段:h、g、f、e、d、c、b、a(dp是小数点)都连在一起,8个数码管分别由8个选通信号k1~k8来选择。被选通的数码管显示数据。例如,在某一时刻,k3为高电平,其余选通信号为低电平,这时仅k3对应的数码管显示来自段信号端的数据,而其他7个数码管呈现关闭状态。根据这种电路状况,如果希望在8个数码管显示希望的数据,就必须使得8个选通信号k1~k8分别被单独选通,与此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,根据人眼的视觉暂留原理,就能实现动态扫描显示的目的
2.3.2数码管显示模块