学习嵌入式和单片机有没有必要,价值体现在哪

最近几年,“软件为王”这一句话被广泛传播,大家普遍认为软件知识的价值远远大于硬件,潜移默化觉得学习软件,从事软件方向会更容易找到更高收入、更有前途的工作。单片机和嵌入式一般会被归为“硬件”方向,被人“嫌弃”,加上嵌入式和单片机的学习难度较大,学习周期比较长,往往觉得很“煎熬”,以至于越来越多的人放弃这条路,很负责任的跟大家说有这种想法是不正确的,嵌入式和单片机并不是大家所知道的纯“硬件”类方向,它们是硬件和软件的紧密结合在一起的。

单片机的串行口的话,实际上它主要是有这么几个电路来构成的,内部总线,发送寄存器SBUF,发送缓冲器,接收缓冲器等,99H指的是特殊功能寄存器,就是内部ROM当中80H到FFH当中的特殊功能寄存器区,51单片机使用了其中的21个,其中有一个就是SBUF,它的地址就是在99H这个地址,实际上它在物理上是两个独立的寄存器,发送缓冲器主要是做数据发送的,接收缓冲器主要是做数据接收的,除了这两个特殊功能寄存器之外,它还包括发送的控制器,还有就是接收的控制器,以及一些移位寄存器,还有一些中断和控制的一些电路。

如果要想往外发送一串数据,或者说发送一帧数据,比如要发送一个0X88或者发送一个88H,通过内部总线把数据88H写到SBUF当中,它实际上是两个独立的SBUF,但是这个独立的SBUF占用同一个地址,实际上它是靠指令来区分的,直接写指令的时候访问就是串行发送的一个寄存器,如果执行的是读指令,访问就是串行的接收寄存器,所以要想把88H发送出去,自己做测试的时候,可以把TSD和RSD做一个短节,自发自收只要把88H写到SBUF当中,也就是把这个值赋给SBUF,寄存器就像P0口或者是P3口这种一样,把0X88直接赋给他,把数据写给SBUF,数据写给他之后发送控制器包括门电路就会首先把这个数据转成串行的,然后给他加一个起始位0,一个停止位1,可以加一个奇偶校验位,然后组成了一帧数据,靠发送控制器就可以一位一位的把它通过TSD发送出去。

时钟系统可以控制它的波特率,这样就可以控制一位一位的传输的时间,4800的波特率一位发送占用的时间是1/4800秒,按照这个波特率就可以去一位一位的发送出去,出现在TXT这根线上,在内部电路当中是0和1一旦出现引脚上,0就会变成低电平,1就会变成高电平,变成了0V和5V,把它短接一根一根的出现,总线空闲的时候是高电平,一旦发现它是低电平就代表起始位来了就可以去接收了,接收电路来控制可以把这个数据一位一位的移进这个移位寄存器,按照波特率一位一位的进来,进来之后每一个字节就会把它存放到SBUF中,需要知道它发送的是不是0F88,可以把SBUF当中的内容把它读出来,想读寄存器就把这个寄存器赋给他,一位一位接收的时候进入SBUF当中的时候实际上已经把这个起始位和停止位已经去掉了,这里面就是存着八位的数据,这些东西都是由单片机的硬件帮我们去完成,所以编程的时候实际上只要配置好了串行口的功能,那就很方便的来完成串行的通信,也就是发送和接收。

要想使用串行通信接口肯定要对他进行一个初始化的配置,51单片机它的接收器具有双缓冲的结构,他实际上有两个接收缓冲器,代表从这个接收缓冲器读出的前一个已经收到的这个四节数据之前便能接收第二个字节,就是刚才发的这一段数据他可以存到这个寄存器里面,这个数据如果说还没有读走,下一帧数据又来了,他还有一个双缓冲,如果把这一帧的数据也保存起来,这个时候就要及时的把这一帧数据读走,如果不走他就会把这帧的数据给覆盖掉,在做串行口监控的时候,数据实际上是到了SBUF当中,提供一些标志位去查询,或者说用中断的方式来知道发送完了或者是接收完了,要想发送一串数据的话,发送这一帧数据接下来还要再发送一帧数据,只是把这个数据写到SBUF当中,单片机设计的时候也给大家一个提示R标志位,就是接收标志位,一旦接收完一帧数据的时候,这个R标志位会自动一,可以用查询或者中断的方式,这样就知道一帧数据接收完了,抓紧时间把这个数据读出去,可以做一个接收缓冲区,比如开辟一个缓冲区,也就是开辟一个数组,可以把这个数据接一个就存过去,然后在把这一串数据都接收完之后再去处理,也可以边接收边处理,是由不同的处理机制,把这一串数据都接收完了,然后再去具体的去处理,要根据具体的应用可以去编写不同的程序。

对单片机感兴趣的可以查看往期分享内容希望能帮助大家在学习单片机的路上少走一些弯路想要入门单片机可以持续关注创为单片机编程回复“带我学习”查看更多内容分享

学习嵌入式和单片机有没有必要,价值体现在哪相关推荐

  1. 嵌入式和单片机,是同一个东西吗?

    大家好,我是张巧龙,凡是从事信息技术相关工作的童鞋,一定都听说过嵌入式和单片机.大家都知道,这两个名词,和硬件系统有着非常密切的关系. 但是,如果要问具体什么是嵌入式,什么是单片机,它们之间究竟有什么 ...

  2. 崩管嵌入式还是单片机,盘就完事了

    戳蓝字"CSDN云计算"关注我们哦! 作者 | 小枣君 责编 | 阿秃 大家好,我是小枣君. 凡是从事计算机或电子信息相关领域工作的童鞋,一定都听说过嵌入式和单片机吧? 很多人应该 ...

  3. 嵌入式与单片机之间的关系是什么?

    一定有很多人都听说过嵌入式和单片机,但在刚开始接触时,不知道大家有没有听说过嵌入式就是单片机这样的说法,其实嵌入式和单片机还是有区别的.单片机与嵌入式到底有什么关系? 下面我们就来说说嵌入式和单片机之 ...

  4. 如何学习嵌入式系统(硬件篇),含51单片机学习资料

    学习嵌入式之前我们需要了解什么是嵌入式. (官方说法)嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分.国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用 ...

  5. 论嵌入式与单片机,相爱相杀。

    我时常在想,现代社会发展变化速度之快超越了很多人的认知.罗胖子说跟不上时代要交认知税,很有道理. 半导体和IT行业又是旋涡中心,发展更加快,其实想想其他行业的创新(美团外卖.滴滴打车.微信社交.淘宝京 ...

  6. (转)学习嵌入式必备书籍

    基础学习Ⅰ-Linux入门 目前嵌入式主要开发环境有 Linux.Wince等:Linux因其开源.开发操作便利而被广泛采用.而Linux操作系统也只是一个简单的操作系统,简单的使用对于嵌入式开发人 ...

  7. 单片机干嘛的?嵌入式是单片机吗?

    我见过很多初学者,搞不清嵌入式开发是做什么的,学什么的,也搞不懂嵌入式和单片机的关系. 在网上找了很多资料,发现看的云里雾里,很多想入行的小伙伴本来还信心满满,看完以后被狠狠泼了一盆冷水:这门槛也太高 ...

  8. 作为一个新人,怎样学习嵌入式Linux?

    作为一个新人,怎样学习嵌入式Linux?被问过太多次,特写这篇文章来回答一下. 在学习嵌入式Linux之前,肯定要有C语言基础.汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会). C语言要学 ...

  9. c语言嵌入式开发单片机,嵌入式开发|单片机基础

    嵌入式开发它是一个综合的技能学习,既要去学习基本的Linux编程,又要学习物理机的操作使用,要想学习嵌入式的开发,在前面的文章中已经是跟大家说过了,嵌入式开发的学习需要掌握的基础课程还是比较多的,单片 ...

  10. 【转载】学习嵌入式系统需要具备的条件、方法及步骤

    事先说明,我并不是对嵌入式有多大的兴趣,但我非常希望自己能一直向底层前进,不停地去探究最底层的奥秘. 查阅了很多资料,似乎嵌入式最附合自己对底层的探求,或许它是,或许不是,但对于现在的我而言最重要的是 ...

最新文章

  1. php 魔术方法 说明
  2. 网站统计中的PV(访问量):UV(独立访客):IP(独立IP)的定义与区别
  3. Python编程语言学习:在for循环中如何同时使用2个变量或者3个变量
  4. linux获取tomcat进程,Shell 获取Tomcat进程号
  5. paip.模块化与面向对象的关系以及实现
  6. 华为手机安装GMS框架
  7. python图像风格迁移_快速图像风格迁移
  8. 计算机用户没有管理员权限,电脑没有管理员权限怎么办
  9. php生产环境配置,PHP生产环境配置 - osc_ifi9q17t的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. 常见文件文件头和隐写术总结 CTF中Misc必备
  11. 【GAMES101 作业4】贝塞尔曲线+反走样
  12. 电脑网页游戏微端服务器失败,电脑重装后微端游戏玩不了,网页也进不了
  13. ADFS 概念与基本开发介绍 (1)
  14. openshift书籍推荐
  15. 银行业务中的清算和结算分别是什么样的过程
  16. BSN开放联盟链巡礼——文昌链的技术、架构、应用介绍
  17. Luogu_P3258 松鼠的新家
  18. leetcode 695. 岛屿的最大面积 python
  19. (附源码)python方块新闻 毕业设计 091600
  20. linux系统下的rz、sz详解

热门文章

  1. 4.Scala-数据结构
  2. noi.ac #289. 电梯(单调队列)
  3. 在linux中安装adb和fastboot工具
  4. Linux下vi替换字符命令操作实例
  5. 爬虫笔记(四)------关于BeautifulSoup4解析器与编码
  6. Hibernate配置文件与关联映射介绍
  7. [转]MFC与Qt的内存管理
  8. Windows server 2019 - Raid1 搭建+测试
  9. arcgis 属性表 汇总_ArcGIS之属性表编辑与字段添加
  10. 苹果iOS系统源码思考:对象的引用计数存储在哪里?--从runtime源码得到的启示...