1、 题目:基于题目:基于 16021602 液晶屏的数字万年历(液晶屏的数字万年历(VerilogVerilog 版)版) 课程名称: 数字电路课程设计 学院(系) : 电子科学与技术学院 专 业: 集成电路设计与集成系统 班 级: 学生姓名: 学 号: 完成日期: 2012 年 12 月 22 日 成 绩: - 1 - 题目:基于基于 16021602 液晶屏的数字万年历(液晶屏的数字万年历(VerilogVerilog 版)版) 一设计要求 1基本功能基本功能 设计一个数字钟,能够显示当前时间,分别用 6 个数码管显示小时、分 钟、秒钟的时间,秒针的计数频率为 1Hz,可由系统脉冲分频得到。
2、 在整点进行提示,可通过 LED 闪烁实现,闪烁频率及花型可自己设计。 能够调整小时和分钟的时间,调整的形式为通过按键进行累加。 具有闹钟功能,闹钟时间可以任意设定(设定的形式同样为通过按键累 加) , 并且在设定的时间能够进行提示, 提示同样可以由 LED 闪烁实现。 2扩展功能扩展功能 设计模式选择计数器,通过计数器来控制各个功能之间转换。 调整当前时间以及闹钟时间,在按键累加的功能不变的基础上,增加一 个功能,即当按住累加键超过 3 秒,时间能够以 4Hz的频率累加。 用 LCD 液晶屏来显示当前时间及功能模式。 二设计分析及系统方案设计 1要求分析: 基于 FPGA 实际并发处理的特点
3、,对于实现数字万历年系统,相比于任 何嵌入式处理器而言,其特点和优势将得以更加全面体现。 数字万年历中所有模块都将基于基准时钟源进行处理,结合 FPGA 本身 的特点,在时钟源下可进行精确计数,可轻易而产生十分精确的万年历 时间。 基础部分:万年历可包括以下时间处理模块:基于秒时钟计数器进行判 断处理。 秒,分,时。 星期,上/下午。 日,月,年。 闹钟 功能部分: 时间设定:使用四个按键进行控制,分别是:设置复位按键,设置移 位键,功能“加”键,功能“减”键。 整点报时部分:使用 7 个绿色 LED 作为提示灯。 闹钟提示部分:使用 16 个红色 LED 作为闹钟报时提示。 显示部分:使用
4、LCD1602 液晶显示屏作为万年历的主显示屏,闹钟显示 部分使用 6 个 7 段数码管。 2方案设计 基于 FPGA 的特点以及本万年历系统自身功能特点的实现方式。 系统采用模 块化方案进行设计。各个模块及其相关实现功能描述,同时具体的代码中模块设 计将以此基础进行代码的编写,详细代码设计将在后面给出。 - 2 - 时钟发生模块:基于系统外部输入基准时钟源进行秒计数,产生秒时钟, 在此基础上可进行相关判断已经在计数处理产生其他需要的时间信号。 时钟处理模块:在时钟发生模块基础上,利用 FPGA 多模块并发处理特 点,产生分钟,小时等基础信号,在此基础上再进行计数以及一些判断 处理可容易产生星
5、期,上/下午,日,月,年等信号。但需要注意的是以 上所有万年历时钟信号的每位数(十进制)在底层均为 4 位二进制数表 示,且由于 FPGA 中乘除法运算不可综合,在处理平闰年判断时,采用 拼接语句,然后内嵌多个 CASE 语句进行处理实现该功能。以上所有万 年历信号在其他模块处理时仍然需要进行相关转换或者译码。 功能设定模块:这里主要是针对功能按键和一些状态开关。功能按键部 分主要包括上述分析中的四个,即设置复位,设置移位,功能“加” , 功能“减” 。在代码编写时需要进行按键的消抖处理,同时,由于闹钟 设定和时间设定时均用到,故需要进行设置复用,这里采用的方法是, 以复位键为区分,长摁下后可
6、进行万年历的时间设定,长摁下后在短按 一下返回正常状态,而闹钟设定需要在闹钟开关有效状态下,上述的功 能键方有效。功能开关主要控制整个系统的复位,闹钟开关,液晶显示 屏的读写开关,背光,读写等,这里全部采用二状态的拨码开关实现。 显示模块:采用液晶屏 1602 作为数字万年历的主显示屏,由于屏幕显示 字符数量有限,再考虑本课程设计的综合全面性,这里闹钟显示部分采 用 6 位数码管作为显示。本模块主要功能是实现 1602 的驱动显示程序, 数码管的译码驱动程序。 闹钟模块:对闹钟寄存器的值与万年历实现时钟的值进行判断处理,并 驱动红色 LED 灯闪烁实现闹钟的报时提示。红色 LED 的效果设定为整 体闪烁。 整点报时模块:对万年历实时时钟的分钟和秒钟进行判断处理,实现在 每个小时的整点报时功能,报时 10 秒钟,即从 59 分 50 秒开始进行报 时。以绿色 LED 灯作为提示,实现效果是流