当前位置:首页 > 技术学院 > 热搜器件
[导读]AT89S52串口程序

/***************************************
*函数:main.c
*描述:
*      串口通讯协议标准测试:发送01234567
*时间:
*编写:
*版本:V1.0
****************************************/


#include <reg52.h>
#include <intrins.h>
#include <stdio.h>


#define uchar unsigned char
#define uint unsigned int


#define FSOC 11059200L    //晶振
#define BAUD  9600        //波特率
uchar RevBuf;    //保存串口接收到的数据,数据缓冲区
void SerialInit(void)   //串口初始化
{
    EA = 0;
    SCON = 0x50;   //SCON0:mode0,8-Bit,UART,Enable RXD
    PCON |= 0x80;   //SMOD00 =1;
    TMOD = 0x20 ;   //TMOD:timer1,mode2,8-bit relaod
    TH1 = -(FSOC/BAUD/12/16);   //set Timer1 reload value for baudrate
    TL1 = -(FSOC/BAUD/12/16);   //set Timer1 reload value for baudrate
    TR1 =1;//start Timer1
    //ES = 1;  //enable UART0 interupt
    EA = 1;

 
}


/*
//Reeive Char "串口中断方式接受数据"
//功能:接收到数据之后再发回去
void UART_INTR_SVC(void)interrupt 4 using 3
{
    if(RI==1)
        {
            RI =0;
            RevBuf =SBUF;
            SBUF = RevBuf;
       
        }
    else
        {
            TI = 0;
        }


}
*/


void main(void)
{


    uchar m,n;       //定义循环变量
SerialInit();  //初始化串口
//send('a');
    for(m=0;m<10;m++)
        {
            SBUF = m+0x30;
            while(TI!=1);
            TI=0;
        }    //向电脑发送数据0123456789
   
    SBUF = 0x0A;   //换行符号的ASCII码
    while(TI!=1);
    TI=0;


    for(n=0;n<10;n++)
        {
            SBUF = 0x40;   //@的ASCII码
            while(TI!=1);
            TI=0;
        }
        
    SBUF = 0x0A;
    while(TI!=1);
    TI=0;


    for(;;)
        {
            while(RI!=1);
            RI=0;
            RevBuf = SBUF;   //查询方法接收数据


            SBUF = RevBuf;   //原数据发回
            while(TI!=1);
            TI=0;
        }
}
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

导读:学单片机的大概最先、最常写的通信程序应该就是串口程序了,但是如何写出一个健壮且高效的串口接收程序呢?

关键字: 串口接收程序 通信程序 串口程序

AT89S52并口驱动LCD12864(ST7920芯片组)

关键字: at89s52 lcd12864 st7920 并口驱动

现在,人们对工作和生活环境不仅要求舒适健康、可靠便利, 而且更加看重安全性,并利用安防系统来提高家庭抵御各种意外情况的能力。现在的安防系统可借助计算机技术、IC 卡技术、通信技术等来实现,CAN总线应用于安防系统对家居智...

关键字: at89s52 can总线 家居安防系统

为了确保太阳能发电系统能够正常的工作,需要对太阳能发电系统的各项环境参数进行测量,从而有效地控制其运行。本文介绍了一种基于单片机的太阳能参数测试仪,提供了3种参数的测量功能和通信接口,以及2种供电方式,既可作为手持设备使...

关键字: at89s52 单片机 太阳能 环境参数测试仪

超声波是一种频率在20KHz 以上的机械波,在空气中的传播速度约为340 m/s(20°C时)。超声波可由超声波传感器产生,常用的超声波传感器两大类:一类是采用电气方式产生超声波,一类是用机械方式产生超声波,目前较为常用...

关键字: at89s52 单片机 超声波测距

温度、湿度是工农业生产的主要环境参数.对其进行适时准确的测量具有重要意义。利用单片机对温、湿度控制。具有控温、湿精度高、功能强、体积小、价格低,简单灵活等优点,很好的满足了工艺要求。本文介绍了利用AT89S52单片机进行...

关键字: at89s52 检测系统 温湿度

AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K 系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在...

关键字: at89c52 at89s52 CPU

LED点阵显示屏是通过PC机将要显示的汉字字模提取出来,并发送给单片机,然后显示在点阵屏上,主要适用于室内外汉字显示。

关键字: at89s52 LED 单片机 点阵显示屏

SMOD:该位与串口通信有关。SMOD=0; 串口方式1,2,3时,波特率正常。SMOD=1; 串口方式1,2,3时,波特率加倍。GF1,GF0:两个通用工作标志位,用户可以自由使用。PD:掉电模式设定位。PD=0 单片...

关键字: at89s52 单片机 掉电测试
关闭
关闭