导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[guest][原创]89c52串口通讯问题!!!!急



No.50525
作者:guest
邮件:guest@guest.com
ID:6
登陆:16560次
文章数:7648篇
最后登陆IP:219.68.9.43
最后登陆:2005/5/20 1:37:44
注册:2003/3/10 16:21:00
财富:35062
发帖时间:2004/3/14 11:55:46
发贴者IP:218.91.234.162
标题:guest:[原创]89c52串口通讯问题!!!!急急急
摘要:No.50525[原创]89c52串口通讯问题!!!!急急急 有如下一段程序烧入89C52指示灯可以按要求工作,但有问题如下:
串口线用2、3、5 两边已(2、3)跳线。
测试1:(正常)
1、运行程序
2、将RXD、TXD短接可以点亮P1.0,证明串口工作正常

测试2:(正常)
1、修改程序main函数中不发送"Hooo" 运行程序
2、将RXD、TXD短接不可以点亮P1.0,同样证明串口工作正常

测试3:(为何不正常)
1、运行程序
2、//测试3时使用该行:send_string_com(inbuf1,INBUF_LEN);具体见main函数
用串口调试助手V2.1发送字符接收也正常,如发送 90 90 90 90 能接收 90 90 90 90 
3、//测试3时(不)使用该行:send_string_com(inbuf1,INBUF_LEN);具体见main函数
为何用串口调试助手V2.1发送字符接收也正常,如发送 90 90 90 90 能接收 90 90 90 90 显然不正确
因为在main 函数中已不再转发接收到的字符,为何还能接收到呢??????????

请高手们多多指点!!!!在此先谢啦!!!

#include   <REG52.H>  
#include   <STDIO.H>  

#define INBUF_LEN 4
#define on   0
#define off  1

#define LED00  P0_0

#define LED0  P1_0
#define LED1  P1_1
#define LED3  P1_3
#define LED7  P1_7

sbit P0_0=P0^0;

sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_3=P1^3;
sbit P1_7=P1^7;
short int z;

unsigned char inbuf1[INBUF_LEN];
unsigned char checksum,count3;
bit           read_flag=0;

void delay(short int timeEx);
void send_char_com(unsigned char ch);
void send_string_com(unsigned char *str,unsigned int strlen);

/*---------------------------------------------------------------------*/
/*                       程序主函数(main)                              */
/*---------------------------------------------------------------------*/
void main(){
#ifndef MONITOR51
/*-----------------------------------------------------------------------
中断优先级 (List) :
-----------------------------------------------------------------------*/
IE=0x91;
IP=0x00;
IT0=0;         /*低电平触发*/
SM0=0,SM1=1;   /*串行口运行方式(1)*/
SCON=0x50;     /*方式(1) 8位数据位  波特 可变*/
PCON=0x00;     /*电源控制器:单倍波特率;非降低功消耗;非芯片闲置;*/
/*-----------------------------------------------------------------------
计时器0 方式(2) 8位自动载入计时/计数器;
计时器1 方式(2) 8位自动载入计时/计数器;
-----------------------------------------------------------------------*/
TMOD|=0x22;
TH1=252;       /*晶振频率12(MHZ);波特率9600bps*/
TR1=1;         /*定时器(1)已启动*/
//TI=1;          /*发送中断标志*/

#endif

/*------TOADD:以下空白请输入控制代码------*/
z=55;
while(1){
send_string ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:16毫秒 最大:7276毫秒 查询6次