打印

tl16c554的问题

[复制链接]
2220|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
njnuzhoubo|  楼主 | 2007-4-10 21:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用tl16c554扩展串口,想先向串口a发送数据,但是接受不到发出的数据,示波器也没有量到任何信号,请大家帮忙看看错在哪里。
#include<reg51.h>
sbit P1_0=P1^0;
#define uchar unsigned char
#define address_a 0x8000
#define address_b 0x8010

void delay()
{    
    
    unsigned int i,j;
    for(i=0;i<100;i++)
            for(j=0;j<1000;j++);
}

void tl16c554_inita()//串口a的初始化
{
    uchar *p;
    p=(uchar *)address_a;
    *(p+3)=0x80;//置除数访问锁存器标志DLAB=1,访问波特率因子寄存器
    *p=0x03;//设置波特率为9600bps
    *(p+1)=0x00;
    *(p+3)=0x1b;//无奇偶校验,停止位1,8位数据
    *(p+2)=0x01;//使能FIFO,置接收触发字节数01



//tl16c554的发送,从csa口发送
void tl16c554_send(uchar ch)
{
    uchar *p1;
    p1=(uchar *)address_a;
    *p1=ch;
    return;
}

void main()
{
    uchar ch='a';
    tl16c554_inita();
    while(1)
    {        
        tl16c554_send(ch);
                 P1_0=0;//检测程序运行,令灯一亮一灭
        delay();
        P1_0=1;
        delay();
    }                    
    
}
指示灯的工作完好,程序运行时灯一亮一熄

相关帖子

沙发
njnuzhoubo|  楼主 | 2007-4-12 10:08 | 只看该作者

为什么没有人回答

使用特权

评论回复
板凳
hq_y| | 2007-4-12 14:37 | 只看该作者

看看hotpower的博客上有没有现成的代码可以参考

使用特权

评论回复
地板
happystar| | 2007-4-13 18:53 | 只看该作者

帮你顶一下

我现在打算也用这个扩4个口,现在什么也不懂呢。请教你,你有联系方式么?谢谢拉!

使用特权

评论回复
5
dreambird| | 2007-4-14 00:09 | 只看该作者

re

为什么不用状态寄存器?你的delay()有没有被优化掉?

使用特权

评论回复
6
njnuzhoubo|  楼主 | 2007-4-16 09:59 | 只看该作者

晕啊

问题解决了,能收能发,就是发送出来的都是乱码,郁闷

使用特权

评论回复
7
dreambird| | 2007-4-19 22:50 | 只看该作者

re

波特率有问题?

使用特权

评论回复
8
zrfeng| | 2007-11-12 11:52 | 只看该作者

请问问题是怎么解决的?

我现在用这个芯片,也是什么波形都没有,很怀疑是否连接上有问题。
你怎么解决不出数的问题的。

使用特权

评论回复
9
chen2qiao| | 2009-4-3 15:51 | 只看该作者

请问楼主是怎么解决的呢??

请问楼主是怎么解决的呢??

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

12

帖子

0

粉丝