




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章 PIC系列单片机概述1.1 PIC单片机简单介绍1.2 PIC单片机的特点PIC 是美国Microchip 公司所生产的单片机系列产品型号前缀,其硬件系统设计简洁,指令系统设计精炼。它是最容易学、最容易掌握、最容易应用的单片机之一。(1)哈佛总线结构 普通单片机-普林斯顿体系结构 其程序存储器和数据存储器统一编址,也就是两种存储器位于同一个逻辑空间里。其指令总线和数据总线是共用的即时分复用。 PIC单片机采用哈佛体系结构 其程序存储器和数据存储器独立编址,也就是两种存储器位于不同逻辑空间里。(MCS-51采用哈佛体系结构,但他们与CPU之间传递信息必须共用一条总线。) PIC单片机还采用哈佛总线结构 :及芯片内部将数据总线和指令总线分离,并且采用不同的宽度。如图1-2(a)(2)指令字节化 指令字节和数据字节分别用不同的字节宽度代表。(3)精简指令集(RISC)技术(单片机所能识别的所有指令的集合) PIC的指令系统或指令集约有75条指令。MCS-51有111条。(4) 寻址方式简单,寻址空间独立 寻找操作数的方式PIC只有4种即寄存器直接寻址、寄存器间接寻址、立即数寻址、和位寻址。 MCS-51有7种方式。PIC程序、数据、堆栈各自采用独立的地址空间。(5)代码压缩率高,运行速度高,功耗低,驱动能力强。 端口吸入电流:25mA,输出电流:20mA 一般驱动能力6070mA 代码压缩率指相同程序存储器空间所能容纳有效指令的数量。例如 1KB程序存储量空间, MCS-51系列存放500多条指令,而对PIC系列单片机存放多达1024条。(6) I2C 和SPI串行总线结构 I2C :Inter Integrated Circuit SPI:Serial Peripheral Interface 分别是由PHILIPS MOTOROLA 公司发明的两种串行总线技术,是在芯片之间实现同步串行数据传输的技术1.3 PIC18系列的内部结构1.4 几种常见的PIC18系列单片机微控制器(单片机):将中央处理器CPU、随机存取存储器RAM、只读存储器ROM、输入/输出端口I/O等主要的计算机部件,都集成在一块集成电路芯片上,从而形成一部完整的微型计算机。微控制技术:以软件取代硬件并能提高系统性能的控制技术。八位微控制器:第2章 PIC体系结构与汇编语言编程2.1 PIC的WREG寄存器2.2 PIC文件寄存器除了WREG寄存器,PIC还有其他的很多寄存器,都被称为数据存储器或文件寄存器。PIC的文件寄存器的容量大小因芯片的不同而不同,从32B到几千字节不等,且数据RAM都是8位宽。 PIC文件寄存器数据RAM分为两类:特殊功能寄存器(SFR)和通用寄存器(GP RAM)。2.4.2 影响标志位的运算指令2.5 PIC数据格式和伪指令2.5.1 PIC数据类型PIC微控制器只有8位数一种数据类型,而且寄存器也是8位的。所有大于8位的数据在被CPU处理前都会被分解。第三章 分支、调用和时延循环3.1 分支指令和循环3.1.1 DECFSZ指令与循环 格式:DECFSZ fileReg,d 指令说明:该指令,fileReg中的内容自减1,当其值为0时,程序计数器将跳过下一条指令继续执行。如果把GOTO指令放在该指令后面,就可以实现循环功能。3.1.2 BNZ指令实现循环 BNZ指令的用法如下:即当零标志位为0时(此时文件寄存器f不等于0),实现跳转。 例1 编写程序实现(a):将WREG清零;(b):将WREG加3,执行10次,所得结果送入PORTB的SFR。分别用DECFSZ和BNZ编程。(1) DECFSZ (2) BNZ 3.1.3 其他的条件转移指令必须指出的是,所有的条件转移指令都是短跳转,换而言之,目标地址都必须在程序计数器的256B的范围内。3.1.4 循环嵌套 单个循环的最大计数值是255。那如何实现循环次数大于255呢?循环嵌套能实现循环次数大于255次的循环。如例2。3.1.5 无条件分支指令3.2 CALL指令和栈3.2.1 CALL 指令3.2.2 PIC18 的栈和栈指针 栈是CPU 用来临时存放一些非常重要的信息的读写RAM。这些信息通常是地址,也可以是数据。 用于访问栈的寄存器被称为SP(stack pointer,栈指针)寄存器,PIC18的栈指针是5位的,其取值范围是00H-1FH,它可以提供32个地址,每个地址是21位宽。如图3-7所示。当PIC18通电时,SP寄存器的初始值为0,也就是说,栈的地址1是用于栈的第一个地址,因此SP指向上一次使用的地址,这也意味着栈的地址0是不可用的,实际上,PIC18只有31个栈地址。3.2.3 如何访问PIC18的栈 压栈PUSH:把CPU的信息放入栈。 出栈POP:把栈信息取出来并传送到CPU寄存器。3.2.4 CALL指令与栈的作用3.2.5 RCALL指令RCALL是一个2B的指令,这与4B的CALL指令不同。在保存PC到栈和执行RETURN指令方面,两者没有什么不同,唯一的不同在于,CALL的目标地址可以是PIC18的2MB地址空间的任何一个,而RCALL的目标地址只有2KB的范围。3.3 PIC18的时延与指令流水线3.3.1 流水线技术影响时延精确性的两个因素: 1.晶振频率 2.PIC的设计 (1) 哈佛结构(2)RISC 结构(3)流水线技术,(见图3-9)流水线技术由于指令的重叠的读取和执行会带来分支代价,增加额外的指令周期。例如,当执行BNZ跳转指令时,BNZ下面的指令已经被读取,但是当跳转条件成立时,PIC不去执行BNZ下面的指令,而是从新读取跳转地址的指令,增加一个周期。即,BNZ指令不跳转时,是单周期指令,跳转时则两个周期。大部分PIC指令都是单周期指令,也有些指令占用2-3个指令周期,如GOTO,BRA,CALL和所有的分支指令。3.3.2 PIC的指令周期的计算在PIC18里,一个指令周期有4个晶振周期组成,即:指令周期=4x晶振周期3.3.3 PIC时延的计算3.3.4 PIC多级执行流水线第4章 PIC I/O端口编程4.1 PIC端口内部结构4.1.1 I/O端口引脚及其功能 PIC18系列的端口数量如表4-1所示。由图4-1和表4-1可知PIC18F458有5个端口,即PORTA, PORTB, PORTC, PORTD和PORTE。其中端口A有7引脚,端口B、C、D都有8个引脚,而端口E有3个引脚。每个端口都有3个SFR,如表4-2所示,分别为PORTx, TRISx和LATx。 4.1.2 TRIS寄存器的作用TRIS寄存器是用来指定一个端口是输出还是输入。 TRISx寄存器写入0,则端口设置为输出 TRISx寄存器写入1,则端口设置为输入当系统复位时,所有端口的TRISx寄存器的值都是FFH,即所有端口都默认为输入。图4-3 、4-4、4-5、4-6分别介绍了向PIC18单片机的一个引脚输出0、输出1、输入0、输入1时的端口内部结构图。4.2 PIC端口编程4.2.1 BSF4.2.2 BCF4.2.3 BTG4.2.4 BTFSS和BTFSC4.2.5 监测二进制位人们通常也用位测试指令来检测某个二进制位的状态,从而做出执行下一步操作的决定。具体用法参见例4-6。4.2.6 读取二进制位人们通常也用位测试指令来读取某个二进制位的状态,并保存或者将它传送给其他位。具体用法参见例4-8。4.2.7 读输入引脚与读LATx端口第5章 算数、逻辑指令和程序示例5.1 无符号数的算数指令无符号数这样一种数据,即所有的二进制位都被用来表示数据,而没有用于表示正号或者负号的位。5.1.1 无符号数的加法5.1.2 BCD数字系统及其相关指令5.1.3 无符号数的减法PIC18有4条减法指令:SUBLW,SUBWF,SUBWFB,SUBFWB。最后的两条是带借位的减法指令5.1.4 无符号数的乘法与除法指令5.2 有符号数的概念在有符号数的字节操作数中,D7位是符号位,而其他位用来表示数字的大小。见图5-2。若D7=1,则操作数为负数,负数的取值范围为 -1127,负数是用二级制的补码来表示的。虽然汇编器会自动完成转换,但是求二进制补码的步骤还是要知道的(见例5-10): (1) 用8位二级制数来表示数的大小(无符号) (2)将各位取反 (3)取反后1 若D7=0,则操作数为正数,正数的取值范围为 0-+1275.3 有符号数的溢出问题在进行有符号数的运算过程中,其运算结果超出了寄存器的范围,就回产生溢出。溢出问题是在使用有符号数运算过程中必须要处理的一个严重的问题,PIC用OV溢出标志位来表征这个错误。OV=1表示溢出,OV=0表示没有溢出。见例5-13在8位有符号数的运算过程中,当以下两个条件中的任何一个成立时,OV将置1。(1)D6向D7有进位,而D7没有进位。 (2)D7有进位,而D6向D7没有进位。具体实例见例5-14,15,165.4 逻辑和比较指令5.4.1 AND 指令5.4.2 OR指令5.4.3 EX-OR指令5.4.4 COMF指令5.4.5 NEGF指令5.4.6 比较指令5.5 数据串行化在PIC18中有4个移位指令: RRNCF:文件寄存器的右移 RLNCF:文件寄存器的左移 RRCF:文件寄存器的右移(带进位标志位)RLCF:文件寄存器的左移(带进位标志位)数据串行化是传送数据的方式,它是通过微控制器的一个引脚每次发送一个二进制数据位。实现数据串行化的传输方法有两种: (1)使用串行端口 (2)使用移位操作指令(见例5-28)5.6 BCD和ASCII码转换5.6.1 从压缩BCD码到ASCII码的转换5.6.2 从压缩ASCII 码到BCD码的转换第6章 寻址方式、表处理及存储区的转换6.1 寻址方式PIC18提供4种寻址方式: (1)立即寻址 (2)直接寻址 (3)寄存器间接寻址 (4)变址寻址6.1.1 立即寻址在立即寻址方式中,操作数是常数。操作数紧跟在操作码后面。 立即寻址方式可以用于算数和逻辑指令,如下面的例子: MOVLW 0X25 也可以用伪指令EQU来访问立即数,如下面的例子 COUNT EQU 0X30 MOVLW COUNT注:文件寄存器RAM不支持立即寻址方式,换言之,要想把数据传送到任何文件寄存器,都必须先把数据传送到WREG寄存器中。6.1.2 直接寻址直接寻址可以访问整个数据存储区的文件寄存器。 在直接寻址方式中,当对文件寄存器执行操作时,可以选择吧操作结果存放在原来的文件寄存器中或者存放在WREG中。如下面的例子。注意: (1)存入WREG和文件寄存器的区别。 (2)没有给出第二个参数是,则默认为文件寄存器(F)6.1.3 寄存器间接寻址1.与寄存器间接寻址相关的寄存器寄存器间接寻址方式可以用来访问文件寄存器的RAM空间。 与寄存器间接寻址相关的寄存器: FSR(文件选择寄存器) INDF(间接寄存器)两者是一一对应的关系FSR是12位寄存器,可以访问PIC18数据寄存器RAM的整个4096B的空间。 PIC18中有3个FSR,即:FSR0,FSR1,FSR2。对应的也有3个IDNF。 每个FSR都分为高字节和低字节两部分:FSRxL和FSRxH。注意,高字节只用了低四位。 LFSR指令是用来向FSR中装载数据的。格式如下:当要将数据传送到INDFx时,也就是要传送数据到FSR所指向的RAM地址中去,同理,要是想读取FSR所指向RAM地址中的数据,直接读取INDF寄存器的内容即可。见下面的例子。2.寄存器间接寻址方式的优点: 寄存器间接寻址方式的优点是:他可以动态的访问文件寄存器中的数据,而直接寻址方式是静态的。参考下面的例子:上面的例子中使用了INCF FSR0L ,F来实现指针加一的操作,但是当FSR=5FFH时会出现错误。因此PIC18提供了用于FSRn自增量/自减量的方法。 用于实现这些方法的指令CLRF的指令格式如表6-2所示。具体实例如下6.2 查询表及标处理程序员不会用RAM存储程序,但有时会用ROM存储数据,如何访问存储在ROM中的数据,就涉及到查表了。6.2.1 DB 伪指令DB伪指令是用来分配以字节为单位的ROM程序空间,即,DB可以用来定义8位定值数据,数字可以为十进制、二进制、十六进制,或者ASCII码。在MPASM中还允许使用DATA代替DB。 如何向ROM中存放定值数据,见例6-8。6.2.2 PIC18的读表操作表6-3列出了PIC18的读表指令在读表时,需要一个指向数据的地址指针和一个存放数据的寄存器。 TBLPTR寄存器是一个21位寄存器用来指向要读取的数据。它由3个8位字节组成,分别是TBLPTRL、TBLPTRH、TBLPTRU。其中TBLPTRU的最后两位没用,且被清零。TABLAT是用来暂存读取出来即将被送往CPU的数据。具体实例如下:例:假定在起始地址250H的程序ROM里存放着USA。(1)编制程序,将所有的字符发送到端口B,每次发送一个字节。(2)用自增量法重新编程。6.2.3 查表和RETLW指令6.2.4 访问RAM中的查询表6.2.5 PIC18的写表操作6.3 PIC18的存储区转换PIC18一共有16个存储区。在指令中利用a位来选择存储区,当A=0时,则访问存储区是默认存储区,A=1时,该指令使用BSR指定的储存区,而不是访问存储区。若是在指令中没有对A的声明,则表示A=0,访问的存储区为默认的存储区。6.3.1 BSR寄存器BSR寄存器(存储区选择寄存器)用来选择所期望的得存储
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 煤矿安全知识
- 沃森徳吊篮施工方案
- 西安交通大学《大学数学(一)》2023-2024学年第二学期期末试卷
- 《江畔独行刘禹锡》课件
- 天津现代职业技术学院《普通化学Ⅱ》2023-2024学年第二学期期末试卷
- 长江职业学院《中国民族民间舞》2023-2024学年第二学期期末试卷
- 西南大学《医学机能学实验(Ⅱ)》2023-2024学年第二学期期末试卷
- 预分支电缆施工方案
- 美术轮滑写生课件
- 2025至2031年中国微型光刷治疗仪行业投资前景及策略咨询研究报告
- 中国普通食物营养成分表(修正版)
- 江苏省建筑与装饰工程计价定额(2014)电子表格版
- 常用建筑材料容重表
- 智慧树知到《求职那点儿事-大学生就业指导》章节测试答案
- 土方工程投标文件
- 酒店流水单模版
- XR-WS1600型乳化液箱随机图册
- 《优化营商环境条例》学习研讨发言材料
- SartoriusPB10pH计校正方法
- 本科毕业论文氯化聚氯乙烯树脂的工艺研究及其供需现状
- 在产业链建设调度推进会议上的讲话稿
评论
0/150
提交评论