




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、考试序号 : #自动打铃系统设计说明书学生姓名:#学号:#专业班级:#报告提交日期:湖南理工学院物电学院目录第一部分:设计题目及总体要求简介错.误!未定义书签。1 .设计题目:自动打铃系统设计。错.误!未定义书签。2 .设计要求简介:错.误!未定义书签。第二部分:设计方案说明错.误!未定义书签。设计方案:错.误!未定义书签。第三部分:各部分功能介绍及程序(部分)错.误!未定义书签。1. 系统框图错 . 误 ! 未定义书签。2. 选择的FPGAE片及配置 错误!未定义书签3. 各模块(元件)说明错. 误 ! 未定义书签。?各子模块说明 错.误!未定义书签。?顶层文件说明 错.误!未定义书签。?端
2、口说明 错.误!未定义书签。?顶层文件引脚映射说明 错.误!未定义书签。第四部分:仿真结果(附图)错 .误!未定义书签。1 .仿真结果图错.误!未定义书签。2 .说明 错.误!未定义书签。?输入激励信号说明 错.误!未定义书签。?输出结果说明 错.误!未定义书签。附录:源程序(附注释)错.误!未定义书签。第一部分:设计题目及总体要求简介1 .设计题目 :自动打铃系统设计。2 .设计要求简介: 基本计时和显示功能(24 小时制显示),包括:1. 24小时制显示;2. 动态扫描显示;3. 显示格式:88-88-88; 能设置当前时间(含时、分); 能实现基本打铃功能,规定:06:00起床铃,打铃5
3、s;clk: 标准时钟信号;clk_1k:扫描时钟;mode : 功能控制信号;为 0:计时功能;为 1:闹钟功能;为2:手动校时功能;turn : 接按键,在手动校时功能时,选择是调整小时,还是分钟;change:接按键,手动调整时,每按一次,计数器加1;alert : 输出到扬声器的信号,用于产生打铃声;第二部分:设计方案说明设计方案:自动打铃是一种现代提醒工具,有着广泛的应用。例如学校的上课铃声,每天在既定的时间响铃,这就是自动打铃系统的具体应用之一。打铃系统设置从早上的6点开始起床打铃,铃声持续响5秒。利用IF语句控制打铃的时间,在规定的时间内到打设既定的打铃间隔时间时给出一个5秒的高
4、电平脉冲,让铃声连续响起。还需要一个校时功能。本次设计主要采用Verilog HDL硬件描述性语言、分模块法去设计。由于这次开发板提供的是50M晶振,所以首先要对时钟进行分频,当计时到2FA_F07F时完成1s分频,通过计时到60s产生分钟进位信号,再通过60分钟产生进位信 号。最后通过6个寄存器对时分进行锁存最终输出到 8个数码管上完成显示。当显示时钟和默认闹钟时钟相等时,驱动打铃模块。通过 mode,turn,change查看闹钟,时钟显示,调整时钟。总体设计框图如下图所示闹钟显示时钟显示校时模块部分软件控制流程示意图如下:第三部分:各部分功能介绍及程序(部分)1.系统框图顶层电路主要由F
5、PGA实现,输出信号接到八位数码管、LED指示灯及扬声器上,系统框图如图所示clk1I AlteraalertclklkLDalertmodeLDhourchange1min、模(hour、LD_min ture sec) out7772 .选择的FPGA芯片及配置? EP1K10TC100-3本系统采用ACEX1K系列的EP1K10TC100-3由于FPGAlS件的规模可以做 的非常大,其内部主要由大量纵横排列的逻辑块(Logic Block,LB构成,大量这样的逻辑块通过内部连线和开关就可以实现非常复杂的逻辑功能。由于FPGA是基于SRAM结构的,具有易失性,在此采用被动用行配置(PS方式
6、,由外部的 计算机控制配置过程,使用 USB-BlasterF载电缆下载程序。ACEX系歹是当今Altera CPLD中应用前景最好的器件系列之一 1,2。该系 列的FPGA由逻辑阵列块,LAR嵌入式阵列块EAB快速互联一计IO单元构成, 每个逻辑阵列块包含8个逻辑单元LE (logic element)和一个局部互联。每个逻 辑单元则有一个4 输入查找表(LUT) 、一个可编程触发器、快速进位链、级连链组成,对个LAB和多个EAB则可通过快速通道互相连接。EAB是ACEX系列器件在结构设计上的一个重要的部件,他是输入端口和输出端口都带有的触发器的一种灵活的RAM 快, 其主要功能是实现一些规
7、模不太大FIFO,ROM、 RAM 和双端口RAM 等岔段共阴极LED1示(seg3-seg10?扬声器 ?开关及校时按钮3 . 各模块(元件)说明?各子模块说明 ( 1) 校正模块:在实验中,产生基准信号,校正时间。always (posedge clk)begin clk_2hz <= clk_2hz;if(sound = 3) begin sound <= 0;ear<=1; end0:小时信号的输出min7.0 :分钟信号的输出sec7.0:秒信号的输出?顶层文件引脚映射说明输入引脚5 个,输出引脚15 个,引脚锁定关系如图所示Node HameDirectiariL
8、ocation1 1L Da lertOutputPIM_132 OLDJiquOutputPIN43音LDininOutputPIM 154 j&alertOutputPIN65心changeInputPIPJ_196 1dkInputPIN_207*北kInputPIPJ_218hotirfOOutputPIN_22Q饪hotirlOutputPIN_2310ohour2OutputPIN_ 刘113hcxjr3OutputPIN_2712妙hour 4OutputPIN_23133hwr5OutputPIN_2914hour 6OutputPIN_3015<>howr
9、7OutputPIN_3Z16minCOutputP工 N_3117饪minlOutputPIN_33Wmin 2OutputPIN*19min国OutputPIP4_4fi2CminOutputPIN_4521min 5OutputPTN_4722Omin 6OutputPIN_4S23min 7OutputPIN_书24madeInpotPIN。25secCOutputPIN_56%2应国OutputPIN_5 7270OutputPIN_582S0see司OutputPIPJ_63四饪secrtOutputPIN_643CQsk50OutputPIN_7031sec 6OutputPIN
10、_7132<>OutputPIN_9933IFturnInputPIN_99第四部分:仿真结果(附图)1.仿真结果图计时仿真图(以12:59:59计时进位为例)计时进位具体理解为:时钟每产生一个时钟脉冲,秒钟加一,秒钟总加满六十次 时,产生一个进位,然后分钟加一,当分钟加满六十次时,产生一个时钟进位,然后时钟加一,当时钟加满二十四次时,进行一次初始化"-上色磅-福-曼手动校时仿真图(以手动调到 7:06为例)手动校时具体操作为:首先给mode输入2个连续的高脉冲使系统进入校时模式, 再给change输入7个连续高脉冲使小时调到七,此过程中 LD_hour指示灯亮,再给tu
11、rn 一个高脉冲切换到调分钟状态,再给 change输入6个连续高脉冲使小 时调到六分钟,此过程中LD_min指示灯亮,再给mode 一个高脉冲回到计时模式,系统从07:06分开始计时elk clkjk 配电 turnch皿舄/田 hour13 ndmQ secaltri LD 打铃仿真图(以六点整闹铃为例,打铃 5s)rLrLnj-LrLrLrLTLrLrLrLrmrLnrLrLnLrLrLnj2.说明?输入激励信号说明clk:标准时钟信号;clk_1k:数码管扫描时钟;mode:功能模式控制信号,为 0:计时功能;为 1:闹铃功能;为 2:校时功能;turn :接按键,在手动校时功能时,选
12、择调整小时/分钟;change:接按键,手动调整时,每按一次,计数器加1;?输出结果说明alert:输出到扬声器的信号,用于产生闹铃声;LD_alert:接LED灯亮表示设置了闹铃;LD_hour:接LEDT亮表示正在调整小时;LD_min:接LED灯亮表示正在调整分钟。hour,min,sec:分别表示时 分 秒信号,采用BCD码计数,分别驱动6个数码显示管显示时间;附录:源程序(附注释)(程序来自于EDA技术与Verilog设计P268P272)/* 信号定义:clk:标准时钟信号;clk_1k:扫描时钟;功能控制信号:mode:为0:计时功能;为 1 :闹钟功能;为2:手动校时功能;tu
13、rn :接按键,在手动校时功能时,选择是调整小时,还是分钟;change:接按键,手动调整时,每按一次,计数器加1;hour,min,sec:分别表示时 分 秒信号,采用BCD码计数,分别驱动6个数码显示管显示时间;alert:输出到扬声器的信号,用于产生打铃声;LD_alert:接发光二极管,指示是否设置了闹钟功能;LD_hour:接发光二极管,指示当前调整的是小时信号;LD_min:接发光二极管,指示当前调整的是分钟信号.*/module clock(clk,clk_1k,mode,change,turn,alert,hour,min,sec,LD_alert,LD_hour,LD_min
14、);input clk,clk_1k,mode,change,turn;output alert,LD_alert,LD_hour,LD_min;output7:0 hour,min,sec;reg7:0 hour,min,sec,hour1,min1,sec1,ahour,amin;reg1:0 m,fm,num1,num2,num3,num4;reg1:0 loop1,loop2,loop3,loop4,sound;reg LD_hour,LD_min;reg clk_1Hz,clk_2Hz,minclk,hclk;reg alert1,alert2,ear;reg count1,coun
15、t2,counta,countb;wire ct1,ct2,cta,ctb,m_clk,h_clk;always (posedge clk)begin clk_2Hz <= clk_2Hz;if(sound = 3) begin sound <= 0;ear<=1; end /ear 用于产生或屏蔽声音信号else begin sound <= sound + 1;ear <= 0; end endalways (posedge clk_2Hz)/ 用 4hz 的输入信号产生1hz 的时基信号clk_1Hz <= clk_1Hz;always (posedg
16、e mode)/mode 信号控制系统在三种功能间的转换begin if(m = 2) m <= 0;else m <= m+1; endalways (posedge turn) fm <= fm;always/ 产生 count1,count2,counta,countb 四个信号begincase(m)2:begin if(fm)begin count1 <= change; LD_min,LD_hour <= 2; end elsebegin counta <= change; LD_min,LD_hour <= 1; end counta,c
17、ountb <= 0;end1:begin if(fm)begin count2 <= change; LD_min,LD_hour <= 2; end elsebegin countb <= change; LD_min,LD_hour <= 1; end count1,countb <= 2'b00;enddefault:count1,count2,counta,countb,LD_min,LD_hour <= 0;endcaseendalways (negedge clk) 如果长按"change"信号,则生成信号用于
18、连续快速加1if(count2) beginif(loop1 = 3) num1 <= 0;else begin loop1 <= loop1 + 1;num1 <= 0; endendelse/产生 num2 信号begin loop1 <= 0; num1 <= 0; endalways (negedge clk)if(countb) beginif(loop2 = 3) num2 <= 1;else begin loop2 <= loop2+1;num2 <= 0;endendelse begin loop2 <= 0; num2 &
19、lt;= 0; endalways (negedge clk)if(count1) beginif(loop3 = 3) num3 <= 1;else begin loop3 <= loop3+1;num3 <= 0; endendelse begin loop3 <= 0; num3 <= 0; endalways (negedge clk)if(counta) beginif(loop4 = 3) num4 <= 1;else begin loop4 <= loop4 + 1; num4 <= 0; endendelse begin loop
20、4 <= 0;num4 <= 0; end/ct1 用于计时、校时中的分钟计数/ct2 用于定时状态下调整分钟信号/cta 用于计时、校时中的小时计数/ctb 用于定时状态下调整小时信号/ 秒计时和秒调整进程assign ct1 = (num3&clk)|(!num3&m_clk);assign ct2 = (num1&clk)|(!num1&count2);assign cta = (num4&clk)|(!num4&h_clk);assign ctb = (num2&clk)|(!num2&countb);alwa
21、ys (posedge clk_1Hz)if(!(sec1A8'h59)|turn&(!m)begin sec1 <= 0; if(!(turn&(!m) minclk <= 1; end/按住 "turn" 秒信号清0else beginif(sec13:0 = 4'b1001)begin sec13:0 <= 4'b0000; sec17:4 <= sec17:4 + 1;endelse sec13:0 <= sec13:0 + 1; minclk <= 0;endassign m_clk =
22、minclk | count1;always (posedge ct1)/分计时和分调整进程beginif(min1 = 8'h59) begin min1 <= 0;hclk <= 1; endelse begin if(min13:0 = 9)begin min13:0 <= 0; min17:4 <= min17:4 + 1; endelse min13:0 <= min13:0 + 1; hclk <= 0;endendassign h_clk = hclk | counta;always (posedge cta)/小时计时和小时调整进程i
23、f(hour1 = 8'h23) hour1 <= 0;else if(hour13:0 = 9)begin hour17:4 <= hour17:4 + 1; hour13:0 <= 0; endendcaseelse hour13:0 <= hour13:0 + 1;always (posedge ct2)/闹钟定时功能中的分钟调整进程if(amin = 8'h59) amin <= 0;else if(amin3:0 = 9)begin amin7:4 <= amin7:4 + 1; amin3:0 <= 0; endelse amin3:0 <= amin3:0 + 1;always (posedge ctb)if(ahour = 8'h23) ahour <= 0;else if(ahour3:0 = 9)/闹钟定时功能中的小时调整进程begin ahour7:4 <= ahour7:4 + 1; ahour3:0 <= 0; endelse ahour3:0 <= ahour3:0 + 1;always/ 闹铃功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 育儿保姆家政服务合同协议
- 股东合作协议终止合同书
- 自助餐糕点供货合同协议
- 综合布线采购合同协议
- 股份购买定金合同协议
- 统计员责任合同协议
- 股东合股经营合同协议
- 腾讯教育频道合同协议
- 终止门面合同协议范本
- 美院合作协议书合同协议
- 【MOOC】数值天气预报-南京信息工程大学 中国大学慕课MOOC答案
- 海分枝杆菌感染护理
- 二零二四年度新能源汽车充电站建设总承包合同2篇
- 精神科患者隐私保护制度
- 配电箱巡检表
- 2024年江苏省泰州市保安员理论考试题库及答案(完整)
- DB11-T 1894-2021 10kV及以下配电网设施配置技术规范
- 高血钙症的遗传易感性研究
- 陕2023TJ077 住宅厨房、卫生间装配式L型构件排气道系统图集
- GB/T 44102-2024跳绳课程学生运动能力测评规范
- 医疗器械合格供应商管理制度
评论
0/150
提交评论