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 ......
>>返回讨论的主题
|