电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

特权同学视频课件16

特权同学视频课件16_第1页
1/10
特权同学视频课件16_第2页
2/10
特权同学视频课件16_第3页
3/10
第一课:分频 module clkdiv( clk,rst_n, clk_div ); input clk; //50MHz input rst_n; //低电平复位信号 output clk_div; //分频信号,连接到蜂鸣器 //--------------------------------------------------- reg[19:0] cnt; //分频计数器 always @ (posedge clk or negedge rst_n) //异步复位 if(!rst_n) cnt <= 20'd0; else cnt <= cnt+1'b1; //寄存器cnt 20ms 循环计数 //---------------------------------------------------- reg clk_div_r; //clk_div 信号值寄存器 always @ (posedge clk or negedge rst_n) if(!rst_n) clk_div_r <= 1'b0; else if(cnt == 20'hfffff) clk_div_r <= ~clk_div_r; //每20ms 让clk_div_r 值翻转一次 assign clk_div = clk_div_r; endmodule 第二课:按键 //说明:当三个独立按键的某一个被按下后,相应的LED被点亮; // 再次按下后,LED熄灭,按键控制LED亮灭 module sw_debounce( clk,rst_n, sw1_n,sw2_n,sw3_n, led_d1,led_d2,led_d3 ); input clk; //主时钟信号,50MHz input rst_n; //复位信号,低有效 input sw1_n,sw2_n,sw3_n; //三个独立按键,低表示按下 output led_d1,led_d2,led_d3; //发光二极管,分别由按键控制 //-------------------------------------------------------- reg[2:0] key_rst; always @(posedge clk or negedge rst_n) if (!rst_n) key_rst <= 3'b111; else key_rst <= {sw3_n,sw2_n,sw1_n}; reg[2:0] key_rst_r; //每个时钟周期的上升沿将low_sw信号锁存到low_sw_r中 always @ ( posedge clk or negedge rst_n ) if (!rst_n) key_rst_r <= 3'b111; else key_rst_r <= key_rst; //当寄存器key_rst由1变为0时,led_an的值变为高,维持一个时钟周期 wire[2:0] key_an = key_rst_r & ( ~key_rst); //----------------------------------------------------------------- reg[19:0] cnt; //计数寄存器 always @ (posedge clk or negedge rst_n) if (!rst_n) cnt <= 20'd0; //异步复位 else if(key_an) cnt <=20'd0; else cnt <= cnt + 1'b1; reg[2:0] low_sw; always @(posedge clk or negedge rst_n) if (!rst_n) low_sw <= 3'b111; else if (cnt == 20'hfffff) //满20ms,将按键值锁存...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

特权同学视频课件16

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部