PIC单片机原理及应用(第五章).ppt
《PIC单片机原理及应用(第五章).ppt》由会员分享,可在线阅读,更多相关《PIC单片机原理及应用(第五章).ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 PICPIC单单片片机机指指令令系系统统和和其其它它单单片片机机一一样样,是是较较为为低低级级的的语语言言系系统统,是是一一套套控控制制和和指指挥挥CPUCPU工作的编码,即机器语言。工作的编码,即机器语言。单单片片机机只只能能识识别别和和执执行行由由二二进进制制数数组组成成的的机机器器语语言言,然然而而,这这样样一一种种二二进进制制代代码码的的机机器器语言是很难为人们直接理解和分析。语言是很难为人们直接理解和分析。为为了了能能较较好好表表达达人人们们的的设设计计思思路路,便便于于记记忆忆和和使使用用,人人们们在在低低级级语语言言之之上上设设计计出出一一种种新新的符号语言,即的符号语言,即汇
2、编语言汇编语言。汇编语言是机器语言的符号表达。汇编语言是机器语言的符号表达。第第6 6章章 汇编语言程序设计汇编语言程序设计 根根据据指指令令的的功功能能和和作作用用,只只有有操操作作码码是是必必须须存存在在的的,它它主主要要决决定定了了指指令令的的操操作作性性质质。而而其其它它部部分分是是指指令令语语句句的的重重要要补补充充和和说说明明,有有时可以缺省。时可以缺省。6.1 6.1 汇编语言指令格式汇编语言指令格式 标标号号位位于于指指令令助助记记符符前前面面,它它一一般般是是用用于于表表示示指指令令所所在在的的地地址址,例例如如表表示示主主程程序序或或子程序的起始地址、转移语句的入口地址等。
3、子程序的起始地址、转移语句的入口地址等。在在程程序序汇汇编编时时,将将该该指指令令机机器器码码所所在在程程序存储器中的地址赋值给标号。序存储器中的地址赋值给标号。1.1.标号标号 标标号号并并不不是是指指令令的的必必须须部部分分,只只有有那那些些欲欲被被其其他他语语句句引引用用的的指指令令之之前前,才才必必须须附附加加标标号号。标标号号不不一一定定和和语语句句同同行行,可可以以单单独独在在语语句句上上方作为一行使用。方作为一行使用。标标号号最最多多可可以以由由3232个个字字母母、数数字字和和其其它它一一些些字字符符组组成成,但但第第一一个个字字符符必必须须是是字字母母或或下下划划线线。标标号
4、号不不能能用用系系统统保保留留字字,即即系系统统禁禁用用指指令令助助记记符符、寄寄存存器器名名、标标志志符符等等作作为为标标号号,如:如:ADDADD、PCLATHPCLATH等。等。使用标号的要点是:使用标号的要点是:一一个个标标号号只只能能表表示示一一个个地地址址,不不允允许许多多个个地地址用一个标号重复定义。址用一个标号重复定义。标标号号的的定定义义和和引引用用必必须须一一致致,其其中中的的大大小小写写可以混写但必须相同。可以混写但必须相同。标号必须顶格书写标号必须顶格书写,结束不用冒号。,结束不用冒号。操操作作码码决决定定着着指指令令的的操操作作类类型型和和操操作作性性质质,是是汇汇编
5、编语语言言语语句句中中的的核核心心要要素素,每每一一条条汇汇编编指指令令都都不不可可缺缺少少,而而其其它它三三部部分分有有些些指令可以缺省。指令可以缺省。2.2.操作码操作码 操操作作码码所所对对应应的的指指令令助助记记符符,其其中中的的符符号号大大小小写写可可以以混混写写,而而不不会会影影响响操操作作码码的的含含意意,这这一一点点和和标标号号、操操作作数数符符号号变变量量的的表表达达方方式式是有本质区别。是有本质区别。指指令令助助记记符符不不能能顶顶格格书书写写,当当前前面面没没有有标标号号时,必须至少保留一个空格。时,必须至少保留一个空格。操操作作码码核核心心助助记记符符部部分分比比较较简
6、简单单,初初学学者者必必须熟悉复合助记符部分的功能。须熟悉复合助记符部分的功能。有关操作码(指令助记符)的要点是:有关操作码(指令助记符)的要点是:在在PICPIC汇汇编编语语言言语语句句中中,操操作作数数的的形形式式和和内内容容最最为为丰丰富富,它它是是指指令令助助记记符符操操作作的的对对象象,一一般般以以数数据据或或地地址址的的形形式式出出现现,也也可可以以用符号变量所表示的数据或地址。用符号变量所表示的数据或地址。3.3.操作数操作数 使用操作数的要点是:使用操作数的要点是:若操作数有二项,中间用若操作数有二项,中间用逗号(半角)逗号(半角)分开。分开。以以A A、B B、C C、D D
7、、E E、F F开开头头的的数数,前前面面应应加加0 0作作为引导。为引导。MPASMMPASM编编辑辑环环境境默默认认进进制制为为十十六六进进制制,也也可可按按用户需要进行重新设置。用户需要进行重新设置。操作数部分的符号变量必须区分大小写。操作数部分的符号变量必须区分大小写。重重视视d d参参数数的的应应用用,目目标标地地址址为为:F F(d=1d=1);W W(d=0d=0)。)。各种进制各种进制168168的表示形式的表示形式 注注释释内内容容用用分分号号引引出出,是是汇汇编编语语言言语语句句功功能能的的一一种种补补充充说说明明,主主要要是是便便于于人人们们阅阅读读、分析、修改和调试程序
8、。分析、修改和调试程序。4.4.注释注释 用用分分号号(半半角角)引引出出注注释释内内容容,可可以以紧紧跟跟指指令令之之后后,也也可可以以独独立立一一行行或或多多行行书书写写,但但每每一一行行均需由分号引出。均需由分号引出。注注释释内内容容可可以以英英文文书书写写,也也能能用用中中文文书书写写(来来源于文本编辑内容)。源于文本编辑内容)。使用注释的要点是:使用注释的要点是:各各种种单单片片机机的的汇汇编编程程序序除除了了指指令令系系统统语语句句(PIC16F877PIC16F877共共3535条条)以以外外,一一般般都都还还定定义义许许多多非非正正式式指指令令的的语语句句,即即伪伪指指令令。大
9、大多多数数伪伪指指令令汇汇编编时时并并不不产产生生机机器器码码,仅仅为为源源程程序序提供汇编控制信息提供汇编控制信息。6.2 6.2 系统伪指令系统伪指令 格式:格式:ORG nnnn 说说明明:ORG伪伪指指令令指指出出紧紧跟跟在在该该伪伪指指令令后后的的机机器器码码指指令令的的汇汇编编地地址址,即即经经汇汇编编后后生生成成的的机机器器码码目目标标程程序序或或数数据据块块在在单单片片机机程程序序存存储器中的储器中的起始存放地址起始存放地址。1.1.定位伪指令:定位伪指令:ORGORG(OriginOrigin)例题例题6-16-1以下三个程序段的含义是一样的。以下三个程序段的含义是一样的。;
10、程序段程序段1 1;ORGORG0008H0008H;常数常数0008H0008HSTARTSTARTMOVLWMOVLW00H00H;程序段程序段2 2;ABCABCEQUEQU0008H0008HORGORGABCABC;标识符标识符ABCABC即即0008H0008HSTARTSTARTMOVLWMOVLW00H00H;程序段程序段3 3;ABCABCEQUEQU0004H0004HORGORGABC+4ABC+4;代数表达式即代数表达式即0008H0008HSTARTSTARTMOVLWMOVLW00H00H 格式:符号名格式:符号名 EQU EQU nnnn 说说明明:EQUEQU伪
11、伪指指令令几几乎乎每每一一个个程程序序中中都都用用到到,其其操操作作含含意意是是使使EQUEQU两两端端的的值值相相等等。一一般般在在PICPIC的的程程序序设设计计中中,原原则则上上每每次次遇遇到到新新的的符符号号参参数数,都都必必须须在在前前面面定定义义符符号号名名的的初初始始数数值或存储器地址。值或存储器地址。符符号号名名一一旦旦被被EQUEQU赋赋值值,其其值值便便不不能能被被再再重重新新定定义义。这这里里的的符符号号名名,既既可可以以是是PICPIC中中的的特特殊殊功功能能寄寄存存器器、一一个个常常数数,或或者者是是表表示示一一个通用数据存储器地址个通用数据存储器地址。2.2.赋值伪
12、指令:赋值伪指令:EQUEQU(EquateEquate)实际上对于伪指令:实际上对于伪指令:ABC EQUABC EQU 20H20H,其其中中ABCABC既既可可以以认认为为是是符符号号变变量量,因因为为ABCABC可可以以代代表表20H20H地地址址;又又可可以以认认为为是是符符号号常常量量,因因为为ABCABC可以代表立即数可以代表立即数20H20H。所所以以对对于于一一个个定定义义的的符符号号量量,应应结结合合引引用用的指令的指令进行分析才能真正确定符号量的类型。进行分析才能真正确定符号量的类型。分析分析 ABC EQUABC EQU 20H 20H【例例题题6-26-2】正正确确区
13、区别别符符号号变变量量和和符符号号常常量量之之间的关系。间的关系。ABCABCEQU 20HEQU 20H ;定义符号量定义符号量ABCABC ORG 0000HORG 0000H NOPNOPMOVLW 77HMOVLW 77HMOVWF 20HMOVWF 20HMOVLW 88HMOVLW 88HMOVF ABC,0MOVF ABC,0;ABCABC为符号变量为符号变量MOVLW ABC MOVLW ABC ;ABCABC为符号常量为符号常量NOPNOP END END 在在符符号号名名定定义义和和引引用用过过程程中中,必必须须保保证证大小写属性的一致大小写属性的一致,注意不能混合使用。,
14、注意不能混合使用。如果有定义:如果有定义:ABC EQUABC EQU 20H20H 在在引引用用符符号号名名ABCABC时时,不不能能改改变变其其大大小小写写的的属属性性,即即AbcAbc、aBCaBC或或ABcABc与与ABCABC是是不不一一样样的,在汇编时均会发生出错信息。的,在汇编时均会发生出错信息。格式:格式:ENDEND 说说明明:ENDEND伪伪指指令令表表示示汇汇编编语语言言源源程程序序(*.ASM.ASM)的的结结束束,MPASMMPASM汇汇编编器器汇汇编编时时遇遇到到ENDEND就就认认为为程程序序已已结结束束,对对其其后后的的程程序序段段不不再再进行汇编。进行汇编。3
15、.3.程序结束伪指令:程序结束伪指令:ENDEND 格式:格式:LIST LIST 可选项,可选项,可选项,可选项,说说明明:LISTLIST伪伪指指令令用用于于设设置置各各种种汇汇编编参参数数,以以便便控控制制整整个个汇汇编编过过程程或或对对打打印印输输出出的的列列表表文文件进行格式化。件进行格式化。1 1)P P 例如:例如:P P16F87716F877 2 2)R R 例如:例如:R RDECDEC(十进制);十进制);R RHEXHEX(十六进制);十六进制);R RBINBIN(二进制);二进制);默认为十六进制。默认为十六进制。4.4.列表选项伪指令:列表选项伪指令:LISTLI
16、ST 格式:格式:INCLUDE“INCLUDE“文件名文件名”说说明明:INCLUDEINCLUDE伪伪指指令令的的主主要要功功能能是是将将外外部部预预先先编编写写好好的的指指定定文文件件纳纳入入本本源源程程序序的的汇汇编编内内容容,这这样样可可以以减减少少重重复复劳劳动动,提提高高编编程程效率。效率。如如:P16F877.INCP16F877.INC为为PIC16F877PIC16F877单单片片机机的的复复位位矢矢量量、专专用用寄寄存存器器的的地地址址及及其其控控制制位位和和状状态态位位的的位位地地址址的的原原始始定定义义,有有些些参参考考书书把把P16F877.INCP16F877.I
17、NC称为称为PIC16F877PIC16F877的头文件的头文件。5.5.外调程序伪指令:外调程序伪指令:INCLUDEINCLUDE 6.6.定义数据伪指令定义数据伪指令DBDBDBDB(DWDWDWDW、DEDEDEDE、DATADATADATADATA)表达式表达式表达式表达式,表达式表达式表达式表达式,例题例题例题例题6-36-36-36-3 ORGORGORGORG 0000H0000H0000H0000H NOPNOPNOPNOP ORGORGORGORG 0100H0100H0100H0100H DBDBDBDB45H,67H,89H,0ABH,0CDH,0EFH45H,67H,
18、89H,0ABH,0CDH,0EFH45H,67H,89H,0ABH,0CDH,0EFH45H,67H,89H,0ABH,0CDH,0EFH;定义定义定义定义6 6 6 6个字节数据个字节数据个字节数据个字节数据 ORGORGORGORG 0200H0200H0200H0200H DBDBDBDB4567H,89ABH,0CDEFH4567H,89ABH,0CDEFH4567H,89ABH,0CDEFH4567H,89ABH,0CDEFH;定义定义定义定义6 6 6 6个字节数据个字节数据个字节数据个字节数据 ORGORGORGORG 0300H0300H0300H0300H DBDBDBDB
19、A,B,C,D,E,F,GA,B,C,D,E,F,GA,B,C,D,E,F,GA,B,C,D,E,F,G;定义定义定义定义6 6 6 6个字符数据个字符数据个字符数据个字符数据 ORGORGORGORG 0400H0400H0400H0400H DBDBDBDBABCDEFGABCDEFGABCDEFGABCDEFG;定义定义定义定义1 1 1 1个字符串数据个字符串数据个字符串数据个字符串数据 ENDENDENDEND注:注:注:注:建议使用建议使用建议使用建议使用DEDEDEDE定义数据定义数据定义数据定义数据,可以定义,可以定义,可以定义,可以定义单字节数据单字节数据单字节数据单字节数据
20、、单字节字单字节字单字节字单字节字符符符符和和和和字符串字符串字符串字符串。格式:格式:RADIX RADIX 说说明明:RADIXRADIX伪伪指指令令用用于于设设置置在在MPLAB-MPLAB-ICDICD集集成成开开发发环环境境中中采采用用的的进进制制方方式式,如如定定义义十十进进制制、八八进进制制和和十十六六进进制制等等参参数数,MPLAB-MPLAB-ICDICD集成开发系统缺省为十六进制。集成开发系统缺省为十六进制。例如:例如:RADIX DEC RADIX DEC ;定义为十进制定义为十进制 RADIX HEX RADIX HEX ;定义为十六进制定义为十六进制 RADIX OC
21、T RADIX OCT ;定义为八进制定义为八进制7.7.进制定义伪指令:进制定义伪指令:RADIXRADIX 8.8.体选伪指令体选伪指令 BANKSELBANKSEL BANKSEL ABC BANKSEL ABC MOVLW 00H MOVLW 00H MOVWF ABC MOVWF ABC9.9.页选伪指令页选伪指令 PAGESELPAGESEL PAGESEL DEL10MS PAGESEL DEL10MS CALL DEL10MS CALL DEL10MS6.3 6.3 存储器选择方式存储器选择方式1.1.数据存储器体选方式数据存储器体选方式直接寻址访问数据存储器直接寻址访问数据存
22、储器7+27+2模式模式间接寻址访问数据存储器间接寻址访问数据存储器8+18+1模式模式 在在直直接接寻寻址址中中,体体选选码码来来自自状状态态寄寄存存器器STATUSSTATUS的的RP1RP1和和RPORPO位位,体体内内的的单单元元地地址址直直接接来来自自指指令令机机器器码码。而而在在间间接接寻寻址址中中,体体选选码码由由STATUSSTATUS的的IRPIRP位和位和FSRFSR寄存器的寄存器的BIT7BIT7组成。组成。直接寻址直接寻址/间接寻址方式的示意图间接寻址方式的示意图 2.2.程序存储器页选方式程序存储器页选方式6 6种途径种途径(1 1)复位地址)复位地址0000H000
23、0H;(2 2)中断地址)中断地址0004H0004H;(3 3)指令寄存器;)指令寄存器;(4 4)执行以)执行以PCLPCL为目的地址的指令;为目的地址的指令;(5 5)转移指令方式,)转移指令方式,GOTOGOTO指令;指令;(6 6)调用子程序方式,)调用子程序方式,CALLCALL指令。指令。(1 1)、()、(2 2)、()、(3 3)PCPC自动形成;自动形成;(4 4)、()、(5 5)、()、(6 6)PCPC需要装载。需要装载。例题例题6-46-4LISTLIST P=16F877P=16F877;PAGESEL;PAGESELINCLUDEP16F877.INCINCLU
24、DEP16F877.INC;COUNTERCOUNTEREQUEQU30H30H;查表偏移量查表偏移量ORGORG0000H0000HNOPNOPMOVLWMOVLW20H20H;数据存储器起始地址数据存储器起始地址MOVWFMOVWFFSRFSRCLRFCLRFCOUNTERCOUNTER;查表偏移量置查表偏移量置0 0LOOPLOOP MOVFMOVFCOUNTER,WCOUNTER,WCALLCALLCHABIAOCHABIAO;调用查表子程序调用查表子程序MOVWFMOVWFINDFINDF;送入数据存储器送入数据存储器INCFINCFCOUNTERCOUNTER;指向下一偏移量指向下
25、一偏移量INCFINCFFSRFSR;指向下一数据存储器指向下一数据存储器BTFSSBTFSSCOUNTER,4COUNTER,4;是否已取是否已取1616个数据个数据GOTOGOTOLOOPLOOP;否,继续否,继续GOTOGOTO$;是,停止是,停止查表子程序查表子程序;CHABIAOCHABIAOADDWFADDWFPCL,FPCL,F;增加偏移量增加偏移量RETLWRETLW00H00H;第第0 0个数据个数据RETLWRETLW01H01H;第第1 1个数据个数据RETLWRETLW02H02H;第第2 2个数据个数据RETLWRETLW03H03H;第第3 3个数据个数据RETLW
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PIC 单片机 原理 应用 第五
限制150内