我用tl16c554扩展串口,想先向串口a发送数据,但是接受不到发出的数据,示波器也没有量到任何信号,请大家帮忙看看错在哪里。<br />#include<reg51.h><br />sbit P1_0=P1^0;<br />#define uchar unsigned char<br />#define address_a 0x8000<br />#define address_b 0x8010<br /><br />void delay()<br />{ <br /> <br /> unsigned int i,j;<br /> for(i=0;i<100;i++)<br /> for(j=0;j<1000;j++);<br />}<br /><br />void tl16c554_inita()//串口a的初始化<br />{<br /> uchar *p;<br /> p=(uchar *)address_a;<br /> *(p+3)=0x80;//置除数访问锁存器标志DLAB=1,访问波特率因子寄存器<br /> *p=0x03;//设置波特率为9600bps<br /> *(p+1)=0x00;<br /> *(p+3)=0x1b;//无奇偶校验,停止位1,8位数据<br /> *(p+2)=0x01;//使能FIFO,置接收触发字节数01<br />} <br /><br /><br />//tl16c554的发送,从csa口发送<br />void tl16c554_send(uchar ch)<br />{<br /> uchar *p1;<br /> p1=(uchar *)address_a;<br /> *p1=ch;<br /> return;<br />}<br /><br />void main()<br />{<br /> uchar ch='a';<br /> tl16c554_inita();<br /> while(1)<br /> { <br /> tl16c554_send(ch);<br /> P1_0=0;//检测程序运行,令灯一亮一灭<br /> delay();<br /> P1_0=1;<br /> delay();<br /> } <br /> <br />}<br />指示灯的工作完好,程序运行时灯一亮一熄 |
|