实验23按键消抖冯冠玺.doc

实验23按键消抖冯冠玺.doc

ID:60814712

大小:75.50 KB

页数:7页

时间:2020-12-20

实验23按键消抖冯冠玺.doc_第1页
实验23按键消抖冯冠玺.doc_第2页
实验23按键消抖冯冠玺.doc_第3页
实验23按键消抖冯冠玺.doc_第4页
实验23按键消抖冯冠玺.doc_第5页
资源描述:

《实验23按键消抖冯冠玺.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验报告2016年12月成绩:姓名冯冠玺学号班级专业计算机科学与技术课程名称《数字电路课程设计》任课老师冯建文指导老师冯建文机位号实验序号23实验名称按键消抖与单脉冲产生实验实验时间实验地点实验设备号一、实验程序设计分工如下:每个人单独完成一个大实验。第23个实验:冯冠玺第18,19个实验:郑凯各模块示意图:一.分频器模块clk_100mclk_100m分频器clk_10msclkout_100resetreset二.按键消抖模块resetreset按键消抖模块clk_100clkkey_pulsekeykey三.计数器模块计数

2、器resetresetledclkclk总模块:reset分频器clkout_100clk_100mresetresetresetreset计数器clk_100clk按键消抖clk_100m模块ledkeykeykey_pulseclk实验程序源代码:moduleMy23(key,reset,clk_100m,led);//顶层模块inputreset,clk_100m,key;outputreg[7:0]led;wireclkout_100,key_pulse;initialbeginled=0;endFenpinfp(clk

3、_100m,clkout_100,reset);//分频模块,有100MHz的作为输入,输出是100Hz时钟Xiaodouxd(reset,clkout_100,key,key_pulse);//消抖模块,接收100Hz时钟,输出是key_pulsealways@(posedgekey_pulseorposedgereset)beginif(reset==1)led=0;elseled=led+1;//用8位led灯来表示计数器是否只加1;endendmodulemoduleXiaodou(reset,clk_100,key,k

4、ey_pulse);/*消抖模块,输入为分频模块输出的100Hz的时钟,输出为key_pulse*/inputkey,clk_100,reset;outputregkey_pulse;reg[2:0]ST;//因为是6个状态,所以要用到3位;parameterS0=3'b000,S1=3'b001,S2=3'b010,S3=3'b011,S4=3'b100,S5=3'b101;/*用parameter定义常量增强程序的可读性*/initialbeginST=S0;key_pulse=0;endalways@(posedgeres

5、etorposedgeclk_100)/*根据书中要求的,在reset有效的情况下,若key为0则ST为S0,若为1,则ST为S3*/beginif(reset==1)beginif(key==0)ST<=S0;elseST<=S3;endelse/*根据书上的状态转移图写出描述语句*/begincase(ST)S0:key_pulse<=key?0:0;S1:key_pulse<=key?1:0;S2:key_pulse<=key?0:0;S3:key_pulse<=key?1:1;S4:key_pulse<=key?1:0;

6、S5:key_pulse<=key?1:0;endcasecase(ST)S0:ST<=key?S1:S0;S1:ST<=key?S3:S2;S2:ST<=key?S1:S0;S3:ST<=key?S3:S4;S4:ST<=key?S5:S0;S5:ST<=key?S3:S4;endcaseendendendmodulemoduleFenpin(clk_100M,clkout_100,reset);/*分频模块,输入为100MHz的时钟,输出为100Hz的时钟信号*/inputclk_100M,reset;outputregcl

7、kout_100;reg[18:0]counter;//1兆约等于2的20次方,但因为是方波,所以counter为19位;always@(posedgeresetorposedgeclk_100M)beginif(reset)begincounter<=19'd0;clkout_100<=1'b0;endelseif(counter==19'd)/*在counter为1M的一半时,反转状态,也就是每半个周期方波信号从0变为1,或从1变为0*/beginclkout_100<=~clkout_100;counter<=19'd0;

8、//达到1M的时候,counter要从0开始重新计数endelsecounter<=counter+1'b1;endendmodule二、仿真波形每10ms读入一个key,所以我将时间范围从1微秒改为1秒,并且我的reset重置信号是为0时意为无效。第二个十毫秒

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。