STC89和STC15W 指令时钟问题
本帖最后由 qiquanming18 于 2024-3-25 16:49 编辑sbit DIN = P2^2;
sbit SCLK = P2^3;
sbit CS = P2^5;
我在 驱动 TLV5618 芯片时,发现没有输出,对照 指令表后更改如下,不知道对不对,
void DA_conver(uint Dignum)
{
uint Dig = 0;
uchar i = 0;
SCLK =0;
nop12;
CS = 1;
nop12;
for(i=0;i<16;i++)
{
Dig=Dignum&0x8000;nop8;
if(Dig)
{DIN = 0;
}
else
{
DIN = 1;
}
nop12;
SCLK = 1;
nop12;
Dignum<<=1;
nop12;
SCLK=0;
nop12;
}
SCLK = 0;nop12;
CS = 0;nop12;
// delay2500us(); //延时2.5ms
}
以上程序中, SCLK =0; ST89是12个时钟, STC15W 是1个时钟。
以上程序中,
SCLK =0; ST89是12个时钟, STC15W 是1个时钟。
Dig=Dignum&0x8000;ST89是24个时钟, STC15W 是3个时钟。
Dignum<<=1; ST89是12个时钟, STC15W 是1个时钟。
是这样吗?
示波器观察你的时钟是否满足器件的要求。 还的看具体时钟频率是多少! 按照指令表 是这样的, 对应时钟固定值。
页:
[1]