• 嵌入式基本常识(二)


    1.XTAL1(19脚)、XTAL2(18脚)--外接时钟引脚。
      XTAL1为片内震荡电路的输入端,XTAL2为片内震荡电路的输出端。8051的时钟有两种方式,一种是片内时钟震荡方式,需在这两个引脚之间接石英晶体和震荡电容(一般取10p~30p),一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚引入。
      
        (外接晶体震荡电路)

     2.单片机内部组成(STC宏晶科技公司)

      单片微型计算机是制作在一块集成电路芯片上的计算机,简称单片机。
      它包括微处理器(CPU),用RAM构成的数据存储器,用ROM构成的程序存储器,定时/计数器,各种输入/输出(I/O)接口和功能单元。可独立地进行工作。
    其中微处理器作用读入和分析每一条指令,根据指令的功能控制单片机的各功能不剪执行指定的运算和操作。
      存储器作用存储信息(程序和数据)
      各个口的作用是输入输出数据

     3.单片机sfr和sbit详解

     bit:位变量声明。

     sfr(special function register):特殊功能寄存器声明,将寄存器赋值给一个变量,这样在后面的程序中就可以用这个变量指引(refer to)该寄存器。sfr是定义一个8位的寄存器,sbit是定义位寄存器。

      sbit:特殊功能位声明,与sfr用法类似,只是sbit是位操作,用于将某个sfr中具体位赋值给一个变量,这样后面程序就可用通过该变量为该位清0或置1。

      与定义一般的int、char型变量不同,这两个字定义的并不是变量,而作为特殊功能寄存器的引用,或许可以叫做别名。单片机头文件"reg51.h"中定义了21个特殊功能寄存器,并且都是8位寄存器,而部分寄存器的每个位又用sbit进行了定义:

      ……

     4.微处理器、微控制器、数字信号处理器(DSP)
      微处理器(MPU)是一个单芯片CPU
      微控制器(MCU)则在一块集成电路芯片中集成了CPU和其他电路,构成了一个完整的微型计算机系统,微控制器的一个重要的特征是内建的中断系统。作为面向控制的设备,微控制器经常要实时响应外界的激励(中断)。微控制器必须执行快速上下文切换,挂起一个进程去执行另一个进程以响应一个“事件”。
      微处理器也能拥有强大的中断功能,但是通常需要外部元件的配合,而微控制器在片上集成了所有处理中断必需的电路。
      DSP里的CPU是专门设计用来极快地进行离散时间信号处理计算的,比如那些需要进行音频和视频通信的场合。DSPs内含乘加器,能比其它处理器更快地进行这类运算。最常见的是TI的TMS320CXX系列和Motorola的5600X系列。
     
    5.宏定义
      用 #define 定义一个标识符来表示一个常量。#define  标识符  常量   //注意, 预处理指令不是语句,所以后面不能加分号。(凡是以“#”开头的均为预处理指令,预编译又叫预处理。预编译不是编译,而是编译前的处理。这个操作是在正式编译之前由系统自动完成的。其实预编译所执行的操作就是简单的“文本”替换。对宏定义而言,预编译的时候会将程序中所有出现“标识符”的地方全部用这个“常量”替换,称为“宏替换”或“宏展开”。替换完了之后再进行正式的编译。所以说当单击“编译”的时候实际上是执行了两个操作,即先预编译,然后才正式编译。#include<stdio.h>也是这样的,即在预处理的时候先单纯地用头文件stdio.h中所有的“文本”内容替换程序中#include<stdio.h>这一行,然后再进行正式编译。
      #define又称宏定义,简称宏。其特点是:一经定义,程序中就可以直接用标识符来表示这个常量。定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了。
      #define 的作用域为自 #define 那一行起到源程序结束。如果要终止其作用域可以使用 #undef 命令,格式为:#undef  标识符
      为了将标识符与变量名区别开来,习惯上标识符全部用大写字母表示。
      宏定义最大的好处是“方便程序的修改”。使用宏定义可以用宏代替一个在程序中经常使用的常量。注意,是“经常”使用的。这样,当需要改变这个常量的值时,就不需要对整个程序一个一个进行修改,只需修改宏定义中的常量即可。且当常量比较长时,使用宏就可以用较短的有意义的标识符来代替它,这样编程的时候就会更方便,不容易出错。因此,宏定义的优点就是方便和易于维护。
      sfr:特殊寄存器是再库中已经有的
      define:是自己定义的
  • 相关阅读:
    Codeforces ECR 83 C. Adding Powers (位运算)
    Codeforces Round #636div3 D. Constant Palindrome Sum (划分区间,差分)
    Codeforces Round #603 C. Everyone is a Winner!
    Centos7 下搭建SVN + Apache 服务器 风行天下
    完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)基础环境搭建 风行天下
    云计算的理解 风行天下
    Python之路3【知识点】白话Python编码和文件操作 风行天下
    C#中TreeView组件使用方法初步
    复制文件时explorer.exe出错解决方法
    C# 里TreeView绑定数据库实现分类
  • 原文地址:https://www.cnblogs.com/wk1992/p/13549153.html
Copyright © 2020-2023  润新知