reg [26:0] m
always @(posedge clk) m<=m+27'b1
assign clkout = T ? m[26] : m[24]
// assign clkout1 = T ? m[24] : m[26]
assign clktmp = m[19]
reg D0, D1
always @(posedge CLKTMP) begin
D1 <= D0
D0 <= ~KEY
end
assign kin = D0 &~ D1
reg T, q
always @(negedge kin) T <= ~T
always @(posedge clk) q <= ~q
assign clk1 = q
assign oe = 0
assign dout = din
endmodule
建议你不要大小写混用,代码里面全部用小写,只有宏或者parameter采用大写。
以下是TLC5615的C控制程序。有了这程序,直接调用就行了。
后面的很容易了,交给你自己完成吧……
///////////////////////////////////////////////////////////
// Name : TLC5615控制
// In :
// Out :
// Function :
// Explain :
// TLC5615 是10位的精度,送数时要送12位
// 高10位为真正的数据位,最低两位无用,
// 可送1或者0。
// 并且将TLC549的8位数据放在TLC5615的10位
// 数据的低8位,让高2位为0。
// 向TLC5615送数时,要连续发12个时钟周期
/**************************************/
void TLC5615_ctl(uchar x)
{
uchar j
uint i=0
i=(uint)x
i=i<<6// 向左移6位,满足12位要求
TLC5615_CS=0 // 拉低片选,准备送数
for(j=0j<12j++) // 送12次,先送高位,再到低位
{
TLC5615_SCLK=0// 由于 TLC5615 是在上升沿将数据打入移位寄存器,因此在 sclk 低电平时将数
// 据放在 TLC5615 数据线上,以便其在时钟上升沿来时正确取数
if((i&0x8000)!=0x0000)
TLC5615_DIN=1// 当高位为1时,输出1,否则输出0
else
TLC5615_DIN=0
TLC5615_SCLK=1 // 拉高时钟线,以便TLC5615读入数据
i=i<<1 // 将数据往左移一位,以便在下一个时钟输出给TLC5615
}
TLC5615_SCLK=0 // 空闲时拉低SCLK
TLC5615_CS=1 // 空闲时拉搞CS
}
没用过,但是可以给你提一些意见,TLC5510是用于超高速ADC来使用的,速度可达10M,但是我们绝大多数情况下是用不着这么高的速度的,所以你首先看下自己的需求,如果一定要用,你看看这个网页,或许会有所帮助!欢迎分享,转载请注明来源:内存溢出
评论列表(0条)