《单片机系统设计》PPT课件.ppt_第1页
《单片机系统设计》PPT课件.ppt_第2页
《单片机系统设计》PPT课件.ppt_第3页
《单片机系统设计》PPT课件.ppt_第4页
《单片机系统设计》PPT课件.ppt_第5页
已阅读5页,还剩325页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机系统设计技术 主讲教师:栗 华 山东大学信息科学与工程学院 大学生电子设计竞赛培训 1 单片机系统设计的重要性:单片机系统设计的重要性: 在工业测、控领域中,单片机作为智能测 控系统的“大脑”,占据了核心位置的地位。在 电子设计竞赛中,往往设计的对象也都是智能 测控系统,自然,单片机系统的设计也就具有 成了系统设计中一个至关重要的组成部分。 2 在前期在前期单片机原理与应用单片机原理与应用课程的基础上课程的基础上 ,扩展介绍利用单片机扩展介绍利用单片机这一智能单元来设计一个智这一智能单元来设计一个智 能电子系统时所需要能电子系统时所需要的各种接口知识、单元知识、的各种接口知识、单元知识、 和系统实现时所需要的各种系统知识和系统实现时所需要的各种系统知识 ,使大家不使大家不 仅学习并理解单片机,更要学会如何使用单片机来仅学习并理解单片机,更要学会如何使用单片机来 构建我们自己的应用系统构建我们自己的应用系统,让单片机按照我们的意,让单片机按照我们的意 图来为我们服务。从而,为大家参加电子设计大赛图来为我们服务。从而,为大家参加电子设计大赛 ,在规定的时间内完成智能电子系统的设计与实现,在规定的时间内完成智能电子系统的设计与实现 储备足够的经验知识和应用技能储备足够的经验知识和应用技能 ,最终能够在电,最终能够在电 子设计大赛中取得良好的成绩,为以后的职业生涯子设计大赛中取得良好的成绩,为以后的职业生涯 也能够奠定良好的基础。也能够奠定良好的基础。 培训目的:培训目的: 3 (1 1 )单片机基本知识的回顾)单片机基本知识的回顾,重点是回顾单 片机的内部组成结构、特点以及在应用单片机的这 些内部构件时应该注意的问题。 (2 2 )单片机有关接口设计方法及常用接口芯)单片机有关接口设计方法及常用接口芯 片介绍片介绍,从系统设计的角度出发,以功能实现为依 据,分类介绍一些常用的接口设计方法。 (3 3 )单片机系统设计有关技术)单片机系统设计有关技术,从系统实现 的角度,介绍系统设计时应该考虑的一些问题,为 了使系统能够长期可靠地运行应该采取哪些技术。 培训的内容:培训的内容: 4 第一章 单片机应用系统设计基础 一、综述一、综述 1 1、单片机系统设计的内容、单片机系统设计的内容 智能 应用系统的设计一般包括单片机系统设计单片机系统设计、接口接口 设计设计和多种类型的辅助电路多种类型的辅助电路(如:模拟信号调理电路、功率 驱动电路、电源电路等)设计内容。而单片机系统设计往往 是其中最主要、最复杂的设计部分。 5 2 2、单片机的定义与特点、单片机的定义与特点 单片机全称为单片微型计算机(Single Chip Microcomputer),又称微控制论器(Micro-Controller Unit )或嵌入式控制器(Embedded Controller)。它是将传统计 算机的各种基本组成部件(如:CPU、ROM、RAM、并行 I/O口、串行I/O口、定时计数器、中断控制、系统时钟和系 统总线控制等)微型化并集成到一块芯片上的微型计算机。 单片机有体积小、集成度高、功能强、功耗低、性能价单片机有体积小、集成度高、功能强、功耗低、性能价 格比高、易于实现各种智能系统格比高、易于实现各种智能系统。 6 3、单片机的种类单片机的种类 按总线宽度分成4位单片机、8位单片机、16位单片机、 32位单片机。 (1)4位单片机:主要用于各种小型智能电子设备如: 计算器、遥控器、玩具控制、电子钟、简单游戏机、游戏杆 等。目前主要集中在日本的一些厂家如:OKI的 MSM64164C、MSM64481、NEC的75006x系列、EPSON的 SMC62系列等。 (2)8位单片机:用于各种中等智能电子设备,产品种 类最多、功能较强、性价比最高、应用最广泛。8位单片机 分成两大类:一类是MCS-51系列及其兼容机,另一类是非 MCS-51系列。 7 (a)MCS51系列单片机:特点是结构简单、内部资源比较 丰富,易学易用、资料齐全、应用广泛,是一种传统的单片 机。 有: Intel的8031、8051、8751,ATMEL的89C5x系列 和89S5x等,WINBOND的W77E5x、W78E5x,PHILIPS的 P87LPC7x、P89C5x、P87C5x,ST公司的uPSD系列等。 (b)非MCS51系列单片机:和MCS-51不兼容,有各自的 特点,如: ATMEL公司的AVR单片机(常用的是:Atmega32、 Atmega64、Atmega128等,特点是:芯片上拥有芯片上拥有FlashFlash存储存储 器器, ,一般不用外部扩展程序存储器一般不用外部扩展程序存储器. . 片内有片内有EEPROMEEPROM也方便也方便 了数据的保存。采用增强的了数据的保存。采用增强的RISCRISC结构结构, ,使其具有高速处理能使其具有高速处理能 力力, ,在一个时钟周期内可执行复杂的指令在一个时钟周期内可执行复杂的指令, ,每每MHzMHz可实现可实现 1MIPS1MIPS的处理能力的处理能力. . 另外还有一些丰富的外部接口如另外还有一些丰富的外部接口如A/DA/D、 PWMPWM、SPISPI等)等)。 8 Motorola单片机: 从M6800开始,开发了广泛的品种,4位,8 位,16位32位的单片机, 8位机M6805,M68HC05系列,8位增强 型M68HC11,M68HC12 , 16位机M68HC16, 32位机M683XX. Motorola单片机的特点之一是在同样的速度下所用的时钟频在同样的速度下所用的时钟频 率较率较IntelIntel类单片机低得多类单片机低得多, ,因而使得高频噪声低因而使得高频噪声低, ,抗干扰能力强抗干扰能力强 , ,更适合于工控领域及恶劣的环境更适合于工控领域及恶劣的环境 . Motorola单片机在家电、 汽车电子和通信产品领域应用较广。 9 MicroChip单片机: MicroChip单片机的主要产品是PIC 16C系列和17C系列8位单片机,CPUCPU采用采用RISCRISC结构结构,分别仅有 33,35,58条指令,采用采用HarvardHarvard双总线结构双总线结构,运行速度快,低工作 低工作 电压电压, ,低功耗低功耗, ,较大的输入输出直接驱动能力较大的输入输出直接驱动能力, ,价格低价格低, ,小体积小体积. . 适适 用于用量大用于用量大, ,档次低档次低, ,价格敏感的产品价格敏感的产品.在自动化设备,智能仪器 仪表, 工业控制等领域,PIC系列单片机占据了主导地位. (3)16位单片机:总线宽度为16位,CPU执行速度和效率都 比8位单片机都有很大提高。目前以Intel的MCS-96/196系列 、TITI公司的公司的MSP430MSP430系列 系列、Motorola公司的68HC11为主。主 要用于工业控制、智能仪器仪表、便携式电子设备便携式电子设备、智能IC 卡读写系统等领域。 10 (4)32位单片机:32位单片机是单片机市场的发展趋势,其 特点是资源和接口更丰富、内部采用特点是资源和接口更丰富、内部采用RISCRISC架构和哈佛总线结架构和哈佛总线结 构,构,CPUCPU处理速度和处理能力更强、支持基于操作系统的开处理速度和处理能力更强、支持基于操作系统的开 发,因此能够实现更加复杂的处理任务、人机界面也更灵活发,因此能够实现更加复杂的处理任务、人机界面也更灵活 。ATMEL、MOTOROLA、SAMSUNG、HITACH等厂家 都有32位单片机产品,这些产品一般以ARM嵌入式处理器内 核为基础(ARM公司自己并不生产嵌入式处理器,而是研究 和发展嵌入式处理器的内核知识产权核,即IP核,然后将IP 核的生产和使用许可协议卖给各IC生产厂家),所以32位单 片机一般都是指ARM系统。 11 二、MCS-51单片机的内部资源 系列 片内存储储器(字节节) 定时时器 计计数器 并行 I/O 串行 I/O 中 断 源 片内ROM 片内 RAM 无有ROM有EPROM Intel MCS-51 子系列 8031 80C31 8051 80C51 (4K字节节) 8751 87C51 (4K字节节) 128 字节节 2x164x8位15 Intel MCS-52 子系列 8032 80C32 8052 80C52 (8K字节节) 8752 87C52 (8K字节节) 256 字节节 3x164x8位16 ATEML 89C系列 (常用型) 1051(1K)/ 2051(2K)/ 4051(4K) (20条引脚DIP封装) 12821515 89C51(4K)/ 89C52(8K)89C51(4K)/ 89C52(8K) (4040条引脚条引脚DIPDIP封装)封装) 128/128/ 256256 2/32/33232 1 1 5/65/6 12 ATMEL 51单片机选型指南 DevicesFlash (KBs) IAPISP EEPROM (Kbytes ) RAM (Bytes ) Fmax (MHz) Vcc I/O Pins UART 16B- Timers WDTSPI (V) AT89C2051 2-12824 2.7- 6.0 1512- AT89C40514-12824 2.7- 6.0 1512- AT89S51 4-YES-12833 4.0- 5.5 3212Yes- AT89S52 8-YES-25633 4.0- 5.5 3213Yes- AT89S8253 12-YES225624 2.7- 5.5 3213YesYes AT89C51ED264 UAR T API2204860 2.7- 5.5 3213YesYes AT89C51RD264 UAR T API-204860 2.7- 5.5 3213YesYes 13 1、程序存储器配置 三、单片机的存储器配置 (一)程序存储器 14 2、与程序存储器配置有关的伪指令: 伪指令:指的是汇编程序用的一些控制信息的指令,它们只 能被汇编程序所识别,不是单片机的CPU可执行的指令。 伪指令主要用来指定程序位置,定义一个数据块,为中间运 算结果保留一部分存储空间,或者定义一些变量的别名以及表 示程序的结束等。 定位伪指令ORG 格式: 标号: ORG m mm是一个是一个1616位二进制数,代表地址。位二进制数,代表地址。 功能:它放在一段程序或数据块的前面,说明紧跟其后的它放在一段程序或数据块的前面,说明紧跟其后的 程序段或数据块的起始地址就是指令中的程序段或数据块的起始地址就是指令中的1616位地址。位地址。 15 例如: ORG 0000H AJMP MAIN ORG 0003H AJMP INT0_S ORG 000BH AJMP T0_S ORG 0013H AJMP INT1_S ORG 001BH AJMP T1_S ORG 0023H AJMP SI_S ORG 0100H ;Main program MAIN: MOV P1,#0FEH AJMP $ INT0_S: RETI16 3、与常数表格定义有关的伪指令: 功能:在程序存储器从标号开始的连续单元 开始定义一些字节数据单元,用来存放指令 中指出的这些常数和字符。 例如: ORG 2000H TAB1: DB 30H , 8AH , 7FH , 73 DB 5 , A , BCD 30H 8AH 7FH 49H 35H 41H 42H 43H 44H 2000H 2001H 2002H 2003H 2004H 2005H 2006H 2007H 2008H (1)定义字节伪指令DB(Define Byte) 格式:标号: DB X1,X2, ,Xn Xi:单字节二进制、十进制、十六进制数,或以 括 起来的字符串,数据符号。 17 (2)、定义字伪指令DW(Define Word) 格式:标号: DW Y1,Y2,Yn Yn:双字节二进制、十进制、十六进制数。 功能:同DB,不同的是为16位数据。执行汇编时,机器 会自动按高8位先存入,低8位后存入的格式排列。 例如: ORG 1500H TAB2: DW 1234H , 80H 12H 34H 00H 80H 1500H 1501H 1502H 1503H 18 1、数据存储器配置 (二)数据存储器 19 2、内部存储器的分布 20 (1)工作寄存器区 00H 20H 2FH 7FH 1FH 30H 80H FFH 52子系列才有 的RAM区 普通RAM区 位寻址区 工作寄存器区R0 R2 R1 R3 R4 R5 R6 R707H 02H 01H 00H 06H 04H 05H 03H 08H 1FH 工作寄存器区3 工作寄存器区2 工作寄存器区1 工作寄存器区0 0FH 10H 17H 18H 21 片内RAM前32个单元(00H1FH)是工作寄存器 区 (由PSW中的RS1,RS0决定) CYACF0RS0OVPRS1 PSW.7PSW.0PSW.4 PSW.3 例如: SETB PSW.3 ; (PSW.3) 1 CLR PSW.4 ; (PSW.4) 0 其功能是将PSW中的RS0置为1, RS1清0,选择当前工作 寄存器区为1区 。 22 00H 20H 2FH 7FH 1FH 30H 80H FFH 52子系列才有 的RAM区 普通RAM区 位寻址区 工作寄存器区 27H 22H 21H 20H 26H 24H 25H 23H 28H 2FH 单元地址 07 06 05 04 03 02 01 00 0F 0E 0D 0C 0B 0A 09 08 17 16 15 14 13 12 11 10 1F 1E 1D 1C 1B 1A 19 18 27 26 25 24 23 22 21 20 2F 2E 2D 2C 2B 2A 29 28 37 36 35 34 33 32 31 30 3F 3E 3D 3C 3B 3A 39 38 47 46 45 44 43 42 41 40 7F 7E 7D 7C 7B 7A 79 78 位地址 总共 128 个可 按位 寻址 的位 片内RAM中有128个可按位寻址的位。 位地址:00H7FH 分布在:20H2FH单元 (2)位寻址区 23 位操作又称布尔操作,它是以位为单位进行的各种操作。 MCS-51单片机内部设置了一个位处理器(布尔处理机),它 有自己的累加器C(PSW中的进位标志位CY),自己的存储器 (即:内部RAM中的20H2FH共128个位,以及特殊功能寄存 器中的可以进行位寻址的各个位),同样,也有相应的位操作 指令集,共17条,用来完成位传送,位运算和基于位的转移。 位操作指令中的位地址有4 种表示形式,以下表示的都是 PSW中的位5 : n直接地址方式(如,0D5H) ; n点操作符方式(如,0D0H.5、PSW.5等); n位名称方式(如,F0,RS0,RS1); n伪指令定义方式。 24 格式: 位地址别名位地址别名 BIT BIT 位地址位地址 功能:使程序中的所出现的位地址别名均表示使程序中的所出现的位地址别名均表示BITBIT后面的位地后面的位地 址。一般放置在程序开始的位置址。一般放置在程序开始的位置。 例如: LEFT BIT P1.0 RIGHT BIT P1.1 ORG 0100H SETB LEFT ;左转 LCALL WAIT30S ;等待30秒 CLR LEFT SETB RIGHT;右转 位地址赋值伪指令BIT 25 (3)普通RAM区 00H 20H 2FH 7FH 1FH 30H 80H FFH 52子系列才有 的RAM区 普通RAM区 位寻址区 工作寄存器区 26 堆栈: 在片内RAM中,常常要指定一个专门的区 域来存放某些特别的数据,它遵循顺序存取和 后进先出(LIFO/FILO)的原则,这个RAM区叫堆 栈。 功用: 1)子程序调用和中断服务时CPU自动将当前PC 值压栈保存,返回时自动将PC值弹栈。 2)保护现场/恢复现场 3)数据传输 27 00H 20H 2FH 7FH 1FH 30H 80H FFH 52子系列才有 的RAM区 普通RAM区 位寻址区 工作寄存器区 SP 栈顶 下一个进栈的 数据将存在此 数据 进栈 已经进栈的数 据存放在此 初始 SP 复位后 SP=07H,数据进栈时:首先 SP自动增 1 ,放进数据, SP仍指着 栈顶 堆栈区由特殊功能寄存器堆栈指针SP管理 堆 栈区可以安排在 RAM区任意位置,一般不安排在工作 寄存器区和可按位寻址的RAM区,通常放在RAM区的靠 后的位置。 89C51的堆栈一般设在30H7FH的范围 内。 入栈 28 从堆栈取出数据时:取出的数据是 最近放进去的一个数据,也就是当 前栈顶的数据。然后SP再自动减1 ,仍指着栈顶 00H 20H 2FH 7FH 1FH 30H 80H FFH 52子系列才有 的RAM区 普通RAM区 位寻址区 工作寄存器区 SP 栈顶 当前要出栈的数据 数据 出栈 SP-1指向下一个 将要出栈的数据 初始 SP 出栈 29 n 特殊功能寄存器(SFR) ,又称专 用寄存器。它专用于控制、管理单片 机内部算术逻辑部件、并行I/O口锁 存器、串行口数据缓冲器、定时器/ 计数器、中断系统等功能模块的工作 ,SFR的地址空间为80HFFH。 n MCS-51有18个专用寄存器,其中3 个为双字节寄存器,共占21个字节。 MCS-52有21个专用寄存器,其中5个 为双字节寄存器,共占26个字节。 SFR中共有12个专用寄存器可以位寻 址,他们的字节地址可以被8整除, 共有93个可寻址位。 (4)特殊功能寄存器区 30 注意: 除A、B,DPTR 外,其他SFR只能采用直接寻 址方式。如:MOV A,P0。对于内部RAM具有高 128字节即:80HFFH的MCS-52单片机而言,这 些RAM与SFR地址重迭,只能用寄存器间接寻址访 问,而不能用直接寻址方式访问。 31 32 四、CPU时序及有关概念 n 一条指令可以分解为若干基本的微操作,而这些微操作所 对应的脉冲信号,在时间上有严格的先后次序,这些次序就 是计算机的时序。时序是非常重要的概念,它指明单片机内 部以及内部与外部互相联系所遵循的规律。 n 震荡周期: 指为单片机提供定时信号的振荡源的周期。 n 时钟周期: 又称状态周期或S周期,因为时钟发生器就是上述的2分频 触发器,所以它是振荡周期的两倍, 33 机器周期:一个机器周期由6个状态(12个振荡脉冲 )组成,即6个时钟贮存器期,12个振荡周期。 指令周期: 指执行一条指令所占用的全部时间,一个指令 周期通常含有14个机器周期。 34 单片机各种周期的相互关系 若外接晶振为12MHZ,MCS-51单片机的四个周期的具 体值为: n振荡周期=1/12s; n时钟周期=1/6s; n机器周期=1s; n指令周期=14s; 35 五、单片机的存储器访问 (一)寻址方式 寻址方式:指令中的操作数给出参与运算的数和数的地址, 确定操作数地址的方式为寻址方式。寻址方式的多少是计算机 功能强弱的重要标志。 MCS-51指令寻址方式主要有7种: (1)寄存器寻址 (2)立即寻址 (3) 寄存器间接寻址 (4)直接寻址 (5)基址寄存器变址寄存器间接寻址 (6)相对寻址 (7)位寻址 36 1、寄存器寻址 指令直接给出该寄存器名称,该寄存器的内容就是操作数, 这种寻址方式就是寄存器寻址。采用寄存器寻址可以获得较高 的传送和运算速度。 寄存器寻址方式寻址范围: (1)内部RAM中的32个工作寄存器R0R7; (2)A、B、CY(或C)、DPTR; 例如: MOV A,R0 ;(A)(R0) MOV DPTR , #1234H 37 2、立即寻址 操作数以常数的形式出现,直接跟在操作码后面,以指令 字节的形式存放在ROM中,由于不需再去寄存器或存储器中 去取数,可以从指令机器码中立即得到,因此,这种寻址方 式为立即寻址。 立即数前面冠以“#”号表示这是一个数,而不是地址。立即 数可以是8位,也可以是16位。如: MOVA,#0FH MOV P1,#00000111B MOV R3,#18 立即数主要用来给寄存器或存储器赋初值,并且只能用于 源操作数,而不能用作目的操作数。 38 3、直接寻址 在指令直接给出操作数所在的存储单元的地址的寻址方 式称为直接寻址。 直接寻址的寻址范围: (1)内部数据存储器的低128字节,00H7FH;如: MOV A,40H;(A) (40H) (2)特殊功能寄存器,注意除A、B,DPTR 外,其他SFR 只能采用直接寻址方式。如:MOV A,P0。 39 4、间接寻址 指令中指出某一个寄存器的内容作为操作数的地址的寻址方 法叫做寄存器间接寻址。寄存器间接寻址以符号“”指明。 其寻址范围: (1)以R0,R1为地址指针,寻址内部RAM 007FH 和外 RAM的低256B;如:MOV A,R0 (2)以DPTR,或R0、R1(须用P2指定高8位地址)为地址指 针,寻址外部RAM空间和扩展I/O口。 如:MOVX A,R0 ;访问外部RAM 00HFFH MOVX DPTR,A ;访问外部RAM 0000HFFFFH 50H R0 2FH A 50H2FH 内部RAM MOV A,R0 40 5、变址寻址 以基址寄存器(PC、 DPTR)和变址寄存器(A)的内容 作无符号数相加,形成16位地址,该地址就是操作数所在的地 址,这种寻址方式就是变址寻址。变址寻址常用来访问程序存 储器,完成查询表格功能。两种形式: MOVC A,A+PC ;(A)(A)+(PC) MOVCA,A+DPTR ;(A)(A)+(DPTR ) 例: MOVC A,A+DPTR 41 6、相对寻址 指令中给定地址的相对偏移量rel,以PC当前值为基地址, 加上rel所得结果为操作数实际地址的寻址方式为相对寻址。用 于程序存储器访问,常出现在相对转移指令中。 当前PC值=PC源地址+转移指令字节数 目的地址=当前PC值+rel。 rel:有符号数,单字节补码,-128+127。负数表示向上 转移,正数表示向下转移。 例如:JZ 08H,表示累加器A 为零时,从源地址(设为:2050H) 向下转移10个字节。 42 7、位寻址 MCS-51中具有一些可以直接寻址的位,并且可以对这些位 进行操作,指令中直接给出位的地址的寻址方式为位寻址。位 寻址空间是:内部RAM中的20H2FH共16个字节128个位和 SFR中的93个位。 例如: SETB PSW.3 ; (PSW.3) 1 其功能是将PSW中的RS0置为1。指令代码为:D2H D3H, 其中的第2个字节D3H就是PSW.3的位地址。 43 (二)程序存储器访问的有关指令-ROM查表指令 (1) DPTR(1) DPTR内容内容为为为为基址基址 程序存储器除存放程序外,还可存放一些常数,这些常数的数 据结构一般称为表格。查表指令就是把存放在程序存储器(ROM )中的表格数据读出,传送到累加器A 的指令。查表指令采用变 址寻址方式,共有2条指令,这两条指令都是单字节双周期指令。 MOVC A,A+DPTR ;A (A)+(DPTR) 44 (2) PC (2) PC 内容内容为为为为基址基址 MOVC A,A+PC ;A (A)+(PC) 取出该单字节指令后PC的内容增1,以增1后的当前值去 执行16位无符号数加法,将获得的基址与变址之和作为16 位的程序存储器地址。然后将该地址单元的内容传送到累 加器A。指令执行后PC的内容不变。 优点: 不改变PC的状态,根据A的内容取表格常数。 缺点:(a)表格只能存放在查表指令以下的256个单元内。 (b)当表格首地址与本指令间有其他指令时,须 用调整偏移量,调整量为下一条指令的起始地址 到表格首址之间的字节数。 45 补充:单片机非线性运算快速实现的基本方法 (1 1)查表法)查表法 查表是非线性运算和非数值计算数据处理中常用的方法之一。利用查表 可以免去复杂的计算,节省时间,具有灵活性强、运行速度高及实时性好的 特点。表分为有无序表和有序表;一维表、二维表、三维表及多维表等。常 用的表格一般是线性表,这种表中的数据元素具有线性一维关系。查表就是 根据变量x,在表格中查找函数值y,使得y = f(x)。换句话说,查表就是根 据输入值来确定表的地址,然后从该地址中找出相应的函数值。 采用这种方法首先要根据自变量的变化范围和精度要求制作一个表格,把 有关数据固化在程序存储器中,一旦表格内容确定之后就不能再改变。然后 编写查表程序,通过输入值来寻找表格中的相应值。这样就使运算量变的较 少,甚至完全不用进行运算,就可获得满足精度要求的输出。因此在数字信在数字信 号处理中,特别是在智能化测试仪表和数字发动机控制应用中,查表法是经号处理中,特别是在智能化测试仪表和数字发动机控制应用中,查表法是经 常使用的一种操作。常使用的一种操作。 46 (2 2)查表法举例)查表法举例 【例3.5 】累加器A中存有压缩的BCD码,将其转化为八段显示码,并将 结果送至P1口(送高位)和P2口(送低位)。如A中数据为48H,则P1 口连接的数码管显示4,P2口连接的数码管显示8(假设所使用的数码管 都是共阳极数码管)。 分析:这是一个典型的查表程序。所显示数字与所输出的二进制数(显示码)之间的关系为: 显示字符0123456789 显示码3FH 06H 5BH4FH66H6DH7DH07H7FH6FH 47 参考程序为:参考程序为: ORG 0000h SJMP START ORG 0030H START: MOV R0,A ;备份BCD数 ANL A,#0FH ;取低位 MOV DPTR,#TABLE MOVC A,A+DPTR ;取低位显示码 MOV P2,A ;从P2口输出显示码 MOV A,R0 ;恢复BCD数 ANL A,#0F0H ;取高位 SWAP A MOVC A,A+DPTR ;取高位显示码 MOV P1,A ;从P1口输出显示码 SJMP $ TABLE: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH END 48 (2 2)插值法)插值法 在智能仪表和数字发动机控制应用中,表格插值是经常要做的一种操 作,对一些计算精度要求不高但运行速度要求较高的场合,应避开复杂的计 算,尽量采用通用性强、实时性好的分段线性插值法或二次抛物线插值法来 逼近真实函数值。 49 分段线性插值法: 假设:已知函数Y= f(X)的曲线如右图 所示。按一定要求将X轴分为x0、 x1、 xi、xi+1、 xn,则对应的函数输出为y0、y1、 yi、yi+1、 yn, 它们都是已知的。把曲线上两两相临的分段点用直线连接起来,如图中虚线 所示,当n取得足够大时,这些虚线可以近似的代替原曲线,这就是一般分段 线性插值法的原理。显然,对于落在(xi,xi+1)区间内的输入x,有相应的 输出近似值: Y =yi + (x-xi) =yi + ki(x-xi) 50 因此,可将n点输入输出对照值储存在程序存储器内,当输入量x落在第i 段内时,可通过三个步骤算出相应的输出值, 第一步:查表,在区间xi,xi+1上找到点x的位置,计算x-xi ; 第二步:计算ki; 第三步:求得结果y= yi+ ki(x- xi)。 显然,采用线性插值逼近法时,只要分段数n取得足够大,就可以获得要 求的精度。一般的,只要分段点取得合理,分段数愈多,则逼近精度愈高, 但同时所要求的计算机内存容量也将增加。 因此,应该根据精度要求和函数曲线的斜率及曲率大小来决定分段点的 选取。只要给定了允许误差和函数的理论计算公式,就可以求得合理的分段 点,使得既满足精度要求又尽可能地减少分段数目。 51 线线性插值节值节 点选选取的一般方法 采用分段线性插值近似算法时,首先要考虑如何选取插值节点的问题。 解决这一问题的出发点是:在满足精度要求的前提下,使插值节点数目减至 最少,从而使表格存储器的容量减少,节省硬件资源,同时使插值搜索过程 加快。 (a a)固定步长选取法)固定步长选取法 固定步长选取法就是沿X轴等距离地选取插值节点,又称为等距选取 法。采用固定步长的插值节点时,可以减少表格的长度,仅存储xmin 、xmax、n值以及纵坐标上各节点的函数yi值。 该方法的主耍缺点是,当被逼近函数的曲率或斜率变化较大时,为了 使曲率或斜率较大的区域不超差,插值间距需取得较小。因而插值节点 数将大大增加,使表格变长,运行也变长。所以,固定步长插值法适用 于非线性程度不大的函数。 52 (b b)非固定步长选取法)非固定步长选取法 非固定步长选取法根据函数曲线形状的变化而修正插值间距的大小,又 称为非等距选取法。对于非线性程度较大的函数,插值节点数可以大大减 少,但是在表格中,需要对每个节点存放三个常教xi 、yi 和ki ,显然,表 格的长度较长,占用的存储单元较多。当然也可以在表格中只存储xi 、yi 这两个常数,然后在插值过程中再去计算ki值,但这样作增加了运算量, 使运行速度减慢,这在某些应用场合是不允许的。 53 54 (三)外部数据存储器访问的有关指令 MCS-51单片机CPU对片外扩展的数据存储器RAM或I/O接 口进行数据传送的指令。采用寄存器间接寻址,通过累加器A 来完成。 片外数据的传送是通过P0口和P2口配合来完成的,其中P2 口输出高8位地址,P0口分时输出低8位地址和数据。这类数 据传送指令共有4条指令,其中2条读指令,2条写指令,这4条 指令都是单字节双周期指令。 寄存器间接寻址 A (Ri) 1110001iMOVX A, Ri 源操作数寻址方式指令功能机器语言指令汇编语言指令 寄存器间接寻址 A (DPTR) 11100000MOVX A, DPTR 寄存器寻址 (Ri) (A)1111001iMOVX Ri, A 寄存器寻址 (DPTR) (A)11110000MOVX DPTR, A 55 (四)堆栈操作指令 栈顶的位置(地址)由栈指针SP指示(即SP的内容是栈顶 的地址)。在80C51中,堆栈的生长方向是向上的(地址增大 )。系统复位时,SP的内容为07H。通常用户应在系统初始 化时对SP重新设置(SP的值越小,堆栈的深度越深) 。 堆栈操作有进栈和出栈操作,即压入和弹出数据。常用于 现场保护和恢复。这类指令共有2条,这2条指令都是双字节 双周期指令。 直接寻址 11010000 POP direct #data 直接寻址 (SP) (direct) 11000000 PUSH direct direct 源操作数寻址方式指令功能机器语言指令汇编语言指令 SP (SP)+1 (direct) (SP) SP (SP)-1 56 六、MCS-51单片机的汇编指令简介 (一)指令分类 1、按指令字节数分类 MCS-51指令含有的操作码和操作数都有相应的二进 制代码,根据指令包含的字节数的多少不同,单片机指 令系统(共111条指令)分成单字节指令(49条) 、双字节 指令(45条)和三字节指令(17条) 。 2、按指令的执行时间分类 单片机指令系统(共111条指令)根据指令执行的时间长 短分类,可以分成: (1) 单周期指令(64条) (2) 双周期指令(45条) (3) 四周期指令(只有乘除2条)。 57 3、按指令的功能分类 单片机指令系统(共111条指令)根据指令所完成的功能 分类,可以分成: (1) 数据传送类指令(28条) (2) 算术运算类指令(24条) (3) 逻辑运算及移位类指令(25条) (4) 控制转移类指令(17条) (5) 位操作(布尔操作)类指令(17条) 58 (二)指令简介 1、数据传送类指令 数据传送类指令一般不影响程序状态字PSW寄存器。 只有在往累加器A中传送数时有可能影响PSW的奇偶位P, 其它位不受影响。当然,往PSW寄存器里面传送数据肯定 影响PSW。 传送类指令可以分成两大类。一是采用MOV操作符, 称为一般传送指令;二是采用非MOV操作符,称为特殊传 送指令。 59 60 MCS-51MCS-51单片机一般数据传送指令数据传递关系图单片机一般数据传送指令数据传递关系图 61 立即数立即数可以为累加器A、寄存器Rn和DPTR、直接寻址或间 接寻址的RAM赋初值,只能作为源操作数只能作为源操作数,不能作为目的操 作数。 累加器累加器A A可以和寄存器Rn、直接寻址或间接寻址的RAM之间 相互赋值,既可以作为源操作数,也可以作为目的操作数。 直接寻址的直接寻址的RAMRAM可以和累加器A、寄存器Rn、直接寻址或间 接寻址的RAM之间相互赋值,既可以作为源操作数,也可以 作为目的操作数。 间接寻址的间接寻址的RAMRAM可以和累加器A、直接寻址的RAM之间相 互赋值,既可以作为源操作数,也可以作为目的操作数。但 不能和寄存器Rn与间接寻址的RAM之间相互赋值。 寄存器寄存器RnRn可以和累加器A、直接寻址的RAM之间相互赋值, 既可以作为源操作数,也可以作为目的操作数。但不能和寄 存器Rn与间接寻址的RAM之间相互赋值。 62 特殊数据传送指令 63 2、算术运算类指令 包括、加1、减1、十进制调整指 令,共有24条。 64 65 算术运算类指令一般影响PSW中的CY、AC、 OV、P 标志位。进位(借位)标志CY为无符号整数 的多字节加法、减法、移位等操作提供了方便;溢 出标志OV可方便的控制补码运算;辅助进位标志AC 用于BCD码运算。 66 加减 1 指令仅 INC A、 DEC A 影响P标志(即使有进位或 借位,CY也不变)。其余指令都不影响标志位的状态。 DA A指令的功能是对累加器A中刚进行的两个BCD码的 加法的结果进行十进制调整(加6修正) ,只影响CY位。该 指令的使用条件: (1)只能紧跟在加法指令(ADD/ADDC)后进行 (2)两个加数必须已经是BCD码 (3)只能对累加器A中结果进行调整 67 DIV AB指令的功能是将累加器A中的无符号8位二进制 数除以寄存器B中的无符号8位二进制数 ,商的整数部分存放 在累加器A中,余数部分存放在寄存器B中。当除数为0时, 则结果的A和B的内容不定,且溢出标志位(OV)=1。而标 志CY总是被清0。 MUL AB指令的功能是将累加器A与寄存器B中的无符号 8位二进制数相乘 ,乘积的低乘积的低8 8位留在累加器位留在累加器A A中,高中,高8 8位存位存 放在寄存器放在寄存器B B中。中。当乘积大于FFH时,溢出标志位(OV)=1 。而标志CY总是被清0。 68 3、逻辑运算和循环移位类指令 69 70 逻辑“与”指令常常用于屏蔽字节中的某些位。若清除某 位,则用“0”与该位进行逻辑“与”,若保留某位,则用“1”与 该位进行逻辑“与”。 逻辑“或”指令常常用于使字节中的某些位置“1”。若置 “1”某位,则用“1”与该位进行逻辑“或”,若保留某位,则用 “0”与该位进行逻辑“或”。 逻辑“异或”指令常用于使字节中的某些位取反。若用“1” 与某位进行逻辑“异或”则该位取反 ,若保留某位,则用“0” 与该位进行逻辑“异或”。还可以利用异或指令对某个单元进 行自身异或,以实现清零操作。 逻辑运算指令(共18条)可以完成与、或、异或、清0 和取反操作,当以累加器A为目的操作数时,对P标志有影 响。 71 A7 A0 A7 A0CY RR A RRC A A7 A0 A7 A0CY RL A RLC A 右移:左移: 使累加器A的各位逐位左移1位相当于原内容乘2;使累加 器A的各位逐位右移1位相当于原内容除2;预先清零CY,采用 带进位位的左移和右移,能够保留乘除产生的进位和余数 。 72 4、控制转移类指令 控制程序的转移要利用转移指令。MCS-51的转移指令( 共17条)分无条件转移、条件转移及子程序调用与返回等。 利用这些控制转移类指令可以方便地实现程序的向前、向后 跳转,并根据条件分支运行、循环运行、调用子程序等。 73 74 n AJMP指令的转移范围为AJMP下面一条指令的存储地址 相同的2KB区间内,可以向前也可以向后,指令的执行不影响 PSW的状态标志位。 SJMP rel ,rel 是一个带符号的偏移字节数(2的补码), 取值范围为 128 127 (00H7FH对应表示0 127 ,80HFFH对应表示1281)。负数表示反向转移, 正数表示正向转移。 JMP A+DPTR指令具有散转功能,可以代替许多判别跳 转指令。其转移地址由数据指针DPTR的16位数作为基址和 累加器A的8位数作为相对偏移量进行无符号数相加形成,并 将相加结果直接装入PC。该指令执行时对标志位无影响。 该指令常用于多分支转移。 75 散转程序举例: 【例3.21】 根据R0的值转向7个分支程序。 R0=60,转向SUB6; 分析:分析: 程序流程如下图所示。 76 参考程序如下:参考程序如下: ORG 2000H MOV DPTR,#TAB;取转移指令表首地址 MOV A,R0 ;取数 MOV B,#10 DIV AB ;A10,商在A中 CLR C RLC A ;A2A JMP A+DPTR ;PC A+DPTR TAB: AJMP SUB0 ;转移指令表 AJMP SUB1 AJMP SUB2 AJMP SUB6 77 n RET指令的功能是从堆栈中弹出由调用指令压入堆栈保护的 断点地址,并送入指令计数器PC,从而结束子程序的执行。 程序返回到断点处继续执行。 n RETI指令是专用于中断服务程序返回的指令,除正确返回 中断断点处执行主程序以外,并有清除内部相应的中断状态寄 存器(以保证正确的中断逻辑)与中断优先,开放低级中断的 功能。 78 5、位操作类指令 79 【例3.18】利用位逻辑指令,模拟下 图3.11所示的逻辑电路功能。 位操作程序举例: 实现该功能的程序如下: PR2: MOV C,P1.1 ;(CY) (P1.1) ORL C, P1.2 ;(CY) (P1.1)V (P1.2) ,得出A点逻辑状态 ANL C, P1.0 ;(CY) (P1.0)A点状态 CPL C ; 取反,得出B点逻辑状态 MOV F0, C ;F0内暂存B点状态 MOV C,P1.3 ;(CY) (P1.3) ANL C, P1.4 ;(CY) (P1.3)(P1.4) CPL C ; 取反,得出C点逻辑状态 ORL C, F0 ;B点状态与C点状态进行逻辑或 MOV P1.5, C ;运算结果送入P1.5 RET 80 七、MCS-51单片机的辅助电路 寄存器 复位状态 寄存器 复位状态 PC 0000H ACC 00H B 00H PSW 00H SP 07H DPTR 0000H P0P3 FFH IP ( 00000) IE (000000) TMOD 00H TCON 00H TH0 00H TL0 00H TH1 00H TL1 00H SCON 00H SBUF () IE (00000) 单片机的复位状态 81 n上电复位电路和开关复位组合电路 82 n单片机的时钟电路 内部时钟方式 、外接时钟方式 83 八、MCS-51单片机的最小系统 84 8051/8751最小应用系统的特点是: (1)全部I/O口线均可作为并行口供用户使用。 (2)内部存储器容量有限(只有128B的RAM和4KB地址 空间)。 (3)应用系统开发具有特殊性。因为P0和P2口在开发系统 时作为数据、地址总线,而在应用系统中如果作为普 通I/O口,调试时不方便硬件调试,只能用模拟的方法 调试。 85 第二章 中断、定时计数器、串行接口 86 一、定时 nMCS-51有几个定时器/计数器? MCS-51有2个定时器/计数器T0和T1 n在单片微机控制系统中为什么要使用它们? 在单片微机控制系统中,常要求一些外部实时时钟,以实 现定时或延时;也常要求有一些外部计数器,以实现对外部 事件进行计数。 nT0/T1是几位的计数器/定时器? T0/T1是16位的计数器/定时器,通过编程的方式可以用来设 定为定时器或者为计数器。 (一)、MCS-51定时器/计数器 87 n计数器/定时器本质区别是什么? 计数器/定时器的基本核心是一个加1计数器 加1计数器的脉冲有两个来源: 外部脉冲源; 内部的时钟振荡器。 * 定时器 对内部的时钟振荡器标准脉冲计数 * 计数器 对外部脉冲计数 88 n与计数器/定时器相关的特殊功能寄存器有哪几个? n工作方式控制寄存器 - 方 式 位计计数器 位计计数器 计计数初值值可以重新装入的位计计数器 对对分为为两个独立的位定时时器计计数器, 对对停止计计数 定时时计计数方式选择选择 位:定时时,计计数 位D7D6D5D4D3D3D1D0 TMODGATEC/TMIM0GATEC/TM1M0 89 GATEGATE:门控位的作用:门控位的作用: 当GATE=0时,定时计数器的启动不受外部中断信号的影响 ,只要用软件使TR0(或TR1)置1就能启动定时器T0(或 T1)。 当GATE=1时,由外中断引脚信号控制或门的输出,此时控 制与门的开启由外中断引脚

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论