max5483单独控制正确,和max5481合在一起控制也正确,但是当我把这些程序移到我的主程序中后只有max5481正确,而max5481 、max5483他们的控制程序是一样的,为什么max5481正确,max5483就不正确呢?<br />#include <reg52.h><br />#include <intrins.h><br />#include <absacc.h><br />#define uchar unsigned char<br />#define uint unsigned int<br />sbit MAX5481_CS18 = P1^5;<br />sbit MAX5481_CS5 = P1^4;<br />sbit MAX5481_SCLK = P1^6;<br />sbit MAX5481_DIN = P1^7;<br /><br />//max5481<br />void max5481write(uchar direct,uchar data1,uchar data2);<br />void max5483write(uchar direct,uchar data1,uchar data2);<br />void max5481copy(uchar direct);<br /><br />void main()<br />{<br /> <br /> while(1)<br /> {<br /> max5481write(0x00,0x56,0x00);<br /> max5483write(0x00,0x65,0xc0);<br /> }<br />}<br /><br /><br /><br /><br /><br />//max5483<br />void max5483write(uchar direct,uchar data1,uchar data2)<br />{<br /> uchar i;<br /> MAX5481_SCLK = 0;<br /> MAX5481_CS18=0;<br /> for (i=0;i<8;i++) //上升沿写入命令<br /> {<br /> MAX5481_SCLK =0;<br /> MAX5481_DIN = (bit)(direct&0x80);<br /> direct = direct<<1;<br /> MAX5481_SCLK =1;<br /> _nop_(); _nop_();<br /> <br /> <br /> }<br /> // _nop_(); _nop_();<br /> for (i=0;i<8;i++) //上升沿写入数据<br /> {<br /> MAX5481_SCLK =0;<br /> MAX5481_DIN = (bit)(data1&0x80);<br /> data1 = data1<<1; <br /> MAX5481_SCLK =1;<br /> _nop_(); _nop_(); <br /> <br /> //<br /> }<br /> //_nop_(); _nop_();<br /> for (i=0;i<8;i++) //上升沿写入数据<br /> {<br /> MAX5481_SCLK =0;<br /> MAX5481_DIN = (bit)(data2&0x80);<br /> data2 = data2<<1;<br /> MAX5481_SCLK =1; <br /> _nop_(); _nop_();<br /> <br /> <br /> // <br /> }<br /> MAX5481_CS18=1;<br />}<br />//max5481<br />void max5481write(uchar direct,uchar data1,uchar data2)<br />{<br /> uchar i;<br /> MAX5481_SCLK = 0;<br /> MAX5481_CS5=0;<br /> for (i=0;i<8;i++) //上升沿写入命令<br /> {<br /> MAX5481_SCLK =0;<br /> MAX5481_DIN = (bit)(direct&0x80);<br /> direct = direct<<1;<br /> <br /> MAX5481_SCLK =1; <br /> _nop_();<br /> }<br /> _nop_();<br /> for (i=0;i<8;i++) //上升沿写入数据<br /> {<br /> MAX5481_SCLK =0;<br /> MAX5481_DIN = (bit)(data1&0x80);<br /> data1 = data1<<1;<br /> <br /> MAX5481_SCLK =1;<br /> _nop_();<br /> }<br /> _nop_();<br /> for (i=0;i<8;i++) //上升沿写入数据<br /> {<br /> MAX5481_SCLK =0;<br /> MAX5481_DIN = (bit)(data2&0x80);<br /> data2 = data2<<1;<br /> MAX5481_SCLK =1;<br /> _nop_();<br /> }<br /> MAX5481_CS5=1;<br />}<br /> |
|