描述

#include "reg51.h"

#define FOSC 18432000L

#define BAUD 115200

#define NONE_PARITY     0   //无校验位

#define ODD_PARITY      1   //奇校验

#define EVEN_PARITY     2   //偶校验

#define MARK_PARITY     3   //标记校验

#define SPACE_PARITY    4   //空校验

#define PARITYBIT EVEN_PARITY

#define S2RI  0x01

#define S2TI  0x02

#define S2RB8 0x04

#define S2TB8 0x08

sfr AUXR  = 0x8e;

sfr S2CON = 0x9a;

sfr S2BUF = 0x9b;

sfr BRT   = 0x9c;

sfr IE2   = 0xaf;

bit busy;

void SendData(char dat);

void SendString(char *s);

void main()

{

#if (PARITYBIT == NONE_PARITY)

S2CON = 0x5a;               //8位可变波特率 (无校验位)

#elif (PARITYBIT == ODD_PARITY) || (PARITYBIT == EVEN_PARITY) || (PARITYBIT == MARK_PARITY)

S2CON = 0xda;               //9位可变波特率,校验位初始为1

#elif (PARITYBIT == SPACE_PARITY)

S2CON = 0xd5;               //9位可变波特率,校验位初始为0

#endif

BRT = -(FOSC/32/BAUD);      //设置独立波特率发生器的重载初值

AUXR = 0x14;                //独立波特率发生器工作在1T模式

IE2 = 0x01;                 //使能串口2中断

EA = 1;                     //开总中断

SendString("STC12C5A60S2\r\nUART2 Test !\r\n");

while(1);

}

void Uart2() interrupt 8 using 1

{

if (S2CON & S2RI)

{

S2CON &= ~S2RI;         //清除接收完成标志

P0 = S2BUF;             //P0显示串口数据

P2 = (S2CON & S2RB8);   //P2.2显示校验位

}

if (S2CON & S2TI)

{

S2CON &= ~S2TI;         //清除发送完成标志

busy = 0;

}

}

void SendData(char dat)

{

while (busy);               //等待上个数据发送完成

ACC = dat;                  //取得偶校验位P

if (P)                        //根据P来设置串口数据的校验位

{

#if (PARITYBIT == ODD_PARITY)

S2CON &= ~S2TB8;        //置校验位为0

#elif (PARITYBIT == EVEN_PARITY)

S2CON |= S2TB8;         //置校验位为1

#endif

}

else

{

#if (PARITYBIT == ODD_PARITY)

S2CON |= S2TB8;         //置校验位为1

#elif (PARITYBIT == EVEN_PARITY)

S2CON &= ~S2TB8;        //置校验位为0

#endif

}

busy = 1;

S2BUF = ACC;                //发送数据

}

void SendString(char *s)

{

while (*s)                  //判断字符串结束标志

{

SendData(*s++);         //发送字符

}

}

打开APP精彩内容

点击阅读全文

c语言小车倒车程序,STC12C5A60S2串口演示程序(C语言版)相关推荐

  1. c语言小车倒车程序,基于单片机的汽车倒车系统设计(超声测距报警)(C语言程序)...

    基于单片机的汽车倒车系统设计(超声测距报警)(C语言程序)(任务书,毕业论文22000字) 摘要 本设计是以单片机技术为基础,实现对前方物体距离的测量.根据超声波指向性强,能量消耗慢,在介质中传播距离 ...

  2. c语言转换为stc程序,STC51单片机入门(C语言)

    以前老资料,可继续下载参考. 目   录 第1篇 单片机KEIL开发环境 第1章  点亮LED实例与经典延时程序介绍(看不懂就从第2章动手) 1.1 51单片机最小系统与芯片引脚图 1.2 点亮LED ...

  3. 用 C 语言编写的程序被称为,用c语言编写的程序被称为

    快速导读: Q1:用C语言编写以下程序 #includeintmain(void){ intm,n,i,t; printf("InputM,N(int0if(scanf("%d%d ...

  4. 程序员学c语言吗,为什么程序员要学C语言

    请点击此处输入图片描述 C语言不是面向对象语言.因为这一点,任何程序员学习C语言必须学会用函数思考问题.当程序员真正的去学习一门面向对象语言时,就会有C语言的函数学习基础去对比.这会使学习面向对象编程 ...

  5. c语言多文件程序编译和链接,C语言知识汇总 | 04-源文件、可执行程序、编译与链接...

    一.源文件(Source File) 在开发软件的过程中,需要将编写好的代码(Code)保存到一个文件中,这样代码才不会丢失,才能够被编译器找到,才能最终变成可执行文件.这种用来保存代码的文件就叫做源 ...

  6. c语言黑匡程序,2020年新版C语言实用程序设计100例流程图.docx

    C 语言实用程序 100 例 第一篇 基础与提高 实例 1 利用库函数编写基本显示程序 实例 2 变量属性 实例 3 运算符与类型 实例 4 关于程序结构 实例 5 显示函数曲线图 实例 6 二分法选 ...

  7. c语言冒泡排序法程序填空_【C语言】两种方式实现冒泡排序算法

    题目要求 编写一个C语言程序,实现基本的冒泡排序算法. 算法 冒泡排序,用一句话来总结: 一组数中,相邻的两个数进行比较.交换,将最大(小)数交换至尾(首)部,即完成了一次冒泡排序 要想对N个数字进行 ...

  8. c语言写红绿灯程序,51单片机用C语言实现交通灯(红绿灯)源程序

    51单片机用C语言实现交通灯(红绿灯)源程序 交通灯,红黄绿灯交替亮,怎样实现呢?其实就是根据单片机定时器及倒计时的程序修改. 源程序如下: /* 1.程序目的:使用定时器学习 倒计时 红绿灯原理 主 ...

  9. c语言流水灯程序详细讲解,用c语言编写单片机流水灯程序详解

    用C语言编写的单片机流水灯程序 一.硬件电路 因为电路用单片机控制,所以电路非常简洁.其电路原理图见下图,印制板图如下图所示. ? 电路的核心部分是AT89C2051单片机,前面提到它有Pl和P3两组 ...

最新文章

  1. python的优点-python的功能与优缺点
  2. MySQL服务的启动与停止-使用命令行工具
  3. java解析静态AIS原始数据
  4. LeetCode 21. 合并两个有序链表(单链表)
  5. ( linker command failed with exit code 1) 错误解决方案 项目使用的是pod
  6. xml2 交叉编译移植
  7. 95-190-044-源码-window-window三要素
  8. android java include_Android开发:javah的使用方法
  9. 推荐一个免费申请ssl数字证书的地方
  10. 微型计算机接口技术论文,微机原理与接口技术课程论文
  11. 求职软件测试工程师英文简历,软件测试工程师英文简历范文
  12. 记录Linux开发板串口调试、静态ip
  13. 基于dsp28035之Simulink实验系列(1)-点亮第一盏灯
  14. MyBatis缓存结构
  15. wps插入批注快捷键是哪个?
  16. 航天晨光:永中DCS与原有OA系统整合,文件阅览效率大幅提升!
  17. 同态加密之Paillier算法
  18. java 前置_java – 何时添加前置条件以及何时(仅)抛出异常?
  19. 中标麒麟系统安装达梦8 数据库
  20. LeetCode题解(0657):根据操作列表判断机器人是否能回到原点(Python)

热门文章

  1. 元件原理图旋转45度_你能看懂电气原理图有多少?建议收藏共同学习
  2. vscode 文件夹中查找_真香!使用 VSCode 进行远程开发调试
  3. 图片 过度曝光_实际拍摄中,经常遇到曝光不足或过曝的结果,6种手段帮你解决...
  4. laravel queue java_使用 Laravel Queue 不得不明白的知识
  5. kotlin t class.java_尝试Java,从入门到Kotlin(下)
  6. PSOLA基音同步叠加算法
  7. Qt安装事件过滤器、过滤子控件事件、截获控件按键、鼠标事件
  8. eclipse代码自动提示,eclipse设置代码自动提示
  9. JavaScript菜鸽子基础知识总结(一)
  10. linux 安装Centos源