这几天有了点时间,从淘宝上买的mcp41010芯片收到了,焊到我原来的测试板上,工作一切正常!这次买的是直插的。靠,原来我的程序从来就没问题。我又把以前写的2个版本程序试了一下,也全好用。看来还是先买的芯片有问题。我前几天到曾怀疑芯片有问题,特意到柜台询问过,就是中发2楼卖PIC单片机的那个柜台。我问她,您这里卖的mcp41010芯片最近有没有客户反映有问题,回答:没有客户说有问题。我又问,您这里有直插的吗? 回答:没有。我也没有什么证据说他的芯片有问题,就回来了。现在看来,先买的3个贴片mcp41010或者是坏的,或者与直插的有太大差别,以至于按标准资料编写的程序完全不能工作。这事叫我碰上了,耽误了好多时间,真是不走运。把我的程序贴出来,(只通讯部分,51汇编写的)以后有谁用到这个芯片,直接调用就行,保证好用。如果不能用就是芯片的问题。
mov 42h,#150 ;准备写入电位器的数据
acall spimio ;写入电位器芯片
;-------电位器芯片SPI读写-----------------
;-------电位器芯片SPI读写-----------------
spimio: clr sclk
mov 41h,#11h ;向电位器0写入 42h的数据
mov r2,#16 ;16位数据
stario: clr pss
mov r6,#4
djnz r6,$
stark1: clr sclk
nop
nop
nop
lcall morl2b ; output
mov pmi,c
nop
nop
setb sclk
nop
djnz r2,stark1
clr sclk
nop
nop
nop
setb pss
zcxfh: ret
;---------------------------------
;发送缓冲区2Byte的高位移至C
morl2b: clr c ;
mov a,42h ;41h/42h
rlc a ; H / L
mov 42h,a
mov a,41h
rlc a
mov 41h,a
ret |