收藏 分销(赏)

单片机原理及应用原稿.pptx

上传人:丰**** 文档编号:7339950 上传时间:2024-12-30 格式:PPTX 页数:316 大小:2.34MB 下载积分:20 金币
下载 相关 举报
单片机原理及应用原稿.pptx_第1页
第1页 / 共316页
单片机原理及应用原稿.pptx_第2页
第2页 / 共316页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,PIC上海技术培训中心,#,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,PIC上海技术培训中心,1,PIC,单片机原理及应用,(第二版),美国微芯公司授权上海技术培训中心,2005.01,PIC上海技术培训中心,2,第1章微型计算机概论,微型计算机是一种既有快速运算能力,又有极强逻辑判断能力和大容量存储功能的电子设备,它是,20,世纪人类最卓越的科学发明之一。,本章介绍微型计算机的基础知识,主要内容有微型计算机的发展历史及应用领域、计算机硬件、软件系统的基本组成。,PIC上海技术培训中心,3,1.1 微型计算机的发展历史及应用,我们今天所说的计算机,是指利用电子技术实现计算并具有逻辑判断和程序存储功能的设备。,PIC上海技术培训中心,4,1.1.1 微型计算机的发展历史,从计算机发展的历史看,微型计算机已属于第四代计算机,而微型计算机的发展又已经历了,四,代。,PIC上海技术培训中心,5,1.1.2 微型计算机的应用,科学计算,数据处理,过程控制,计算机辅助设计/辅助制造(,CAD/CAM),计算机网络,PIC上海技术培训中心,6,1.1.3 微型计算机系统主要技术指标,字长:,计算机的字长取8的整数倍数,,如8位、16位、32位、64位等,速度,:,计算机的速度指标可用主频及运算,速度来评价,(,G)、(,万次/秒),存储系统容量:内存和外存(,M)(G),PIC上海技术培训中心,7,1.2 微型计算机系统的组成,计算机的硬件通常包括运算器、存储器、控制器、输入设备及输出设备等五个部分,PIC上海技术培训中心,8,1.2.2,软件系统,软件系统是一台计算机中的系统软件、应用软件、程序设计语言和支持软件及各种文档的总称。,系统软件:包括操作系统、服务程序、汇编程序、解释程序和编译程序等。,应用软件:是用汇编语言或高级语言为解决某种实际问题而编写的程序。,程序设计,语言:,通常分为面向机器的汇编语言和面向用户的高级语言,。,PIC上海技术培训中心,9,1.3 微控制器系统,在计算机的发展历史上,特别是在第一台小型控制器件形成以后,沿着两条完全不同的用途、不同的价格、和不同的技术内涵,而被充实于我们的日常生活中。,PIC上海技术培训中心,10,1.3.1 单片机系统,单片机的发展过程和性能的日益完善,实际上是对传统控制技术的一场革命,开创了微控技术的新天地。,现代控制系统的核心内涵就是嵌入式计算机应用系统(,MCU),,而单片机就是最典型、最广泛、最普及的嵌入式计算机应用系统。,PIC上海技术培训中心,11,单片机的降临,主要也是源于其性能价格比。一般单片机用于控制的目的,而对于其承担的计算功能却要求不高,只要能按照一定的程式进行在线检测和即时控制工作。,目前,各个单片机生产厂家还是立足于8位单片机的竞争,因为从其降临以来,一直成为应用最广泛的器件。2002年美国,MICROCHIP,和,MOTOROLA,两家公司,已占据着世界8位单片机产量最高的前两个芯片制造商。,PIC上海技术培训中心,12,一般的单片机的结构可以用图1.2所示的方块图描述,用三大总线(,DB、AB、CB),实现模块之间的信息传递。,单片机内部结构,PIC上海技术培训中心,13,单片机的主要应用,人有所思,单片机就可为。单片机的应用必将随着社会的发展和技术的进步,而获得更广阔应用。(系列化的单片机?),电信,家用电器,工业控制,仪器仪表,汽车,玩具,PIC上海技术培训中心,14,单片机有哪些特点,单片机具备体积小、价格低、性能强、速度快、用途广、可靠性高、灵活性强等优点,它与通用的计算机相比,还具有以下一些特点:,存储器,ROM,和,RAM,的相互独立,采用面向控制的指令系统,输入/输出端口的强大功能,PIC上海技术培训中心,15,1.3.2,PIC,系列单片机,PIC,系列单片机,可以满足用户的各种需要。从中档产品,PIC16F877,作为切入点,提供非常完备、易学易用的,MPLAB-ICD,集成开发环境。,特别是对于单片机的新手,仿佛从茫然迷惑的大海搭上一艘便捷平稳的小船,感到非常轻松自如。,PIC上海技术培训中心,16,第2章,PIC,单片微机的组成,PIC(Periphery Interface Chip),单片微机是美国,Microchip,公司生产的,PIC,系列单片机。,PIC,系列单片机的硬件系统设计简洁,指令系统设计精炼。在所有的单片机品种中,,PIC,具有性能完善、功能强大、学习容易、开发应用方便、人机界面友好等突出优点。,PIC上海技术培训中心,17,2.1,PIC,系列单片机概述,Microchip,公司是一家专门致力于单片机开发、研制和生产的制造商,其产品设计起点高,技术领先,性能优越。,它不是在一般微型计算机,CPU,的基础上加以改造,而是独树一帜,采用全新的流水线结构、单字节指令体系、嵌入闪存以及10位,A/D,转换器,使之具有卓越的性能,代表着单片机发展的新方向。,PIC,系列单片机,具有高、中、低三个档次,可以满足不同用户开发的需要,适合在各个领域中的应用。,它具有如下特点:,2.1.1,PIC,系列单片机特点,PIC上海技术培训中心,18,单片机总线结构,单片微型计算机通常采用两种体系结构:一种是普林斯顿体系结构;另一种是哈佛体系结构。,在普林斯顿体系结构中,其程序存储器和数据存储器统一编址,也就是说两种存储器位于同一逻辑空间,。,这种单片机的取指令和存取数据必须分时地进行,影响了执行指令的速度。,哈佛体系结构的程序存储器和数据存储器独立编址,也就是说两种存储器有不同的逻辑空间,。,PIC上海技术培训中心,19,PIC,系列单片机采用哈佛总线结构,在芯片内部数据总线和指令总线分离,容许采用不同的字节宽度。这样,就为实现指令提取和执行的,“,流水作业,”,提供结构保证,即在执行一条指令的同时对下一条指令进行取指操作。,两总线的分离,也为,PIC,实现全部指令的单字节化和单周期化创造条件,从而大大提高,CPU,执行指令的速度和工作效率。,1.哈佛总线结构,PIC上海技术培训中心,20,单片机总线结构比较,从同一存储器空间取指令和取操作数据,。,限制了数据流量。,从两个独立的存储空间分别取指令和存取操作数,。,数据流量增加。,针对程序区和数据区可以设计不同的数据线宽度。,程序和,数据,存储器,冯-纽曼结构,8-位,CPU,程序,存储器,数据,存储器,8-位,12/14/16-位,哈佛结构,CPU,PIC上海技术培训中心,21,PIC,系列单片机的指令系统,由于采用,RISC,技术,,和一般单片机指令系统通常有上百条指令相比要少得多。,2,RISC,技术,PIC上海技术培训中心,22,PIC,系列单片机只有4种寻址方式:寄存器间接寻址、立即数寻址、直接寻址和位寻址,比较容易掌握。,PIC,系列单片机的程序、数据、堆栈三者各自采用互相独立的地址空间,前两者的地址访问需要用户特别注意四个分区的范围,而堆栈过程用户不必参与和操心。,代码压缩率,就是指相同程序存储器空间所能容纳有效指令的数量。,3指令特色,PIC上海技术培训中心,23,由于,PIC,系列单片机采用,CMOS,结构,使其功率消耗极低,是目前世界上最低功耗的单片机品种之一。,其中有些型号,在4,MHz,时钟下工作时耗电不超过2,mA,,而在睡眠模式下耗电可低到1,A,以下。因此,,PIC,系列单片机,尤其适用于野外移动仪表的控制以及户外免维护的控制系统。,5功耗低,PIC上海技术培训中心,24,I/0,端口驱动负载的能力较强,每个输出引脚可以驱动多达20-25,mA,的负载,既能够高电平直接驱动发光二极管,LED、,光电藕合器、小型继电器等,也可以低电平直接驱动,这样可大大简化控制电路。,不过,请读者注意,每个引脚的驱动能力并不表示端口引脚同时都具有这样的功效。一般端口驱动能力约60-70,mA,,而所有输入输出驱动小于200,mA,,详细数据可参考有关数据手册。,6驱动能力强,PIC上海技术培训中心,25,PIC,主要是采用哈佛总线结构,可以同时进行指令读取和指令执行的流水线作业方式。,如:,MCS-51 12M,,指令执行时间为1,s4,s,PIC 12M,时钟周期,指令执行时间为0.30.6,s,7运行速度高,PIC上海技术培训中心,26,PIC,系列单片机的一些型号具有同步串行口,可以满足,I,2,C(,主控/从动)和,SPI(,主控)总线要求。,I,2,C,和,SPI(Serial Peripheral Interface),分别是,PHILIPS,公司和,MOTOROLA,公司研制的两种广泛流行的串行总线标准,是一种在芯片之间实现同步串行数据传输的技术。,利用单片机串行总线端口可以方便而灵活地扩展外围器件,目前已在许多电子产品中得到广泛应用。,8同步串行数据传送方式,PIC上海技术培训中心,27,2.1.2,PIC16F877,的结构,从其执行功能考虑,可以将单片机分成两大组件,即基本功能模块和专用功能模块。,PIC上海技术培训中心,28,PIC上海技术培训中心,29,PICl6F87X,系列单片机有双列直插式28引脚和40引脚及表面贴装式44引脚等几种封装形式。,多数,I/O,引脚都设计有第2功能,甚至第3功能。采用引脚复用技术,以便使单片机增加功能而又不增大体积和引脚数量。,2.1.3,PIC16F877,的引脚,PIC上海技术培训中心,30,PIC上海技术培训中心,31,F877,单片机内部配置了较完善的多个存储器,可分为数据存储器和程序存储器两种,为一般用户提供很大的方便。,但它们在形式上,具有很丰富的内涵,。,2.2 存储器概述,PIC上海技术培训中心,32,F877,单片机内部配置了8,K l4,位的闪烁(,FLASH),程序存储器,可以很方便进行在线擦除和烧写,寿命可达1000次以上。,在,PIC,系列单片机教学实验和科研开发中,显示出无穷的魅力和宽广的应用前景。,相应的地址编码范围为0000,H,lFFFH。,2.2.1 程序存储器,PIC上海技术培训中心,33,程序存储器结构,PIC上海技术培训中心,34,F877,单片机内部配置两类数据存储器,普通,RAM,数据存储器和,EEPROM,失电保持数据存储器。,RAM,总的地址空间为512个单元,其中包括部分无效单元,但每一个有效单位均可以象寄存器一样进行移位、置位、复位和位测试等操作。,PIC,单片机的数据存储器和其他单片机一样,在配置结构上可分为通用寄存器和特殊功能寄存器两大类,前者给用户使用,而后者通常定义给某些功能模块,是一种具有特殊目的的功能寄存器。,2.2.2 数据存储器,PIC上海技术培训中心,35,同时在,PIC16F877,片内又配置另一种可掉电保护的数据存储器,EEPROM,,共有2568位宽的存储单元,可以长期存放用户或系统的重要参数:如时间、配置及数据表格等,是一种非常重要的硬件资源。,PIC上海技术培训中心,36,数据存储器单元功能分配,体(,BANK)0,体(,BANK)1,体(,BANK)2,体(,BANK)3,PIC上海技术培训中心,37,存储器是单片机中一个非常重要的部件,专门用于存放指令、数据和运算结果。,分析,F877,单片机存储器构架,可以从其配置的三大模块着手进行,它们是:,8,K l4,位,FLASH,程序存储器,5128位数据存储器,RAM,2568位可掉电保护数据的,EEPROM,存储器模块。,第3章,PIC,存储器,PIC上海技术培训中心,38,存储器从使用功能上来分,可分为随机存储器,RAM(Random Access Memory),和只读存储器,ROM(Read Only Memory),两类。,3.1 存储器分类,PIC上海技术培训中心,39,F877,程序存储器具有13位宽的程序计数器,PC。PC,指针所产生的13位地址最大可寻址的程序存储器空间为8,K,,相应的地址编码范围为0000,H,lFFFH。,F877,归属于中档单片机,其指令字节宽度为14位,内部构架配置了8,K l4,位的闪烁,FLASH,程序存储器。,3.2 程序存储器构架,PIC上海技术培训中心,40,一般将整个程序存储器以2,KB,为单位进行分页(,PAGE),,如图3-1所示,F877,单片机,8,KB,程序存储器共分作4页,分别称为,“,页0,”,、,“,页,l,”,、,“,页2,”,和,“,页3,”,。程序计数器高8位,PCLATH,的,Bit4-Bit3,位构成程序存储器分页的选择位,对应的地址空间如下:,PCLATH Bit4:Bit3:,0 0,页0:0000,H 07FFH,0 1,页,l:0800H 0FFFH,1 0,页2:1000,H 17FFH,1 1,页3:1800,H 1FFFH,PIC上海技术培训中心,41,PIC上海技术培训中心,42,PIC上海技术培训中心,43,PIC16F877,单片机架构程序存储器,最大8,K,字(13 位)程序存储空间,程序空间按页面划分,每页2,K,字(11 位);最多四页。,页面选择,PCLATH,复位向量地址 0000,h,中断向量地址 0004,h,Page 0,0000,h,0004,h,07,FFh,Interrupt,Reset,Page 1,0800,h,0,FFFh,Page 2,1000,h,17,FFh,Page 3,1800,h,1,FFFh,PCLATH=00,PCLATH=01,PCLATH=10,PCLATH=11,PIC上海技术培训中心,44,程序存储器中有2个单元地址比较特殊,除了具备同其他单元地址一样的普通用途外,还具有专门用途:,0000,H,:,用作单片机系统的复位矢量;,0004,H,:,用作系统特殊模块的中断矢量。,复位矢量中断矢量,PIC上海技术培训中心,45,F877,用于存储数据的,RAM,单元比一般单片机,RAM,的功能要强大得多,它除了具备普通,RAM,的功能之外,每一个单元都能实现移位、置位、复位和位测试等通常由寄存器才能完成的功能操作。,3.3 数据存储器构架,PIC上海技术培训中心,46,RAM,数据存储器和,FLASH,程序存储器一样在空间构架上,进行类似方式进行分区。按横向排列,分为4个,“,体,”,(,BANK),,从左到右分别记为,“,体0,”,、,“,体1,”,、,“,体2,”,和,“,体3,”,,每个体为128个8位宽的存储器单元。,RP1:RP0,体域 寄存器地址,0 0 体0:000,H 07FH,0 1,体1:080,H 0FFH,1 0,体2:100,H l7FH,1 1,体3:180,H lFFH,数据存储器分区,PIC上海技术培训中心,47,数据存储器,四个存储体每个 128 字节,特殊功能寄存器,存储体选择通过,Status,中的,RP0,1,和,IRP,512,单元,368有效,GPR,GPRs,SFRs,Bank0,000,h,01,Fh,020,h,07,Fh,GPRs,SFRs,Bank1,080,h,09,Fh,0,A0h,0,FFh,0,F0h,GPRs,SFRs,Bank2,100,h,11,Fh,120,h,17,Fh,170,h,GPRs,SFRs,Bank3,180,h,19,Fh,1,A0h,1,FFh,1,F0h,RP RP RP RP,=00 =01 =10 =11,PIC上海技术培训中心,48,PIC上海技术培训中心,49,有些寄存器单元在4个体上是互相映射的,如状态寄存器,STATUS、,间接寻址寄存器,INDF、,程序计数器低8位,PCL、,文件选择寄存器,FSR、,程序计数器高8位,PCLATH,和中断控制寄存器,INTCON。,所谓互为映射就是说,在4个体内的相同位置,物理上对应同一个寄存器单元,所以该单元具备4个不同的地址。,互相映射,PIC上海技术培训中心,50,F877,单片机的通用寄存器,GPR(General Purpose Registers),,可由用户自行支配存放随机数据。,地址区域:,F0H,FFH、170H,l7FH,和1,F0H,1,FFH,,都可以索引(或映射)到体0的16个,RAM,单元。,这样安排是为了便于中断服务程序的设计和数据处理,就可以在程序设计中能够有效突破体的限制而定义通用的变量函数,3.3.1 通用寄存器,PIC上海技术培训中心,51,特殊功能寄存器,SFR(Special Function Registers),是用于专用目的的寄存器,每个寄存器单元,甚至其中的每一位,都有它自己特定的名称和用途。,主要涉及,PIC,内核结构、外围功能模块的配置和数据通信方式的定义,是单片机赖于正常运行的工作平台。所以,特殊功能寄存器又称为专用寄存器。,可以依据它们不同的用途分为两类:一类是与,CPU,内核相关的寄存器;另一类是与外围模块相关的寄存器。,3.3.2 特殊功能寄存器,PIC上海技术培训中心,52,状态寄存器的内容用来记录算术逻辑单元,ALU,的运算结果状态、,CPU,的特殊运行状态以及,RAM,数据存储器体间选择等信息。,1状态寄存器,STATUS,PIC上海技术培训中心,53,Bit0,C:,进位/借位标志,被动参数。,0:执行加法(或减法)指令时,如果最高位无进位(或有借位);1:执行加法(或减法)指令时,如果最高位有进位(或无借位)。,Bit1DC:,辅助进位/借位标志,被动参数。,0:执行加法(或减法)指令时,如果低4位向高4位无进位(或有借位);,1:执行加法(或减法)指令时,如果低4位向高4位有进位(或无借位)。,Bit2Z:,零标志,被动参数。,0:算术或逻辑运算结果不为0;,1:算术或逻辑运算结果为全0。,状态标志位,PIC上海技术培训中心,54,Bit6-Bit5RP1-RP0:RAM,数据存储器体选位,仅用于直接寻址。,两位复合选择,RAM,数据存储器4个体,具体关系如下:,RP1、RP0=0 0,选中体0,RP1、RP0=0 1,选中体1,RP1、RP0=1 0,选中体2,RP1、RP0=1 1,选中体3,Bit7IRP:RAM,数据存储器体选位,仅用于间接寻址。,0,:,选择数据存储器低位体:,即体0(,FSR,的,Bit7=0),或体1(,FSR,的,Bit7=1);,1:,选择数据存储器高位体:,即体2(,FSR,的,Bit7=0),或体3(,FSR,的,Bit7=1)。,数据存储器体选位,PIC上海技术培训中心,55,在,RAM,数据存储器中,有一个非常特别的寄存器,INDF,它的专有功能是与,FSR,寄存器配合,实现间接寻址。,当访问地址,INDF,时,实际上是访问以,FSR,内容为地址的数据存储器,RAM,单元。,2间接寻址的寄存器,INDF,和,FSR,PIC上海技术培训中心,56,在直接寻址中,体选码来自状态寄存器,STATUS,的,RP1,和,RPO,位,体内的单元地址直接来自指令机器码。而在间接寻址中,体选码由,STATUS,的,IRP,位和,FSR,寄存器的,BIT7,组成,直接寻址/间接寻址方式的示意图,PIC上海技术培训中心,57,程序计数器,PC,指针宽13位,它的内容指向,CPU,将要执行的下一条指令所在程序存储器单元的地址。,低8位,PCL,有自己的地址,可读可写;而高5位,PCH,和其它单片机不一样,即没有自己的地址,不能用软件访问,也就不能直接写人,只能用寄存器,PCLATH,装载的方式进行间接写人。,3与,PC,相关的寄存器,PCL,和,PCLATH,PIC上海技术培训中心,58,两种情况下,PC,值的装入过程,PCLATH,对于高5位,PCH,的装载分两种情况:,一种情况是当执行以,PCL,为目标的写操作指令时,,PC,的低8位来自算术逻辑单元,ALU,PC,的高5位来自,PCLATH,的低5位;,另一种情况是当执行跳转指令,GOTO,或调用子程序指令,CALL,时,,PC,的低11位来自指令码中直接携带的11位地址,高2位由,PCLATH,3-4,提供。,PIC上海技术培训中心,59,程序存储器:,PC,绝对寻址,OP CODE,k,k,k,k,14-位,call,和,goto,指令,k,k,k,k,k,k,k,通过,CALL,和,GOTO,修改,PC(,程序指针),k,k,k,k,k,k,k,k,k,x,x,x,k,k,x,x,x,PCLATH,寄存器,有效的 13-位程序存储器地址,11-位 来自指令,2-位,来自,PCLATH,k,k,k,k,PIC上海技术培训中心,60,PCH,PCL,13-位程序指针,PCLATH,内部数据总线,5,5,8,movlwHIGH Delay,movwfPCLATH,movlwLOW Delay,movwfPCL,*对于读,PC,值时:,仅从,PCL,读低8位值,,PCH,不会被载入到,PCLATH,程序存储器:,PC,相对寻址,PIC上海技术培训中心,61,主要用于设置定时/计数器,TMR0、,前后分频器、外部,INT,中断以及,B,端口的弱上拉功能等各种控制位。,4选项寄存器,OPTION_REG,PIC上海技术培训中心,62,Bit2-Bit0PS2-PS0:,分频器倍率选择位,PIC上海技术培训中心,63,Bit3PSA:,前后分频器分配位,主动参数。,0:分配给,TMR0,,作为,TMR0,的前分频器;,1:分配给,WDT,,作为,WDT,的后分频器。,Bit4T0SE:TMR0,用于计数器,计数脉冲信号边沿选择位,主动参数。,0:,RA4/T0CKI,引脚上的上升沿增量;,1:,RA4/T0CKI,引脚上的下降沿增量。,Bit5T0CS:,定时/计数器,TMR0,时钟源选择位,主动参数。,0:用内部指令周期时钟(,CLKOUT),作为,TMR0,的触发脉冲;,1:用,T0CKI,引脚上的外部时钟作为,TMR0,的触发脉冲。,Bit6INTEDG:INT,中断信号触发边沿选择位,主动参数。,0:,BR0/INT,引脚上的上升沿触发;,1:,BR0/INT,引脚上的下降沿触发。,Bit7RBPU:B,端口弱上拉使能位,主动参数。,0:,RB0-RB7,引脚弱上拉使能;,1:,RB0-RB7,引脚弱上拉不使能。,PIC上海技术培训中心,64,主要用于中断控制,方式的,设置,。,5中断控制寄存器,INTCON,PIC上海技术培训中心,65,端口寄存器,PORTA,(B)(C)(D)(E),端口,I/O,定义寄存器,TRISA,(B)(C)(D)(E),Di=0,定义为输出状态,Di=1,定义为输入状态,6端口寄存器,PIC上海技术培训中心,66,指令是单片机的领导核心,就是指挥,CPU,按要求进行一系列操作的命令。一般来说,单片机都具有自己特有的指令系统,相互之间大都互不兼容。,PIC,单片机系列按照不同用户的要求分成三个不同的应用档次,。,第4章,PIC,指令系统,PIC上海技术培训中心,67,指令的执行时间总是分解成两部分:取指过程和执行过程,取指的快慢直接与指令的字节数有关,而指令的执行快慢与时钟的振荡频率有关。,在以往的单片机结构中,程序存储器和数据存储器的地址空间和数据传输通道都相互并用,必须采用分时操作顺序执行。,而,PIC,单片机指令的执行过程是遵循着一种全新哈佛总线体系结构的原则,充分利用计算机系统在程序存储器和数据存储器之间地址空间的相互独立性,取指过程和执行程序可以流水线操作同时进行。,4.1 指令流水线操作原则,PIC上海技术培训中心,68,Flush Fetch,4,Fetch SUB_1,Tcy0 Tcy1 Tcy2 Tcy3 Tcy4,PIC,单片机指令流水线示意,Execute 1,Fetch 3,1.,MOVLW 55h,Fetch 1,Execute 3,Fetch 2,Execute 2,Fetch 4,2.,MOVWF PORTB,3.,CALL SUB_1,4.,BSF PORTA,BIT3,PIC上海技术培训中心,69,在这种寻址方式中,操作数或其中之一(另一个是,W),是立即数,随指令码携带,而无需再到其他地方去寻找。,指令中的操作数为8-位常数.,使用立即数寻址方式的指令有:,movlw,addlw,retlw,etc.,如:,ADDLW16H,指令寻址方式说明,1.寄存器立即寻址,14-位 立即寻址指令,OP CODE,k,k,k,k,k,k,k,k,PIC上海技术培训中心,70,2.寄存器直接寻址,7-,位 直接从指令中获取,2-位从,STATUS,寄存器中获取,如:,IORWF26H,0,9-,位 有效寄存器地址,IRP,RP1,RP0,OP CODE,TO,PD,Z,DC,C,STATUS,寄存器,14-位指令,f,f,f,f,f,f,f,RP1,RP0,f,f,f,f,f,f,f,7-位来自指令字,2-位来自,STATUS,寄存器,PIC上海技术培训中心,71,3.寄存器间接寻址,8-位 间接地址来自,FSR(,选择寄存器).,1-,位 来自,STATUS,寄存器.,例如:,MOVWF INDF,IRP,f,f,f,f,f,f,f,f,f,IRP,RP1,RP0,TO,PD,Z,DC,C,f,f,f,f,f,f,f,STATUS,寄存器,8-位,FSR,寄存器,有效的 9-位寄存器地址,8-位来自,FSR,1-位来自,STATUS,寄存器,这是一种比较特别的寻址方式,是通过两个寄存器,INDF,和,FSR,的组合而实现功能的。操作数是,FSR,寄存器内容位指针,所指向寄存器单元的内容。,PIC上海技术培训中心,72,间接寻址实例,运行机制:,a),清从0,x20 to 0 x7F,所有的,RAM,区域,b),间接地址载入,FSR,c),每一次对,INDF,运行,由,FSR,指向的寄存器被使用,例子:,movlw0 x20,movwfFSR,LOOPclrfINDF,incfFSR,F,btfssFSR,7,gotoLOOP,0000 0000,0000 0000,FSR=20h,INDF,00,h,04,h,20,h,7,Fh,数据记忆区,PIC上海技术培训中心,73,这是,PIC,单片机的特色之一,它可以对所有的,RAM,数据存储器进行位寻址,即置位和清零等。,如:,BSF 26H,4;(26H,原为26,H),4.位寻址,PIC上海技术培训中心,74,每条指令的字节长度为14位,主要由说明指令功能的操作码和参与指令处理的操作数组成。,操作码部分,简称助记符,如表4-2核心助记符,是借用英语单词来间接表达和定义其操作功能。,操作数部分,是按照操作码的操作功能,对操作数进行处理。,根据操作数的源地址和目标地址的访问性质,可以有多种表现形式:主要有直接寻址、间接寻址、立即寻址和位寻址四类。,4.2 指令集说明,PIC上海技术培训中心,75,核心助记符,PIC上海技术培训中心,76,指令系统补充字符说明,PIC上海技术培训中心,77,数据传送类指令共有4条指令,主要功能是将数据从源地址(或立即数)传送至目标地址中,。,4.2.1 数据传送类指令,PIC上海技术培训中心,78,【,例题4-1,】请利用数据传送类指令编写一段子程序,将立即数20,H,传送到通用寄存器20,H,中。,【,例题4-2,】请利用数据传送类指令编写一段子程序,将通用寄存器20,H,和30,H,中的内容进行交换。,PIC上海技术培训中心,79,算术运算类指令是,PIC,单片机指令系统中,承担运算功能的重要部分,共有6条指令。主要有加减指令、增量和减量指令,4.2.2 算术运算类指令,PIC上海技术培训中心,80,【,例题4-3,】请将通用寄存器20,H、30H,构成的16位数据与通用寄存器40,H、50H,构成的16位数据相加后放入40,H、50H,中,已知其和不会超出65535。,PIC上海技术培训中心,81,逻辑运算类指令是一组比较复杂的指令,形式较多,可以对位和字节进行逻辑操作。主要有与、或、异或、清零、置位、取反和左右移位等14条指令,4.2.3 逻辑运算类指令,PIC上海技术培训中心,82,【例题4-4】请将数据存储器20,H,和30,H,中的数据分别与立即数20,H、30H,相与和相或后相加,结果放入40,H,存储器中,请编写相应,的程序。,【,例题4-5,】请编写一个完整的程序,将数据存储器20,H,低4位和30,H,高4位组合成一个八位二进制数据,并从,RC,端口输出。,PIC上海技术培训中心,83,控制转移类指令,是在指令系统中形式灵活、功能较强的一组指令,共11条。它们是构成程序循环和跳转的关键要素,一般可以分为有条件跳转和无条件跳转两大类,。,4.2.4 控制转移类指令,PIC上海技术培训中心,84,这是一种比较特殊的转移形式,根据位测试或加减1后的内容判断条件的成立与否,而决定程序继续执行还是间跳执行指令。,当前判断语句,A,下一条语句,B,再下一条语句,C,1.相对转移间跳,PIC上海技术培训中心,85,PIC,指令系统的绝对转移,主要由,CALL,和,GOTO,语句引出。在指令机器码内部本身并没有携带完整的转移目标地址,只包含低11位地址,而高2位将由,PCLATH,寄存器给出。,【,例题4-6,】请将通用寄存器单元20,H-2FH,,分别对应赋值20,H-2FH,,请编写相应的软件程序。,2.绝对转移和调用,PIC上海技术培训中心,86,【,例题,4-7】,请分析以下程序片段,并指出当程序执行完后,涉及,到的所有存储器单元的结果。,MOVLW22H,MOVWF22H,MOVWFFSR,ADDWFINDF,F,INCFINDF,SWAPF22H,W,RLF22H,W,DECFFSR,F,MOVWFINDF,BSFINDF,7,【,例题4-6】编写散转指令程序,PIC上海技术培训中心,87,Microchip,公司为,PIC,系列单片机配备了功能强大、基于,Windows、,易学易用的软件集成开发环境,MPLAB。,该开发环境可以使人们在自己的微机系统上,对,PIC,系列单片机进行程序的创建、录入、编辑以及汇编,还能方便而灵活地实现程序的模拟运行和动态调试,可以对实际应用系统进行在线仿真和功能模块开发。,第5章,PIC,集成开发系统,PIC上海技术培训中心,88,PIC,单片机指令系统和其它单片机一样,是较为低级的语言系统,是一套控制和指挥,CPU,工作的编码,即机器语言。,单片机只能识别和执行由二进制数组成的机器语言,然而,这样一种二进制代码的机器语言是很难为人们直接理解和分析。,为了能较好表达人们的设计思路,便于记忆和使用,人们在低级语言之上设计出一种新的符号语言,即汇编语言。,第6章 汇编语言程序设计,PIC上海技术培训中心,89,PIC,单片机指令系统和其它单片机一样,是较为低级的语言系统,是一套控制和指挥,CPU,工作的编码,即机器语言。,为了能较好表达人们的设计思路,便于记忆和使用,人们在低级语言之上设计出一种新的符号语言,即汇编语言。,6.1 汇编语言指令格式,PIC上海技术培训中心,90,根据指令的功能和作用,只有操作码是必须存在的,它主要决定了指令的操作性质,而其它部分是指令语句的重要补充和说明,有时可以缺省。,PIC上海技术培训中心,91,标号位于指令助记符前面,它一般是用于表示指令所在的地址,例如表示主程序或子程序的起始地址、转移语句的入口地址等。,1.标号,PIC上海技术培训中心,92,标号并不是指令的必须部分,只有那些欲被其他语句引用的指令之前,才必须附加标号。标号不一定和语句同行,可以单独在语句上方作为一行使用。,标号最多可以由32个字母、数字和其它一些字符组成,但第一个字符必须是字母或下划线。标号不能用系统保留字,即系统禁用指令助记符、寄存器名、标志符等作为标号,如:,ADD、PCLATH,等。,一个标号只能表示一个地址,不允许多个地址用一个标号重复定义。,标号的定义和引用必须一致,其中的大小写可以混写但必须相同。,标号必须顶格书写,结束不用冒号。,使用标号的要点是:,PIC上海技术培训中心,93,操作码决定着指令的操作类型和操作性质,是汇编语言语句中的核心要素,每一条汇编指令都不可缺少,而其它三部分有些指令可以缺省。,2.操作码,PIC上海技术培训中心,94,操作码所对应的指令助记符,其中的符号大小写可以混写,而不会影响操作码的含意,这一点和标号、操作数符号变量的表达方式是有本质区别。,指令助记符不能顶格书写,当前面没有标号时,必须至少保留一个空格。,操作码核心助记符部分比较简单,初学者必须熟悉复合助记符部分的功能。,有关操作码(指令助记符)的要点是:,PIC上海技术培训中心,95,在,PIC,汇编语言语句中,操作数的形式和内容最为丰富,它是,指令助记符操作的对象,一般以数据或地址的形式出现,也可以用符号变量所表示的数据或地址。,3.操作数,PIC上海技术培训中心,96,使用操作数的要点是:,若操作数有二项,中间应该用逗号(半角)分开。,以,A、B、C、D、E、F,开头的数,前面应加0作为引导。,MPASM,编辑环境默认进制为十六进制,也可按用户需要进行重新设置。,操作数部分的符号变量必须区分大小写。,重视,d,参数的应用,目标地址为:,F(d=1);W(d=0)。,PIC上海技术培训中心,97,各种进制168的表示形式,PIC上海技术培训中心,98,注释内容用分号引出,是汇编语言语句功能的一种补充说明,主要是便于人们阅读、分析、修改和程序的调试。,4.注释,PIC上海技术培训中心,99,用(半角)分号引出注释内容,可以紧跟指令之后,也可以独立一行或多行书写,但每一行均需由分号引出。,注释内容可以英文书写,也能用中文书写(来源于文本编辑内容)。,使用注释的要点是:,PIC上海技术培训中心,100,各种单片机的汇编程序除了指令系统语句以外,一般都还定义许多非正式指令的语句,即伪指令。大多数伪指令汇编时并不产生机器码,仅为源程序提供汇编控制信息。,6.2 系统伪指令,PIC上海技术培训中心,101,格式:,ORG nnnn,说明:,ORG,伪指令指出紧跟在该伪指令后的机器码指令的汇编地址,即经汇编后生成的机器码目标程序或数据块在单片机程序存储器中的起始存放地址。,1.定位伪指令:,ORG(Origin),PIC上海技术培训中心,102,格式:符号名,EQU nn,说明:,EQU,伪指令几乎每一个程序中都用到,其操作含意是使,EQU,两端的值相等。一般在,PIC,的程序设计中,原则上每次遇到新的符号参数,都必须在前面补充定义符号名的初始数值或存储器地址。,符号名一旦被,EQU,赋值,其值便不能被再重新定义。这里的符号名,既可以是,PIC,中的特殊功能寄存器、一个常数,或者是表示一个通用数据存储器地址,。,2.赋值伪指令:,EQU(Equate),PIC上海技术培训中心,103,实际上对于伪指令:,ABC EQU20H,,其中,ABC,既可以认为是符号变量,因为,ABC,代表20,H,地址;又可以认为是符号常量,因为,ABC,可以代表符号常量20,H。,所以对于一个定义的符号量,应结合引用的指令进行分析才能真正确定符号量的类型。,分析,ABC EQU20H,PIC上海技术培训中心,104,【,例题,6-2】正确区别符号变量和符号常量之间的关系,ABCEQU 20H;,定义符号量,ABC,ORG 0000H,NOP,MOVLW 77H,MOVWF 20H,MOVLW 88H,MOVF ABC,0;ABC,为数据存储器地址20,H,MOVLW ABC ;ABC,为常量20,H,NOP,END,PIC上海技术培训中心,105,在符号名定义和引用过程中,必须保证大小写属性的一致性,注意不能混合使用以及所代表角色功能。,如果有定义:,ABCEQU20H,在引用符号名,ABC,时,不能改变其大小写的属性,即,Abc、aBC,或,ABc,与,ABC
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服