单片机原理及应用(高职培训)ppt课件_第1页
单片机原理及应用(高职培训)ppt课件_第2页
单片机原理及应用(高职培训)ppt课件_第3页
单片机原理及应用(高职培训)ppt课件_第4页
单片机原理及应用(高职培训)ppt课件_第5页
已阅读5页,还剩142页未读 继续免费阅读

下载本文档

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

文档简介

全国高职骨干教师暑期培训 单片机原理及应用,电子实验中心 习友宝 2007.7.12,主要内容: 1、单片机的概述 2、8051的基本原理 3、基本汇编及编程 4、c语言编程基本方法 5、C8051F020简介 6、单片机应用举例,1、 微型计算机概述,微处理器 CPU芯片,微处理器的硬件结构,微处理器的体系结构,运算器、控制器、寄存器、总线接口单元,复杂指令集 CISC (Complex Instruction Set Computer) 以Intel公司为代表的CPU,例 MCS-51 芯片 精简指令集 RISC (Reduced Instruction Set Computer) 以IBM公司为代表的CPU,例 POWER PC 芯片,1、 微型计算机概述,单板微型计算机,单片微型计算机,微型计算机系统,CPU、存储器、I/O接口集成在一个芯片上 应用广泛,重点讲解MCS 51的原理,CPU、存储器、I/O接口集成在一张印刷板上 用于工业控制器、家用电器、手机等,更完备CPU、存储器、I/O接口 PC机 微型计算机的骄傲,单片微型计算机、微控制器,单片微型计算机 SCM,(Single Chip Microcomputer),微控制器 MCU,(Micro Control Unit),注:称呼不同、功能一样,单片微型计算机微控制器(MCU),通用型单片机,硬件电路设计简单,软件开发容易,用芯片就可完成系统设计,调试及应用,设计参考资料丰富,如 Intel MCS-51系列,单片微型计算机微控制器(MCU),专用型单片机,根据特殊要求而设计的单片机,在单片中加入更强的数据处理能力(如 DSP),常用芯片,TI公司用于信号处理单片机 TMS320 系列 AD公司用于信号处理单片机 ADSP2106 系列,单片微型计算机微控制器(MCU),单片机的应用,机电一体化设备的控制核心,数据采集系统的前端采集单元,分布式控制系统的前端控制单元,智能化仪器仪表的控制机芯,家电及消费类电子产品的控制机芯,终端及外部设备的控制机芯,常用的单片机,目前,国内单片机应用呈现百花齐放之势,很多不同类型的单片机逐渐进入中国,这给我们增加了选择余地。 因此,可首先选择主流单片机进行学习,在熟悉以后,爱好者可以根据实际情况,选择进一步学习另一种或多种单片机。,8051类单片机,最早由Intel公司推出的8051/31类单片机,也是世界上用量最大的几种单片 机之一。由于Intel公司在嵌入式应用方面将重点放在X86、奔腾等与PC类兼容的高档芯片的开发上,8051类单片机主要由Philips、三星、华邦等公司接产。 这些公司都在 保持与8051单片机兼容的 基础上改善了8051许多特性(如时序特性)。提高了速度、降低了时钟频率,放宽了电源电压的动态范围,降低了产品价格。 发展动态: 1、以8051内核发展出各种系列 ATMEL AT89CXX;WINBOND 51系列; PHILIPS 80C51系列单片机 2.发展成为SOC (如:LCD控制, A/D, D/A ,USB,网络接口 等) 3. 低功耗:如 TI MSP430系列等 4. 高速和DSP结合。嵌入式处理器ARM系列,基于51内核的单片机依然是国内使用最多的,目前国内较常见的有以下几种: PHILIPS: (1)基于80C51内核的微控制器,每个机器周期只需6个时钟周期,比标准51快一倍。 (2)该系列芯片适用于大批量、低成本、低功耗的应用,如电子门禁系统、倒车雷达、里程表等。 (3)主要型号:如 P89C51,P89C52, P89C54,P89C58等,ATMEL公司,ATMEL单片机: (1)ATMEL公司目前的产品主要FLASH,EEPROM,还有可编逻辑器件PLD,门阵列,场可编门阵列FPGA,8051兼容的闪速单片机(FLASH Microcontroller),以及智能卡(Smart Card)。 (2)为了介入单片机市场,ATMEL公司以EEPROM技术和Inte1公司的8031单片机核心技术进行交换,从而取得8031核的使用权。ATMEL公司把自身的优势即先进的Flash技术和8031核相结合,从而生产出了Flash单片机89C51等系列。 (3)主要型号:AT89C51,AT89C52,AT89C1051,AT89C2051,Motorola单片机,Motorola是世界上最大的单片机厂商。品种全、选择余地大、新产品多是其特点,在8位机方面有68HC05和升级产品68HC08, 8位增强型单片机68HC11。升级产品有68HC12 ,16位机68HC16。 Motorola单片机特点之一是在同样速度下所用的时钟频率较Intel类单片机 低很多,因而使得高频噪声低,抗干扰能力强,更适合用于工控领域及恶劣的环境。,Infineon XC800系列XC866,基于与工业标准8051兼容的内核,每个机器周期只需2个时钟周期,标准51需12个时钟周期。 高度集成片内器件,例如片内振荡器、嵌入式电压调节器(可由3.3V或5.0V的单电源供电),有许多增强功能。 存储器保护策略为用户知识产权(IP)提供读保护,同时Flash编程和擦除保护用来防止数据破坏。 多闪存组(Flash Bank)结构支持在应用编程(IAP),运行某bank 中的用户程序可编程擦除另一BANK中的内容。 可进行在系统编程ISP,通过PC对嵌入式FLASH方便的编程或擦除。 具有用来产生脉宽调制信号、带有电机控制专用模式的捕获/比较单元,功能扩展的10位模数转换器ADC,具有如自动扫描和结果累加(用于抗混迭滤波或结果平均)等特性; 功能扩展的通用异步收发器UART,支持本地互连网络(LIN)应用,为许多器件提供LIN的底层驱动软件; LIN是一种机动车内部网络互连的整体通信概念。 提供不同的省电模式选择,以满足低功耗应用 扩展了控制片内外设功能的特殊功能寄存器(SFR)的地址范围。,内部结构,Cygnal公司C8051F系列,该系列单片机大部份指令只需一个时钟周期即可完成(89C51的一条指令最少为12个时钟周期),因而该系列单片机的运行速度大大加快。 其余改进包括加多了中断源、复位源,带有JTAG接口,可在系统编程调试,可实现捕捉、高速输出、PWM功能等,是51系列单片机中的高端产品。 该系列单片机由新华龙电子代理,,Microchip,Microchip单片机是市场份额增长最快的单片机,抗干扰能力强,系列品种齐全,其OTP(一次性可编程)产品大批量用于家电控制等场合,某些内置FLASH ROM的型号用于工业控制也很合适。 主要产品是16C系列8位单片机,CPU采用RISC结构,仅33条指令,Microchip强调节约成本的最优化设计,适于用量大、档次低、价格敏感的产品。 初档8位单片机:PIC12C5XXX16C5X系列 中档8位单片机:PIC12C6XX/PIC16CXXX系列 高档8位单片机:PIC17CXX系列 中文网站 ,德州仪器公司 TI MSP430系列,通用型单片机,1996年推向市场. MSP430系列单片机均为工业级器件,运行温度 4085 摄氏度。 该单片机最大的特点是用电极省。该系列单片机主要用于各种智能仪表、测试测量系统,便携的设备如U盘,MP3播放器,手持式仪表,玩具等。,MSP430系列特点,16位的RISC(精简指令集)结构,1时钟周期/机器周期(传统MCS51为12时钟周期/机器周期),所以在8M的主频的情况下,其性能远远优于12M主频的传统MCS51单片机。某些型号具有类似于DSP内的硬件乘法器,硬件乘加功能,DMA等,便于快速的实现数字信号处理的一些算法。 开发环境: PC 集成开发环境的软件(IAR Workbench V2.10) JTAG下载线 使用者硬件,Epson单片机,Epson公司以擅长制造液晶显示器著称,故Epson单片机主要为该公司生产 的LCD配套。其单片机的特点是LCD驱动部分做得特别好。在低电压、低功耗方面也很有特 点。,国家半导体公司 NS 单片机,COP8单片机是美国国家半导体公司的产品,该公司以生产先进的模拟电路著称。能生产高水平的数字模拟混合电路。 COP8单片机片内集成了16位A/D,这是单片机中不多见的。COP8单片机,在看门狗电路以及STOP方式下单片机的唤醒方式上都有独到之处。此外,COP8的程序加密控制也做得比较好。,SST公司的SST89C54, SST89C58等 具有在应用中编程( IAP)功能、在系统可编程(ISP)功能,不占用户资源,串口下载,无需编程器、仿真机,芯片可具有仿真机的功能。,AD公司的AduC812, AduC824,AD公司是著名的模拟器件生产公司,这两款单片机是AD公司结合其模拟技术特长而推出的基于51内核的单片机。 Aduc812内部集成有8K FLASH ROM, 640字节EEPROM,256字节RAM,8通道12位A/D , 2通道12位D/A,另有监控电路、温度传感器、SPI和I2C总线接口等丰富资源。 Aduc824内部更是集成了两路24位/16位A/D,这是另一类51高端芯片,该芯片适合用于各类智能仪表、智能传感器、变送器和便携式仪器等领域。,资料及网上讨论,网上交流,1、21icbbs () 中国电子工程师网站: 是目前国内最热门的电子技术社区,注册工程师超过7万人,同时该站也是电子类网站中关注单片机最多的一个论坛,该论坛设有综合技术交流、嵌入式系统等数十个栏目。,2、C51bbs(),是国内最为成功的单片机类个人网站之一,人气旺盛,提出的各类问题会得到及时的回答,尤其是Keil C方面的问题,是目前国内关于Keil C方面的权威网站。,3、水木清华,是国内著名的BBS站点之一,该站设有许多栏目,其中电路设计与调试、嵌入式系统等与单片机应用与开发有关有一些有实用价值的贴子。 其它一些BBS如 电子爱好者网站 电子报网络版 周立功网站 ,网上找资料,1、力源网站 该网站目前录入有全球92家IC厂商的器件可供查询; 录入有39543个PDF文件可供下载; 全球671家IC厂商可查询其网址及分支机构等情况; 316个IC媒体及网址可供查询。 该站的特点是提供了大量中文资料,分类查询也设计得非常周到。,2、中国电子网(21ic) 该网站提供了各大公司数万份器件资料,通常用到的集成电路资料都可以在这里找到 3、 ,2、MCS-51系列单片机的结构,MCS-51单片机的基本组成,组成单元,CPU 及控制线 内部 ROM 和内部 RAM 4 个 8 位 I/O 口 P0、P1、P2、P3,AT89C51结构图,MCS-51系列单片机的结构,RAM结构图,ROM结构图,00H,FFH,0000H,FFFFH,内部RAM,外部RAM,0FFFH,0000H,1000H,FFFFH,0000H,FFFFH,/EA = 1 内外ROM,/EA = 0 仅外ROM,8051的系统 RAM、ROM 结构图,MCS-51系列单片机的结构,8051 的系统 RAM、ROM 结构总结,访问片内外 RAM 用不同指令识别,访问片内外 ROM 用控制线 /EA 识别,访问片内 RAM 用 MOV 访问片外 RAM 用 MOVX,访问片内外 ROM 使 /EA = 1 仅访问片外 ROM 使 /EA = 0,MCS-51系列单片机的结构,8051片内 RAM 的分配,00H,1FH,20H,2FH,30H,7FH,80H,FFH,00H,1FH,工作寄 存器组,可位 寻址区,仅字节 寻址区,寄存器 借用区,00H,FFH,MCS-51系列单片机的结构,PSW 程序状态字(寄存器),CY 无符号数加减法运算的进位、借位标志 AC 半字节进位、借位标志 OV 有符号数加减法运算的溢出标志 P 奇偶校验标志 F0、F1 用户自定义标志位 RS0、RS1 工作寄存器组选择控制,注:对应于8086CPU的 CF、AF、OF、PF, 但无 SF、ZF。没有控制标志位。,MCS-51系列单片机的结构,SP 堆栈栈顶指针寄存器,8 位堆栈栈顶指针寄存器 SP,SP 的使用特点,最多能定义堆栈深度为 256 个字节 堆栈区地址为片内 RAM 的 00H 7FH (8051) 或00H FFH (8052)之间 堆栈栈顶指针 SP 的初值为 07H,MCS-51的堆栈为地址增长型堆栈(与8086相反) 数据入栈时,堆顶指针 SP 自动加 1,即SP = SP + 1 数据出栈时,堆顶指针 SP 自动减 1,即SP = SP 1,MCS-51系列单片机的结构,P0、P1、P2、P3 口的功能和特点,可作 4 个 8 位并行 I/O 口使用,可对各口中的某一位进行位操作,存储器扩展时 P0、P2 口具有 AB/DB 第二功能,P3 口的第二功能为 外部中断、定时、串口、R/W,MCS-51系列单片机的结构,P0 P3 口的硬件电路特点 ( 作一般 I/O 口使用时 ),作输出口使用时内部带锁存器 作输入口使用时内部带缓冲器 均具有读端口和读引脚功能,MCS-51系列单片机的结构,P1 口的位硬件电路,VCC,GND,读引脚控制,读端口控制,外引脚,内总线,D,Q,/Q,8051单片机的引脚及其功能,双列直插式 40 脚 DIP 封装,GND,VCC,芯片封装类型,8051单片机的引脚及其功能,8051 单片机的电路逻辑图,8051单片机的引脚及其功能,引脚 I/O 口,P0 8 条 I/O 引线 (8位数据线或低8位地址线) P1 8 条 I/O 引线 P2 8 条 I/O 引线(高8位地址线) P3 8 条 I/O 引线(特殊定义),注:共 32 条引脚,8051单片机的引脚及其功能,引脚 控制线,复位线 RST(输入、高有效),外部存储器选择控制线 /EA(输入),当RST端获得两个机器周期(24个时钟周期) 的高电平时,8051 单片机系统将进入复位状态。 即高复位低工作。,/EA = H时,8051 单片机系统用片内外 ROM /EA = L时,8051 单片机系统仅用片外 ROM,注:VPD 为第二功能,提供编程电压,8051单片机的引脚及其功能,引脚 控制线(续),地址锁存允许线 ALE(输出、高有效),当 8051 单片机系统具有外部存储器时, 用于对 P0 口输出的数据/地址信息的低 8 位地址进行锁存,当 8051 单片机系统无外部存储器时, 输出 1/6 主频的定时信号,注:PROG 为第二功能,提供编程脉冲,8051单片机的引脚及其功能,引脚 控制线(续),外部 ROM 读选通线 /PSEN(输出、低有效),仅用于外部 ROM 中信息的读取控制,注: 外部 RAM 的读/写控制线为 /RD 和 /WR (P3 口的第二功能),当使用 MOVC 类指令时,/PSEN 输出低电平,注: MCS-51 仅单独提供 4 条控制线 RST、/EA、ALE、/PSEN,8051单片机的引脚及其功能,引脚 时钟输入线,XTAL1 和 XTAL2,由外部晶体和内部振荡电路获得主频,系统常用,由外部直接输入时钟获得主频,特殊系统用,8051单片机的引脚及其功能,引脚 电源线,VCC 和 GND,引脚 总结,I/O 口线 32条 控制线 4条 时钟线 2条 电源线 2条 共计 40 条,MCS-51单片机的工作方式,MCS-51单片机的复位方式,复位时各芯片寄存器的初值,复位时程序指针 PC 的特点,PSW = 0000H 初始化时使用通用寄存器 0 组的 R0 R7 SP = 07H 初始化时栈顶在 0 组R7,入栈从 1 组的 R0 开始 P0 P3 = FFH 初始化时并口输出为高电平 其余寄存器为 00H,PC = 0000H,注: 8086CPU 复位时 CS:IP = FFFF0H,MCS-51单片机的工作方式,MCS-51单片机的上电复位电路,保持复位端 RESET 高电平两个机器周期,常用上电复位电路,上电时电容 C 两端电压不能 突变, Vcc 加在 RESET 端。,经 RC 充电电路,稳态时 C 两 端电压为 Vcc,RESET = 0V。,根据主频选择 R、C 值, 一般 R = 10K、C = 10uF,MCS-51单片机的工作方式,MCS-51单片机的程序执行方式,程序指针 PC 从初始值 0000H 处执行指令,在 PC = 0000H 处通常有直接跳转指令 LJMP main ;将 PC 转移到主程序 main 处执行,程序指针 PC 执行指令时会完成自动加 1 操作,注:程序执行时 PC 值的变化特点是学习的重点,MCS-51单片机的工作时序,时钟周期、机器周期、指令周期的概念,取指令、执行指令的概念,取指令时序、执行指令时序的概念,指令字节数与指令周期数的概念,时序与控制线 ALE 的关系,MCS-51单片机的工作时序,访问外部 ROM (取指令)的时序图,ALE,/PSEN,A8 A15,P2,A0 A7,A0 A7,指令,指令,P0,MCS-51单片机的工作时序,访问外部 RAM 的时序图,ALE,/RD,A8 A15,P2,A0 A7,数据,P0,I/O接口电路的作用,高速CPU与低速外设的速度匹配 主机与外设间信号电平、逻辑的转换 信号串/并、并/串方式的转换,CPU,外设,数据端口,状态端口,控制端口,总线驱动 地址译码 逻辑控制,DB,AB,CB,I/O 接口电路连接,I/O 接口电路,接口与端口,I/O 接口电路原理图,与CPU 三总线连接 与外设 三信息连接,输入/输出传送方式,无条件传送方式 条件传送方式(查询方式) 中断传送方式 DMA方式(存储器直接存取方式),MCS-51 的中断和中断接口,中断概述 中断处理过程 MCS-51 的中断系统及其控制 MCS-51 外部中断源的扩展,中断概述,中断源 硬件中断的分类 中断允许与中断屏蔽 中断优先级,中断源,发出中断请求的来源称为 中断源,软件中断源,硬件中断源,由中断指令引起中断,例如 8086CPU的 INT n 指令 MCS-51无软件中断指令,由外设发出中断请求信号给 CPU 称硬件中断源 PC/XT 微机外设向 CPU 发中断请求信号 控制系统各种传感器发出的中断请求信号,硬件中断的分类,可屏蔽中断,非屏蔽中断,中断请求 (中断允许) 中断响应 中断请求 (中断屏蔽) X 不响应中断,中断请求 中断响应,注: MCS-51 有此种方式,注: MCS-51 无此种方式,中断优先级,单中断源,多中断源,无需讨论中断优先级问题,必需讨论中断优先级问题,优先级解决方法,软件查询法 专用芯片(专用中断优先级管理芯片) 寄存器控制法(对中断优先级寄存器编程),中断处理过程,中断请求 中断允许(可屏蔽中断) 中断响应 中断处理(中断服务程序) 中断返回,在计算机应用系统中,一个完整的 中断处理过程应包括如下五个步骤,MCS-51 中断服务程序的入口地址,中断入口地址表,有中断的完整程序结构,中断入口表程序,主程序,中断服务程序,(其它子程序),源程序汇编结束伪指令,有中断的完整程序结构,ORG 0000H LJMP MAIN ; 跳到主程序入口 ORG 0003H LJMP RINT0 ; 跳到 /INT0 中服程序入口 MAIN:SETB EA ; 主程序入口 SJMP $ ; 主程序结束 RINT0:PUSH ACC ; 中断服务程序入口 RETI ; 退出中断服务程序 END ; 结束汇编,表程序,主程序,中服 程序,并行口应用(单片机显示/键盘系统),7 段 LED 数码显示器的控制与编程 8155 与 LED 数码管的接口电路 LED 数码管的扫描控制 LED 显示符号与段码数据 行列矩阵非编码键盘的控制与编程 8155 与矩阵非编码键盘的接口电路 矩阵非编码键盘的特点 键操作检测分析,7 段 LED 数码显示器的控制与编程,8031 与 1 位 LED 数码管的接口(静态显示方式),7 段 LED 数码显示器的控制与编程,8031,9,2,3,5,8,8,P1,P2,h g f e d c b a,5 4 3 2 1 0,8031 与 多 位 LED 数码管的接口(动态扫描方式),行列矩阵非编码键盘的控制与编程,线性键盘电路与矩阵键盘电路,线性键盘电路,8031,VCC,GND,输入口,行列矩阵非编码键盘的控制与编程,线性键盘电路与矩阵键盘电路(续),矩阵键盘电路,8031,VCC,行线,列线,输出口,输入口,行列矩阵非编码键盘的控制与编程,多键同时按下的处理,给出按键优先序 重新扫描确定按键操作,消除按键抖动的方法,硬件法,软件法,使用单稳电路消除按键抖动 使用傍路电容消除按键抖动,查询到按键信息后调用延时程序 按键为中断请求后关中断,MCS-51内部定时/计数器及其应用,MCS-51内部定时/计数器的工作方式 MCS-51内部定时/计数器的控制方法 MCS-51内部定时/计数器的应用编程,定时 在系统时钟的控制下完成定时操作 计数 在外部脉冲的控制下完成计数操作,MCS-51内部定时/计数器的工作方式,定时/计数器 T0、T1 的工作方式,定时/计数器 T0、T1 的 16 位初值寄存器,方式 0 初值寄存器按 13 位计数的工作方式 方式 1 初值寄存器按 16 位计数的工作方式 方式 2 初值可重装入的 8 位计数的工作方式 方式 3 T0、T1 为不同工作方式,T0 TL0(低 8 位)、 TH0(高 8 位) T1 TL1(低 8 位)、 TH1(高 8 位),注: 使用 T0、T1 前,必须向寄存器中写入计数初值, 16 位初值经 8 位数据线写 2 次获得。,MCS-51内部定时/计数器的控制方法,方式控制寄存器 TMOD 启动控制寄存器 TCON 中断允许/屏蔽控制寄存器 IE 中断优先级控制寄存器 IP,讨论与定时/计数器有关的专用寄存器,定时初值、计数初值的计算,定时/计数器的计数器工作方式,减 1 计数器,加 1 计数器,初值 + 1 全 1 + 1 全 0,产生溢出中断,初值 - 1 全 0 - 1 全 1,产生溢出中断,注: 8253 用此方式。,注: MCS - 51 用此方式。,注: MCS - 51 需根据定时、计数值 求定时初值、计数初值。,定时初值、计数初值的计算,计数初值的计算,计算公式: X = M N,其中:M 计数最大值,即 28、213、216 N 实际计数值,定时初值的计算,计算公式: X (us)=( M N)T,其中:M 计数最大值,即 28、213、216 N 实际定时值 T 时钟周期的 12 倍,定时/计数器的应用,在 P1.1 输出周期为 2ms 的方波。,1ms,1ms,t,v,定时器选用 T1 工作方式 方式 0 主频选用 12M,定时初值计算 ( 定时1ms,设时钟12MHz ),X = (M N)T = (213 1000) 1us = 11100000 11000B,串行通信的基本知识,串行通信的基本通信方式 串行通信中的数据传送方式 并行/串行变换及串行接口,串行通信的基本通信方式,串行通信协议,异步协议,同步协议,数据可顺次地出现在数据流中,数据 间的相对延迟没有专门的时钟来控制。,数据流中顺次出现的数据由一个主数 据时钟来管理,以一定的时间间隔出现。,串行通信的基本通信方式,异步串行通信协议中的位定义,同步串行通信协议中的字节定义,0,1,0/1,起始位,停止位,数据位,(位同步),0/1,0/1,同步字节,数据字节,(字节同步),串行通信的基本通信方式,异步传送方式,异步传送的特点,异步传送的格式,数据在线路上的传送不是连续的 收发双方各用自已的时钟源控制接收和发送,起始位 1 bit,0 电平 数据位 N bit,有效电平 校验位 1 bit,与数据位中的值有关,可不用 停止位 1 2bit,1 电平,注:传送字符由 4 部分组成,串行通信的基本通信方式,异步传送方式(续),异步传送中的数据位,收发端必顺采用相同的异步传送格式 收发端必顺采用相近的速率(波特率),收发端的一致性特点,7 bit 数据位格式 8 bit 数据位格式,注: 数据位格式由工作方式确定,串行通信的基本通信方式,同步传送方式,同步传送的特点,同步传送的格式,数据在线路上的传送是连续的,同步字符块 由 N 字节数据组成 数据块 由 M 长度的字节数据组成,注:同步字符和数据块由协议确定,串行通信的基本通信方式,异步、同步传送比较,异步,同步,用位作为收发字符的同步信号 相对效率低,用字节作为收发数据块的同步信号, 相对效率高,注:传送数据量少时用串行异步方式 传送数据量多时用串行同步方式,MCS-51单片机的指令系统,1: 指令和指令程序 2: 寻址方式 3: 数据传送指令 4: 算术运算指令 5: 逻辑运算及移位指令 6: 控制转移指令 7: 布尔变量操作指令(位操作),3、基本的汇编,MCS-51单片机的寻址方式,寻址 寻找操作数存放的地方,寄存器寻址方式,立即寻址方式,存储器寻址方式,位寻址方式,直接寻址方式 寄存器间接寻址方式 变址寻址方式 相对寻址方式,内部RAM单元之间的数据传送指令 MOV,MOV 指令的操作数传送原则,累加器 A 寻址,Ri 间接寻址,direct 直接寻址,Rn 工作寄存器寻址,#data 立即数寻址,内部RAM单元之间的数据传送指令 MOV,MOV 指令应用中的问题(累加器 A 作桥粱),MOV Rn,Rn,MOV Ri,Rn,MOV Ri, Ri,MOV A,Rn MOV Rn,A,MOV A,Rn MOV Ri,A,MOV Rn ,Ri,MOV A, Ri MOV Rn ,A,MOV A, Ri MOV Ri ,A,错误,正确,外部存储器( RAM、ROM )的数据传送指令 MOV、MOVC、MOVX,外部存储器 16 位地址值传送指令( 1 条),访问外部 ROM 存储器的指令( 2 条),MOV DPTR,#data16 ;DPTR 外部 RAM、ROM的 16 位地址值,MOVC A,A + DPTR ;A (A+DPTR) 数据指针 MOVC A,A + PC ;PC PC + 1、A (A+PC)程序指针,MOVC A,A + PC 指令的应用,程序,1000H:MOV A,#10H ;A = 10H 1002H:MOVC A,A+PC,表项,1010H:02H 1011H:04H 1012H:06H 1013H:08H,A (A+PC)、A = 08H,结果,; PC PC+1、PC = 1003H、A + PC = 1013H,注: 表项地址范围为 1003H 1003H + FFH,MOVC A,A + DPTR 指令的应用,程序,1000H:MOV A,#01H ;A = 01H 1002H:MOV DPTR,#6000H ;DPTR = 6000H 1005H:MOVC A,A+DPTR ;A+DPTR = 6001H,表项,6000H:0AH 6001H:0BH 6002H:0CH,A (A+DPTR)、A = 0BH,结果,注: 表项地址范围为 0000H FFFFH,控制转移指令,无条件转移指令 条件转移指令 子程序调用及返回指令 空操作指令,无条件长转移指令 LJMP,格式,特点,应用,LJMP addr16 ;PC目的 addr16,程序计数器 PC 的目的地址为 16 位立即数 为 3 字节指令,02H、addr 高 8 位、addr 低 8 位,指令中用符号地址表示,汇编时获得 16 位真值 可转移 PC 的 64KB 范围,即可访问片外ROM,无条件绝对转移指令 AJMP,格式,特点,应用,AJMP addr11 ;PC PC + 2、 PC100 addr11,PC目的为16位,即高 5 位原数及低 11 位立即数 PC的目的地址的获得 先:PC PC + 2 有:PC1511,a10a0 addr11 为 2 字节指令, a10 a9 a800001 、 a7 a0,可转移程序存储器的 2KB 范围(211 = 2K),LJMP、 AJMP 指令比较,指令字节数,指令寻址范围,AJMP 2 字节指令 LJMP 3 字节指令,AJMP 2KB 寻址范围 LJMP 64KB 寻址范围,指令操作码,AJMP a10 a9 a800001 LJMP 00000010,无条件短转移指令 SJMP,格式,特点,应用,SJMP rel ;PC PC + 2、PC PC + rel,rel 为 1 字节相对增量地址,范围为 128 +127 SJMP 为 2 字节指令,80H(码)、rel(数),PC目的 = PC源 + 2 + rel PC目的 = PC当前 + rel,无条件变址转移指令 JMP,格式,特点,应用,JMP A + DPTR ;PC目的 A + DPTR,称 DPTR 中的值为基址,A 中的值为变址 PC目的 为 16 位地址值,多用于多路分支程序,各分支程序有等优先权, 同 C 语言中的 swich 语句,MOVC A,A + DPTR JMP A + DPTR,指令比较,MOVC A,A + DPTR ;A = ( A + DPTR ),查表指令,跳转指令,JMP A + DPTR ;PC目的 = A+DPTR,注:指令的应用在程序设计中讲,汇编语言中的伪指令,伪指令对汇编源程序进行管理是必须的, 但汇编后不产生机器码,主要有如下伪指令。,ORG 汇编起始地址伪指令 END 汇编结束伪指令 EQU 等值定义伪指令 DATA 地址数据赋值伪指令 DB 程序存储器字节数据类型定义伪指令 DW 程序存储器字数据类型定义伪指令 DS 程序存储器地址保留量定义伪指令 BIT 位地址符号定义伪指令,分支程序设计,N 路分支程序,根据工作寄存器 R3 中的值确定执行分支功能程序段。,分析,用比较条件转换指令 CJNE R3,#data,rel , 当 R3 #data 时转移,此法编程简单, 但问题是谁先比较谁快,谁后比较谁就慢。,为解决判断时间不一致问题,可采用转移地址 查表法用变址寻址转移指令 JMP A + DPTR, 即将 R3 的值放入 A,将 R3 值所对应的功能程序 段指针放入 DPTR单元, 这样解决快慢不均问题。,R3 0,R3 1,R3 2,R3 N,N,N,N,N,转向BR0,转向BR1,转向BR2,转向BRN,Y,Y,Y,Y,A = R3,DPTR = 表首地址,JMP A + DPTR,MOVC A, A +DPTR,BR0,BR1,BR2,BRN,流程,分支程序设计,N 路分支程序设计讨论,问题,全部分支程序总机器码字节数小于256,全部分支程序总机器码字节数大于255,转移地址表 BRTAB:DB BR0 BRTAB . DB BRn - BRTAB,转移地址 BRTAB:AJMP BR0 . AJMP BRn,N 路分支程序设计讨论,128 分支程序设计,MOV A,R3 RL A ;A = A * 2 MOV DPTR,#BRTAB JMP A + DPTR BRTAB:AJMP BR0 ;为 2 字节指令 AJMP BR1 . AJMP BR127,问: 若分支程序的入口地址在 64 K 范围内分布 最多能完成多少路分支,循环程序设计,程序计数器特点,根据循环计数器中的值确定 PC 转向,从 BLOCK 单元开始存放一组无符号数据, 数据块长度放在 LEN 单元中,编写一个求和程 序,将和存入 SUM 单元,设和不超过一字节。,分析,在循环体中,存放数据块的地址用间址表示, 根据减 1 计数器中值是否为 0 作退出循环体的 条件。,A = 0,R2 = (20H),R1 = #22H,A = A + (R1),R2 = R2 -1,R2 = 0,(21H) = A,20H,21H,22H,块长度,N,R1 = R1 + 1,流程,循环程序设计,LEN,SUM,循环程序设计,编程,LEN DATA 20H ; 20H单元存放数据块长度值 SUM DATA 21H ; 21H单元存放数据累加和 BLOCK DATA 22H ; 22H单元为数据块首址 CLR A ; A 存放累加和,先清 0 MOV R2,LEN ; R2 为数据块长度计数器 MOV R1,#BLOCK ; R1为数据块指针 LOOP: ADD A,R1 ; 循环累加 INC R1 ; 修改数据块指针 DJNZ R2,LOOP ; 若计数器不为 0,循环 MOV SUM,A ; 若计数器为 0,存累加和,查表程序设计,将 16 进制数转换为 ASCII码,设 16 进制数存放 在 R0 的低 4 位,转换后的 ASCII 码放入 R0 中。,分析,应用专用查表指令 MOVC A,A+DPTR,表首 地址赋给 DPTR,表项赋给 A,查表结果赋给 A。,应用专用查表指令 MOVC A,A+PC,表首 地址赋给 PC,表项赋给 A,查表结果赋给 A。,注: A+DPTR 和 A+PC 的应用特点,查表程序设计,编程 1( MOVC A, A+PC ),MOV A,R0 ANL A,#0FH ; 表项位置从0 15 ADD A,#1 ; PC 影响的地址调整 MOVC A,A+PC MOV R0,A ; 该指令为 1 字节指令 ASCTB: DB “0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F”,注: 由于PC = PC+1的自动性,很难掌握地址调整,4、单片机c语言编程,基本C语言 考虑单片机资源 硬件化的C语言 C与汇编的联合编程,在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚) #include /该头文档中有单片机内部资源的符号化定义,其中包含P1.3 void main( void ) /void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 P13 = 1; /给P13赋值1,引脚P1.3就能输出高电平VCC While( 1 ); /死循环,相当 LOOP: goto LOOP; 注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。,在某引脚输出方波编程方法:(比如P3.1引脚) #include /该头文档中有单片机内部资源的符号化定义,其中包含P3.1 void main( void ) /void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 While( 1 ) /非零表示真,如果为真则执行下面循环体的语句 P31 = 1; /给P31赋值1,引脚P3.1就能输出高电平VCC P3_1 = 0; /给P31赋值0,引脚P3.1就能输出低电平GND /由于一直为真,所以不断输出高、低、高、低,从而形成方波 ,十字路口交通灯 如果一个单位时间为1秒,这里设定的十字路口交通灯按如下方式四个步骤循环工作: 60个单位时间,南北红,东西绿; 10个单位时间,南北红,东西黄; 60个单位时间,南北绿,东西红; 10个单位时间,南北黄,东西红;,用P1端口的6个引脚控制交通灯,高电平灯亮,低电平灯灭。 #include /sbit用来定义一个符号位地址,方便编程,提高可读性,和可移植性 sbit SNRed =P10; /南北方向红灯 sbit SNYellow =P11; /南北方向黄灯 sbit SNGreen =P12; /南北方向绿灯 sbit EWRed =P13; /东西方向红灯 sbit EWYellow =P14; /东西方向黄灯 sbit EWGreen =P15; /东西方向绿灯 void Delay1Unit( void ) /* 用软件产生延时一个单位时间 */ unsigned int i, j; for( i=0; i1000; i+ ) for( j0; j1000; j+ ); /通过实测,调整j循环次数,产生1ms延时 /还可以通过生成汇编程序来计算指令周期数,结合晶体频率来调整j循环次数,接近1ms ,/* 延时n个单位时间 */ void Delay( unsigned int n ) for( ; n!=0; n- ) Delay1Unit(); void main( void ) while( 1 ) SNRed=0; SNYellow=0; SNGreen=1; EWRed=1; EWYellow=0; EWGreen=0; Delay( 60 ); SNRed=0; SNYellow=1; SNGreen=0; EWRed=1; EWYellow=0; EWGreen=0; Delay( 10 ); SNRed=1; SNYellow=0; SNGreen=0; EWRed=0; EWYellow=0; EWGreen=1; Delay( 60 ); SNRed=1; SNYellow=0; SNGreen=0; EWRed=0; EWYellow=1; EWGreen=0; Delay( 10 ); ,中断服务函数的编写: void 函数名(void)Interrupt 中断号 using 寄存器组号 注:中断函数不能有返回值和形式参数。,void myinterrupt(void) interrupt 0 using 2 / 中断处理 ,data:直接内存访问数据存储器(内部RAM) bdata:可位寻址的数据存储器(内部RAM) idata:间接寻址的内部数据存储器(内部RAM) pdata:分页的外部存储器(用 movx ri 指令访问) xdata:外部数据存储器(用 movx dptr 指令访问) code:代码数据存储器(用 movc a+dptr 指令访问) 例如:data int i; xdata char j;,单片机的数据属性限制(存储器类型):,C8051F020的结构 C8051F020的特点 C8051F020的应用,5、 C8051F020简介,C8051F020的结构:,封装:TQFP100/64,C8051F020的特点(一):,C8051内核 64kB Flash 程序存贮器 4352B的数据存贮器(另 可扩展64kB) ISP(在系统编程) JTAG(边界扫描)非 侵入式在线调试 内置可编程振荡器,C8051F020的特点(二):,25MHz的时钟(25MIPS) 流水式指令结构(70% 的单指令1至2个周期) 低电压工作(2.73.6V) 8字节宽的端口I/O (5V) 5 个通用16 位计数器/ 定时器 两个UART 串口 交叉开关,C8051F020的特点(三):,专用的看门狗定时器 精确的VDD 监视器和 欠压检测器 实时时钟方式(RTC) 22 个矢量中断源 SMBus(I2CTM 兼容) 和 SPITM串口 计数器/定时器阵列有5 个捕捉/比较模块,C8051F020的特点(四):,8通道 12bit A/D, 100ksps,单端或差分输入,程控增益放大器,内置温度传感器 8通道 8bit A/D, 500ksps, 程控增益放大器, 2通道12bit D/A, 100s, 可同步输出 电压基准 两个模拟电压比较器,C8051F020的特点(四):,SOC (System On Chip),另:有兼容的100MHz的C8051F120,C8051F020的存贮器组织:,例:C8051F020中A/D相关的寄存器:,基于C8051F020的单片机通用系统,单片机通用系统的组成: (1)MCU;(2)显示(数码管8位、字符/图形液晶接口); (3)键盘(48键);(4)8路A/D;(5)双路D/A; (6)64k程序存贮器;(7)64k数据存贮器; (8)RS232C/RS485通信口; (9)继电器输出(2个) ; (10)拔码开关或跳线; (11)LED灯(8个); (12)EEPROM/复位/日历;(13)复位按钮。,基于C8051F020的单片机通用系统,C8051F020,图形液晶模块/字符液晶模块/ 8位数码显示,键盘(48键),64k RAM,8个LED灯,2个继电器,双RS232/485,8个拔码跳线,EEPROM日历/复位,复位按钮,基本开发工具和开发流程: Keil uvision;(参考资料) Cygnal IDE

温馨提示

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

评论

0/150

提交评论