用51单片机实现串口通信

发布者:Tianran2021最新更新时间:2022-07-26 来源: csdn关键字:51单片机  串口通信  串口初始化 手机看文章 扫描二维码
随时随地手机看文章

#include

void ckInt()//串口初始化

{

TMOD=0x20;//定时计数器1,方式2

TH1=0xF3; //计算出来的初值

TL1=0xF3; //计算出来的初值

PCON=0X80;//波特率加倍

TR1=1;//启动定时计数器1

SCON=0x50;//串口工作方式1

ES=1;//打开串口中断

EA=1;//打开总中断

}

void main()//主函数

{

ckInt();//调用函数

while(1);

}

void ckzd()interrupt 4//中断函数,串口中断编号4

{

unsigned int DATA;

DATA=SBUF;//发送数据

RI=0;//软件清0

SBUF=DATA;//接受的数据返回给PC

while(!TI);//检测是否发送完成,发送完成TI硬件置1

TI=0;//软件清0

}

关键字:51单片机  串口通信  串口初始化 引用地址:用51单片机实现串口通信

上一篇:用51单片机实现按键控制LED灯亮灭
下一篇:用51单片机定时计数器控制LED1s闪烁一次

推荐阅读最新更新时间:2024-11-06 15:00

C51单片机编程规范
1单片机C51编程规范- 前言   为了提高源程序的质量和可维护性,从而最终提高软件产品生产力,特编写此规范。 2 单片机C51编程规范-范围   本标准规定了程序设计人员进行程序设计时必须遵循的规范。本规范主要针对C51编程语言和keil编译器而言,包括排版、注释、命名、变量使用、代码可测性、程序效率、质量保证等内容。 3 单片机C51编程规范-总则 l 格式清晰 l 注释简明扼要 l 命名规范易懂 l 函数模块化 l 程序易读易维护 l 功能准确实现 l 代码空间效率和时间效率高 l 适度的可扩展性 4 单片机C51编程规范-数据类型定义 编程时统一采用下述新类型名的方式定义数据类型。 建立一个datatype.h文件
[单片机]
51单片机课程设计:基于TCS230/3200的颜色复制显示器
本程序将从颜色识别模块读取到的数据显示在LCD1602上,同时生成对应的PWM波操作三色灯显示不同颜色,以此来实现颜色的复制显示,关于各模块的接线方法在源码都有详细介绍,同时,相关工程文件以及资料可在文章最下方下载。 关于粘贴复制乱码的问题:如果程序复制到Keil编译器上出现注释乱码,可以先建一个.c文件,也就是说不在keil里面编辑,然后用记事本打开.c文件,将源码复制进去,再在keil中添加文件即可。 /************************************************************************************** 基于TCS3
[单片机]
Atmega16的串口通信使用
//以下程序经验正可以用,MCU:M16,晶振:8M,直接用USB转串口线上的公头(针头), //第2针(RXD)接M16上的PD1口(15脚 TXD),第3针(TXD)接M16上的PD0口(14脚 RXD), //第5针接地,此时若板上有MAX232,则需把MAX232芯片去掉,这样才能正常工作 #include avr/io.h #include avr/interrupt.h #define uchar unsigned char #define uint unsigned int #define fosc 8000000//晶振频率 #define BAUD 9600 //波特率 void USART_send(ucha
[单片机]
C51单片机 定时器模拟单路输出PWM
前言 本博文基于STC89C52RC和Keil5 C51环境开发; 如有不足之处还请多多指教; 需要的东西 定时器0; 管脚P1.0; 代码如下: #include STC89C5xRC.H #define ENABLE 1 #define DISENABLE 0 typedef unsigned char uchar8; sbit P1_0 = P1^0; bit Flag = 0; /* 占空比的时间计算: 占空比 = 高电平时间 /(高电平时间+低电平时间); */ //高电平时间(初始值为:0x02EE,即十进制750) uchar8 Timer0_TH0_High_Level_Time = 0
[单片机]
51单片机学习:ADC模数转换实验--外部通道电压采集
实验名称:ADC模数转换实验--外部通道电压采集 接线说明: 实验现象:下载程序后,数码管上显示AD模块采集外部通道AIN3的电压值 注意事项: ***************************************************************************************/ #include public.h #include smg.h #include xpt2046.h /******************************************************************************* * 函 数 名 : main * 函数功能 :
[单片机]
51单片机中将变量、数组、函数设置在固定位置
一、不带初值的变量或数组 直接使用_at_ 关键字加上地址就行。 如: unsigned char idata myvar _at_ 0x40; unsigned char code myvar _at_ 0x40; _at_ 关键字的前后都有空格。 二、带初值的变量或数组 要将某变量定位在一绝对位置且要赋初值,此时用 _at_ 不能完成,要进行如下操作: 1、在工程中建立一个新的文件,如InitVars.c,在其中对要处理的变量赋初值(假设是code变量): char code myVer = { COPYRIGHT 2001-11 }; 2、然后将该文件加入工程,编译,打开M51文件,若定义的是co
[单片机]
51单片机-按键的中断检测
接着昨天,继续说按键的事。昨天说的是扫描检测,今个说一下中断检测。先插播一个小故事~~ 当年我和凯凯学单片机的时候,我用扫描检测的方法做的项目,他用中断检测的方法做的项目。当我俩坐一起交流按键检测的方式时,他火了,直接跳起来跟我吼:你不用中断怎么检测? 当时我就意识到他可能陷入了只能用中断的误区,然后就乐呵呵的说:用扫描啊~ 他继续吼,我继续乐,我俩就这样陷入了死循环。终于都累了,然后把程序和原理给他看,了解~ 在STC89C52单片机上,具有外部中断功能的引脚有两个:P3.2 –INT0 和 P3.3-INT1。上电默认的情况下,他们是普通IO引脚;当配置好相关寄存器之后,他们就变成
[单片机]
学<font color='red'>51单片机</font>-按键的中断检测
51单片机学习之路 —— 1.1学习准备
学习准备 :   1 硬件准备 :       一台电脑(不需要很棒的配置,运行程序不卡既可以了)       学习板 (我自己是在淘宝上买了stc89c52的板子,功能不是很强,但用作学习应该是够了)       #这里多说一句,很多学校实验室其实可以提供学习的板子,大家可以向专业老师询问,也能省不少下钱呢。   2 软件 :       驱动 (将自己的板子的驱动装好)       编写软件(主流有keil uVison4 或 keil uVision3 )       烧写软件 (与板子对应的软件 如stc公司的烧写软件)       #补一个 有的时候要画流程图,我用的是ProcessOn 通过它可以在线画流程图挺方便的
[单片机]
<font color='red'>51单片机</font>学习之路 —— 1.1学习准备
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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