《实验四八位七段数码管动态显示电路的设计.doc》由会员分享,可在线阅读,更多相关《实验四八位七段数码管动态显示电路的设计.doc(3页珍藏版)》请在三一文库上搜索。
1、module sev_seg_led(Clk, /Key_n,Sev_Seg_Led_Data_n, /参数名del);input Clk; /50mhz脉冲名input 3:0 Key_n; /4个按键 key1 2 3 4 output 6:0 Sev_Seg_Led_Data_n; /7个输出output 2:0 del; /*3-8译码器输出*/输 控制八个信号/*-*/*-*/reg 6:0 Led1,Led2; /中间量reg 31:0 Cout;reg Clk_En;reg 2:0 i; reg 2:0 del;always (posedge Clk ) /判断clk的值1?0?
2、 posedge上升沿 if whenbegin / 括号 /d50_000 十进制五万 d1Cout = (Cout = 32d50_000) ? 32d0 : (Cout + 32d1); /d十进制/分频/=负值语句,可同时执/ =判断句Clk_En = (Cout = 32d50_000) ? 1d1 : 1d0; /分频。if(Clk_En) /=0.5s 判断是否等于1begini = i + 3d1; /i+1del=i; /是三八译码器三个输入端自身+1endendalways(Key_n) /判断四个按键是否有值,是否有变化begin case (Key_n)4b0000:
3、begin Led2= 7b0111_111;Led1=7b0111_111; end /b二进制 0111 个位数4b0001: begin Led2= 7b0000_110;Led1=7b0111_111;end4b0010: begin Led2= 7b1011_011;Led1=7b0111_111;end4b0011: begin Led2 = 7b1001_111;Led1=7b0111_111;end4b0100: begin Led2 = 7b1100_110;Led1=7b0111_111;end4b0101: begin Led2 = 7b1101_101;Led1=7b0
4、111_111;end4b0110: begin Led2 = 7b1111_101;Led1=7b0111_111;end4b0111: begin Led2 = 7b0000_111;Led1=7b0111_111;end4b1000: begin Led2= 7b1111_111;Led1=7b0111_111;end4b1001: begin Led2 = 7b1101_111;Led1=7b0111_111;end 4b1010: begin Led2 = 7b0111_111;Led1=7b0000_110;end/十位数4b1011: begin Led2 = 7b0000_11
5、0; Led1=7b0000_110;end4b1100: begin Led2 = 7b1011_011;Led1=7b0000_110;end4b1101: begin Led2 = 7b1001_111;Led1=7b0000_110; end4b1110: begin Led2 = 7b1100_110;Led1=7b0000_110;end 4b1111: begin Led2 = 7b1101_101;Led1=7b0000_110; end/用两位数码管显示/2个数码管 奇数位偶数位default :begin Led1=Led2 = 7b0000_000;endendcaseend/*-*/assign Sev_Seg_Led_Data_n =(del%2)?Led1:Led2;/*-*/Endmodule