51串口 单片机上接收数据程序

发布者:程序界的行者最新更新时间:2016-09-28 来源: eefocus关键字:51串口  单片机  接收数据 手机看文章 扫描二维码
随时随地手机看文章
#include  

#include

#define uchar unsigned char
#define uint unsigned int
        
//sbit BEEP = P1; // P1接8个LED
unsigned char Receive(void)
{
 unsigned char dat;
 while(RI==0) //只要接收中断标志位RI没有被置“1” 当接收完毕时,中断标志RI被置1
 ; //等待,直至接收完毕(RI=1)
 RI=0; //为了接收下一帧数据,需将RI清0
 dat=SBUF; //将接收缓冲器中的数据存于dat
 return dat;

void main (void) 
{
  int i =0;
  SCON = 0x50;       //REN=1允许串行接受状态,串口工作模式2         
 TMOD|= 0x20;      //定时器1工作方式2                       
  // PCON|= 0x80;      //波特率提高一倍                                                    
 //TH1  = 0xFD;     //baud*2  /* reload value 19200、数据位8、停止位1。效验位无(11.0592)     
 TH1 = 0xFD;     // //baud  /*  波特率9600、数据位8、停止位1。效验位无 (11.0592M)
  TL1 = 0xFD; 
 TR1  = 1;        //开启定时器1                                                      
// ES   = 1;        //开串口中断      是否开串口中断和开总中断不影响。           
// EA   = 1;        // 开总中断   
 // IE = 0x0;
 REN=1; //允许接收
 while(1)
 {
  P1=Receive(); //将接收到的数据送P2口显示  
 }  

}

 

c51串口接收并发送数据程序
2007年11月02日 下午 10:00


#include
#define    BUFFERLEGTH 10
//-----------------------------------------------------------------
void UART_init();                //串口初始化函数
void COM_send(void);             //串口发送函数
char str[20]="hello\r\n";

//-------------------------------------------------------------------
void main(void)
{
unsigned char i;
UART_init();        //初始化串口
for(i = 0;i < 10 ;i++)
{
   COM_send();        //首先发送一次数据作为测试用

};

while(1);
}


//-------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
// 函数名称: UART_init()串口初始化函数
// 函数功能: 在系统时钟为11.059MHZ时,设定串口波特率为9600bit/s
//             串口接收中断允许,发送中断禁止
//--------------------------------------------------------------------------------------------------
void UART_init()
{
                      //初始化串行口和波特率发生器
SCON =0x50;           //选择串口工作方式1,打开接收允许
TMOD =0x20;           //定时器1工作在方式2,定时器0工作在方式1
TH1 =0xfA;            //实现波特率9600(系统时钟11.0592MHZ)
PCON = 0x80;
TR1 =1;               //启动定时器T1
ET1 =0;
ES=1;                 //允许串行口中断
PS=1;                 //设计串行口中断优先级
EA =1;                //单片机中断允许
}
//------------------------------------------------------------
void COM_send(void)
{
    unsigned char point = 0;
    for(point=0;point< 20;point++)       //连续发送二十位数据                                      //把缓存区的数据都发送到串口
   {
    SBUF=str[point];
    while(!TI);
    TI=0;
    }
}
//--------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
// 函数名称: com_interrup()串口接收中断处理函数
// 函数功能: 接收包括起始位'S'在内的十位数据到数据缓冲区
//--------------------------------------------------------------------------------------------------
void com_interrupt(void) interrupt 4 using 3
{
   unsigned char RECEIVR_buffer;
   if(RI)                                 //处理接收中断
   {
      RI=0;                                 //清除中断标志位
      RECEIVR_buffer=SBUF;             //接收串口数据
     
      if (RECEIVR_buffer == 's')
      {
         SCON =0x40;     //接收不允许
         COM_send();     //发送数据
         SCON =0x50;     //接收允许
      }
    }


关键字:51串口  单片机  接收数据 引用地址:51串口 单片机上接收数据程序

上一篇:基于AT89C51SND1C单片机的MP3播放器设计
下一篇:51波特率计算公式

推荐阅读最新更新时间:2024-03-16 15:12

怎么样学好AVR单片机
首先介绍一下为什么要学习AVR单片机!!随着各IC厂商推出各种高性能的单片机,51单片机已经远远不能满足大家对高性能单片机的需求。ATMEL作为一个51系列单片机的大生产厂商,90年代中后期推出一款高性价比的RISC(精简指令集)单片机系列,就是当今很流行也很著名的AVR单片机,在各种高性能单片机的竞争中,脱颖而出,很受各界电子人士热爱。很多想学单片机的人都不敢学习AVR,觉得不好入门,其实不然,如果你使用C语言编程,入门都是一样的,而且当你学好后,不用像学习51的人,还要在学习一个高性能的单片机,这样很浪费时间。目前很多公司和学校已经开始转向AVR单片机了,相信在未来几年,AVR将会非常兴旺,所以学习AVR单片机将会很有前途。 先
[单片机]
基于MSP430单片机的微功耗中文人机界面设计
  在现代便携式智能仪器或手持设备中,中文人机界面成为一种事实上的行业标准。能显示汉字的图形点阵液晶和可输入数字的小键盘已成为智能设备必不可少的组成部分。同时作为便携式设备基本要求的低功耗特性也贯穿于中文人机界面的设计始终。   这种低功耗中文人机交互界面需要设计者在选取MCU和具体元器件上有特殊考虑。微功耗、小体积应作为选择相关器件的首要要求。   设计中,笔者采用MSP430F149单片机作为系统的MCU,通过选择合适的液晶显示模块在3V电平构建了一个低功耗的中文人机界面。此中文人机界面构成了微功耗数据采集系统的重要组成部分。 一、MSP430系列FLASH型单片机的微功耗特点   德州仪器公司(TI)推出的MSP43
[应用]
利用单片机实现的红外线遥控系统
引言 随着科学技术的不断发展,红外线遥控器因其具有体积小、功耗低、功能强、成本低等特点正在向各个领域渗透,在家用电器、安全保卫、工业控制以及人们日常生活中广泛应用,特别是在家用电器、安全保卫和人们日常生活中的应用就更广泛了。本文给出用软件方式实现红外遥控器译码的单片机程序,所有程序都经过实际单片机系统调试通过。对于硬件电路,发射由红外线遥控器完成,而接收部分则只需要在单片机系统中添加一个红外线接收管就可完成。 1 红外线遥控系统 红外线遥控系统就是指利用红外线来传递控制信号,实现对控制对象的远距离控制的目的;具体来讲,就是由发射器发出红外线指令信号,由接收器接收信号并对信号进行处理,最后实现对对象的各种功能的远距离控制。红外
[单片机]
利用<font color='red'>单片机</font>实现的红外线遥控系统
一文详解MCS-51单片机的中断系统
MCS-51中断系统:5个中断源(两个外部中断, 两个定时器, 一个串口),2个优先级 中断相关概念 中断:当CPU正在处理某件事情时,单片机外部或内部发生的某一紧急事件请求CPU立即去处理,于是,CPU暂时中止当前的工作,转去处理这个紧急事件,待处理完毕后,再回到原来被中止的地方,继续原来的工作。 中断过程 中断发生:CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理; 中断响应和中断服务:CPU暂时中断当前的工作,转去处理事件B(B的优先级要高于A); 中断返回:待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A ; 中断源(中断请求源):能够向CPU发出中断申请的部件。 中断系统结
[单片机]
一文详解MCS-<font color='red'>51</font><font color='red'>单片机</font>的中断系统
[keil][python][单片机] keil 集成bin文件生成 boot+app合并 dfu生成
一、 首先配置keil执行工具 .file_handling.bat @L !L $K 输出文件名根据自身定义 二、 编写bat脚本(此处需要根据工具存放路径进行更改 xBin2Dfu/merge_file) @echo off set bin=%1 set axf=%2 set keilpath=%3 echo current file:%bin%.bin echo current axf:%axf% echo current keilpath:%keilpath% :: 生成bin %keilpath%ARMARMCCbinfromelf.exe --bin --output=.outbin%bin%.b
[单片机]
[keil][python][<font color='red'>单片机</font>] keil 集成bin文件生成 boot+app合并 dfu生成
德州仪器推出具有 ARM® Cortex™-M3 微控制器的业界最高集成度 ZigBee® 单芯片解决方案满足智能能源基础设施、家庭楼宇自动化以及智能照明系统需
日前,德州仪器 (TI) 宣布推出 CC2538 片上系统 (SoC),简化支持 ZigBee® 无线连接功能的智能能源基础设施、家庭楼宇自动化以及智能照明网关开发。业界最高度集成度 ZigBee 解决方案 CC2538 在单个硅芯片上高度集成 ARM®Cortex™-M3 MCU、存储器以及硬件加速器,具有极高的成本效益。CC2538 支持 ZigBeePRO、ZigBee Smart Energy 及 ZigBee Home Automation 以及照明标准,能与现有及未来 ZigBee 产品实现互操作。此外,该 SoC 还支持采用 IEEE 802.15.4 及 6LoWPAN IPv6 网络的 IP 标准化开发,可实现最
[单片机]
单片机设计要注意的问题
单片机设计要注意以下几点:   1.不光单片机可以防范解密,偏冷门的相关元器件同样能够起到防范解密的作用。如将偏冷门的器件型号打磨等做法。   2.尽量不要选用MCS51系列单片机,因为该单片机在国内的普及程度最高,解密也最为广泛普及。国内宏晶STC第六代加密技术的单片机可考虑选择,这款单片机是一般的解密器不能解的。   3.如果条件许可,可采用两片不同型号单片机互为备份,相互验证,从而增加破解难度和代价。   4.在选定加密芯片前,要充分调研,了解单片机解密技术的新进展,包括哪些单片机是已经确认可以破解的。尽量不选用已可破解或同系列、同型号的芯片,或者解密代价非常大的芯片。 任何一款单片机芯片,从理论上讲,反向研究只要
[单片机]
以80C51单片机为例讲述单片机如何运行
前言 要想理解单片机是如何运行程序的,首先需要了解单片机的组成。本文以80C51单片机为例,给大家讲一讲程序在单片机中是如何运行的。 单片机的组成 8051单片机的内部硬件结构包括: 中央处理器CPU:它是单片机内部的核心部件,决定了单片机的主要功能特性,由运算器和控制器两大部分组成。 存储器:8051单片机在系统结构上采用了哈佛型,将程序和数据分别存放在两个存储器内,一个称为程序存储器,另一个为数据存储器在物理结构上分程序存储器和数据存储器,有四个物理上相互独立的存储空间,即片内ROM和片外ROM,片内RAM和片外RAM。 定时器/计数器(T/C):8051单片机内有两个16位的定时器/计数器,每个T/C既可以设置成计数方式
[单片机]
以80C<font color='red'>51</font><font color='red'>单片机</font>为例讲述<font color='red'>单片机</font>如何运行
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved