这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » anmko的进程贴:综合实验-基于DS1302的万年历LCD1602显示(最终版

共223条 5/23 |‹ 3 4 5 6 7 8 ›| 跳转至
高工
2012-09-26 22:22:56     打赏
41楼
3.3V供电,TTL电平,没问题,这个够用了,何必要用贵的呢

高工
2012-09-26 22:45:40     打赏
42楼

ARM DIY的时候我受你们的刺激了,,所以这次加快了速度


高工
2012-09-26 22:59:56     打赏
43楼
我都没开始焊呢

高工
2012-09-26 23:16:14     打赏
44楼
我国庆出去玩,所以得赶一点进度。。

高工
2012-09-26 23:43:27     打赏
45楼
我现在一堆事情要干
唉。。。。

高工
2012-09-27 08:00:23     打赏
46楼
当爹的不容易啊

高工
2012-09-27 10:41:19     打赏
47楼
6、数码管的静态显示


8个数码管静态显示数字,并从0计数到f

高工
2012-09-27 14:01:30     打赏
48楼

7、数码管的动态显示


数码管的动态显示,依次显示0~7

module scan_led(clk,rst,sm_seg,sm_bit);
input clk,rst;
output[7:0] sm_seg;
output[7:0] sm_bit;
reg[7:0] sm_seg;
reg[7:0] sm_bit;

reg[15:0] cnt_scan;
reg[4:0] dataout_buf;

always@(posedge clk or negedge  rst)
begin
 if(!rst) begin
  cnt_scan<=0;
  
  end
 else begin
  cnt_scan<=cnt_scan+1'b1;
  end
end

always @(cnt_scan)
begin
   case(cnt_scan[15:13])
       3'b000 :
          sm_bit = 8'b1111_1110;
       3'b001 :
          sm_bit = 8'b1111_1101;
       3'b010 :
          sm_bit = 8'b1111_1011;
       3'b011 :
          sm_bit = 8'b1111_0111;
       3'b100 :
         sm_bit = 8'b1110_1111;
       3'b101 :
         sm_bit = 8'b1101_1111;
       3'b110 :
          sm_bit = 8'b1011_1111;
       3'b111 :
         sm_bit = 8'b0111_1111;
       default :
          sm_bit = 8'b1111_1110;
    endcase
end

always@(sm_bit)
begin
 case(sm_bit)
  8'b1111_1110:
   dataout_buf=0;
  8'b1111_1101:
   dataout_buf=1;
  8'b1111_1011:
   dataout_buf=2;
  8'b1111_0111:
   dataout_buf=3; 
  8'b1110_1111:
   dataout_buf=4;
  8'b1101_1111:
   dataout_buf=5;
  8'b1011_1111:
   dataout_buf=6;
  8'b0111_1111:
   dataout_buf=7;
  default:
   dataout_buf=8;
  endcase
end

always@(dataout_buf)
begin
 case(dataout_buf)
      4'h0 : sm_seg = 8'hc0;   // "0"
   4'h1 : sm_seg = 8'hf9;   // "1"
   4'h2 : sm_seg = 8'ha4;   // "2"
   4'h3 : sm_seg = 8'hb0;   // "3"
   4'h4 : sm_seg = 8'h99;   // "4"
   4'h5 : sm_seg = 8'h92;   // "5"
   4'h6 : sm_seg = 8'h82;   // "6"
   4'h7 : sm_seg = 8'hf8;   // "7"
   4'h8 : sm_seg = 8'h80;   // "8"
   4'h9 : sm_seg = 8'h90;   // "9"
   4'ha : sm_seg = 8'h88;   // "a"
   4'hb : sm_seg = 8'h83;   // "b"
   4'hc : sm_seg = 8'hc6;   // "c"
   4'hd : sm_seg = 8'ha1;   // "d"
   4'he : sm_seg = 8'h86;   // "e"
   4'hf : sm_seg = 8'h8e;   // "f"
  endcase
end

endmodule


高工
2012-09-27 19:06:15     打赏
49楼

8、拨码开关控制数码管显示

      这个实验值得注意的是拨码有个引脚用到了FPGA的108脚,因为这个教默认的是特殊作用的,必须把它设置成普通的IO口,不然编译出错的。



       通过拨码开关控制数码管的显示,SW1~SW4控制第4~7位数码管,SW5~SW8控制第1~3位数码管。数码管的显示数字范围是0~f。


module key_disp
(
 input   clk,
 input   rst_n,
  
 input [3:0]  swith1,
 input [3:0]  swith2,
 
 output [7:0] disp_reg,
 output [7:0] dis_bit
);

 scan_display DISP //动态显示,具体的源码在楼上贴着呢,稍微修改
                                    //一下即可
 (
  .clk(clk),
  .rst_n(rst_n),
  .disp_1th(swith1),
  .disp_2th(swith1),
  .disp_3th(swith1),
  .disp_4th(swith2),
  .disp_5th(swith2),
  .disp_6th(swith2),
  .disp_reg(disp_reg),
  .dis_bit(dis_bit)
 );

endmodule


专家
2012-09-27 21:16:53     打赏
50楼
楼主速度有点快,有点跟不上了

共223条 5/23 |‹ 3 4 5 6 7 8 ›| 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]