zoukankan      html  css  js  c++  java
  • 51 single-chip-microcpmputer

    1.单片机是如何执行程序的?

            单片机有一个指令系统,意思就是给他一个的指令,单片机知道要去做什么。例如给他个0001,他把第一个引脚输出高电平,给他0002,他把第二个引脚输出高电平。这些指令具体是什么,每一条指令都是什么功能,这些在设计单片机的时候他们已经弄好了,我们也不用去了解,毕竟我们也不去写机器码。

           不同的单片机同一功能对应的指令码可能是不一样的,我们平常写程序之前都会选择芯片,其实这个就是选择单片机的指令系统,只有选择好对应的芯片,keil编译器才会把你写的c语言转换成芯片对应的hex文件(机器码),才能在单片机里边正确执行。

    2.我们程序下载到单片机的什么地方?

          我们写的代码无非是函数文件和变量,程序的变量,会放到RAM里边,随机存储器,操作起来很快,掉电会消失。而程序的文件会放在ROM或者FLASH里边,ROM是随机存储器,掉电不消失,可以用来存储程序。FLASH是闪存,他具有ROM和RAM两者的有点,运行速度快且掉电不丢失。所以近年来大多厂商把程序文件都存到的FLASH里边,但是ROM也可以存储的。

    3.寄存器是什么?

          很多人把寄存器说的那么高深,让人听起来很高大上的样子,其实他就是由触发器组成的,就是来保存0和1数据的。比如如果有一个八位的寄存器,他就由八个触发器构成,寄存器的状态由这八个触发器存储的八个状态有关,例如0000 0001,这就是寄存器。

    4.注意全局变量

          全局变量就是写在main函数前边定义的那些变量,这些变量会存储到一直RAM里边,而一个单片机的RAM是有限的,我们一定要尽量减少全局变量的使用,以避免把RAM给占满了,尽量节省内存空间。

    5.单片机外设好多电容?

           一般电容是来防止电磁干扰的,电容可以做静电放电、滤波等,可以起到稳定电压的作用,我们习惯在5v电源的地方都并联一个容值较大的电容,来稳定电压,也可以过滤一些低频杂波。像我们平常中的静电就可以达到2-5kv的电压值,因为电量很小,所以不会对人造成伤害。对于单片机这种半导体器件来说,这种干扰影响是非常大的,其防干扰能力是有一定限度的。电容会有钽电容,电解电容,陶瓷电容。钽电容特性比较好,贴片的,占面积小,但是价格有点贵。电解电容容值也大,也便宜,但是占面积比较大。陶瓷电容容值一般都比较小,体积也小。

          另外,容值较小的电容一般拿来过滤高频杂波,消除高频干扰。还有就是晶振电路,一般用的是电容三点式晶振电路来产生时钟。

    6.三级管有啥作用?

          一般三极管有三个作用,开关控制,信号放大和电平转换。

    7.为啥有的51下载程序先点下载再上电才能下载成功?

          单片机有两种启动方式,一种是冷启动,指断电状态重新上电,单片机检测是否有程序要下载,没有的话就执行以前的程序,有的话就去下载程序。另一种是热启动,指已经处于上电状态,给一个复位信号程序才运行。如果是冷启动,就要先点下载,再上电,程序就回去检测到有程序要下载,就去下载去了。

    8.定时器的工作状态

          定时器有TL,TH两个计数用的特殊功能寄存器,每个寄存器是八位,TL是timer low 低八位,TH是timer high 高八位,这两个就是计数用的。还有一个工作方式寄存器TMOD(timer mode)和控制寄存器TCON(timer control),定时器有四种工作方式,具体可看转载的博客(侵权即删) https://blog.csdn.net/qq_40691438/article/details/81450398?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160320390419725211911699%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160320390419725211911699&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-3-81450398.pc_search_result_cache&utm_term=%E5%AE%9A%E6%97%B6%E5%99%A8%E7%9A%84%E5%9B%9B%E7%A7%8D%E6%A8%A1%E5%BC%8F&spm=1018.2118.3001.4187   

         工作方式寄存器(TMOD): 实现这四种工作方式的切换,工作方式寄存器TMOD也是八位的特殊功能寄存器,在8051中,他的高四位是调节定时器1的,低四位是调节定时器0的(8051系列一共两个计数器),说一下这四位都是什么意思

    1. gate 门控制位

        0:定时器启动仅受TCON寄存器的TR0和TR1控制

        1:定时器启动受TCON寄存器的TR0和TR1和外部中断引脚高低电平控制

    2. c/t 定时器模式选择位

        0:定时器模式

        1:计数器模式

    3和4: 

        m1,m0, 四种工作方式的切换。00 01 10 11分别代表方式1,方式2,方式3,方式4四种工作方式

     

        控制寄存器(TCON):八位特殊功能寄存器

    1. TF1: 定时器1溢出标志位,当定时器溢出时,该值变为1,并主动请求中断,进入中断程序后,由硬件自动清零

    2. TR1:   定时器1运动控制位,开启或关闭定时器,当gate=1,int1=1,置1启动定时器,当gate=0,TR1=1,启动定时器

    3. TF0:定时器0的溢出标志位

    4. TR0:定时器0的溢出运动控制位

    5. IE1:    外部中断1请求标志位

    6. IE0:    外部中断1触发方式选择位,当it1=0,低电平触发,当it1=1,高电平触发

    5. IE1:    外部中断1请求标志位

    6. IE0:    外部中断1触发方式选择位,当it1=0,低电平触发,当it1=1,高电平触发

  • 相关阅读:
    给暗黑2佣兵换装备,他/她说的英语是什么?
    为什么“家徒四壁”中的徒是仅仅,只有的意思?
    喜马拉雅几个有意思的订阅内容
    看似最艰苦的道路,长远考虑确是收益最大,实际上最容易的路
    《赠友》--杜运夑
    【Python】由host得到IP
    day31_Hibernate复习_03(补刀)
    day31_Hibernate复习_03
    day31_Hibernate学习笔记_03
    MyEclipse2017 CI 断点无效
  • 原文地址:https://www.cnblogs.com/CaiFengYuanXing/p/13849628.html
Copyright © 2011-2022 走看看