自学不是说不可以,速成的话还是找一对一的比较好,建议学完51学STM32,51单片机也并不是很难,利用业余时间就够了,51单片机入门再学习STM32技术会更上一层楼,然后做几个项目,这样好找工作,有不懂的我可以提供一些帮助,我对单片机方面研究还是有一套自己的看法的,下面分享一些单片机基础知识,希望能帮助到自学的你。

单片机的SCON是串行口,它当中有两个位,这两个位是作为中断标志位,其中还有其它的位这个说串行口的时候,再给大家具体介绍每一位的具体用法,80C51的中断控制是对特殊功能寄存器的控制来达到的一个中断的控制,也就是说中断有了一个中断申请,使中断标志位变成1CPU也查询到了,CPU要不要允许当前的这次中断就要通过对特殊功能寄存器IE的控制来达到具体的控制,IE当中每一个位把它理解成每一个位都是一个电子开关,这个开关给它1或者0就会把开关打到对应的位置,要想终端能够允许就把这个开关打到1,所以这里面的每一位都是有一个特定的含义的,分别对应的就是子开关和总阀门,也就是中断的子开关和中断的总开关,可以对它进行赋值来控制中断是不是允许IP就是中断优先级的控制寄存器。

51单片机有两级中断优先级,要么是高优先级,要么是低优先级,IP默认的单片机上电复位的时候里面的每一个位都是0,如果说想把当前的这个中断设置成高优先级,就把这一位给它指成1,想把它设成低优先级就把这成0,因为上电复位的时候就是零,除非想把它设成高优先级,也就是把它设置成1,不去设置它,它会按照默认的全部属于低优先级,虽然说都属于低优先级,但是又有5个中断,这5个中断还是要排一个中断的顺序,这个顺序是有默认的,它们是属于第一个链接,但是这5个中断如果说同时申请来了,总得有一个预案,到底哪一个先执行,哪个后执行,这个是由中断的默认的自然优先级来决定的。

优先级的顺序是按照从高到低的顺序,外部中断0的计算器0,外部中断1定时器计数器1,串行口每一个中断又给了它中断的服务入口地址,载入当中有几个单元终端服务的入口地址,也就是对应的从0003H到0023H,每一个中断给了一个中断向量入口地址,实际上就是要找中断服务程序的入口地址,在入口地址当中一般会做一条跳转指令,把它跳到中断的服务函数去执行,就是说默认的单片机上电的时候,IP的初值为0,也就是默认所有的终端都是低优先级,如果有多个中断同时申请的时候,应该按照这个顺序,比如三个中断同时来了中断申请,这样它的标志位都是变成1了,CPU就按照这个默认的自然优先级的顺序,先去处理外部中断0,外部中断0的事情处理完成之后再去处理定时计数器0,定时计数器0处理完了,再去处理外部中断1,就是按照这个顺序来执行,默认有这么一个运行的机制。

想打断这个机制,比如想使定时计数器0的这个优先级高于外部中断0,不去设置优先级的话肯定默认的只能按照这个顺序来走,同样是三个中断同时来的时候,想使定时计数器0的这个中断先被执行,然后再去执行外部中断0,再去执行外部中断1,这个时候就可以设置IP当中,把它制成1,其他两个位都给它清成0,这样的话它就属于是高优先级,它们俩处于低优先级,它处于高优先级肯定是先服务,所以它们三个同时来中断申请的时候肯定先执行0,执行完成之后它们俩是处于同级中断,如果当前要想打断这个优先级的顺序。

中断优先级的处理有三个基本原则,第一个是CPU同时接触到几个中断时需要先响应的是最高级的中断请求,优先级级别最高,它就先得到一个响应,正在执行中断的过程当中,正在执行外部中断,正在执行的中断服务函数在执行的过程当中又发生了一个中断申请,比如发生定时计数器0的中断申请,这个时候是不能打断的,因为你的优先级比较低,得按照默认的自然优先级的话,你的优先级比我低你就不能打断我,除非是把外部中断0设置成的优先级,这个时候正在执行外部中断0的过程当中来了一个中断申请,因为设置它的优先级比我高,所以它可以打断我,如果它的优先级没有设置,默认的自然优先级比我低,它是不可能打掉外部中断0的,也就是说正在进行的一个中断服务的过程当中,不能被新的同级或者是低级的中断所打断,但是可以被高优先级的中断所打断,这个和我们人处理事情的机制是一样的,也就是中断处理基本原则。

大家有需要的话可以反复的看一下相关的文章熟练掌握相关的知识能够达到随心所欲的设置,从而去应付不同的优先级的排序,包括终端的控制,这样编写程序例子的时候就比较容易上手了

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

51单片机自学好找工作吗,怎样学才能找到适合的工作相关推荐

  1. 应届毕业生没有工作经验,怎么才能找到合适的工作?

    没有工作经验并不可怕,轻雀这就带着「求职资源大礼包」来了,帮助你找到合适的工作. 我们将为你「免费」提供贴心求职锦囊!免费!免费!免费! (长按图片识别二维码即可领取资源包) ⚠️:由于首次创建资源包 ...

  2. 51单片机自学--交通红绿灯模拟

    51单片机自学--交通红绿灯模拟(黄灯闪烁与不闪两种模式) ABC东西红黄绿DEF南北红黄绿S时间K选择模式 或许看这文章的是初学者,有些话还是要说的,就是要使用本代码,需要把对应的端口进行更改为你连 ...

  3. 单片机自学多久可以成功?学单片机需要什么基础知识?

    单片机自学完全是可以学会的,现在入门的教程可以用泛滥来形容了. 泛滥不代表讲的不好,有些确实讲的非常不错啊. 我也是自学过来的,下面通过我的经历来解答这些问题. 一.单片机自学多久可以成功 我曾经从零 ...

  4. 51单片机自学--改造我的机器

    终于自学单片机开发,写了这个猫洁易智能外扩程序,免清洁液永久清洗,在2017-10月我购买的时候,以为可以很放心去旅游,旅游一周回来,发现机器没清洗,猫屎堆满机器盆,顿时感到很讨厌,花了钱居然得不到相 ...

  5. 51单片机自学笔记定时器中断

    目录 相关寄存器 中断允许寄存器IE 中断优先级寄存器IP 定时器/计数器控制寄存器TCON 定时器/计数器工作模式寄存器TMOD 程序 代码 计算定时器初值 中断函数写法 相关寄存器 中断允许寄存器 ...

  6. 51单片机自学笔记(1)——定时计数器

    1.定时/计数器的介绍   51单片机一共有两个16位的 定时/计数 器--T0,T1.其数据均存放于特殊功能寄存器(SFR)中.T0的16位数据分两部分存放,高8位存放在TH0(其字节地址位8CH) ...

  7. 自学stm32,需要会到什么程度才能找到一份工作?

    说到自学,小有体会,自学的过程焦虑而痛苦,这一切,还是来源于对未来的不确定性. 今天通过个人经历和经验,希望能为你揭开迷雾,找到前进的方向. 回想我曾经自学单片机的时候,当时还很年轻,思维也还没现在这 ...

  8. 自学前端需要达到什么水平才能找到工作?

    自学前端达到什么水平才能找到工作呢?从大的就业方向来说,学web前端肯定是为了做网站或者是APP,顺带着做点小程序. 历史的车轮滚滚向前,今天的web前端虽然名义上还叫前端,但在职业技能上已经要求一个 ...

  9. 51单片机自学笔记(4)——MCS-51存储器的扩展

      为什么要进行存储器的扩展呢?就是因为单片机自带的储存空间不够.本文将以80C31单片机来举例讲解存储器的扩展,80C31内置128字节数据存储器(RAM),片内并无程序存储器(ROM),需外接RO ...

  10. 31岁了学python还是arm_学嵌入式的,学完了51单片机,下一步呢,是学stm32还是学arm呢.有些迷茫还有Linux等。怎么一步步学好...

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

最新文章

  1. 开源性能监控工具APM之Skywalking和Pinpoint的实测对比
  2. 错误LNK1107文件无效或损坏: 无法在 0x338 处读取
  3. 如何在命令行模式下升级的你Visual Studio的Solution文件
  4. GDCM:检查二个dicom文件的BigEndian错误的测试程序
  5. JAVA NIO 简介(转)
  6. 【Java】java JMX之ObjectName
  7. split方法在低版本IE浏览器上无法解析的问题
  8. BZOJ 3926: [Zjoi20150]诸神眷顾的幻想乡
  9. android 汉字笔顺,汉字笔画顺序之启动界面一
  10. 继电器驱动原理详解(Relay)
  11. 毕设设计要点整理(一)——角色相关
  12. electron制作聊天界面(仿制qq)
  13. 取消mysql的salve设置
  14. 跨namespace通信
  15. Word 项目文档排版
  16. Windows-空硬盘安装系统
  17. Ubuntu18.04 intel wifi6 ax201无线网卡驱动安装
  18. oracle查询列出24小时,ORACLE日期相关操作
  19. kubernetes 入门介绍
  20. LeetCode:606.根据二叉树创建字符串

热门文章

  1. 铁大Facebook——十天冲刺(4)
  2. surging+EFCore 服务实现入门
  3. 太赞了!超炫的页面切换动画效果【附源码下载】
  4. 拷贝文件到另一台电脑
  5. “形象代言人”与“抽风式管理”
  6. 游戏开发之类的构造函数和析构函数(C++基础)
  7. LVS详解(七)——LVS TUN模式实战
  8. 解决报错: The name tf.app.run is deprecated. Please use tf.compat.v1.app.run instead.
  9. Leetcode 刷题笔记(三) —— 数组类型解题方法三:滑动窗口
  10. MySQL数据库基础(三)——SQL语言