用计算机来控制单片机,进而控制继电器等其他外设,感觉不错啊,怎么实现呢?一步步来吧。

单片机串行口通信,也就是单片机与计算机之间的通信,要实现,要明白一些基本的概念。

(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程序解析相关推荐

  1. tiri单片机_51单片机设定串口的工作方式:设定SCON寄存器-控制器/处理器-与非网...

    用计算机来控制单片机,进而控制继电器等其他外设,感觉不错啊,怎么实现呢?一步步来吧. 单片机串行口通信,也就是单片机与计算机之间的通信,要实现,要明白一些基本的概念. (1)实现之前,请确定串口正常, ...

  2. ws2812b程序51单片机_51单片机串口通信程序详解

    串口通信简介 串行接口是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件.一般完成这种功能的电路,我们称为串行接口电路 ...

  3. 单片机中存储器扩展位地址线怎么算_51单片机CPU结构各部件的原理详细分析

    一. 51单片机串行口工作原理 MCS-51系列单片机片内有一个串行I/O端口,通过引脚RXD(P3.0)和TXD(P3.1)可与外设电路进行全双工的串行异步通信. 1.串行端口的基本特点 8031单 ...

  4. 51单片机的IO口和寄存器

    当我们拿到一块单片机时,我们首先看到的是他的外观,就像下边这样的: 当然对于51单片机来说,最常用的还是第一种样式的,这种叫做PDIP封装.在单片机上有很多小针(管脚),这些就是单片机用来输出数据,控 ...

  5. 51单片机如何跳出wile循环_51单片机(九)汇编指令

    1 往期链接 Chenglin Li:51单片机(一)Visual Basic串口通信程序 Chenglin Li:51单片机(二)汇编语言设计流水灯 Chenglin Li:51单片机(三)汇编语言 ...

  6. 单片机DPTR(DPH,DPL)和SP特殊寄存器C语言中应用?这三个特殊寄存器对C程序员来说是透明的,不用C程序员操作,编译的时候会自动运用这三个寄存器ACC寄存器和B寄存器也类似

    单片机DPTR(DPH,DPL)和SP特殊寄存器C语言中应用?这三个特殊寄存器对C程序员来说是透明的,不用C程序员操作,编译的时候会自动运用这三个寄存器,ACC寄存器和B寄存器也类似 编译器把C译成指 ...

  7. 51单片机usb烧录电路_51单片机怎么用usb烧写程序 - 全文

    单片机怎样用usb烧写程序 首先,需要安装keil软件和STC_ISP程序下载软件. 先对你想要实现对单片机的功能用keil编程,然后用STC_ISP下载软件下载到单片机上,最后打开给单片机提供电源就 ...

  8. 单片机 | 51单片机原理

    [金善愚] 单片机应用原理篇 笔记整理 课程视频 :https://space.bilibili.com/483942191/channel/collectiondetail?sid=51090 文章 ...

  9. C51串口的SCON寄存器及工作方式

    串行口控制寄存器SCON 它用于定义串行口的工作方式及实施接收和发送控制.字节地址为98H,其各位定义如下表: 其中fosc为晶振频率 SM2:多机通讯控制位.在方式0时,SM2一定要等于0.在方式1 ...

最新文章

  1. SP-45ML光电二极管放大电路设计
  2. string.Format字符串格式化说明(转)
  3. 【视频】vue组件之$emit父子组件间值的传递
  4. 31天重构学习笔记下载
  5. 160523、Oracle建立表空间和用户
  6. SEO 搜索引擎优化技巧
  7. ora-12505报错解决方法(转)
  8. 用了这么久的 Chrome,你不会还没掌握这个功能吧?
  9. 惠普HP ENVY 5055 打印机驱动
  10. c语言图像峰值信噪比,PSNRSSIM
  11. comsol移动网格_COMSOL动网格调试
  12. android wps页面设置背景图片,wps word怎么设置背景图片
  13. js进行txt文件下载方式或oss文件访问下载跨域解决
  14. 如何把录音生成二维码,用微信扫一下就能听?分享语音音频转二维码的方法和技术原理
  15. matlab的foramt
  16. vba返回excel中所有菜单命令栏CommandBar的名称
  17. html内嵌框架怎么写,在HTML网页中,内嵌框架的标签代码是()。
  18. OA项目之项目简介会议发布
  19. 计算python程序运行时长,并以时分秒形式输出
  20. Oracle 数据泵

热门文章

  1. 2020.7.25 PAT线上考试后记
  2. Selected artifacts will be deployed at server startup:war or war exploded【两种发布方式的区别】
  3. AI的下一主战场 —— 手机与物联网终端
  4. 【电源专题】SMPS电源的EMI来源和测量方法
  5. spring赌上未来的一击:WebFlux性能实测
  6. RK3288下添加PCF8563 RTC支持
  7. 淘宝运营助理工作性质 运营助理工作难吗
  8. word文档添加对勾 √
  9. Windows HOOK 按键工具类
  10. 计算机类专业中对数学物理要求低的,哪些专业对数学和物理要求比较高