搜索
bottom↓
回复: 4

请教UART6的问题。【恢复】

[复制链接]

出0入0汤圆

发表于 2008-10-3 11:42:04 | 显示全部楼层 |阅读模式
我写了一段程序,想让单片机与主机进行通信,单片机型号是NEC78F0822,将单片机的TXD6脚和RXD6脚通过电阻串成一根线,然后用MAX232、RS232和主机相连,不知道这段程序什么地方出现了问题,望高手指点。

#pragma sfr

#pragma di

#pragma ei

#pragma nop

#define uint unsigned int

#define uchar unsigned char

#define RXD6 P1.2

#define TXD6 P1.3

uchar rdata,rdata1,rdata2;

void delay(uint Z)

{

        uint x,y;

        for(x=Z;x>0;x--)

                for(y=200;y>0;y--);

}

void init_CPU(void)    

{

        DI();

        PCC=0;

        RCM=0x01;

        MOC=0;

        WDTM = 0x7f;

        MCM=0x03;



}        

void init_UART()

{

        PM1.2=1;

        PM1.3=0;

        CKSR6=0x02;

        BRGC6=104;

        ISC=0x0f;

        ASICL6.1=1;

        ASICL6.0=0;

        SRIF6=0;

        SRMK6=0;

        STIF6=0;

        STMK6=0;

                

}

void UART_send(uchar data)

{

        ASIM6=0xC4;

        TXB6=data;

        while(!STIF6);

        STIF6=0;

        NOP();

}

uchar UART_read(void)

{

        ASIM6=0xA4;

        while(!SRIF6);

        rdata=RXB6;

        SRIF6=0;

        return(rdata);

        NOP();

}        

void main()

{

        init_CPU;

        init_UART;

        rdata1=UART_read();//读取电脑发过来的数据

        delay(200);

        rdata2=rdata1+1;  //将数据加1后发出

        delay(200);

        UART_send(rdata2);

        delay(200);        

        UART_send(rdata2);

        delay(200);                

        UART_send(rdata2);

        delay(200);                

        UART_send(rdata2);

        delay(200);                

        UART_send(rdata2);

        delay(200);                

                

}

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2008-12-15 20:37:58 | 显示全部楼层
你好像没开中断,不用开啊?!

出0入0汤圆

 楼主| 发表于 2008-10-4 14:30:18 | 显示全部楼层
是的,就是通过电阻后连在一起,我就是按照设置步骤过来的,但就是通不过啊

出0入0汤圆

发表于 2008-10-4 14:24:55 | 显示全部楼层
“将单片机的TXD6脚和RXD6脚通过电阻串成一根线”你这句话怎么理解呢?是将TXD6和RXD6两个线连载一起吗?

对于NEC串口不能正常通信的问题,基本出在设置串口波特率上。你可以看看数据手册,上面有设置步骤。



TO tarzar M48

NEC的单片机有些串口名叫做“UART 6”,并不意味着他是第6个串口,一个命名而已

出0入4汤圆

发表于 2008-10-3 15:43:12 | 显示全部楼层
NEC78F0822



啊,有6个串口啊?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 00:47

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表