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:是自己定义的
define:是自己定义的