标签: A/D ADS7818控制程序 C程序 Verilog程序 //************************AVR单片机 C程序***************************** //ADS7818采用SPI模式采样 #define CLK_SET PORTC|=(1<<6) #define CLK_CLI PORTC&=~(1<<6) #define CONV_SET PORTC|=(1<<5) #define CONV_CLI PORTC&=~(1<<5) //****************************ADS7818采样程序******************************** //晶振16M //ADS7818采用SPI模式采样 unsigned int ADS7818(void) { unsigned int ADdata=0; unsigned char i; CONV_CLI; //conv低 CLK_SET; //1clk //clk高 _NOP(); CLK_CLI; //clk低 _NOP(); CLK_SET; //2clk //clk高 _NOP(); for(i=0;i<12;i++) { CLK_CLI; //clk低 _NOP(); CLK_SET; //clk高 _NOP(); ADdata=ADdata<<1; if(PINC&0x80) { ADdata|=0x0001; } else { ADdata&=0xFFFE; } } CLK_CLI; //clk低 _NOP(); CLK_SET; //15 clk //clk高 _NOP(); CLK_CLI; //clk低 _NOP(); CLK_SET; //16 clk //clk高 _NOP(); CLK_CLI; //clk拉低 _NOP(); CONV_SET; //CONV拉高 _NOP(); //至少保持350ns _NOP(); _NOP(); _NOP(); _NOP(); _NOP(); _NOP(); _NOP(); _NOP(); ADdata=ADdata&0x0FFF; return ADdata; } //**********************verilog语言控制ADS7818********************* //ADS7818采用DSP模式采样 /************************************************************************************ **读取ADS7818数据 **clk为50M ***************************************************************************************/ module read_7818(clk,rst,CLK_7818,DATA_7818,CONV_7818,AD_result); input clk; input rst; input DATA_7818; output CLK_7818; output CONV_7818; output [11:0]AD_result; reg CLK_7818; reg CONV_7818; reg [11:0]AD_result; reg [1:0]num_80ns; reg clk_80ns; //*******************************分频程序********************** always @(posedge clk) begin if(num_80ns==2'd1) begin num_80ns=2'd0; clk_80ns=~clk_80ns; end else begin num_80ns=num_80ns+1'b1; end end //************************************控制时序**************************** reg [5:0]state_7818; reg [11:0]AD_reg; //采样数据缓存 always @(posedge clk_80ns or negedge rst) begin if(!rst) begin state_7818<=6'd0; end else begin case(state_7818) 0: begin CLK_7818<=1'b0; state_7818<=6'd1; end 1: //clk up 1 begin CLK_7818<=1'b1; CONV_7818<=1'b1; state_7818<=6'd2; end 2: begin CLK_7818<=1'b0; state_7818<=6'd3; end 3: //clk up 2 begin CLK_7818<=1'b1; AD_reg[11]<=DATA_7818; state_7818<=6'd4; end 4: begin CLK_7818<=1'b0; state_7818<=6'd5; end 5: //clk up 3 begin CLK_7818<=1'b1; AD_reg[10]<=DATA_7818; state_7818<=6'd6; end 6: begin CLK_7818<=1'b0; state_7818<=6'd7; end 7: //clk up 4 begin CLK_7818<=1'b1; AD_reg[9]<=DATA_7818; state_7818<=6'd8; end 8: begin CLK_7818<=1'b0; state_7818<=6'd9; end 9: //clk up 5 begin CLK_7818<=1'b1; AD_reg[8]<=DATA_7818; state_7818<=6'd10; end 10: begin CLK_7818<=1'b0; state_7818<=6'd11; end 11: //clk up 6 begin CLK_7818<=1'b1; AD_reg[7]<=DATA_7818; state_7818<=6'd12; end 12: begin CLK_7818<=1'b0; state_7818<=6'd13; end 13: //clk up 7 begin CLK_7818<=1'b1; AD_reg[6]<=DATA_7818; state_7818<=6'd14; end 14: begin CLK_7818<=1'b0; state_7818<=6'd15; end 15: //clk up 8 begin CLK_7818<=1'b1; AD_reg[5]<=DATA_7818; state_7818<=6'd16; end 16: begin CLK_7818<=1'b0; state_7818<=6'd17; end 17: //clk up 9 begin CLK_7818<=1'b1; AD_reg[4]<=DATA_7818; state_7818<=6'd18; end 18: begin CLK_7818<=1'b0; state_7818<=6'd19; end 19: //clk up 10 begin CLK_7818<=1'b1; AD_reg[3]<=DATA_7818; state_7818<=6'd20; end 20: begin CLK_7818<=1'b0; state_7818<=6'd21; end 21: //clk up 11 begin CLK_7818<=1'b1; AD_reg[2]<=DATA_7818; state_7818<=6'd22; end 22: begin CLK_7818<=1'b0; state_7818<=6'd23; end 23: //clk up 12 begin CLK_7818<=1'b1; AD_reg[1]<=DATA_7818; state_7818<=6'd24; end 24: begin CLK_7818<=1'b0; state_7818<=6'd25; end 25: //clk up 13 begin CLK_7818<=1'b1; AD_reg[0]<=DATA_7818; state_7818<=6'd26; end 26: begin CLK_7818<=1'b0; state_7818<=6'd27; end 27: //clk up 14 begin CLK_7818<=1'b1; state_7818<=6'd28; end 28: begin CLK_7818<=1'b0; state_7818<=6'd29; end 29: //clk up 15 begin CLK_7818<=1'b1; AD_result<=AD_reg; //将采集的12位数据打入出输出 state_7818<=6'd30; end 30: begin CLK_7818<=1'b0; state_7818<=6'd31; end 31: //clk up 16 begin CLK_7818<=1'b1; CONV_7818<=1'b0; state_7818<=6'd0; end default: begin end endcase end end endmodule
收藏0 举报
您需要 登录 才可以下载或查看,没有账号?注册
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
等级类勋章
发帖类勋章
时间类勋章
人才类勋章
2841
19330
110
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号