tiri单片机_51单片机的SCON寄存器与C程序解析
用计算机来控制单片机,进而控制继电器等其他外设,感觉不错啊,怎么实现呢?一步步来吧。
单片机串行口通信,也就是单片机与计算机之间的通信,要实现,要明白一些基本的概念。
(1)实现之前,请确定串口正常,我之前做过串口操作,烧了不能控制,后来才发现,设备管理器里串口有叹号,驱动有问题,可能是开发实验板没有插好或是换了个USB口造成的(我用的是串口转USB的,笔记本用)
(2)串口初始化,这方面,最好有相关的书来的,明白消化定时器与中断, 这样操作起来就容易了。
一。设定串口的工作方式:设定SCON寄存器。
什么是SCON呢?
SCON寄存器是51单片机一个可寻址的专用寄存器,用于串行数据通信的控制,其字节地址为:98H,位地址为:98H~9FH。 内容为:
SM0SM1SM2RENTB8RB8TIRI
SM0 SM1:串行口工作方式选择位。
SM0SM1 工作方式 功能 波特率
00 方式0 8位同步移位寄存器 fosc/12
01 方式1 10位UART 可变
10 方式2 11位UART fosc/64(或是fosc/32)
11 方式3 11位UART 可变
-----------------------------------------------------------
SM2:多机通信控制位
REN:接收允许控制,1为允许串行口接收,0为禁止串行口接收。
TB8:发送的第9位数据位。
RB8:接收的第9位数据位。
TI:发送中断标志。发送完一帧数据后,硬件自动置1。TI位必须要由软件清零。
RI:接收中断标志。接收完一帧数据后,硬件自动置1。RI位必须要由软件清零。
例:用串口调试助手来调试串口,发送十六进制的数,来让相应的LED灯亮起来。
C程序如下:
#include
void main()
{
TMOD=0x20; //设置定时器:Timer1 Mode 2 8位reload
TH1=0xfd; //波特率for 9600 baud @ 11.0592MHz
TL1=0xfd;
SM0=0;
SM1=1;
REN=1; //控制RI,允许串行接收。SM0SM1及REN为SCON=0x50;
TR1=1; //启动定时器1
while(1)
{
if(RI==1) //如果RI为1,则接收到串口发过来的数据
{
RI=0;库 //软件清零。必须
P0=SBUF; //SBUF,为缓冲器,接收缓冲器只能读出不能写入,发送缓冲器只能写入不能读出。
/* 二者共用一个字节地址,两个相互独立。 */
}
}
}
以 上为串行控制LED灯,想显示哪几个灯,可通过串口调试软件发送即可。
例:数码管显示。这里只给出某一位显示,如果多位,再自己加入相关的程序段即可。
#include
void main()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
SM0=0;
SM1=1;
REN=1; //控制RI
TR1=1;
while(1)
{
if(RI==1)
{
RI=0;
P0=SBUF; //P0为数码管的值。
P2=0x06; //8位数码管,第7个,P2口为片选,
}
}
}
以上程序可在AT89s52单片机+Keil 上调试通过并运行。
相关工具:
串口调试助手,51串口通信计算器.exe,可在网上搜索下载。
打开APP精彩内容
点击阅读全文
tiri单片机_51单片机的SCON寄存器与C程序解析相关推荐
- tiri单片机_51单片机设定串口的工作方式:设定SCON寄存器-控制器/处理器-与非网...
用计算机来控制单片机,进而控制继电器等其他外设,感觉不错啊,怎么实现呢?一步步来吧. 单片机串行口通信,也就是单片机与计算机之间的通信,要实现,要明白一些基本的概念. (1)实现之前,请确定串口正常, ...
- ws2812b程序51单片机_51单片机串口通信程序详解
串口通信简介 串行接口是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件.一般完成这种功能的电路,我们称为串行接口电路 ...
- 单片机中存储器扩展位地址线怎么算_51单片机CPU结构各部件的原理详细分析
一. 51单片机串行口工作原理 MCS-51系列单片机片内有一个串行I/O端口,通过引脚RXD(P3.0)和TXD(P3.1)可与外设电路进行全双工的串行异步通信. 1.串行端口的基本特点 8031单 ...
- 51单片机的IO口和寄存器
当我们拿到一块单片机时,我们首先看到的是他的外观,就像下边这样的: 当然对于51单片机来说,最常用的还是第一种样式的,这种叫做PDIP封装.在单片机上有很多小针(管脚),这些就是单片机用来输出数据,控 ...
- 51单片机如何跳出wile循环_51单片机(九)汇编指令
1 往期链接 Chenglin Li:51单片机(一)Visual Basic串口通信程序 Chenglin Li:51单片机(二)汇编语言设计流水灯 Chenglin Li:51单片机(三)汇编语言 ...
- 单片机DPTR(DPH,DPL)和SP特殊寄存器C语言中应用?这三个特殊寄存器对C程序员来说是透明的,不用C程序员操作,编译的时候会自动运用这三个寄存器ACC寄存器和B寄存器也类似
单片机DPTR(DPH,DPL)和SP特殊寄存器C语言中应用?这三个特殊寄存器对C程序员来说是透明的,不用C程序员操作,编译的时候会自动运用这三个寄存器,ACC寄存器和B寄存器也类似 编译器把C译成指 ...
- 51单片机usb烧录电路_51单片机怎么用usb烧写程序 - 全文
单片机怎样用usb烧写程序 首先,需要安装keil软件和STC_ISP程序下载软件. 先对你想要实现对单片机的功能用keil编程,然后用STC_ISP下载软件下载到单片机上,最后打开给单片机提供电源就 ...
- 单片机 | 51单片机原理
[金善愚] 单片机应用原理篇 笔记整理 课程视频 :https://space.bilibili.com/483942191/channel/collectiondetail?sid=51090 文章 ...
- C51串口的SCON寄存器及工作方式
串行口控制寄存器SCON 它用于定义串行口的工作方式及实施接收和发送控制.字节地址为98H,其各位定义如下表: 其中fosc为晶振频率 SM2:多机通讯控制位.在方式0时,SM2一定要等于0.在方式1 ...
最新文章
- SP-45ML光电二极管放大电路设计
- string.Format字符串格式化说明(转)
- 【视频】vue组件之$emit父子组件间值的传递
- 31天重构学习笔记下载
- 160523、Oracle建立表空间和用户
- SEO 搜索引擎优化技巧
- ora-12505报错解决方法(转)
- 用了这么久的 Chrome,你不会还没掌握这个功能吧?
- 惠普HP ENVY 5055 打印机驱动
- c语言图像峰值信噪比,PSNRSSIM
- comsol移动网格_COMSOL动网格调试
- android wps页面设置背景图片,wps word怎么设置背景图片
- js进行txt文件下载方式或oss文件访问下载跨域解决
- 如何把录音生成二维码,用微信扫一下就能听?分享语音音频转二维码的方法和技术原理
- matlab的foramt
- vba返回excel中所有菜单命令栏CommandBar的名称
- html内嵌框架怎么写,在HTML网页中,内嵌框架的标签代码是()。
- OA项目之项目简介会议发布
- 计算python程序运行时长,并以时分秒形式输出
- Oracle 数据泵
热门文章
- 2020.7.25 PAT线上考试后记
- Selected artifacts will be deployed at server startup:war or war exploded【两种发布方式的区别】
- AI的下一主战场 —— 手机与物联网终端
- 【电源专题】SMPS电源的EMI来源和测量方法
- spring赌上未来的一击:WebFlux性能实测
- RK3288下添加PCF8563 RTC支持
- 淘宝运营助理工作性质 运营助理工作难吗
- word文档添加对勾 √
- Windows HOOK 按键工具类
- 计算机类专业中对数学物理要求低的,哪些专业对数学和物理要求比较高