DAC芯片TLCverilog代码

更新时间:2023-05-18 14:01:15 阅读: 评论:0

DAC芯片TLC5620 Verilog代码
TLC5620是TI公司的DA转换芯片,
下面的代码实现的简单的DA转换功能。
说明:数码管1显示通道, 数码管2显示RNG值,数码管3和4显示CODE值。按键1切换通道,按键2改变RNG值(0或1),按键3改变CODE值,按键4未使用。
wtd/**************************************************************************************************
** DAC11位数据输入说明:Bit[10:9] 通道选择00:CHA; 01:CHB; 10:CHC; 11:CHD
      Bit[8] RNG 0:参考电压到地 1:两倍参考电压到地
prentvalue      Bit[7:0] DAC转换代码,范围0~255.
      输出电压Vo=REF*(CODE/256)*(1+RNG)
**************************************************************************************************/
module      dac(
                        clk,
山东化妆培训学校                        rst_n,
                        dac_clk,
                        dac_data,
                        dac_load,
                        sw1_n,sw2_n,sw3_n,sw4_n,
                        digit_o,
                        cs
                        );
input    clk;            // 输入时钟50MHz
input    rst_n;            // 复位
input    sw1_n,sw2_n,sw3_n,sw4_n;      // 按键
output    dac_clk;          // DAC时钟 MAX=1MHz
output    dac_data;          // DAC数据输出
output    dac_load;          // 加载信号
                // 电路图中LDAC已经接地,因此略去
output [7:0] digit_o;          // 数码管输出
output [3:0]  cs;            // 数码管片选
parameter  DAC_Idle = 3'b001,        // 状态参数
    DAC_Send = 3'b010,
    DAC_Store = 3'b100;
//=================================================================================================
parameter                                                      // 字模
    MSK_0      = 8'hC0,      // '0'
    MSK_1      = 8'hF9,      // '1'
    MSK_2      = 8'hA4,      // '2'
    MSK_3      = 8'hB0,      // '3'
    MSK_4      = 8'h99,      // '4'
    MSK_5      = 8'h92,      // '5'
    MSK_6      = 8'h82,      // '6'
    MSK_7      = 8'hF8,      // '7'
    MSK_8      = 8'h80,      // '8'
    MSK_9      = 8'h90,      // '9'
    MSK_A      = 8'h88,      // 'A'
    MSK_B      = 8'h83,      // 'B'
    MSK_C      = 8'hC6,      // 'C'
    MSK_D      = 8'hA1,      // 'D'
    MSK_E      = 8'h86,      // 'E'
内包装    MSK_F      = 8'h8E;      // 'F'
//=================================================================================================雅思阅读评分标准
/**************************************************************************************************建筑师资格证怎么考
** 按键部分
**************************************************************************************************/
reg [3:0] key_rst;                                            // 保存按键前一个状态
always @(podge clk or negedge rst_n)
    if (!rst_n)
      key_rst <= 4'b1111;
  el key_rst <= {sw4_n,sw3_n,sw2_n,sw1_n};
reg[3:0] key_rst_r;                                        // 保存按键下一个状态
always @(podge clk or negedge rst_n)
    if (!rst_n)
        key_rst_r <= 4'b1111;
  el key_rst_r <= key_rst;
 
wire[3:0] key_val = key_rst_r & (~key_rst);              // 检测是否有1到0跳变
reg[19:0] cnt;                                            // 计数器
always @(podge clk or negedge rst_n)
    if (!rst_n)
      cnt <= 20'd0;
  el if (key_val)                                      // 有按键按下(由1变为0)计数器开始计时 20ms
      cnt <= 20'd0;
  el
        cnt <= cnt + 1'b1;
7755   
// 去抖动后的按键检测,仍然用两级寄存器
    reg[3:0] low_sw;
always @(podge clk or negedge rst_n)
would like    if (!rst_n)
      low_sw <= 4'b1111;
  el if (cnt == 20'hfffff)                            // 20ms后的按键状态锁存到low_sw中
            low_sw <= {sw4_n,sw3_n,sw2_n,sw1_n};
    reg[3:0] low_sw_r;
    always @(podge clk or negedge rst_n)
    if (!rst_n)
            low_sw_r <= 4'b1111;
  el
      low_sw_r <= low_sw;
wire[3:0] led_ctrl = low_sw_r & (~low_sw);
reg [10:0] rData;
always @(podge clk or negedge rst_n)
    if (!rst_n)                                           
    rData <= 11'd255;
  el begin                                               
transactionmanager    if (led_ctrl[0] == 1)        // S1键按下
      rData[10:9] <= rData[10:9] + 1'b1;    // 通道切换
    if (led_ctrl[1] == 1)        // S2键按下
      rData[8] <= ~rData[8];        // RNG位变化
    if (led_ctrl[2] == 1)        // S3键按下
      rData[7:0] <= rData[7:0] + 8'd8;              // CODE变化
  end
北京雅思家教/*************************************************************************************************/

本文发布于:2023-05-18 14:01:15,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/113343.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:按键   转换   通道   数码管   显示
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图