1、,五、单片机体系结构,东软人才实训中心,Copyright 2008 By Neusoft Group. All rights reserved,第五章:单片机体系结构,目标: 本章旨在向学员介绍单片机的主要结构,通过本章的学习,学员应该掌握如下知识:单片机体系结构各功能部件,学时:7.0学时教学方法:讲授ppt案例分析,00,07,08,0F,10,17,18,1F,寄存器组 0,寄存器组 3,寄存器组 2,寄存器组 1,图 通用寄存器组,5.7.5 RAM存储器空间的分配,处理器每次只使用四组寄存器组中的一组,如果程序员不指明,则处理器默认使用的是第0组寄存器组。,采用这种机制是因为考虑到
2、微控制器应用的特点。微控制器(以及大多数嵌入式系统)一般不是计算密集型任务的,与通用计算机系统相比,嵌入式系统与外部I/O设备交互更为频繁。从程序执行角度来看,处理器需要频繁地在不同程序片断(主程序、中断服务程序等)之间切换,在切换时必须保存原来程序片断的执行状态(下一条要执行的指令、已经读入寄存器的操作数和计算中间结果等等),为了减少切换的开销,8051微控制器采用多个寄存器组的设计模式。,寄存器组1也作为缺省的堆栈(系统堆栈)使用,堆栈指针寄存器SP默认的数值是07,5.7.6 通用寄存器组,程序状态字寄存器(PSW),在00H1FH共32个单元中被均匀地分为四块,每块包含八个8位寄存器,
3、均以R0R7来命名,我们常称这些寄存器为通用寄存器。这四块中的寄存器都称为R0R7,那么在程序中怎么区分和使用它们呢?聪明的INTEL工程师们又安排了一个寄存器程序状态字寄存器(PSW)来管理它们,CPU只要定义这个寄存的PSW的D3和D4位(RS0和RS1),即可选中这四组通用寄存器。若程序中并不需要用4组,那么其余的可用做一般的数据缓冲器,CPU在复位后,选中第0组工作寄存器。,5.7.7 位可寻址(bit-addressable),8051中RAM空间分配中,地址20到2F中的内存空间是字节可寻址,同时也是位可寻址的,作为字节来寻址,该区域是16个字节的空间,按位来寻址则是128位空间。
4、所谓“位可寻址”是指处理器可以直接读写相应的位的数据,并进行例如置“1”、清“0”、求“反”、转移,传送和逻辑等操作。位可寻址是8051微控制器最强大的特点之一,从程序角度来看这一特性能减少代码尺寸并提高执行速度。,5.7.7 位寻址区,片内RAM的20H2FH单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址。位寻址区共有16个字节,128个位,位地址为00H7FH。位地址分配如表所示。CPU能直接寻址这些位,执行例如置“1”、清“0”、求“反”、转移,传送和逻辑等操作。我们常称MCS-51具有布尔处理功能,布尔处理的存储空间指的就是这些位寻址区。,5.7.8堆栈和堆栈指针,
5、图5-18 堆栈和堆栈指针,FFH,80H 7FH,30H 2FH,20H 1FH,00H,SP+1,SP,数据压入,数据弹出,在片内RAM低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下的80个单元就是供用户使用的一般RAM区了,地址单元为30H-7FH。对这部份区域的使用不作任何规定和限制,但应说明的是,用户使用的堆栈一般开辟在这个区域。,5.7.9 特殊功能寄存器SFR,MCU,SFRs,RAM,图 特殊功能寄存器SFR,8051微控制器中还集成了定时器、中断控制器、串行通信控制器以及I/O端口等数字逻辑部件,这些部件用一些专用寄存器作为与CPU交互的接口(图5-1
6、9),这些寄存器都是位可寻址的,被称为特殊功能寄存器(SFR, special function register)。将RAM的高128字节分配给这些特殊功能寄存器,并将这些SFR(逻辑上)视为RAM的一部分。 用高级语言编程时,编程平台预先定义好了这些特殊功能寄存器的名称与地址的映射关系,程序员可以在程序中使用名称来对其读写。,附: 特殊功能寄存器SFR,能够被8整除的地址都可以位寻址,附: 特殊功能寄存器SFR (续),在用高级语言编程时,编程平台预先定义好了这些特殊功能寄存器的名称与地址的映射关系,程序员可以在程序中使用名称来对其读写。,内部,外部,5.7.10完整的数据存储器布局,数据
7、存储器,RAM,专用 寄存器,内部RAM存储器,工作寄存器区选择位RS0、RS1,5.8 通用I/O,图 端口的功能,端口是以 bit 为单位(通常8位组成一组),对值(1或0)和信号进行转换,实现与外部设备进行数据交换功能的设备。,将指令控制的1或0的值转换为H或L并从端口输出。,从端口输入H或L并转换成可以用指令控制的1或0。,输出端口:对于程序员来讲是向端口写入数据,以控制硬件。 输入端口:对于程序员来讲是从端口读出数据,以获知硬件状态。 端口方向寄存器:一般来说,I/O端口有决定输入输出方向的寄存器。譬如:将方向寄存器设为0则作为输入端口使用;将方向寄存器设为1则作为输出端口使用(依据
8、芯片使用手册进行设定)。,图 开关控制实例,因为连接到GND,SW为ON时,输入为L,SW1,SW2,SW3,SW4,SW5,SW6,SW7,SW8,b7 b0,b7 b0,b7 b0,b7 b0,b7 b0,b7 b0,b7 b0,b7 b0,输入数据,0 1 1 1 1 1 1 1,寄存器,b7 b0,端口方向寄存器 的对应位 0,端口P3 数据寄存器,微处理器,因为有上拉(pull-up)电源,SW为OFF时,输入为H,输入H,输入H,输入H,输入H,输入H,输入H,输入H,输入L,电源(Vcc),(CPU),I/O接口,5.8 通用I/O,图 LED控制实例,5.8 通用I/O,5.8
9、 通用I/O,P0口:P0.0P0.7统称为P0口。在不接片外存储器与不扩展I/O口时,可作为准双向输入/输出口。在接有片外存储器或扩展I/O口时,P0口分时复用为低8位地址总线和双向数据总线。P1口:P1.0P1.7统称为P1口,可作为准双向I/O口使用。P2口:P2.0P2.7统称为P2口,一般可作为准双向I/O口使用;在接有片外存储器或扩展I/O口且寻址范围超过256字节时,P2口用作高8位地址总线。P3口:P3.0P3.7统称为P3口。除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。,准双向一般只能用于数字输入输
10、出,输入时为弱上拉状态(约50K上拉),准双向口其特点是在输入数据时,应先把端口数据寄存器置1!,5.8.1 I/O复用p3口第二功能,交通灯实验,红绿灯实验 设东西方向和南北方向均有红黄绿灯,控制规则为:南北绿灯亮10s,黄灯亮3s;红灯亮13s。晶振为12MHZ。 端口分配:东西方向 P1.0 RED P1.1 YELLOW P1.2GREEN南北方向 P1.3 RED P1.4 YELLOW P1.5GREEN,5.9 串行输入输出,图 通信的两种基本方式 (a) 并行通信;(b) 串行通信,异步通信与同步通信 1、异步通信 异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和
11、接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。,5.9.1 串行通信传输方式,5.9.1 串行通信传输方式,图 串行异步传送的字符格式 (a) 字符格式;(b) 有空闲位的字符格式,异步传输方式,在串行异步传送中,通信双方必须事先约定: (1) 字符格式:双方要事先约定字符的编码形式、奇偶校验形式及起始位和停止位的规定。例如用ASCII码通信,有效数据为7位,加一个奇偶校验位、一个起始位和一个停止位共10位。当然停止位也可以大于1位。 (2) 波特率(Baud rate):波特率就是数据的传送速率,即每秒钟传送的二进制位数,单位为位/秒。它与字符的传送速率(字符/秒)之间有
12、以下关系:波特率=一个字符位数字符/秒 要求发送端与接收端的波特率必须一致。,异步串行通信的特点: 1.以字符为单位发送,字符之间的间隔不受限制; 2.由起始位和停止位使收发双方同步; 3.通信的精确格式可以由收发双方选择。 4.发送端和接收端由各自的时钟控制数据的接收和发送。,5.9.1 串行通信传输方式,2、同步通信 同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系。发送方对接收方的同步可以通过两种方法实现。,外同步 自同步,5.9.1 串行通信传输方式
13、(续),同步传输方式,同步通信是由一个起始同步符和若干个数据位以及一个检验字段组成,传输的数据可以以字符为单位,也可以以二进制位为单位,因此同步传输也称为数据流传输。同步通信中一般数据位可达上千位,因此传输效率较高,传输速度较快。如果传输的位数很多,要求收发严格同步,传输中可采用“曼彻斯特”编码(从高到低跳变表示“1“,从低到高跳变表示“0“),数据中隐含时钟信息。,图 同步通信格式,5.9.1 串行通信传输方式 (续),串行通信的传输方向: 1、单工单工是指数据传输仅能沿一个方向,不能实现反向传输。 2、半双工半双工是指数据传输可以沿两个方向,但需要分时进行。 3、全双工全双工是指数据可以同
14、时进行双向传输。,单工 半双工 全双工,5.9.2串行通信传输方式 (物理连接角度),图 串行通信数据传送的三种方式 (a) 单工方式;(b) 半双工方式;(c) 全双工方式,5.10 定时器/计数器,图 定时器/计数器T0、T1的结构框图,对于定时器/计数器来说,不管是独立的定时器芯片还是单片机内的定时器,大都具有以下特点:(1) 定时器/计数器有多种方式,可以是计数方式也可以是定时方式。(2) 定时器/计数器的计数值是可变的,当然计数的最大值是有限的,这取决于计数器的位数。计数的最大值也就限定了定时的最大值。(3) 在到达设定的定时或计数值时发出中断申请(停止计数,程序往下运行),以便实现
15、定时控制。MCS-51单片机内带有两个16位定时器/计数器T0和T1,它们均可作为定时器或计数器使用。,5.10.1 定时器/计数器结构,定时器/计数器的核心是16位加法计数器,图中用特殊功能寄存器TH0、TL0及TH1、TL1表示。TH0、TL0是定时器/计数器0加法计数器的高8位和低8位,TH1、TL1是定时器/计数器1加法计数器的高8位和低8位。作计数器用时,加法计数器对芯片引脚T0(P3.4)或T1(P3.5)上的输入脉冲计数。每输入一个脉冲,加法计数器增加1。加法计数溢出时可向CPU发出中断请求信号。,16位加法器,作定时器用时,加法计数器对内部机器周期脉冲Tcy计数。由于机器周期是
16、定值,所以对Tcy的计数就是定时,如Tcy=1s,计数值100,相当于定时100 s。 加法计数器的初值可以由程序设定,设置的初值不同,计数值或定时时间就不同。,5.11中断,所谓中断是指CPU对系统中或系统外发生的某个事件的一种响应过程,即CPU暂时停止现行程序的执行,而自动转去执行预先安排好的处理该事件的服务子程序。当处理结束后,再返回到被暂停程序的断点处,继续执行原来的程序。实现这种中断功能的硬件系统和软件系统统称为中断系统。,中断系统是计算机的重要组成部分。实时控制、故障自动处理时往往用到中断系统,计算机与外部设备间传送数据及实现人机联系也常常采用中断方式。,5.11.1 中断需解决的
17、问题,中断源:中断请求信号的来源。包括中断请求信号的产生及该信号怎样被CPU有效地识别。中断响应与返回:CPU采集到中断请求信号后,怎样转向特定的中断服务子程序及执行完中断服务子程序怎样返回被中断的程序继续正确地执行。优先级控制:多个中断源情况。中断系统优先级控制所要解决的问题。中断优先级的控制形成了中断嵌套。,5.11.2 中断源,外部中断外部中断是指从单片机外部引脚 INT0、INT1 输入中断请求信号的中断,即外部中断源有两个。输入/输出的中断请求、实时事件的中断请求、掉电和设备故障的中断请求都可以作为外部中断源,从引脚INT0、INT1 输入。外部中断请求INT0、INT1有两种触发方式:电平触发及跳变(边沿)触发。,内部中断内部中断是单片机芯片内部产生的中断。单片机的内部中断有定时器/计数器T0、T1的溢出中断,串行口的发送/接收中断。,5.11.3 中断优先级,中 断 优 先 级,术语,Copyright 2008 版权所有 东软集团,