我现在在使用LPC932A1的SPI功能,现在想把SPI功能用在ZLG7289芯片,可是我写了一个用SPI写了一个ZLG7289的测试程序,把程序烧到LPC932A1实验板(周立功公司买的)数码管没有闪烁,如果正确的话应该数码管会闪烁,我用模拟的SPI就正常了,不知道是不是我的程序有错误:程序如下:<br />#include<reg935.h><br />#define uint unsigned int<br />#define uchar unsigned char<br />//uchar code led2[16]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00};<br />sbit CS=P2^0;<br />sbit CLK=P2^5; <br />sbit DAT=P2^2;<br />uchar SENDDATA,SENDDATA1;<br />//uchar n;<br />sbit LED=P2^6;<br /><br />/****************************************************************************<br />* 名称:Delay50uS<br />* 功能:50uS软件延时<br />* 说明:用户根据自已的系统相应更改<br />****************************************************************************/<br />void Delay50uS(void)<br />{ uchar i;<br /> for(i=0; i<25; i++);<br />}<br /><br />//=======================================================<br />/* 函数名:void delay()<br /> 作用:延时函数 */<br />//=======================================================<br /> void delay()<br /> {<br /> uchar i;<br /> uint j;<br /> for(i=0;i<250;i++)<br /> {<br /> for(j=0;j<1000;j++)<br /> {;}<br /> }<br /> }<br /><br />//=======================================================<br />/* 函数名:void init_wdt()<br /> 作用:SPI初始化 */<br />//=======================================================<br /> void init(void)<br /> {<br /> P2M1=0XC0;<br /> P2M2=0XC0;<br /> SPCTL=0xdf;<br /> SPSTAT=0XC0;<br /> }<br />//=======================================================<br />/* 函数名:void MSEND_DAT(void)<br /> 作用:SPI发送程序 */<br />//=======================================================<br /> void MSEND_DAT(void)<br /> {<br /> SPSTAT=0XC0;<br /> SPDAT=SENDDATA;<br /> while((SPSTAT&0X80)==0);<br /> //SENDDATA=SPDAT;<br /> }<br /><br />//=======================================================<br />/* 函数名:void main(void)<br /> 作用:主函数 */<br />//=======================================================<br /> void main(void)<br /> {<br /> init();<br /> <br /> SENDDATA=0xBF;<br /><br /> CS=0;<br /> Delay50uS();<br /> MSEND_DAT();<br /> <br /> CS=1;<br /> delay();<br /> while(1)<br /> {<br /> LED=0;<br /> <br /> <br /> }<br /> } <br /> <br /><br /> <br /><br /> <br /><br /> |
|