收藏 分享(赏)

课程设计(论文)实验报告-基于VHDL的数字钟设计.doc

上传人:微传9988 文档编号:2541649 上传时间:2018-09-21 格式:DOC 页数:20 大小:590KB
下载 相关 举报
课程设计(论文)实验报告-基于VHDL的数字钟设计.doc_第1页
第1页 / 共20页
课程设计(论文)实验报告-基于VHDL的数字钟设计.doc_第2页
第2页 / 共20页
课程设计(论文)实验报告-基于VHDL的数字钟设计.doc_第3页
第3页 / 共20页
课程设计(论文)实验报告-基于VHDL的数字钟设计.doc_第4页
第4页 / 共20页
课程设计(论文)实验报告-基于VHDL的数字钟设计.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、本科实验报告题目:数字钟课程名称: 学院(系): 专 业: 班 级: 学生姓名: 学 号: 完成日期: 成 绩: 2011 年 12 月 12 日题目:数字钟1 设计要求系统功能: 1.计时,数码管显示的时 、 分 、 秒的十进制数字显示(小时从 0023)计时器2.星期,lcd1602 显示星期:MON/TUE/WEN/THU/FRI/SAT/SUN3.校准,具有手动校星期、校时、校分、校秒的功能。4.秒表,显示 1%秒、60 秒, 60 分,能手动开始和停止5.闹钟,能在设定的时间发出闹铃声。6.整点报时,即从 59 分 55 秒起,每隔 1 秒钟发出一次低音“嘟”的信号,连续 2 次,最

2、后一次为高音“嘀”的信号,此信号结束即达到整点,发音的同时伴有 led 闪烁。7.倒计时,能在设定的时间开始倒计时,至 0 时 0 分 0 秒停止2 设计分析及系统方案设计一设计分析:依据功能要求,程序分为:1. 计时与校准模块 计时:秒钟计数到 59 后清零并向分钟进一位,分钟计数到 59 后清零并向时钟进一位,时钟计数到 23 后清零并向星期进一位,星期按照MON/TUE/WEN/THU/FRI/SAT/SUN 循环变化 校准:使用 k1/k0 两个功能键, k1 切换要改变的位,k0 校正2. 数码管显示模块 显示译码 利用 k3 切换显示内容,根据不同模式关闭用不到的数码管。3. lc

3、d 显示模块定义七个常量数组,数组内容分别为 MON/TUE/WEN/THU/FRI/SAT/SUN 的ASC码。液晶初始化液晶显示,将相应字母的 ASC码写入 ddram 的相应地址中,由 cnt1 值决定地址,cnt1 由 0 到 2 循环,因此用到 lcd 开始的前三个位显示字符。由星期(m)值决定写入内容,m 值不同,cnt1 扫描显示的就是不同的数组。4. 闹钟与整点报时模块 整点报时:利用分频得到 1k 和 0.5k 的频率,当分钟位到达59 ,秒钟位为55 、 57时,将 0.5k 频率接到输出引脚,秒钟位为59时,将 1k 频率接到输出引脚。 闹钟:到达闹钟时间,将 1k 频率

4、接到输出引脚,时长 3 秒 Led 闪烁:将 led 输出引脚连接至频率输出引脚即可(设为 inout)5. 秒表模块 开启显示 1%秒、60 秒、 60 分的数码管。显示小时的数码管关闭 手动开始和停止,停止时显示计时终止时间6. 倒计时模块 显示小时、分钟,秒。显示毫秒的数码管关闭。 可以利用 k2 切换倒计时与设置倒计时时间状态,利用 k1 与 k0 设置倒计时时间。 至 0 时 0 分 0 秒倒计时终止,此时自动切换至时间设置状态。二系统总体结果框图:3 系统以及模块硬件电路设计数码管(图中只有 1 个,共用 8 个):数码管共阴极,故输入低电平管亮 开关(4 个全用):按键按下时为低

5、电平50MHZ计时与校准闹钟与整点报时秒表倒计时计时 校准闹钟 整点报时设置闹钟时间 时间到闹钟响Key1切换校准位 Key0校准数码管显示LCD显示星期Key3切换模式Key2切换状态Key3切换状态 分频器发光二极管(全部使用):引脚为高电平时 led 亮DE2 开发板上使用的元件的管脚编号:接口名称 类型 引脚号 说明bs Bidir PIN_K19 蜂鸣器clk Input PIN_N2 50mhz 时钟k0 Input PIN_G26k1 Input PIN_N23k2 Input PIN_P23k3 Input PIN_W26 控制按键lcd_blon Output PIN_K2

6、lcd 背光灯LCD_Data0 Output PIN_J1LCD_Data1 Output PIN_J2LCD_Data2 Output PIN_H1LCD_Data3 Output PIN_H2LCD_Data4 Output PIN_J4LCD_Data5 Output PIN_J3LCD_Data6 Output PIN_H4LCD_Data7 Output PIN_H3 lcd 数据输入LCD_EN Output PIN_K3 lcd 使能lcd_on Output PIN_L4 lcd 开启lcd_rs Output PIN_K1 寄存器选择信号Reset input PIN_N2

7、5 lcd 复位LCD_RW Output PIN_K4 液晶读写信号led0 Output PIN_AE23led1 Output PIN_AF23led2 Output PIN_AB21led3 Output PIN_AC22led4 Output PIN_AD22led5 Output PIN_AD23 整点报时及闹钟显示led6 Output PIN_AD21led7 Output PIN_AC21led8 Output PIN_AA14led9 Output PIN_Y13led10 Output PIN_AA13led11 Output PIN_AC14led12 Output P

8、IN_AD15led13 Output PIN_AE15led14 Output PIN_AF13led15 Output PIN_AE13led16 Output PIN_AE12led17 Output PIN_AD12led18 Output PIN_AE22led19 Output PIN_AF22led20 Output PIN_W19led21 Output PIN_V18led22 Output PIN_U18led23 Output PIN_U17led24 Output PIN_AA20led25 Output PIN_Y18mbp0 Output PIN_V20mbp1 O

9、utput PIN_V21mbp2 Output PIN_W21mbp3 Output PIN_Y22mbp4 Output PIN_AA24mbp5 Output PIN_AA23mbp6 Output PIN_AB24 秒表高位mbq0 Output PIN_AF10mbq1 Output PIN_AB12mbq2 Output PIN_AC12mbq3 Output PIN_AD11mbq4 Output PIN_AE11mbq5 Output PIN_V14mbq6 Output PIN_V13 秒表低位mp0 Output PIN_T2mp1 Output PIN_P6mp2 Out

10、put PIN_P7mp3 Output PIN_T9mp4 Output PIN_R5mp5 Output PIN_R4mp6 Output PIN_R3 分高位mq0 Output PIN_U9mq1 Output PIN_U1mq2 Output PIN_U2 分低位mq3 Output PIN_T4mq4 Output PIN_R7mq5 Output PIN_R6mq6 Output PIN_T3p0 Output PIN_Y23p1 Output PIN_AA25p2 Output PIN_AA26p3 Output PIN_Y26p4 Output PIN_Y25p5 Outpu

11、t PIN_U22p6 Output PIN_W24 秒高位q0 Output PIN_AB23q1 Output PIN_V22q2 Output PIN_AC25q3 Output PIN_AC26q4 Output PIN_AB26q5 Output PIN_AB25q6 Output PIN_Y24 秒低位hp0 Output PIN_L3hp1 Output PIN_L2hp2 Output PIN_L9hp3 Output PIN_L6hp4 Output PIN_L7hp5 Output PIN_P9hp6 Output PIN_N9 时高位hq0 Output PIN_R2hq

12、1 Output PIN_P4hq2 Output PIN_P3hq3 Output PIN_M2hq4 Output PIN_M3hq5 Output PIN_M5hq6 Output PIN_M4 时低位4 系统的 VHDL 设计 VHDL 语言源代码VHDL 语言源代码:clock.vhd:ieee.std_logic_arith.all;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clock isport(clk:in std_logic;led:out std_logi

13、c_vector(25 downto 0);k0: in std_logic;k1: in std_logic;k2: in std_logic;k3: in std_logic;bs: inout std_logic;-整点报时及闹钟mbp,mbq,p,q,mp,mq,hp,hq:out std_logic_vector(6 downto 0);-p 高 q 低reset : in std_logic; lcd_rs : out std_logic; -寄存器选择信号LCD_RW : out std_logic; -液晶读写信号LCD_EN : out std_logic; -液晶时钟信号l

14、cd_on : out std_logic;lcd_blon:out std_logic; LCD_Data : out std_logic_vector(7 downto 0); -液晶数据信号end;architecture a of clock iscomponent segport(inp:in integer range 0 to 10;outp:out std_logic_vector(6 downto 0);end component;component lcdPort ( CLK : in std_logic; -状态机时钟信号,同时也是液晶时钟信号m : in integer

15、 range 1 to 7;-显示的星期转换Reset : in std_logic; LCD_RS : out std_logic; -寄存器选择信号LCD_RW : out std_logic; -液晶读写信号LCD_EN : out std_logic; -液晶时钟信号lcd_on : out std_logic;lcd_blon:out std_logic;LCD_Data : out std_logic_vector(7 downto 0); -液晶数据信号end component;component rem1Port ( rint:in integer range 0 to 99

16、;ri:inout integer range 0 to 10);end component;signal cp:std_logic;-0.01 秒signal state:std_logic_vector(1 downto 0);-状态:00:计时与校准;01:秒表;10:闹钟;11:倒计时signal jjstate:std_logic;-状态:0:计时;1:校准signal dstate:std_logic;-倒计时状态:1:倒计时;0:设置时间signal djzstate:std_logic_vector(1 downto 0);-倒计时设置位的状态signal mbi,mbj,i,

17、j,mi,mj,hi,hj:integer range 0 to 10;-i 高 j 低signal hour,min,sec:integer range 0 to 99;-计时signal mbnum,mbsec,mbmin:integer range 0 to 99;-秒表signal dhour,dmin,dsec:integer range 0 to 99;-倒计时signal mod_dsec,mod_dmin,mod_dhour,mod_mbnum,mod_mbsec,mod_mbmin,mod_nzhour,mod_nzmin1,mod_nzmin,mod_sec,mod_min

18、,mod_hour:integer range 0 to 10;-取高位值signal nzhour,nzmin:integer range 0 to 59;-闹钟signal week:integer range 1 to 7;-星期signal week1:integer range 1 to 7;-更改星期中间变量signal jzstate:std_logic_vector(1 downto 0);-计时设置位的状态signal change_dstate:std_logic;-倒计时至 0 自动改变至设置状态beginprocess(clk)variable num:integer

19、range 0 to ;beginif rising_edge(clk) thenif num= thencpdjzstatedjzstatedjzstatedjzstateif dnum2=10 then dnum2:=0;if dhour=23 then dhour-分校准if dnum2=10 thendnum2:=0;if dmin=59 thendmin-秒校准if dnum2=10 thendnum2:=0;if dsec=59 thendsecnull;end case;end if;end if;end if;end if;end process;process(k1,stat

20、e,jjstate)beginif rising_edge(k1) thenif state=“00“ thenif jjstate=1 thencase jzstate iswhen “00“=jzstatejzstatejzstatejzstatejzstatestatestatestatestatestatejjstatejjstatejjstateif num2=29 thennum2:=0;if week=7 thenweekif num2=29 thennum2:=0;if hour=23 thenhour-分校准if num2=10 thennum2:=0;if min=59 t

21、henmin-秒校准if num2=10 thennum2:=0;if sec=59 thensecnull;end case;end if;-else-计时if num1=99 thennum1:=0;if sec=59 thensecoutpoutpoutpoutpoutpoutpoutpoutpoutpoutp outp cnt1:=“00000“; LCD_Data LCD_Data LCD_Data LCD_Data if cnt1=“00011“ thencnt1:=“00000“;LCD_Data LCD_RSLCD_DataLCD_DataLCD_DataLCD_DataLCD

22、_DataLCD_DataLCD_Datanull;end case;cnt1:=cnt1+1;Current_State Current_State null;end case;end if;end process;end Behavioral;rem1.vhd:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity rem1 is-取高位运算port(rint:in integer range 0 to 99;ri:inout integer range 0 to 10);end;arc

23、hitecture r of rem1 isbeginprocess(rint,ri)beginif rint=90 then ri=80 then ri=70 then ri=60 then ri=50 then ri=40 then ri=30 then ri=20 then ri=10 then riyF 邴 ?詑 攗檢锟袥匏=憌?&丹?鐘 w 鲽毨G 艟*鍚揝?剾貀 窴*権?K 猞i? 僗 野 x.?=萙 S?穊堺 e 崖?*g 繍Y 犡 cn*唇?竟瘡缀頎y?挤lo 睈y 軩-%q1?r?.鍼 t 滜?jMR=cZ?X?Pox 邦漺“癬 c 荵“ 挜 FQ?yF 邴 ?詑 攗檢锟袥匏

24、=憌?&丹?鐘 w 鲽毨G 艟*鍚揝?剾貀 窴*権?K 猞i? 僗 野 x.?= 萙 S?穊堺 e 崖?*g 繍Y 犡 cn*唇?竟瘡缀頎y?挤lo 睈y 軩-%q1?r?.鍼 t 滜?jMR=cZ?X?Pox 邦漺“癬 c 荵“ 挜 FQ?yF 邴 ?詑 攗檢锟袥匏=憌?&丹?鐘 w 鲽毨G 艟*鍚揝?剾貀 窴*権?K 猞i? 僗 野 x.?= 萙 S?穊堺 e 崖?*g 繍Y 犡 cn唇?竟瘡缀 頎y? 挤lo 睈y 軩-%q1?r?. 鍼 t 滜?jMR=cZ?X?Pox 邦漺“癬 c 荵“挜 FQ?*鍚揝?剾貀 窴*権?K 猞i? 僗 野x.?=萙 S?穊堺 e 崖?*g 繍Y 犡 c

25、n唇?竟瘡缀 頎y? 挤lo 睈y 軩-%q1?r?. 鍼 t 滜?jMR=cZ?X?Pox 邦漺“癬 c 荵“挜 FQ?yF 邴 ?詑 攗檢锟袥匏=憌?&丹?鐘 w 鲽毨G 艟*鍚揝?剾貀 窴*権?K 猞i? 僗 野 x.?=萙 S?穊堺 e 崖?*g 繍Y 犡 cn曦*唇?竟瘡缀頎y?挤lo 睈y 軩-%q1?r?.鍼 t 滜?jMR=cZ?X?Pox 邦漺“癬 c 荵“ 挜 FQ?yF 邴 ?詑 攗檢锟袥匏=憌?&丹?鐘 w 鲽毨G 艟*鍚揝?剾貀 窴*権?K 猞i? 僗 野 x.?= 萙 S?穊堺 e 崖?*g 繍Y 犡 cn曦*唇?竟瘡缀頎y?挤lo 睈y 軩-%q1?r?.鍼 t

26、滜?jMR=cZ?X?Pox 邦漺“癬 c 荵“ 挜 FQ?yF 邴 ?詑 攗檢锟袥匏=憌?&丹?鐘 w 鲽毨G 艟*鍚揝?剾貀 窴*権?K 猞i? 僗 野 x.?=萙 S?穊堺 e 崖?*g 繍Y 犡 cn*唇?竟瘡缀頎y?挤lo 睈y 軩-%q1?r?.鍼 t 滜?jMR=cZ?X?Pox 邦漺“癬 c 荵“ 挜 FQ?yF 邴 ?詑 攗檢锟袥匏=憌?&丹?鐘 w 鲽毨G 艟*鍚揝?剾貀 窴*権?K 猞i? 僗 野 x.?= 萙 S?穊堺 e 崖?*g 繍Y 犡 cn唇?竟瘡缀 頎y? 挤lo 睈y 軩-%q1?r?. 鍼 t 滜?jMR=cZ?X?Pox 邦漺“癬 c 荵“挜 FQ?*鍚

27、揝?剾貀 窴*権?K 猞i? 僗 野 x.?= 萙 S?穊堺 e 崖?*g 繍Y 犡 cn*唇?竟瘡缀頎y?挤lo 睈y 軩-%q1?r?.鍼 t 滜?jMR=cZ?X?Pox 邦漺“癬 c 荵“ 挜 FQ?yF 邴 ?詑 攗檢锟袥匏=憌?&丹?鐘 w 鲽毨G 艟*鍚揝?剾貀 窴*権?K 猞i? 僗 野 x.?= 萙 S?穊堺 e 崖?*g 繍Y 犡 cn唇?竟瘡缀 頎y? 挤lo 睈y 軩-%q1?r?. 鍼 t 滜?jMR=cZ?X?Pox 邦漺“癬 c 荵“挜 FQ?*鍚揝?剾貀 窴*権?K 猞i? 僗 野 x.?= 萙 S?穊堺 e 崖?*g 繍Y 犡 cn曦*唇?竟瘡缀頎y?挤lo 睈y 軩-%q1?r?.鍼 t 滜?jMR=cZ?X?Pox 邦漺“癬 c 荵“ 挜 FQ?J 鍔 峜摤蚗平绂?B

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报