什么是单片机,从工作原理上讲,单片机就是一种微型计算机,是一种“程序存储式”计算机。它是在一块硅片上集成了中央处理器(CPU)、随机存储器(RAM)、程序存储器(ROM或EPROM)、定时/计数器以及各种I/O接口,也就是集成在一块芯片上的计算机。 在现在的社会生活中,可以说“单片机”无处不在,象全自动洗衣机、空调、工业自动控制等方面都是在内置“单片机”的情况下实现的。随着1。在上图中 AT89C51/C52一块芯片就包括:中央处理器CPU、随机数据存储器(RAM)、程序存储器(ROM)、定时/计数器;AT24C02为外接数据存储器,用来存放程序运行时需保存的数据或用户设定的参数,掉电后不会丢失可保存10年;MAX232为串行通信转换接口可直接接PC串口,用于做通信实验;J4为外接温度传感器 DS18B20用,用于采集温度实验;J3可接红外线一体化接收头;J7为无线接收实验接口(或用于液晶LCD扩展接口或外接记数等扩展输入),用于接收(PT2262)无线遥控发射器的信号,可控制相应继电器输出。 2。单片机内部结构: 微处理器(CPU)主要由:运算器、数据总线、控制器组成。运算器内部我们不去细研究只要知道组成,关键是如何控制它使用它,而我们能操作的只有累加器 A、寄存器B、程序状态字寄存器PSW;而控制器是计算机的指挥中心,如人脑的神经中枢,有必要搞清它的组成和原理。 控制器包括: 1.指令部件 包括程序计数器、指令寄存器、指令译码器等; 程序计数器PC:(Program Counter) 程序是指令的集合,计算机运行时,通常按顺序执行存放在存储器中的程序。先由PC指出当前要执行指令的地址,每当该指令取出后,PC的内容自动加1(除转移指令外),指向按顺序排列的下一条指令的地址。在正常情况下,CPU按顺序逐条地执行指令。如遇转移指令(JMP)、调用子程序指令(CALL)或返回指令(RET)等,这些指令就会把下一条指令的地址直接置入PC中。 程序计数器的位数决定了CPU所能寻址的存储空间。 指令寄存器IR(Instruction Register) 它用来存放当前要执行的指令内容,它包括操作码和地址码两部分。操作码送往指令译码器;地址码送往操作数地址形成电路。 指令译码器ID:(Instruction Decoder) 它是分析指令功能的部件。 堆栈指示器SP(Stack Pointer) 堆栈指针是专用的寄存器,堆栈区一般设置在内存单元区RAM。 堆栈中的数据是以“后进先出”的结构方式处理的。对于处理中断、调用子程序非常方便。 实现堆栈的方式有两种,既硬件堆栈和软件堆栈;常用软件堆栈。软件堆栈是开辟某一内存区域作为堆栈,如MOV SP,#70H;就是将栈顶设置在70H(相当于门牌号)单元(注:CPU上电复位后SP的地址为07H单元,应在主程序开始时将SP的地址设置在RAM区的上端如70),程序运行时栈顶由CPU的堆栈指针SP自动管理,读者不需搞清原理,但要留有足够空间便于程序压栈(PUSH)和出栈 (POP)。如使用中断时要注意压栈和出栈操作。PUSH XX;POP XX;SP指针相应加1或减1。 2.时钟系统 在微型机中,一般都使用石英晶体振荡器来作为CPU的时钟脉冲源。计算机的电源一旦通电,脉冲源立即以固定的频率重复发出矩行脉冲。两个相邻脉冲前沿的时间间隔,称为一个时钟周期或T.它是CPU操作的最小时间单位。由12个时钟周期组成一个机器周期。一条指令的取出和执行所需时间称为指令周期。 3.数据指针DPTR 它是一个16位寄存器,由高位字节DPH和低位字节DPL组成。它的功能是存放16位的地址。作为访问外部程序存储器和外部数据存储器时的地址指针。 4.寄存器区 单片机8051的内部有两片寄存器区,一片在片内RAM区的低端,占00-1FH共32个单元,每8个单元为一组或一区(用R0-R7表示8个寄存器),共4组,究竟用哪一区,由特殊功能寄存器PSW中的RS1,RS0的取值决定,该寄存器区称为工作寄存器或通用寄存器区。另一片在内部RAM的xx,占80H- 0FFH共128个单元,叫特殊寄存器区。这些特殊寄存器的用法以后详解。 而单片机的所有的工作和运行都是在其一定的时序和频率下实现的,以上介绍是定义式的,只要记住单片机的使用时如何控制就行了下面详细讲一下,您只要可以理解就行了: 一单片机的时序 1 时序的由来我们已经知道单片机执行指令的过程就是顺序地从 ROM程序存储器中取出指令一条一条的顺序执行然后进行一系列的微操作控制来完成各种指定的动作它在协调内部的各种动作时必须要有一定的顺序换句话说就是这一系列微操作控制信号在时间上要有一个严格的先后次序这种次序就是单片机的时序这就好比我们学校上课时用的电铃为了保证课堂秩序学校就必须在铃声的统一协调下安排各个课程和活动那么单片机的时序是如何规定的呢接着往下看2 时序的周期计算机每访问一次存储器的时间我们把它称为一个机器周期它是一个时间基准就象我们日常生活中使用的秒一样计算机中一个机器周期包括 12个振荡周期什么是振荡周期一个振荡周期是多少时间振荡周期就是振荡源的周期也就是我们使用的晶振的时间周期一个12M的晶振它的时间周期是多少呢电子技术过的朋友应该不难算出T=1/f也就是1/12微秒那么使用12M晶振的单片机它的一个机器周期就应该等于12*1/12微秒也就是1S在 内部时钟电路: 2 除了内部时钟方式外单片机还可以采用引入外部时钟的振荡方式什么时候需要采用外部时钟方式呢当我们的系统由多片单片机组成时为了保证各单片机之间时钟信号的同步就应当引入{wy}的公用的外部脉冲信号作为各单片机的振荡脉冲此时应将 XTAL2悬空不用外部脉冲信号由XTAL1引入如上右图所示这是大虾们的作品在此就不介绍了社会的发展,“单片机”以越来越和我们的生活息息相关。 89C51单片机中有些指令只要一个机器周期而有些指令则需要两个或三个机器周期另外还有两条指令需要4个机器周期这也不难理解你在家擦地板的话总比擦桌子的时间要长不过我可是大男子主义很少做家务的开句玩笑如何衡量指令执行时间的长短我们就要用到一个新的概念指令周期—即执行一条指令所需的机器周期INTEL公司规定了每一条指令执行的机器周期当然这不需要我们非把它记住不过在这里DJNZ指令我们是要记住的它是双周期指令执行一次需要两个机器周期即2S12M晶振的话以后我们的实验延时的时间就应该算出来了吧是62500*2S=125000S也就是125mS这么大的数字也就0.125S怪不得LED1闪烁的这么快,这延时的使用以后会讲。。。二单片机的时钟电路 大家已经知道单片机是在一定的时序控制下工作的那么时序和时钟又有什么关系呢时钟是时序的基础单片机本身就如同一个复杂的同步时序电路为了保证同步工作方式的实现电路就要在{wy}的时钟信号控制下按时序进行工作那么单片机内的时钟是如何产生的呢 |