萬用電路板

----纯属爱好,谁与共鸣

« 基于PCM2702E的USB声卡设计方案51串口实验:数码管显示电脑键盘按键ASCII值 »

简洁的RS232串口通信电路与串口通信测试程序

        RS232串口通信电路往往是采用专用的串口传输芯片MAX232(5V)或MAX3232(3.3V),芯片起到驱动、匹配、隔离、保护等作用,这种电路常用于实际系统中的远距离串口通信。多数爱好者搭建串口通信电路只是用于学单片机,其实没有必要用上述专用的驱动芯片,向大家推荐一种用两只三极管组成的串口通信电路(如图),经本人测试,稳定性丝毫不减,对于大家来学习单片机足矣。

我也是第一次做AT89S52的串口通信实验,分享这个测试程序:

 /**************************************************************
程序名称:51串口通信测试、演示程序,晶振11.0592M
程序功能:单片机依次发送0~F这16个数至上位机,通过串口调试软件
    进行hex观察
编    写:JiangX.net
时间地点:09/03/21晚于寝室
**************************************************************/
#include <AT89X52.h>
#define uchar unsigned char
#define uint unsigned int
uchar dis[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

/*****n(ms)延时子程序*****/
void delayms(uint ms)  //延时ms 
{      
 uchar i;
 while(ms--)
 {
  for(i=0;i<120;i++);
 }
}

/*****主程序*****/
void main()
{
 int i; 
 TMOD=0x20;    //定时器1工作于8位自动重载模式, 用于产生波特率
 TH1=0xFD;    //波特率9600
 TL1=0xFD;
 SCON=0x50;    //设定串行口工作方式   
 TR1=1;     //启动定时器1
 while(1)
 {
  for(i=0;i<16;i++)
  {
   SBUF=dis[i];
   while(!TI);  //等特数据传送
   TI=0;   //清除数据传送标志
   delayms(500);
  }
 }
}

/*****END*****/

程序功能是依次向上位机发送0~F这16个数,用串口调试助手观察,需要勾选“HEX显示”选项,如图:

(此串口调试工具下载地址:http://www.jiangx.net/post/278.html

本站原创如转载,请注明:转载自萬用電路板 [ http://www.jiangx.net/ ]

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

赞助商广告

最近发表

热文排行

最新评论及回复

广告

图标汇集

Powered By Z-Blog 1.8 Walle Build 100427

Copyright 2008-2011 JiangX.com 萬用電路板 All Rights Reserved.
鄂ICP备08003060号 [login]