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

下载本文档

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

文档简介

全国高职骨干教师暑期培训

——单片机原理及应用电子实验中心习友宝2007.7.12主要内容:1、单片机的概述2、8051的基本原理3、基本汇编及编程4、c语言编程基本方法5、C8051F020简介6、单片机应用举例1、微型计算机概述

微处理器——CPU芯片微处理器的硬件结构微处理器的体系结构运算器、控制器、寄存器、总线接口单元复杂指令集——CISC(ComplexInstructionSetComputer)以Intel公司为代表的CPU,例MCS-51芯片精简指令集——RISC(ReducedInstructionSetComputer)以IBM公司为代表的CPU,例POWERPC芯片1、微型计算机概述

单板微型计算机单片微型计算机微型计算机系统

CPU、存储器、I/O接口集成在一个芯片上应用广泛,重点讲解MCS–51的原理

CPU、存储器、I/O接口集成在一张印刷板上用于工业控制器、家用电器、手机等更完备CPU、存储器、I/O接口

PC机——微型计算机的骄傲

单片微型计算机、微控制器单片微型计算机——SCM(SingleChipMicrocomputer)微控制器——MCU(MicroControlUnit)

注:称呼不同、功能一样单片微型计算机、微控制器

CPU——MCUCPUROMRAMI/O接口外部设备CBDBABMCU单片微型计算机微控制器(MCU)单片机的特点片内存储器的类型特点存储器系统的可扩展性片内ROM——程序指令机器码存放区片内RAM——运行中随机数据存放区

I/O接口引脚功能的多样性位寻址和位处理功能

单片微型计算机微控制器(MCU)通用型单片机硬件电路设计简单,软件开发容易用芯片就可完成系统设计,调试及应用

设计参考资料丰富如IntelMCS-51系列单片微型计算机微控制器(MCU)专用型单片机根据特殊要求而设计的单片机在单片中加入更强的数据处理能力(如DSP)常用芯片

TI公司用于信号处理单片机TMS320系列

AD公司用于信号处理单片机ADSP2106系列

单片微型计算机微控制器(MCU)单片机的应用机电一体化设备的控制核心数据采集系统的前端采集单元分布式控制系统的前端控制单元智能化仪器仪表的控制机芯家电及消费类电子产品的控制机芯终端及外部设备的控制机芯

常用的单片机目前,国内单片机应用呈现百花齐放之势,很多不同类型的单片机逐渐进入中国,这给我们增加了选择余地。因此,可首先选择主流单片机进行学习,在熟悉以后,爱好者可以根据实际情况,选择进一步学习另一种或多种单片机。8051类单片机最早由Intel公司推出的8051/31类单片机,也是世界上用量最大的几种单片机之一。由于Intel公司在嵌入式应用方面将重点放在X86、奔腾等与PC类兼容的高档芯片的开发上,8051类单片机主要由Philips、三星、华邦等公司接产。这些公司都在保持与8051单片机兼容的基础上改善了8051许多特性(如时序特性)。提高了速度、降低了时钟频率,放宽了电源电压的动态范围,降低了产品价格。发展动态:1、以8051内核发展出各种系列 ——ATMELAT89CXX;——WINBOND51系列;——PHILIPS

80C51系列单片机2.发展成为SOC(如:LCD控制,A/D,D/A,USB,网络接口等)3.低功耗:如TIMSP430系列等4.高速和DSP结合。。嵌入式处理器ARM系列基于51内核的单片机依然是国内使用最多的,目前国内较常见的有以下几种:PHILIPS:(1)基于80C51内核的微控制器,每个机器周期只需6个时钟周期,比标准51快一倍。(2)该系列芯片适用于大批量、低成本、低功耗的应用,如电子门禁系统、倒车雷达、里程表等。(3)主要型号:如P89C51,P89C52,P89C54,P89C58等ATMEL公司ATMEL单片机:(1)ATMEL公司目前的产品主要FLASH,EEPROM,还有可编逻辑器件PLD,门阵列,场可编门阵列FPGA,8051兼容的闪速单片机(FLASHMicrocontroller),以及智能卡(SmartCard)。(2)为了介入单片机市场,ATMEL公司以EEPROM技术和Inte1公司的8031单片机核心技术进行交换,从而取得8031核的使用权。ATMEL公司把自身的优势即先进的Flash技术和8031核相结合,从而生产出了Flash单片机89C51等系列。(3)主要型号:AT89C51,AT89C52,AT89C1051,AT89C2051Motorola单片机Motorola是世界上最大的单片机厂商。品种全、选择余地大、新产品多是其特点,在8位机方面有68HC05和升级产品68HC08,8位增强型单片机68HC11。升级产品有68HC12,16位机68HC16。Motorola单片机特点之一是在同样速度下所用的时钟频率较Intel类单片机低很多,因而使得高频噪声低,抗干扰能力强,更适合用于工控领域及恶劣的环境。InfineonXC800系列XC866基于与工业标准8051兼容的内核,每个机器周期只需2个时钟周期,标准51需12个时钟周期。高度集成片内器件,例如片内振荡器、嵌入式电压调节器(可由3.3V或5.0V的单电源供电),有许多增强功能。存储器保护策略为用户知识产权(IP)提供读保护,同时Flash编程和擦除保护用来防止数据破坏。多闪存组(FlashBank)结构支持在应用编程(IAP),运行某bank中的用户程序可编程擦除另一BANK中的内容。可进行在系统编程ISP,通过PC对嵌入式FLASH方便的编程或擦除。具有用来产生脉宽调制信号、带有电机控制专用模式的捕获/比较单元功能扩展的10位模数转换器ADC,具有如自动扫描和结果累加(用于抗混迭滤波或结果平均)等特性;功能扩展的通用异步收发器UART,支持本地互连网络(LIN)应用,为许多器件提供LIN的底层驱动软件;

LIN是一种机动车内部网络互连的整体通信概念。提供不同的省电模式选择,以满足低功耗应用扩展了控制片内外设功能的特殊功能寄存器(SFR)的地址范围。内部结构Cygnal公司C8051F系列该系列单片机大部份指令只需一个时钟周期即可完成(89C51的一条指令最少为12个时钟周期),因而该系列单片机的运行速度大大加快。其余改进包括加多了中断源、复位源,带有JTAG接口,可在系统编程调试,可实现捕捉、高速输出、PWM功能等,是51系列单片机中的高端产品。该系列单片机由新华龙电子代理,MicrochipMicrochip单片机是市场份额增长最快的单片机,抗干扰能力强,系列品种齐全,其OTP(一次性可编程)产品大批量用于家电控制等场合,某些内置FLASHROM的型号用于工业控制也很合适。主要产品是16C系列8位单片机,CPU采用RISC结构,仅33条指令,Microchip强调节约成本的最优化设计,适于用量大、档次低、价格敏感的产品。初档8位单片机:PIC12C5XXX/16C5X系列中档8位单片机:PIC12C6XX/PIC16CXXX系列高档8位单片机:PIC17CXX系列

中文网站德州仪器公司TIMSP430系列通用型单片机,1996年推向市场.MSP430系列单片机均为工业级器件,运行温度-40~+85摄氏度。该单片机最大的特点是用电极省。该系列单片机主要用于各种智能仪表、测试测量系统,便携的设备如U盘,MP3播放器,手持式仪表,玩具等。MSP430系列特点16位的RISC(精简指令集)结构,1时钟周期/机器周期(传统MCS51为12时钟周期/机器周期),所以在8M的主频的情况下,其性能远远优于12M主频的传统MCS51单片机。某些型号具有类似于DSP内的硬件乘法器,硬件乘-加功能,DMA等,便于快速的实现数字信号处理的一些算法。开发环境:PC+集成开发环境的软件(IARWorkbenchV2.10)+JTAG下载线+使用者硬件Epson单片机Epson公司以擅长制造液晶显示器著称,故Epson单片机主要为该公司生产的LCD配套。其单片机的特点是LCD驱动部分做得特别好。在低电压、低功耗方面也很有特点。国家半导体公司NS单片机

COP8单片机是美国国家半导体公司的产品,该公司以生产先进的模拟电路著称。能生产高水平的数字模拟混合电路。COP8单片机片内集成了16位A/D,这是单片机中不多见的。COP8单片机,在看门狗电路以及STOP方式下单片机的唤醒方式上都有独到之处。此外,COP8的程序加密控制也做得比较好。SST公司的SST89C54,SST89C58等具有在应用中编程(IAP)功能、在系统可编程(ISP)功能,不占用户资源,串口下载,无需编程器、仿真机,芯片可具有仿真机的功能。AD公司的AduC812,AduC824AD公司是著名的模拟器件生产公司,这两款单片机是AD公司结合其模拟技术特长而推出的基于51内核的单片机。Aduc812内部集成有8KFLASHROM,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()

是国内最为成功的单片机类个人网站之一,人气旺盛,提出的各类问题会得到及时的回答,尤其是KeilC方面的问题,是目前国内关于KeilC方面的权威网站。3、水木清华是国内著名的BBS站点之一,该站设有许多栏目,其中电路设计与调试、嵌入式系统等与单片机应用与开发有关有一些有实用价值的贴子。其它一些BBS如电子爱好者网站电子报网络版周立功网站网上找资料1、力源网站

该网站目前录入有全球92家IC厂商的器件可供查询;录入有39543个PDF文件可供下载;全球671家IC厂商可查询其网址及分支机构等情况;316个IC媒体及网址可供查询。该站的特点是提供了大量中文资料,分类查询也设计得非常周到。2、中国电子网(21ic)该网站提供了各大公司数万份器件资料,通常用到的集成电路资料都可以在这里找到3、……………..2、MCS-51系列单片机的结构

MCS-51单片机的基本组成

组成单元

CPU及控制线内部ROM和内部RAM4个8位I/O口——P0、P1、P2、P3AT89C51结构图

MCS-51系列单片机的结构RAM结构图ROM结构图00HFFH0000HFFFFH内部RAM外部RAM0FFFH0000H1000HFFFFH0000HFFFFH/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=0MCS-51系列单片机的结构

8051片内RAM的分配00H1FH20H2FH30H7FH80HFFH3组工作寄存器R0~R72组工作寄存器R0~R71组工作寄存器R0~R70组工作寄存器R0~R700H1FH工作寄存器组可位寻址区仅字节寻址区寄存器借用区00HFFHMCS-51系列单片机的结构

PSW——程序状态字(寄存器)b7b6b5b4b3b2b1b0CYACF0RS1RS0OVF1P

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–1MCS-51系列单片机的结构

P0、P1、P2、P3口的功能和特点可作4个8位并行I/O口使用可对各口中的某一位进行位操作存储器扩展时P0、P2口具有AB/DB第二功能

P3口的第二功能为外部中断、定时、串口、R/WMCS-51系列单片机的结构

P0~P3口的硬件电路特点(作一般I/O口使用时)作输出口使用时内部带锁存器作输入口使用时内部带缓冲器均具有读端口和读引脚功能MCS-51系列单片机的结构

P1口的位硬件电路

VCCGND读引脚控制读端口控制外引脚内总线DQ/Q8051单片机的引脚及其功能双列直插式40脚DIP封装GNDVCC芯片封装类型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、/PSEN8051单片机的引脚及其功能

引脚——时钟输入线

XTAL1和XTAL2由外部晶体和内部振荡电路获得主频,系统常用由外部直接输入时钟获得主频,特殊系统用8051单片机的引脚及其功能

引脚——电源线

VCC和GND引脚——总结

I/O口线——32条

控制线——4条时钟线——2条电源线——2条共计40条MCS-51单片机的工作方式

MCS-51单片机的复位方式复位时各芯片寄存器的初值复位时程序指针PC的特点

PSW=0000H

初始化时使用通用寄存器0组的R0~R7SP=07H

初始化时栈顶在0组R7,入栈从1组的R0开始

P0~P3=FFH

初始化时并口输出为高电平其余寄存器为00HPC=0000H注:8086CPU复位时CS:IP=FFFF0HMCS-51单片机的工作方式

MCS-51单片机的上电复位电路保持复位端RESET高电平两个机器周期常用上电复位电路上电时电容C两端电压不能突变,Vcc加在RESET端。

经RC充电电路,稳态时C两端电压为Vcc,RESET=0V。

根据主频选择R、C值,一般R=10K、C=10uFMCS-51单片机的工作方式

MCS-51单片机的程序执行方式程序指针PC从初始值0000H处执行指令

在PC=0000H处通常有直接跳转指令

LJMPmain;将PC转移到主程序main处执行程序指针PC执行指令时会完成自动加1操作注:程序执行时PC值的变化特点是学习的重点MCS-51单片机的工作时序

时钟周期、机器周期、指令周期的概念

取指令、执行指令的概念

取指令时序、执行指令时序的概念

指令字节数与指令周期数的概念

时序与控制线ALE的关系MCS-51单片机的工作时序

访问外部ROM(取指令)的时序图ALE/PSENA8~A15P2A0~A7A0~A7指令指令P0MCS-51单片机的工作时序

访问外部RAM的时序图

ALE/RDA8~A15P2A0~A7数据P0I/O接口电路的作用高速CPU与低速外设的速度匹配主机与外设间信号电平、逻辑的转换信号串/并、并/串方式的转换

CPU外设数据端口状态端口控制端口总线驱动地址译码逻辑控制DBABCB

I/O接口电路连接

I/O接口电路接口与端口

I/O接口电路原理图

与CPU——三总线连接与外设——三信息连接输入/输出传送方式无条件传送方式条件传送方式(查询方式)中断传送方式DMA方式(存储器直接存取方式)MCS-51的中断和中断接口

§中断概述§中断处理过程§MCS-51的中断系统及其控制§MCS-51外部中断源的扩展中断概述中断源硬件中断的分类中断允许与中断屏蔽中断优先级中断源

发出中断请求的来源称为——中断源软件中断源硬件中断源由中断指令引起中断,例如8086CPU的INTn指令MCS-51无软件中断指令由外设发出中断请求信号给CPU称硬件中断源PC/XT微机外设向CPU发中断请求信号控制系统各种传感器发出的中断请求信号

硬件中断的分类

可屏蔽中断非屏蔽中断中断请求─→(中断允许)─→中断响应中断请求─→(中断屏蔽)─X→不响应中断中断请求─→中断响应注:MCS-51有此种方式注:MCS-51无此种方式中断优先级

单中断源多中断源无需讨论中断优先级问题必需讨论中断优先级问题优先级解决方法软件查询法专用芯片(专用中断优先级管理芯片)寄存器控制法(对中断优先级寄存器编程)中断处理过程

中断请求中断允许(可屏蔽中断)中断响应中断处理(中断服务程序)中断返回在计算机应用系统中,一个完整的中断处理过程应包括如下五个步骤MCS-51中断服务程序的入口地址

中断入口地址表中断源

中断入口地址

/INT0PC=0003HT0PC=000BH/INT1PC=0013HT1PC=001BH串行口

PC=0023H有中断的完整程序结构

中断入口表程序

主程序

中断服务程序(其它子程序)源程序汇编结束伪指令有中断的完整程序结构

ORG0000HLJMPMAIN;跳到主程序入口ORG0003HLJMPRINT0;跳到/INT0中服程序入口

……MAIN:SETBEA;主程序入口……SJMP$;主程序结束RINT0:PUSHACC;中断服务程序入口……RETI;退出中断服务程序……

END;结束汇编表程序主程序中服程序并行口应用(单片机显示/键盘系统)7段LED数码显示器的控制与编程

8155与LED数码管的接口电路

LED数码管的扫描控制

LED显示符号与段码数据行列矩阵非编码键盘的控制与编程

8155与矩阵非编码键盘的接口电路矩阵非编码键盘的特点键操作检测分析7段LED数码显示器的控制与编程

8031与1位LED数码管的接口(静态显示方式)7段LED数码显示器的控制与编程

8031923588P1P2hgfedcba543210

8031与多位LED数码管的接口(动态扫描方式)行列矩阵非编码键盘的控制与编程

线性键盘电路与矩阵键盘电路线性键盘电路8031VCCGND输入口行列矩阵非编码键盘的控制与编程

线性键盘电路与矩阵键盘电路(续)矩阵键盘电路8031VCC行线列线输出口输入口行列矩阵非编码键盘的控制与编程

多键同时按下的处理给出按键优先序重新扫描确定按键操作消除按键抖动的方法硬件法软件法使用单稳电路消除按键抖动使用傍路电容消除按键抖动查询到按键信息后调用延时程序按键为中断请求后关中断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、216N——实际计数值定时初值的计算计算公式:X(us)=(M–N)T

其中:M——计数最大值,即28、213、216N——实际定时值T——时钟周期的12倍定时/计数器的应用

在P1.1输出周期为2ms的方波。1ms1mstv定时器选用——T1

工作方式——方式0

主频选用——12M定时初值计算(定时1ms,设时钟12MHz)X=(M–N)T=(213–1000)1us=1110000011000B串行通信的基本知识串行通信的基本通信方式串行通信中的数据传送方式并行/串行变换及串行接口串行通信的基本通信方式

串行通信协议

异步协议

同步协议数据可顺次地出现在数据流中,数据间的相对延迟没有专门的时钟来控制。数据流中顺次出现的数据由一个主数据时钟来管理,以一定的时间间隔出现。串行通信的基本通信方式

异步串行通信协议中的位定义同步串行通信协议中的字节定义010/1起始位停止位数据位(位同步)0/10/1同步字节数据字节(字节同步)串行通信的基本通信方式

异步传送方式异步传送的特点异步传送的格式数据在线路上的传送不是连续的收发双方各用自已的时钟源控制接收和发送起始位——1bit,0电平数据位——Nbit,有效电平校验位——1bit,与数据位中的值有关,可不用停止位——1~2bit,1电平注:传送字符由4部分组成串行通信的基本通信方式

异步传送方式(续)异步传送中的数据位收发端必顺采用相同的异步传送格式收发端必顺采用相近的速率(波特率)收发端的一致性特点

7bit数据位格式

8bit数据位格式注:数据位格式由工作方式确定串行通信的基本通信方式

同步传送方式同步传送的特点同步传送的格式数据在线路上的传送是连续的同步字符块——由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作桥粱)MOVRn,Rn

MOV@Ri,Rn

MOV@Ri,@RiMOVA,RnMOVRn,AMOVA,RnMOV@Ri,A

MOVRn,@RiMOVA,@RiMOVRn,AMOVA,@RiMOV@Ri,A错误正确外部存储器(RAM、ROM)的数据传送指令

MOV、MOVC、MOVX

外部存储器16位地址值传送指令(1条)访问外部ROM存储器的指令(2条)MOVDPTR,#data16

;DPTR←外部RAM、ROM的16位地址值MOVCA,@A+DPTR;A←(A+DPTR)数据指针MOVCA,@A+PC;PC←PC+1、A←(A+PC)程序指针MOVCA,@A+PC指令的应用

程序

1000H:MOVA,#10H

;A=10H1002H:MOVCA,@A+PC表项1010H:02H1011H:04H1012H:06H1013H:08HA←(A+PC)、A=08H结果;PC←PC+1、PC=1003H、A+PC=1013H注:表项地址范围为1003H~1003H+FFHMOVCA,@A+DPTR指令的应用

程序

1000H:MOVA,#01H

;A=01H1002H:MOVDPTR,#6000H;DPTR=6000H1005H:MOVCA,@A+DPTR;A+DPTR=6001H

表项6000H:0AH6001H:0BH6002H:0CHA←(A+DPTR)、A=0BH结果注:表项地址范围为0000H~FFFFH控制转移指令无条件转移指令条件转移指令子程序调用及返回指令空操作指令无条件长转移指令——LJMP

格式特点应用LJMPaddr16;PC目的←addr16程序计数器PC的目的地址为16位立即数为3字节指令,02H、addr高8位、addr低8位指令中用符号地址表示,汇编时获得16位真值可转移PC的64KB范围,即可访问片外ROM无条件绝对转移指令——AJMP

格式特点应用AJMPaddr11;PC←PC+2、PC10~0←addr11PC目的为16位,即高5位原数及低11位立即数PC的目的地址的获得先:PC←PC+2有:PC15~11,a10~a0←addr11为2字节指令,a10a9a800001、a7~a0

可转移程序存储器的2KB范围(211=2K)LJMP、AJMP指令比较

指令字节数指令寻址范围AJMP——2字节指令LJMP——3字节指令AJMP——2KB寻址范围LJMP——64KB寻址范围指令操作码AJMP——a10a9a800001LJMP——00000010无条件短转移指令——SJMP

格式特点应用SJMPrel;PC←PC+2、PC←PC+rel

rel为1字节相对增量地址,范围为–128~+127SJMP为2字节指令,80H(码)、rel(数)PC目的=PC源+2+relPC目的=PC当前+rel无条件变址转移指令——JMP

格式特点应用JMP@A+DPTR;PC目的←A+DPTR

称DPTR中的值为基址,A中的值为变址PC目的为16位地址值多用于多路分支程序,各分支程序有等优先权,同C语言中的swich语句MOVCA,@A+DPTR

JMP@A+DPTR

指令比较MOVCA,@A+DPTR;A=(A+DPTR)查表指令跳转指令JMP@A+DPTR;PC目的=A+DPTR注:指令的应用在程序设计中讲汇编语言中的伪指令

伪指令对汇编源程序进行管理是必须的,但汇编后不产生机器码,主要有如下伪指令。

ORG——汇编起始地址伪指令

END——汇编结束伪指令

EQU——等值定义伪指令

DATA——地址数据赋值伪指令

DB——程序存储器字节数据类型定义伪指令

DW——程序存储器字数据类型定义伪指令

DS——程序存储器地址保留量定义伪指令

BIT——位地址符号定义伪指令分支程序设计

N路分支程序,根据工作寄存器R3中的值确定执行分支功能程序段。

分析用比较条件转换指令CJNER3,#data,rel,当R3≠#data时转移,此法编程简单,但问题是谁先比较谁快,谁后比较谁就慢。为解决判断时间不一致问题,可采用转移地址查表法用变址寻址转移指令JMP@A+DPTR,即将R3的值放入A,将R3值所对应的功能程序段指针放入DPTR单元,这样解决快慢不均问题。

R3≠0R3≠1R3≠2R3≠NNNNN转向BR0转向BR1转向BR2转向BRNYYYYA=R3DPTR=表首地址JMP@A+DPTRMOVCA,@A+DPTRBR0BR1BR2BRN流程分支程序设计N路分支程序设计讨论

问题全部分支程序总机器码字节数小于256全部分支程序总机器码字节数大于255转移地址表BRTAB:DBBR0–BRTAB.DBBRn-BRTAB转移地址BRTAB:AJMPBR0.AJMPBRnN路分支程序设计讨论

128分支程序设计MOVA,R3RLA;A=A*2MOVDPTR,#BRTABJMP@A+DPTRBRTAB:AJMPBR0;为2字节指令AJMPBR1.AJMPBR127问:若分支程序的入口地址在64K范围内分布最多能完成多少路分支循环程序设计

程序计数器特点根据循环计数器中的值确定PC转向从BLOCK单元开始存放一组无符号数据,数据块长度放在LEN单元中,编写一个求和程序,将和存入SUM单元,设和不超过一字节。分析在循环体中,存放数据块的地址用间址表示,根据减1计数器中值是否为0作退出循环体的条件。

A=0R2=(20H)R1=#22HA=A+(R1)R2=R2-1R2=0(21H)=A块首地址累加和块长度值20H21H22H块长度NR1=R1+1流程循环程序设计LENSUM循环程序设计

编程LENDATA20H;20H单元存放数据块长度值SUMDATA21H;21H单元存放数据累加和BLOCKDATA22H;22H单元为数据块首址

CLRA;A存放累加和,先清0MOVR2,LEN;R2为数据块长度计数器MOVR1,#BLOCK;R1为数据块指针LOOP:ADDA,@R1;循环累加INCR1;修改数据块指针DJNZR2,LOOP;若计数器不为0,循环MOVSUM,A;若计数器为0,存累加和

查表程序设计

将16进制数转换为ASCII码,设16进制数存放在R0的低4位,转换后的ASCII码放入R0中。分析应用专用查表指令MOVCA,@A+DPTR,表首地址赋给DPTR,表项赋给A,查表结果赋给A。应用专用查表指令MOVCA,@A+PC,表首地址赋给PC,表项赋给A,查表结果赋给A。注:@A+DPTR和@A+PC的应用特点查表程序设计

编程1(MOVCA,@A+PC)MOVA,R0ANLA,#0FH;表项位置从0~15

ADDA,#1;PC影响的地址调整MOVCA,@A+PCMOVR0,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<AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P1.3voidmain(void) //void表示没有输入参数,也没有函数返值,这入单片机运行的复位入口{ P1^3=1; //给P1^3赋值1,引脚P1.3就能输出高电平VCC While(1); //死循环,相当LOOP:gotoLOOP;}注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。在某引脚输出方波编程方法:(比如P3.1引脚)#include<AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P3.1voidmain(void) //void

温馨提示

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

评论

0/150

提交评论