| 
 
| 我用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 />指示灯的工作完好,程序运行时灯一亮一熄 | 
 |