版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机系统综合设计与实践课件第1页,共191页,2022年,5月20日,18点3分,星期二课程内容单片机原理与应用单片机应用系统(仪表)硬件电路原理及编程单片机应用系统示例任务书及要求第2页,共191页,2022年,5月20日,18点3分,星期二第一章 单片机概述单片机历史和发展单片机应用情况单片机开发第3页,共191页,2022年,5月20日,18点3分,星期二1-1 单片机的发展概况单片机的概念单片机:将微处理器(CPU)、存储器、I/O接口电路和相应实时控制 件集成在一块芯片上,称其为单片微型计算机,简称单片 机。第4页,共191页,2022年,5月20日,18点3分,星期二 单片机的发
2、展历史和发展趋势4位单片机 (1971-1974) 低档8位单片机 (1974-1978) 高档8位单片机 (1978-1982) 16位单片机 (1982-1990) 新一代单片机 (90年代以来)发展趋势: 单片机在集成度、 功能、 速度、 可靠性、 应用领域等全方位向更高水平发展。 第5页,共191页,2022年,5月20日,18点3分,星期二1-2 单片机的应用应用特点体积小:基本功能部件满足要求可靠性高:BUS大多在内部;易采取电磁屏蔽功能强:实时响应速度;I/O直接操作使用方便:硬件设计简单;提供开发工具资料性能价格比高:电路板小;接插件少易产品化:研制周期短第6页,共191页,2
3、022年,5月20日,18点3分,星期二机电一体化:电脑缝纫机智能仪表:测量仪实时控制:汽车家电:(MOTOROLA)网络通信:通信协议集成其中计算机外设:键盘、打印机保健产品:按摩器多机应用应用: 量大面广第7页,共191页,2022年,5月20日,18点3分,星期二1-3 单片机的开发和开发工具一、单片机应用系统开发条件单片机芯片开发工具资料手册第8页,共191页,2022年,5月20日,18点3分,星期二二、单片机应用系统的开发过程系统需求调查;可行性分析;系统方案设计;系统建造;系统调试;系统方案局部修改、再调试;生成正式产品。第9页,共191页,2022年,5月20日,18点3分,星
4、期二三、单片机应用系统设计的基本原则与方法二、一般设计方法确定系统功能与性能确定系统基本结构硬件设计软件设计1)任务确定2) 软件结构设计一、设计原则: 可靠性高 性能价格比高 操作简便 设计周期短第10页,共191页,2022年,5月20日,18点3分,星期二四、单片机应用系统的调试第11页,共191页,2022年,5月20日,18点3分,星期二五、单片机开发系统1、通用型单片机开发系统2、软件模拟开发系统第12页,共191页,2022年,5月20日,18点3分,星期二第二章 MCS51单片机的结构基本组成(内部资源)存储器的配置I/O口的应用功能时序及电路第13页,共191页,2022年,
5、5月20日,18点3分,星期二2-1 MCS - 51单片机的内部结构(8051) 存储器I/O接口CPU第14页,共191页,2022年,5月20日,18点3分,星期二说明:中央处理机CPU (8位) 存储器: 片内数据存储器RAM (128个字节) 片内程序存储器EPROM(4 KB)I/O接口: 4个8位并行口(P0、P1、P2、P3口) 1个串行I/O接口。 2个16位定时器/计数器。 5个中断源二级优先权的中断系统第15页,共191页,2022年,5月20日,18点3分,星期二MCS51系列部分单片机配置一览表 第16页,共191页,2022年,5月20日,18点3分,星期二2-2
6、中央处理器 CPU 中央处理器是单片机内部的核心部件, 它决定了单片机的主要功能特性。 它由运算部件和控制部件两大部分组成。第17页,共191页,2022年,5月20日,18点3分,星期二一、运算器 运算部件是以算术逻辑单元ALU为核心, 加上累加器A、 寄存器B、 暂存器TMP1和TMP2、 程序状态寄存器PSW及专门用于位操作的布尔处理机组成的, 它能实现数据的算术逻辑运算, 位变量处理和数据传送操作。第18页,共191页,2022年,5月20日,18点3分,星期二用户关心算术逻辑单元ALU 2. 累加器ACC(Accumulator) 3. 寄存器B 4. 程序状态字PSW(Progra
7、me State Word)POVRS0RS1F0ACCyD7 D6 D5 D4 D3 D2 D1 D0PSW第19页,共191页,2022年,5月20日,18点3分,星期二二、控制器 控制部件是单片机的神经中枢, 它包括定时和控制电路、 指令寄存器、 译码器以及信息传送控制等部件。 CPU执行指令时, 由程序存储器中读取的指令代码送入指令存储器, 经译码器译码后由定时与控制电路发出相应的控制信号, 完成指令所指定的操作。第20页,共191页,2022年,5月20日,18点3分,星期二MCS-51单片机的存储器结构为哈佛结构,既:程序存储器和数据存储器分开寻址。从物理结构上可分为: 片内、 片
8、外程序存储器 片内、 片外数据存储器 4个部分 仪表中的存储器资源:片内程序存储器和片内数据存储器。 2-3 存储器和特殊功能寄存器 一、MCS51单片机存储器分类及配置第21页,共191页,2022年,5月20日,18点3分,星期二 从寻址空间分布可分为: 程序存储器 内部数据存储器 外部数据存储器 3大部分从功能上可分为: 程序存储器 内部数据存储器 特殊功能寄存器 位地址空间 外部数据存储器 5大部分。第22页,共191页,2022年,5月20日,18点3分,星期二重点重点第23页,共191页,2022年,5月20日,18点3分,星期二二、程序存储器计算机的工作是按照事先编制好的程序命令
9、一条条循序执行的, 程序存储器就是用来存放这些已编好的程序和表格常数, 它由只读存储器ROM或EPROM组成。 程序运行的入口地址 MCS51单片机程序存储器中有复位和中断源共6个固定的入口地址, 用户不能更改。第24页,共191页,2022年,5月20日,18点3分,星期二MCS51单片机复位、 中断入口地址0000H单元开始取指令来执行程序。第25页,共191页,2022年,5月20日,18点3分,星期二三、内部数据存储器 MCS51系列单片机的内部数据存储器由读写存储器RAM组成, 用于存储数据。 内部数据存储器RAM块共分为工作寄存器区、 位寻址区和数据缓冲区3个部分。 第26页,共1
10、91页,2022年,5月20日,18点3分,星期二1、工作寄存器和RAM地址对照表 第27页,共191页,2022年,5月20日,18点3分,星期二2、位寻址区第28页,共191页,2022年,5月20日,18点3分,星期二3、数据缓冲区 30H-7FH是数据缓冲区, 也即用户RAM区, 共80个单元。 用户RAM区又可分为数据区和堆栈区 MCS51单片机堆栈区不是固定的,且堆栈属向上生长型, 为了避开工作寄存器区和位寻址区, 一般设在30H以后的范围内。 堆栈区数据区30H7FH第29页,共191页,2022年,5月20日,18点3分,星期二四、特殊功能寄存器SFR SFR又称为专用寄存器。
11、 它专用于控制、 管理单片机内算术逻辑部件、 并行I/O口锁存器、 串行口数据缓冲器、 定时器/计数器、 中断系统等功能模块的工作。 97H电源控制0B8H中断优先级控制99H串行数据缓冲器0B0H口398H串行控制0A0H口28BH定时器/计数器1(低字节)90H口180H定时器/计数器1(高字节)80H口08AH定时器/计数器0(低字节)83H和82H数据指针8CH定时器/计数器0(高字节)81H堆栈指针88H定时器/计数器控制0D0H程序状态字89H定时器/计数器方式控制0F0HB寄存器0A8H允许中断控制0E0H累加器地址名称地址名称IPP3P2P1P0DPTRSPPSWBACC标识符
12、PCONSBUFSCONTL1TH1TL0TH0TCONTMODIE标识符第30页,共191页,2022年,5月20日,18点3分,星期二说明:PC: 程序地址寄存器(16位),始终指向下一条指令的内存地址。 访问范围:00000FFFFHACC: 累加器(8位),专门存放操作数或运算结果。B : 8位,专门为乘除法而设置的寄存器。SP: 堆栈指针(8位),始终指向堆栈的栈顶位置。 遵循“先进后出”的原则。 DPTR: 数据地址指针(16位),存放程序存储器或外部数据存储器的 地址。可分DPH和DPL两个独立8位寄存器。第31页,共191页,2022年,5月20日,18点3分,星期二程序状态字
13、PSWCACF0RS1RS0OV-PPSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0进位标志位辅助进位标志位用户自定义标志位溢出标志位奇偶标志位寄存器区选择3区112区011区100区00第32页,共191页,2022年,5月20日,18点3分,星期二思考: 访问内部数据存储器与外部数据存储器的区别?1、地址不同。访问内部数据存储器 MOV指令访问外部数据存储器 MOVX指令内部数据存储器的地址为8位(00H-7FH)外部数据存储器的地址为16位(0000H-FFFFH)2、访问内/外部存储器使用的指令不同。第33页,共191页,2022年,5月2
14、0日,18点3分,星期二思考:什么叫哈佛结构?程序存储器用来存放什么?程序运行的入口地址是什么?内部数据存储器分为哪几个部分?位寻址区有多少个位?堆栈指针SP有多少位?堆栈是向(大、小)地址生长?第34页,共191页,2022年,5月20日,18点3分,星期二2-4 输入/输出口(I/O口)四个(P0、P1、P2、P3)双向8位I/O口,共32根I/O口线。每个I/O线均由锁存器,输出电路和输入缓冲器组成。所以每个I/O既可作输入又可作输出;每一条口线可独立用作输入又可用作输出。第35页,共191页,2022年,5月20日,18点3分,星期二 一、I/O口的应用功能P0:系统扩展 一般I/O口
15、(输出时,需接上拉电阻)P1: 专供用户使用的I/O口P2: 系统扩展 通用I/O口P3: 功能口,每位独立定义 通用I/O口红字为仪表中的用法。第36页,共191页,2022年,5月20日,18点3分,星期二二、I/O的负载能力P0可驱动8个LSTTL负载P1-P3可驱动4个LSTTL负载。第37页,共191页,2022年,5月20日,18点3分,星期二三、I/O的特点1. P0口: P0口是一个三态双向口,可作为地址/数据分时复 用口,也可作为通用I/O接口。 第38页,共191页,2022年,5月20日,18点3分,星期二(1)地址/数据分时复用功能 当P0口作为地址/数据分时复用总线时
16、,可分为两种情况:一种是从P0口输出地址或数据,另一种是从P0口输出数据。第39页,共191页,2022年,5月20日,18点3分,星期二(2)通用I/O接口功能R 在输出数据时,由于T1截止,输出级是漏极开路电路,要使1信号正常输出,必须外接上拉电阻。“1”“0”截止 P0口作为通用I/O口使用时,是准双向口。其特点是在输入数据时,应先把口置1(写1),此时锁存器的Q端为0,使输出级的两个场效应管T1、T2均截止,引脚处于悬浮状态,才可作高阻输入。第40页,共191页,2022年,5月20日,18点3分,星期二2. P1口 P1口只有一种通用输入输出I/O接口功能。 不需要外接电阻;但P1口
17、是准双向口,其特点是在输入数据时,应先把口置1(写1)使输出级的场效应管V1截止,引脚处于悬浮状态,才可作高阻输入。第41页,共191页,2022年,5月20日,18点3分,星期二3、P2口 P2口也是一准双向口。 它具有通用I/O接口或高8位地址总线输出两种功能。当作为准双向通用I/O接口使用时, 其工作原理与P1相同。第42页,共191页,2022年,5月20日,18点3分,星期二4、P3口 当P3口作为通用I/O接口时, 第2功能输出线为高电平, 使与非门3的输出取决于口锁存器的状态。 在这种情况下, P3口仍是1个准双向口, 它的工作方式、 负载能力均与P1、 P2口相同。 当P3口作
18、为第2功能使用时,其锁存器Q端必须为高电平, 否则V1管导通, 引脚被箝位在低电平, 无法输入或输出第2功能信号。 当Q端为高电平时, P3口的口线状态就取决于第2功能输出线的状态。 第43页,共191页,2022年,5月20日,18点3分,星期二思考:1、P0口是一个三态双向口,可作为()分时复用口,也可 作为()接口。2、P1口仅具有()功能。3、P2口具有()或()功能。4、P3口具有()或()功能。第44页,共191页,2022年,5月20日,18点3分,星期二2-5 外部引脚说明1主电源引脚 VCC:接+5V VSS:接地2外接晶体引脚 XTAL1、XTAL23输入 / 输出引脚 P
19、0-P3口4控制线(1)ALE/PROG:地址锁存有效信号输出PSEN:片外程序存储器读选通信号RST/VPD:RST即为RESET,VPD为备用电源(4)EA/VPP(31脚):片外程序存储器选用端第45页,共191页,2022年,5月20日,18点3分,星期二 P3口第二功能表第46页,共191页,2022年,5月20日,18点3分,星期二2-6 单片机工作的基本时序 1. 机器周期和指令周期 (1) 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振荡源的周期。 (2) 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后得到的。 (3) 机器周期: 一个机器周
20、期包含 6 个状态周期S1S6, 也就是 12 个时钟周期。 在一个机器周期内, CPU可以完成一个独立的操作。 (4) 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。MCS - 51 系统中, 有单周期指令、双周期指令和四周期指令。 第47页,共191页,2022年,5月20日,18点3分,星期二思考:外接晶振为12 MHz时, MCS51单片机的4个时间周期的具体值为多少?答: 振荡周期=1/12 s; 状态周期=1/6 s; 机器周期=1 s; 指令周期=1-4 s。第48页,共191页,2022年,5月20日,18点3分,星期二2.
21、 MCS - 51 指令的取指/执行时序 (1) 读外部程序ROM时序 第49页,共191页,2022年,5月20日,18点3分,星期二(2) 写外部数据RAM的时序 第50页,共191页,2022年,5月20日,18点3分,星期二3. 复位电路 (b) 开关复位电路 (a)上电复位电路第51页,共191页,2022年,5月20日,18点3分,星期二复位后内部寄存器状态 在RST/VPD端持续给出2个机器周期的高电平就可以完成复位操作。堆栈指针SP=07HP0-P3=FFH其余寄存器均为0第52页,共191页,2022年,5月20日,18点3分,星期二2-7 定时器/计数器一、定时器/计数器T
22、0、T1的结构T1T0T0、T1的控制第53页,共191页,2022年,5月20日,18点3分,星期二说明:两个16位定时器/计数器T0、T1定时器/计数器的工作方式及控制由TMOD寄存器和TCON寄存器完成。第54页,共191页,2022年,5月20日,18点3分,星期二二、基本功能定时功能时,每个机器周期定时器加1。计数功能时,在外部事件相应输入脚(T0和T1)产生负跳变,计数器加1。K1K2可预置初值的加法计数器中断请求功能选择启动控制内部时钟脉冲(定时)TX 外部输入脉冲(计数)溢出信号计数脉冲计数初值第55页,共191页,2022年,5月20日,18点3分,星期二三、方式和控制寄存器
23、1、 定时器/计数器的方式寄存器TMOD C/T=1, 为计数器方式; C/T = 0, 为定时器方式。GATE=1, 外部启动定时器 /计数器; GATE=0, 程序启动定时器 /计数器。 第56页,共191页,2022年,5月20日,18点3分,星期二 M1M0工作方式控制位 T0 分成两个独立的 8 位计数器, T1 在方式 3 时停止工作 31 1自动重装入初值的 8 位计数器 21 016 位定时器/计数器 10 113 位定时器(TH的 8 位和TL的低 5 位) 00 0说 明方式M1 M0 第57页,共191页,2022年,5月20日,18点3分,星期二2、 定时器/计数器控制
24、寄存器TCONIT0IE0IT1IE1TR0TF0TR1TF1与中断有关T0运行控制位: “1”启动T0; “0”关闭T0。由软件进行设置。T0定时器/计数器溢出中断标志位。 当T0计数溢出时,由硬件置位,在允许中断的情况下,向CPU发出中断请求信号,CPU响应中断转向中断服务程序时,由硬件自动将该位清零。第58页,共191页,2022年,5月20日,18点3分,星期二3、定时器/计数器的工作方式(1)方式0( 13位定时/计数器)计数外部脉冲个数:18192(213)定时时间(T=1s):1s 8.19ms第59页,共191页,2022年,5月20日,18点3分,星期二(2)方式1( 16位
25、定时/计数器)16位第60页,共191页,2022年,5月20日,18点3分,星期二(3)方式2(自动恢复初值8位定时/计数器)第61页,共191页,2022年,5月20日,18点3分,星期二(4)方式3(两个 8 位独立计数器)第62页,共191页,2022年,5月20日,18点3分,星期二四、计算时间常数X(初值) 加法计数器是计满溢出时才申请中断, 所以在给计数器赋初值时, 不能直接输入所需的计数值, 而应输入的是计数器计数的最大值与这一计数值的差值。 初值X的计算方法: 计数功能: X=2计数值 定时功能: X=2定时时间/T 其中:方式0:n=13;方式1:n=16;方式2、3 n=
26、8 T=12晶振频率=机器周期 第63页,共191页,2022年,5月20日,18点3分,星期二例 :计算定时1 ms对应的初值, 设单片机晶振频率为 12 MHz,方式1。解: X = M定时时间/T 机器周期=1212 MHz= 1 s 所以: X = 2161ms/1 s =FC17H 第64页,共191页,2022年,5月20日,18点3分,星期二例:若晶振频率为6MHz,试计算MCS-51单片机定时/计数器的最小定时时间和最大定时时间。解:先确定机器周期:机器周期 T=126 MHz= 2 s 计算最小定时时间: 对于定时器的几种工作方式来说,最小定时时间都是一样的,即:X = M定
27、时时间/T Tmin=(M-X)T =12s=2s 计算最大定时时间: 在方式1下的定时时间最长,则最大定时时间为 Tmax= (M-X)T=( 216- 0) 2s =131ms第65页,共191页,2022年,5月20日,18点3分,星期二五、定时器/计数器的初始化定时/计数器在使用之前需要进行初始化。初始化编程包括: 要能正确写入控制字; 能进行计数初值的计算。一般情况下,包括以下几个步骤:(1)确定工作方式,即对TMOD寄存器进行赋值。(2)计算计数初值,并写入寄存器TH0、TL0或TH1、TL1中。(3)根据需要,置位ETx允许T/C中断。(4)置位EA使CPU开中断(需要时)。(5
28、)置位TRx启动计数。第66页,共191页,2022年,5月20日,18点3分,星期二思考题1、MCS-51单片机有几个定时/计数器?2、定时/计数器的核心是1个(加1、减1)计数器,它的输入脉冲有两个来源:一个是( ),另一个是( )。 3、定时/计数器有几种工作方式?如何选择和设定?4、MCS-51单片机定时/计数器在使用之前需要进行初始化,在编程时主要注意两点:第一( );第二( )。第67页,共191页,2022年,5月20日,18点3分,星期二2-8 MCS-51单片机的中断系统一、 MCS-51单片机的中断系统结构IEIPTCON的高4位SCON的低2位第68页,共191页,202
29、2年,5月20日,18点3分,星期二1、5个中断源2个外部中断源信号2个定时器T0、T1溢出中断请求1个串行口数据发送、接收结束中断请求第69页,共191页,2022年,5月20日,18点3分,星期二2、中断请求寄存器(TCON、 SCON中的部分标志)中断请求标志位: TF1、TF0、IE1、IE0、RI 、TI登记各中断源请求信号:=1,有中断请求; =0,无中断请求。CPU响应中断后,TI,RI标志必须软件清零,其余中断标志 自动清零 。外部中断触发方式选择位:IT0、IT1 =1:负边沿触发中断请求;=0:低电平触发中断请求。第70页,共191页,2022年,5月20日,18点3分,星
30、期二3、中断允许控制(IE)EX0ET0EX1ET1ESXXEA (MSB)(LSB)中断允许控制位: =1 开中断;=0 关中断。 总允许开关源允许开关例:允许CPU响应INT0的中断请求SETB EX0 SETB EA第71页,共191页,2022年,5月20日,18点3分,星期二4、2级中断的优先级控制(IP)对于每1个中断源,均可通过对IP的设置来确定其优先等级。置1为高优先级,清0为低优先级。PX0PT0PX1PT1PSXXX(MSB)(LSB)同级的中断优先级顺序为:外部中断0 T0中断 外部中断1 T1中断 串行口中断高级 低级 第72页,共191页,2022年,5月20日,18
31、点3分,星期二例如, 某软件中对寄存器IE、 IP设置如下: MOV IE, 8FH MOV IP, 06H 则此时该系统中的中断优先次序为什么? 答: 1、除串口中断禁止外,其余均允许。 1111ESXX1中断允许控制位: =1 开中断;=0 关中断。 2、允许中断源的中断优先次序为: T0 INT1 INT0 T1 高级别 低级别01100XXXPX0PT0PX1PT1PSXXX第73页,共191页,2022年,5月20日,18点3分,星期二二、中断响应的条件、过程1.中断响应的条件 单片机响应中断的条件为中断源有请求(中断允许寄存器IE相应位置1),且CPU开中断(即EA=1)。2.中断
32、响应过程 单片机一旦响应中断,自动转到各中断源对应的中断服务程序的入口地址执行中断服务程序。第74页,共191页,2022年,5月20日,18点3分,星期二 各中断源中断服务程序的入口地址中断源入口地址外部中断00003HT0中断000BH外部中断10013HT1中断001BH串行口中断0023H3、中断返回中断返回指令: RETI= RET指令 + 通知CPU中断服务已结束。第75页,共191页,2022年,5月20日,18点3分,星期二思考题1、MCS-51单片机的中断源有几个?分别是什么?各中断源所对应的中断服务程序的入口地址是什么?2、寄存器IE、IP和TCON的全称是什么?作用是什么
33、?第76页,共191页,2022年,5月20日,18点3分,星期二2-9 MCS-51单片机的串行口一、MCS-51串行口的结构 发送器接收器第77页,共191页,2022年,5月20日,18点3分,星期二说明:1、 MCS-51单片机内部有1个功能很强的全双工串行口。2、发送器:并串数据格式转换,添加标识位和校验位,一帧数据发送结束,设置发送结束标志,申请中断。3、接收器:串并数据格式转换,删除标识位和校验位,保存有效数据,设置接收结束标志,申请中断。4、控制器:接收编程命令和控制参数,设置工作方式:同步/异步、字符格式、波特率、校验方式、数据位与同步时钟比例等。5、串行口数据缓冲器SBUF
34、 SBUF是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据。第78页,共191页,2022年,5月20日,18点3分,星期二二、串行口控制1、串行口控制寄存器SCON RI TIRB8TB8RENSM2SM1SM0 D7 D6 D5 D4 D3 D2 D1 D0 SM0、SM1:串行口工作方式选择位。SM2:多机控制位,用于多机通讯。REN:允许接收控制位,REN=1,允许接收;REN=0,禁止接收。TB8:发送的第9位数据位,可用作校验位和地址/数据标识位。RB8:接收的第9位数据位或停止位。TI:发送中断标志,发送一帧结束,TI=1,必须软件清零。RI:接收中断标志,接收一帧结束
35、,RI=1,必须软件清零。第79页,共191页,2022年,5月20日,18点3分,星期二2、 电源控制寄存器PCONSMODGF1GF0PDIDL D7 D6 D5 D4 D3 D2 D1 D0 PCON的最高位SMOD是串行口波特率系数控制位。SMOD=1时,波特率增大一倍。其余各位与串行口无关。第80页,共191页,2022年,5月20日,18点3分,星期二三、串行接口的工作方式第81页,共191页,2022年,5月20日,18点3分,星期二1、方式0为同步移位寄存器方式,用于扩展并行I/O接口,波特率是固定的。(1) 方式 0 输出8051第82页,共191页,2022年,5月20日,
36、18点3分,星期二(1) 方式 0 输入第83页,共191页,2022年,5月20日,18点3分,星期二2、方式1、2、3共性问题写入SBUF采样(a) 发送时序图TXD数据输出TID0D1D2D3D4D5D6D7停止位起始位RXD输入数据(b) 接收时序图D0D1D2D3D4D5D6D7停止位起始位RI检测负跳变RXD:接收数据端。 TXD:发送数据端。发送:写入SBUF,同时启动发送,一帧发送结束,TI=1。 接收:REN=1,允许接收。将接收数据装入SBUF,并使RI=1。第84页,共191页,2022年,5月20日,18点3分,星期二3、方式1、2、3差别数据位不同。 波特率可变、固定
37、。 方式1、3波特率:B=(2SMOD/32)T1溢出率。 方式2波特率: B=(2SMOD /64)fosc第85页,共191页,2022年,5月20日,18点3分,星期二4、波特率的选择第86页,共191页,2022年,5月20日,18点3分,星期二思考题:51系列单片机主要有哪些部分组成?各自作用是什么?第87页,共191页,2022年,5月20日,18点3分,星期二第3章 MCS - 51单片机指令系统 寻址方式 指令系统 第88页,共191页,2022年,5月20日,18点3分,星期二3-1 MCS-51指令格式及寻址方式 一、汇编语言指令格式1.标号: 指令的符号地址2.操作码:指
38、明指令功能。3.操作数:指令操作对象 (立即数、寄存器、存储器)4.注释行:说明指令在程序中的作用。 操作码和操作数是指令主体。标号:操作码 操作数1,操作数2 ;注释第89页,共191页,2022年,5月20日,18点3分,星期二二、寻址方式 寻址方式, 就是寻找操作数地址的方式。 寻址方式的多少是反映指令系统优劣的主要指标之一。 在 MCS -51单片机指令系统中, 有以下7种寻址方式: (1) 立即寻址; (2) 直接寻址; (3) 寄存器寻址; (4) 寄存器间接寻址; (5) 基址寄存器加变址寄存器间接寻址; (6) 相对寻址; (7) 位寻址。 第90页,共191页,2022年,5
39、月20日,18点3分,星期二1、立即寻址 立即寻址方式是指操作数包含在指令字节中。 跟在指令操作码后面的数就是参加运算的数, 该操作数称为立即数。 立即数有一字节和二字节两种。例如: MOV A, 3AH;将立即数3AH传送到累加器A中 MOV DPTR, 0DFFFH“#”表示为立即数第91页,共191页,2022年,5月20日,18点3分,星期二2、直接寻址 指令中直接给出操作数所在的存储器地址,以供取数或存数的寻址方式称为直接寻址。 例: MOV A,40H ;把片内RAM地址为40H单元的内容送到A中。直接寻址方式中可以访问 3 种存储器空间: (1) 内部数据存储器的低 128 个字
40、节单元(00H7FH); (2) 特殊功能寄存器; (3) 位地址空间。 第92页,共191页,2022年,5月20日,18点3分,星期二3、寄存器寻址 在该寻址方式中, 参加操作的数存放在寄存器里。 寄存器包括8个工作寄存器R0R7, 累加器A, 寄存器B、数据指针DPTR和布尔处理器的位累加器C。例: MOVA,R0 ;把寄存器R0中的内容传送到累加器A中第93页,共191页,2022年,5月20日,18点3分,星期二4、寄存器间接寻址 在这种寻址方式中, 寄存器的内容为操作数的地址。例: MOV A,R0 ;将以工作寄存器R0中的内容为地址的 片内RAM单元的数据传送到A中去注意: 寄存
41、器间接寻址只能使用寄存器R0、R1作为地址指针,寻址内部RAM区的数据。 为间址符第94页,共191页,2022年,5月20日,18点3分,星期二5、基址加变址寻址 这种寻址方式用于访问程序存储器中的数据表格, 它以基址寄存器DPTR或PC的内容为基本地址, 加上变址寄存器A的内容作为操作数的地址。例如: MOVC A, DPTR+A 第95页,共191页,2022年,5月20日,18点3分,星期二6、位寻址 位寻址是在位操作指令中直接给出位操作数的地址,可以对片内RAM中的128位和特殊功能寄存器SFR中的93位进行寻址。例如: SETB PSW.3 ; (PSW.3)1 比较:MOV C,
42、40H;C 40HMOV A,40H;A 40H位地址字节地址第96页,共191页,2022年,5月20日,18点3分,星期二7、相对寻址 相对寻址是以当前程序计数器PC值加上指令规定的偏移量rel , 而构成实际操作数地址的寻址方法。 它用于访问程序存储器, 常出现在相对转移指令中。 目的地址 = 当前PC值 + rel 第97页,共191页,2022年,5月20日,18点3分,星期二 7 种寻址方式及使用空间 第98页,共191页,2022年,5月20日,18点3分,星期二三、指令分类 按指令的功能, MCS-51 指令系统可分为下列 5 类,共计111条指令: (1) 数据传送;(2)
43、算术运算;(3) 逻辑运算;(4) 位操作;(5) 控制转移。 第99页,共191页,2022年,5月20日,18点3分,星期二四、符号的约定意义Rn: 当前选定的寄存器区中的 8 个工作寄存器R0-R7, n=0-7。 Ri: 当前选定的寄存器区中的 2 个寄存器R0、 R1, i=0、1。Direct: 8位内部RAM单元的地址(00H-7FH)或特殊功能寄存器地址。data:指令中的 8 位常数。 data16:指令中的 16 位常数。 Addr16: 16 位的目的地址, 用于LJMP, LCALL指令。Addr11: 11位的目的地址, 用于AJMP, ACALL指令。Rel: 8
44、位带符号的偏移量字节, 用于所有条件转移指令中。 Bit: 内部数据RAM或特殊功能寄存器中的可直接寻址位。第100页,共191页,2022年,5月20日,18点3分,星期二3-2 数据传送类指令 传送类指令不影响PSW(除P位)。第101页,共191页,2022年,5月20日,18点3分,星期二数据传送类指令一览表第102页,共191页,2022年,5月20日,18点3分,星期二数据传送类指令一览表第103页,共191页,2022年,5月20日,18点3分,星期二例:顺序执行下列指令序列,求每一步执行结果。MOV A,#30HMOV 4FH,AMOV R0,#20HMOV R0,4FHMOV
45、 21H,20H;A= 30H;(4FH)= 30H;R0= 20H;(20H)= 30H;(21H)= 30H解2: MOV R0,#60H MOV A,R0解1: MOV A,60H例:用两种寻址方式将片内RAM 60H单元的数据传送给累加器A。第104页,共191页,2022年,5月20日,18点3分,星期二 例:若在外部程序存储器中TAB单元开始依次存放0-9的平方值,数据指针DPTR=3A00H,用查表指令取得2003H单元的数据后,要求保持DPTR中的内容不变。ORG2000HTAB:DB 00,01,04,09,81H;平方表MOV A,#03H;A03HPUSH DPH;保护D
46、PTR高8位入栈PUSH DPL;保护DPTR低8位入栈MOV DPTR,#TAB;确定表首地址(基地址)MOVC A,A+DPTR;A(TAB+03H)POP DPL ;弹出DPTR低位POP DPH ;弹出DPTR高位执行结果:A09H,DPTR=3A00H。第105页,共191页,2022年,5月20日,18点3分,星期二例:内部RAM 2AH和2BH单元中存放的ASCII码, 转换为压缩的BCD码存放在20H单元中。 MOVA,#0;A=0MOVR1, #2BH; R1=2BHMOVR0,#2AH ; R0=2AHXCHDA, R1;A=05HSWAP A ;A=50HXCHDA, R
47、0;A=58HXCHA, 20H ;(20H)=58H2BH35H2AH38HXX20HXX58H第106页,共191页,2022年,5月20日,18点3分,星期二3-3 算术运算类指令 一、 加、减法指令第107页,共191页,2022年,5月20日,18点3分,星期二影响相应标志位第108页,共191页,2022年,5月20日,18点3分,星期二例:设双字节数 X 存在片内RAM 41H、40H单元,Y存在42H、43H单元,编程求 Z=X+Y,并存入片内RAM单元44H、45H、46H。ADDS:MOV A,40HADD A,42HMOV 44H,AMOV A,41HADDC A,43H
48、MOV 45H,AMOV A,#0ADDC A,#0MOV 46H,ARET;取被加数低字节;加上加数低字节;保存和的低字节;取被加数高字节;加上加数高字节;保存和的高字节;求高字节进位;子程序结束第109页,共191页,2022年,5月20日,18点3分,星期二二、十进制调整指令和乘、除法指令DA A ; 对A寄存器加6调整例:MOV A, 36HADD A, 45HDA A 0 0 1 1 0 1 1 0 360 1 0 0 0 1 0 1 450 1 1 1 1 0 1 1 7B0 0 0 0 0 1 1 0 06+1 0 0 0 0 0 0 1 81DA A加6调整第110页,共191
49、页,2022年,5月20日,18点3分,星期二MUL AB ; BA=AB 若乘积大于FFH,则溢出标志OV置1,否则OV清零。乘法指令执行后进位标志CY总是零,即CY=0。DIV AB ; AAB之商,BAB之余数 进位标志位CY和溢出标志位OV均被清零。若B中的内容为0时,溢出标志OV被置1,即OV=1,而CY仍为0。第111页,共191页,2022年,5月20日,18点3分,星期二例: 利用除法指令把累加器A中的8位二进制数转换为BCD数, 并以压缩形式存放在内部RAM区M1、 M2单元中。MOV B, 64H ; 除数100 送BDIV AB ; 得百位数 MOV M1, A ; 百位
50、数存于M1中MOV A, 0AH ; 取除数10 XCH A, B ; 上述余数与除数交换DIV AB ; 得十位数和个位数SWAP A ; 十位数存于A的高4位ADD A, B ; 组成压缩BCD数MOV M2, A ; 十、 个位压缩BCD数存M2 若上述程序执行前: A =A8H (168), 则执行后: (M1)=01H, (M2)=68H。第112页,共191页,2022年,5月20日,18点3分,星期二3-4 逻辑运算及移位类指令第113页,共191页,2022年,5月20日,18点3分,星期二逻辑操作指令表第114页,共191页,2022年,5月20日,18点3分,星期二第115
51、页,共191页,2022年,5月20日,18点3分,星期二例: A=01B,表示随机状态,为1或0,执行下述一组指令执行后A的值如何? XRL A,#0C0H;将累加器A的内容D7、D6取反 ORL A,#03H;将累加器A的内容D1、D0置1ANL A,#0E7H;将累加器A的内容D4、D3清0 解 :执行上述指令后,A=100011B。思考:如何将累加器A中的数据高4位清0,低位不变? 如何将寄存器R2中的数据奇数位取反,偶数位不变?第116页,共191页,2022年,5月20日,18点3分,星期二例: 设A=43H, CY=0, 则执行指令: RL A ; A=86H, CY=0 RLC
52、 A ; A=0CH, CY=1RR A ; A=06H, CY=1 RRC A ; A=83H, CY=0 第117页,共191页,2022年,5月20日,18点3分,星期二3-5 控制转移类指令一、无条件转移指令第118页,共191页,2022年,5月20日,18点3分,星期二二、条件转移指令第119页,共191页,2022年,5月20日,18点3分,星期二例: 将片外RAM首地址为DATA1的一个数据块传送到片内RAM首地址为DATA2的存储区中,当数据块中有0时停止传送。MOV R0,#DATA1 ;R0作为外部数据块的地址指针MOV R1,#DATA2 ;R1作为内部数据块的地址指针
53、LOOP: MOVX A,R0 ;取外部RAM数据送入AJZ HERE ;数据为零则终止传送 MOV R1,A ;数据传送至内部RAM 单元 INC R0 ;修改指针,指向下一数据地址 INC R1 SJMP LOOP ;循环取数HERE: MOV R7,#0 第120页,共191页,2022年,5月20日,18点3分,星期二例: 当从P1口输入数据为01H 时,程序继续执行,否则等待,直到P1口出现01H。 MOV A,#01H ;立即数01H送AWAIT: CJNE A,P1,WAIT ;P101H,则等待 MOV R0,#2 .第121页,共191页,2022年,5月20日,18点3分,
54、星期二例 : 将内部RAM中从DATA单元开始的 10 个无符号数相加, 相加结果送SUM 单元保存。设相加结果不超过8位二进制数, 则相应的程序如下: 解: MOV R0, 0AH ; 给 R0 置计数器初值 MOV R1, DATA ; 数据块首址送R1 CLR A ; A清零LOOP: ADD A, R1 ; 加一个数 INC R1 ; 修改地址, 指向下一个数 DJNZ R0, LOOP ; R0 减 1, 不为零循环 MOV SUM, A ; 存 10 个数相加和第122页,共191页,2022年,5月20日,18点3分,星期二三、子程序调用与返回指令addr11第123页,共191
55、页,2022年,5月20日,18点3分,星期二 (1) RET 指令必须作子程序的最后一条指令;RETI指令必须作中断服务程序的最后一条指令。 (2) RET指令只能恢复返回地址RETI指令除恢复断点地址外,还恢复CPU响应中断时硬件自动保护的现场信息。执行RETI指令后,将清除中断响应时所置位的优先级状态触发器,使得已申请的同级或低级中断申请可以响应。第124页,共191页,2022年,5月20日,18点3分,星期二3-6布尔操作类指令 MCS-51在硬件上设置了一个独立的布尔处理器也称为位处理机有自己相应的累加器,即进位标志位CY。有自己的存储器空间,即内部RAM的位寻址区的128位和特殊
56、功能寄存器SFR中的可位寻址的寄存器中93位。第125页,共191页,2022年,5月20日,18点3分,星期二第126页,共191页,2022年,5月20日,18点3分,星期二例:将位地址20H的一位数传送到位地址30H中:MOV C,20H MOV 30H,CXX第127页,共191页,2022年,5月20日,18点3分,星期二例:使仪表蜂鸣器间断发声的程序。 N1:CLR P2.3;BEEP响 CALLDELAY1;延时 SETB P2.3;BEEP不响 CALLDELAY2;延时SJMPN1第128页,共191页,2022年,5月20日,18点3分,星期二影响标志位的指令第129页,共
57、191页,2022年,5月20日,18点3分,星期二第4章 MCS-51汇编语言程序设计伪指令 汇编语言程序设计 第130页,共191页,2022年,5月20日,18点3分,星期二4.1 伪 指 令 一、 汇编起始指令 ORG 指令格式: ORG nn 功能: 指明后面的程序或数据块的起始地址。二、等值指令EQU 指令格式: 字符名称 EQU 数字或汇编符号 功能: 使指令中的字符名称等价于给定的数字或汇编符号。三、 定义字节指令DB 指令格式: 标号: DB 8位二进制数表 功能: 把 8 位二进制数表依次存入从标号开始的连续的存储单元中。四、 汇编结束指令END 指令格式: 标号: END
58、 地址或标号第131页,共191页,2022年,5月20日,18点3分,星期二例:ORG 0000H SJMPMAIN ORG 0030H MAIN:MOV SP, 60H MOV R0, 2FH MOV R2, 0FFHORG伪指令说明其后面程序的目标代码在存储器中存放的起始地址。0000H0030H程序存储器X5X6X3X4X1X2第132页,共191页,2022年,5月20日,18点3分,星期二4-2 汇编语言程序设计 一、简单程序设计 例: 设内部RAM 40H,41H单元中分别存放着 8 位二进制数, 要求取出两个单元中的低半字节, 并成一个字节后, 存入 50H单元中。 MOV R
59、1, 40H ; 设置R1为数据指针MOV A, R1 ; 取出第一个单元中的内容ANL A, 0FH ; 取第一个数的低半字节SWAP A ; 移至高半字节INC R1 ; 修改数据指针XCH A, R1 ; 取第二个单元中的内容ANL A, 0FH ; 取第二个数的低半字节ORL A, R1 ; 拼字MOV 50H, A ; 存放结果RET 第133页,共191页,2022年,5月20日,18点3分,星期二4-3 分支程序设计 例 : x, y均为8位二进制数, 设 x存 入A, y存入R1, 求解: 第134页,共191页,2022年,5月20日,18点3分,星期二 START: CJN
60、E A, 00H, SUL1 ; X 0 则转移SUL1 MOV R1, 00H ;X = 0, R1(Y) 0 SJMP SUL2 SUL1: JB ACC.7,NEG ; 两数不等, 若X 0, R1(Y) 01H SJMP SUL2 NEG: MOV R1, 0FFH ; XB 转 NEXT,否则 MOV B,A ;保存较小值 SJMP NEXTDONE: 注意:若-1条件不出现程序将进入死循环。第138页,共191页,2022年,5月20日,18点3分,星期二例: 设计 100 ms延时程序。 解: 计算机执行一条指令需要一定的时间, 由一些指令组成一段程序, 并反复循环执行, 利用计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六年级上册《大瀑布的葬礼》说课稿
- 企业渠道经营销售工作总结1
- 六年级毕业备考方案
- 体育学科工作总结十篇
- 免疫规划工作参考计划范文5篇
- 企业管理顾问协议
- 创办休闲馆的商业计划
- 六年级英语试卷2 公开课教学设计
- 2026 自闭症生活自理培养课件
- 2026 学龄前自闭症教师干预自理课件
- 二元一次方程组竞赛题集
- 职业生涯管理规定
- 上海中大班学习活动主题内容与要求
- 中国传统文化及其当代价值
- 12J3-1 天津市建筑标准设计图集(2012版)外墙外保温
- 渡槽拆除方案终极
- GB/T 7470-1987水质铅的测定双硫腙分光光度法
- 农村违法占地建房问题课件
- 印制电路板(PCB)的设计与制作课件
- DB33-T 2350-2021数字化改革术语定义
- 广告效果研究方法课件
评论
0/150
提交评论