串行通信口接收与发送程序

发布者:Aq123456258最新更新时间:2014-11-06 来源: 21ic关键字:程序  发送接收  串行通信口 手机看文章 扫描二维码
随时随地手机看文章
    主程序中相应的位置打开串行中断(指令为SETB  ES),设置好波特率,启动相应的定时器(因为波特率是由定时器产生的),串行中断即做好了接收数据的准备,下面是接收子程序:
 
串行中断接收子程序
      串行发送数据程序

    因为C51的硬件资源功能非常强大,程序编写则变得简单,我们常用单片机与上位机进行通信,例如向上位机(电脑)发送一个6个字节的握手协议(数据),数据的首地址在30H,程序如下:
 
串行口发送数据子程序
    主程序中相应的位置打开串行中断(指令为SETB  ES),设置好波特率,启动相应的定时器(因为波特率是由定时器产生的),串行中断即做好了接收数据的准备,下面是接收子程序:
 
串行中断接收子程序
      串行发送数据程序

    因为C51的硬件资源功能非常强大,程序编写则变得简单,我们常用单片机与上位机进行通信,例如向上位机(电脑)发送一个6个字节的握手协议(数据),数据的首地址在30H,程序如下:
 
串行口发送数据子程序

    80C51的串行通信口是一个功能强大的通信口,而且是相当好用的通信口,程序编写也很简单,下面我们分别谈论:

    串行中断接收程序

    主程序中相应的位置打开串行中断(指令为SETB  ES),设置好波特率,启动相应的定时器(因为波特率是由定时器产生的),串行中断即做好了接收数据的准备,下面是接收子程序:

串行中断接收子程序

 
    串行发送数据程序

    因为C51的硬件资源功能非常强大,程序编写则变得简单,我们常用单片机与上位机进行通信,例如向上位机(电脑)发送一个6个字节的握手协议(数据),数据的首地址在30H,程序如下:

串行口发送数据子程序

关键字:程序  发送接收  串行通信口 引用地址:串行通信口接收与发送程序

上一篇:超声波回波衰溅理论浓度计设计
下一篇:基于单片机的程控交换机多机通信设计

推荐阅读最新更新时间:2024-03-16 13:45

【菜鸟入门】stm32的第一个程序--LED
经过今天一天的努力终于完成了我的stm32第一个程序;我也是今天才开始接触stm32。 由于苦于没有资料,木有例程,找到的例程都是带有库的,这样对stm32基础的管脚配置就不容易懂了,主要是没有一个具体的轮廓。 经过对库文件的研究,和看了好几节视频,又根据自己以前搞430和arm9的经验,就按着以前的思路进行研究,终于开发出自己的第一个LED程序; 1、创建工程 (1)Project -- New uvision Project (2)选择工程要保存的地方 (3)选择CPU (4)选择“是”(如果你使用从STM下载的库的话,就选“否”) (5)修改一下代码(如果不注视掉红色部分,会出现错误)
[单片机]
单片机实验板2011_V1.1-DAC0832测试程序
/************单片机教学实验板 ******************/ /*功能描述*/ /*DAC0832测试程序*/ #include reg52.h #define uchar unsigned char #define uint unsigned int #define ulong unsigned long sbit speaker=P1^3; //蜂鸣器 sbit W_R=P3^6; // sbit A8=P2^0; // void Key_Beep(void); void Delay_Beep(unsigned int count); void init_rs232(void); /* 串口
[单片机]
单片机实验板2011_V1.1-DAC0832测试<font color='red'>程序</font>
超声波测距单片机C程序
单片机源程序如下: #include reg52.h //STC89C52头文件 #define uchar unsigned char #define uint unsigned int unsigned int time=0; unsigned int timer=0; unsigned long S=0; //距离变量 bit flag =0; //超声波模块量程溢出标志( 5米时置1) sbit echo=P1^0; //超声波模块的发射端 sbit trig=P1^1; //超声波模块的接收端 sbit ds=P2^2; //DS18B2
[单片机]
超声波测距单片机C<font color='red'>程序</font>
单片机+RC522模块测试程序
主要参考这个网址: http://www.51hei.com/bbs/dpj-93114-1.html 他的程序帮了很大的忙,在他寻卡的基础上完成了注册,判断函数,并做出了一定的修改 为了方便演示,做了一个简短的视频方便示意,等过了审核发上来 下面是主程序代码,库函数和上面网址的一样 /* 测试成功 但是这里的串口中断实在是不会调了 把串口中断部分直接修改在函数中,即CALL_isr_UART();这一段被我隐藏了,串口中断函数interrupt4直接删除 可以实现卡片的寻卡,识别,注册功能,注销功能暂未设置 */ #include reg52.h #include main.h #include mfrc522.
[单片机]
51单片机驱动1602LCD液晶的程序
/********************************************************************* 文件名称:lcd1602.c 文件功能:lcd1602液晶驱动 *********************************************************************/ #include lcd1602.h /********************************************************************* 功能:读取LCD状态 参数:无 返回:0 -- 空闲,可以进行读写操作 1 -- 忙 ********
[单片机]
LCD1602的滚动显示程序
**************************************LCD1602头文件*********************************/ #ifndef _LCD1602_H_ #define _LCD1602_H_ //输入方式设置 #define LCD_AC_AUTO_INCREMENT 0x06 //数据读、写操作后,AC自动增一 #define LCD_AC_AUTO_DECREASE 0x04 //数据读、写操作后,AC自动减一 #define LCD_MOVE_ENABLE 0x05 //数据读、写操作,画面平移 #define LCD_MOVE_DISENABL
[单片机]
28BYJ-48 步进电机控制程序基础
解决了精度问题,让我们再次回到我们的电机控制程序上吧。上面给出的两个例程都不是实用的程序,为什么?因为程序中存在大段的延时,而在延时的时候是什么其它的事都干不了的,想想第二个程序,整整200秒什么别的事都干不了,这在实际的控制系统中是绝对不允许的。那么怎么改造一下呢?当然还是用定时中断来完成了,既然每个节拍持续时间是 2 ms,那我们直接用定时器定时 2 ms 来刷新节拍就行了。改造后的程序如下: #include reg52.h unsigned long beats = 0; //电机转动节拍总数 void StartMotor(unsigned long angle); void main(){ EA = 1; //使能
[单片机]
使用单片机设计抢答器的资料和程序概述
在知识比赛中, 特别是做抢答题目的时候, 在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。 ! 系统工作原理本系统采用8051单片机作为核心。控制系统的四个模块分别为:存储模块、显示模块、语音模块、抢答开关模块。该抢答器系统通过开关电路四个按键输入抢答信号;利用语音芯片ISD1420 完成语音的录放功能; 利用存储程序; 利用一个数码管来完成显示功能。工作时,用按键通过开关电路输入各路的抢答信号
[单片机]
使用单片机设计抢答器的资料和<font color='red'>程序</font>概述
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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