PIC单片机原理及应用.pptx
会计学1PIC单片机原理单片机原理(yunl)及应用及应用第一页,共61页。根根根根据据据据指指指指令令令令的的的的功功功功能能能能和和和和作作作作用用用用,只只只只有有有有操操操操作作作作码码码码是是是是必必必必须须须须存存存存在在在在的的的的,它它它它主主主主要要要要决决决决定定定定了了了了指指指指令令令令的的的的操操操操作作作作性性性性质质质质(xngzh)(xngzh)(xngzh)(xngzh)。而而而而其其其其它它它它部部部部分分分分是是是是指指指指令令令令语语语语句句句句的的的的重要补充和说明,有时可以缺省。重要补充和说明,有时可以缺省。重要补充和说明,有时可以缺省。重要补充和说明,有时可以缺省。6.1 6.1 6.1 6.1 汇编语言汇编语言汇编语言汇编语言(hu bin y(hu bin y(hu bin y(hu bin y yn)yn)yn)yn)指令格式指令格式指令格式指令格式 第1页/共61页第二页,共61页。标标标标号号号号位位位位于于于于指指指指令令令令(zhlng)(zhlng)(zhlng)(zhlng)助助助助记记记记符符符符前前前前面面面面,它它它它一一一一般般般般是是是是用用用用于于于于表表表表示示示示指指指指令令令令(zhlng)(zhlng)(zhlng)(zhlng)所所所所在在在在的的的的地地地地址址址址,例例例例如如如如表表表表示示示示主主主主程程程程序序序序或或或或子子子子程程程程序序序序的的的的起起起起始始始始地地地地址、转移语句的入口地址等。址、转移语句的入口地址等。址、转移语句的入口地址等。址、转移语句的入口地址等。在在在在程程程程序序序序汇汇汇汇编编编编时时时时,将将将将该该该该指指指指令令令令(zhlng)(zhlng)(zhlng)(zhlng)机机机机器器器器码码码码所所所所在在在在程程程程序序序序存存存存储储储储器器器器中中中中的的的的地地地地址址址址赋赋赋赋值值值值给给给给标标标标号。号。号。号。1.1.标号标号(bioho)(bioho)第2页/共61页第三页,共61页。标标标标号号号号并并并并不不不不是是是是指指指指令令令令的的的的必必必必须须须须部部部部分分分分,只只只只有有有有那那那那些些些些欲欲欲欲被被被被其其其其他他他他语语语语句句句句引引引引用用用用的的的的指指指指令令令令之之之之前前前前,才才才才必必必必须须须须附附附附加加加加标标标标号号号号。标标标标号号号号不不不不一一一一定定定定和和和和语语语语句句句句同同同同行行行行,可可可可以以以以单单单单独独独独在语句上方作为在语句上方作为在语句上方作为在语句上方作为(zuwi)(zuwi)(zuwi)(zuwi)一行使用。一行使用。一行使用。一行使用。标标标标号号号号最最最最多多多多可可可可以以以以由由由由32323232个个个个字字字字母母母母、数数数数字字字字和和和和其其其其它它它它一一一一些些些些字字字字符符符符组组组组成成成成,但但但但第第第第一一一一个个个个字字字字符符符符必必必必须须须须是是是是字字字字母母母母或或或或下下下下划划划划线线线线。标标标标号号号号不不不不能能能能用用用用系系系系统统统统保保保保留留留留字字字字,即即即即系系系系统统统统禁禁禁禁用用用用指指指指令令令令助助助助记记记记符符符符、寄寄寄寄存存存存器器器器名名名名、标标标标志志志志符符符符等等等等作作作作为为为为(zuwi)(zuwi)(zuwi)(zuwi)标号,如:标号,如:标号,如:标号,如:ADDADDADDADD、PCLATHPCLATHPCLATHPCLATH等。等。等。等。使用标号使用标号使用标号使用标号(bioho)(bioho)(bioho)(bioho)的要点是:的要点是:的要点是:的要点是:第3页/共61页第四页,共61页。一一一一个个个个标标标标号号号号只只只只能能能能表表表表示示示示一一一一个个个个地地地地址址址址,不不不不允允允允许许许许多多多多个个个个地址用一个标号重复地址用一个标号重复地址用一个标号重复地址用一个标号重复(chngf)(chngf)(chngf)(chngf)定义。定义。定义。定义。标标标标号号号号的的的的定定定定义义义义和和和和引引引引用用用用必必必必须须须须一一一一致致致致,其其其其中中中中的的的的大大大大小小小小写可以混写但必须相同。写可以混写但必须相同。写可以混写但必须相同。写可以混写但必须相同。标号必须顶格书写,结束不用冒号。标号必须顶格书写,结束不用冒号。标号必须顶格书写,结束不用冒号。标号必须顶格书写,结束不用冒号。第4页/共61页第五页,共61页。操操操操作作作作码码码码决决决决定定定定着着着着指指指指令令令令的的的的操操操操作作作作类类类类型型型型和和和和操操操操作作作作性性性性质质质质,是是是是汇汇汇汇编编编编语语语语言言言言语语语语句句句句中中中中的的的的核核核核心心心心(hxn)(hxn)(hxn)(hxn)要要要要素素素素,每每每每一一一一条条条条汇汇汇汇编编编编指指指指令令令令都都都都不不不不可可可可缺缺缺缺少少少少,而而而而其其其其它它它它三三三三部部部部分分分分有有有有些些些些指指指指令令令令可以缺省。可以缺省。可以缺省。可以缺省。2.2.2.2.操作码操作码操作码操作码 第5页/共61页第六页,共61页。操操操操作作作作码码码码所所所所对对对对应应应应的的的的指指指指令令令令助助助助记记记记符符符符,其其其其中中中中的的的的符符符符号号号号大大大大小小小小写写写写可可可可以以以以混混混混写写写写,而而而而不不不不会会会会影影影影响响响响操操操操作作作作码码码码的的的的含含含含意意意意,这这这这一一一一点点点点和和和和标标标标号号号号、操操操操作作作作数数数数符符符符号号号号变变变变量量量量的的的的表表表表达达达达方方方方式式式式是是是是有有有有本本本本质区别。质区别。质区别。质区别。指指指指令令令令助助助助记记记记符符符符不不不不能能能能顶顶顶顶格格格格书书书书写写写写,当当当当前前前前面面面面没没没没有有有有标标标标号号号号时时时时,必须至少保留一个必须至少保留一个必须至少保留一个必须至少保留一个(y)(y)(y)(y)空格。空格。空格。空格。操操操操作作作作码码码码核核核核心心心心助助助助记记记记符符符符部部部部分分分分比比比比较较较较简简简简单单单单,初初初初学学学学者者者者必必必必须须须须熟悉复合助记符部分的功能。熟悉复合助记符部分的功能。熟悉复合助记符部分的功能。熟悉复合助记符部分的功能。有关操作码(指令有关操作码(指令有关操作码(指令有关操作码(指令(zhlng)(zhlng)(zhlng)(zhlng)助记符)的要点是:助记符)的要点是:助记符)的要点是:助记符)的要点是:第6页/共61页第七页,共61页。在在在在PICPICPICPIC汇汇汇汇编编编编语语语语言言言言语语语语句句句句中中中中,操操操操作作作作数数数数的的的的形形形形式式式式和和和和内内内内容容容容最最最最为为为为丰丰丰丰富富富富,它它它它是是是是指指指指令令令令助助助助记记记记符符符符操操操操作作作作的的的的对对对对象象象象(duxing)(duxing)(duxing)(duxing),一一一一般般般般以以以以数数数数据据据据或或或或地地地地址址址址的的的的形形形形式式式式出出出出现,也可以用符号变量所表示的数据或地址。现,也可以用符号变量所表示的数据或地址。现,也可以用符号变量所表示的数据或地址。现,也可以用符号变量所表示的数据或地址。3.3.3.3.操作数操作数 第7页/共61页第八页,共61页。使用使用使用使用(shyng)(shyng)(shyng)(shyng)操作数的要点是:操作数的要点是:操作数的要点是:操作数的要点是:若操作数有二项,中间用逗号若操作数有二项,中间用逗号(duho)(duho)(半(半角)分开。角)分开。以以A A、B B、C C、D D、E E、F F开头的数,前面应加开头的数,前面应加0 0作作为引导。为引导。MPASMMPASM编辑环境默认进制为十六进制,也可按编辑环境默认进制为十六进制,也可按用户需要进行重新设置。用户需要进行重新设置。操作数部分的符号变量必须区分大小写。操作数部分的符号变量必须区分大小写。重视重视d d参数的应用,目标地址为:参数的应用,目标地址为:F F(d=1d=1););W W(d=0d=0)。)。第8页/共61页第九页,共61页。各种各种各种各种(zhn)(zhn)(zhn)(zhn)进制进制进制进制168168168168的表示形的表示形的表示形的表示形式式式式 第9页/共61页第十页,共61页。注注注注释释释释内内内内容容容容用用用用分分分分号号号号引引引引出出出出,是是是是汇汇汇汇编编编编语语语语言言言言语语语语句句句句功功功功能能能能的的的的一一一一种种种种补补补补充充充充说说说说明明明明,主主主主要要要要(zhyo)(zhyo)(zhyo)(zhyo)是是是是便便便便于于于于人人人人们们们们阅读、分析、修改和调试程序。阅读、分析、修改和调试程序。阅读、分析、修改和调试程序。阅读、分析、修改和调试程序。4.4.4.4.注释注释注释注释(zhsh)(zhsh)(zhsh)(zhsh)第10页/共61页第十一页,共61页。用用用用分分分分号号号号(半半半半角角角角)引引引引出出出出注注注注释释释释内内内内容容容容,可可可可以以以以紧紧紧紧跟跟跟跟指指指指令令令令(zhlng)(zhlng)(zhlng)(zhlng)之之之之后后后后,也可以独立一行或多行书写,但每一行均需由分号引出。也可以独立一行或多行书写,但每一行均需由分号引出。也可以独立一行或多行书写,但每一行均需由分号引出。也可以独立一行或多行书写,但每一行均需由分号引出。注注注注释释释释内内内内容容容容可可可可以以以以英英英英文文文文书书书书写写写写,也也也也能能能能用用用用中中中中文文文文书书书书写写写写(来来来来源源源源于于于于文文文文本本本本编编编编辑辑辑辑内内内内容容容容)。使用使用使用使用(shyng)(shyng)注释的要点是:注释的要点是:注释的要点是:注释的要点是:第11页/共61页第十二页,共61页。各各各各种种种种(zhn)zhn)zhn)zhn)单单单单片片片片机机机机的的的的汇汇汇汇编编编编程程程程序序序序除除除除了了了了指指指指令令令令系系系系统统统统语语语语句句句句(PIC16F877PIC16F877PIC16F877PIC16F877共共共共35353535条条条条)以以以以外外外外,一一一一般般般般都都都都还还还还定定定定义义义义许许许许多多多多非非非非正正正正式式式式指指指指令令令令的的的的语语语语句句句句,即即即即伪伪伪伪指指指指令令令令。大大大大多多多多数数数数伪伪伪伪指指指指令令令令汇汇汇汇编编编编时时时时并并并并不不不不产产产产生生生生机机机机器器器器码码码码,仅仅仅仅为为为为源源源源程程程程序序序序提提提提供汇编控制信息。供汇编控制信息。供汇编控制信息。供汇编控制信息。6.2 6.2 系统系统(xtng)(xtng)伪指伪指令令 第12页/共61页第十三页,共61页。格式:格式:格式:格式:ORG nnnnORG nnnnORG nnnnORG nnnn 说说说说明明明明:ORGORGORGORG伪伪伪伪指指指指令令令令指指指指出出出出紧紧紧紧跟跟跟跟在在在在该该该该伪伪伪伪指指指指令令令令后后后后的的的的机机机机器器器器码码码码指指指指令令令令的的的的汇汇汇汇编编编编地地地地址址址址(dzh)(dzh)(dzh)(dzh),即即即即经经经经汇汇汇汇编编编编后后后后生生生生成成成成的的的的机机机机器器器器码码码码目目目目标标标标程程程程序序序序或或或或数数数数据据据据块块块块在在在在单单单单 片片片片 机机机机 程程程程 序序序序 存存存存 储储储储 器器器器 中中中中 的的的的 起起起起 始始始始 存存存存 放放放放 地地地地 址址址址(dzh)(dzh)(dzh)(dzh)。1.1.定位定位(dngwi)(dngwi)伪指令:伪指令:ORGORG(OriginOrigin)第13页/共61页第十四页,共61页。例题例题例题例题6-16-16-16-1以下三个程序段的含义是一样以下三个程序段的含义是一样以下三个程序段的含义是一样以下三个程序段的含义是一样(yyng)(yyng)(yyng)(yyng)的。的。的。的。;程序段程序段程序段程序段1 1 1 1;ORGORGORGORG0008H0008H0008H0008H;常数常数常数常数0008H0008H0008H0008HSTARTSTARTSTARTSTARTMOVLWMOVLWMOVLWMOVLW00H00H00H00H;程序段程序段程序段程序段2 2 2 2;ABCABCABCABCEQUEQUEQUEQU0008H0008H0008H0008HORGORGORGORGABCABCABCABC;标识符标识符标识符标识符ABCABCABCABC即即即即0008H0008H0008H0008HSTARTSTARTSTARTSTARTMOVLWMOVLWMOVLWMOVLW00H00H00H00H;程序段程序段程序段程序段3 3 3 3;ABCABCABCABCEQUEQUEQUEQU0004H0004H0004H0004HORGORGORGORGABC+4ABC+4ABC+4ABC+4;代数表达式即代数表达式即代数表达式即代数表达式即0008H0008H0008H0008HSTARTSTARTSTARTSTARTMOVLWMOVLWMOVLWMOVLW00H00H00H00H第14页/共61页第十五页,共61页。格式:符号名格式:符号名格式:符号名格式:符号名 EQU nn EQU nn EQU nn EQU nn 说说说说明明明明:EQUEQUEQUEQU伪伪伪伪指指指指令令令令几几几几乎乎乎乎每每每每一一一一个个个个程程程程序序序序中中中中都都都都用用用用到到到到,其其其其操操操操作作作作含含含含意意意意是是是是使使使使EQUEQUEQUEQU两两两两端端端端的的的的值值值值相相相相等等等等。一一一一般般般般在在在在PICPICPICPIC的的的的程程程程序序序序设设设设计计计计中中中中,原原原原则则则则上上上上每每每每次次次次遇遇遇遇到到到到新新新新的的的的符符符符号号号号参参参参数数数数,都都都都必必必必须须须须在在在在前前前前面面面面定定定定义义义义(dngy)(dngy)(dngy)(dngy)符符符符号号号号名名名名的的的的初初初初始始始始数数数数值值值值或存储器地址。或存储器地址。或存储器地址。或存储器地址。符符符符号号号号名名名名一一一一旦旦旦旦被被被被EQUEQUEQUEQU赋赋赋赋值值值值,其其其其值值值值便便便便不不不不能能能能被被被被再再再再重重重重新新新新定定定定义义义义(dngy)(dngy)(dngy)(dngy)。这这这这里里里里的的的的符符符符号号号号名名名名,既既既既可可可可以以以以是是是是PICPICPICPIC中中中中的的的的特特特特殊殊殊殊功功功功能能能能寄寄寄寄存存存存器器器器、一一一一个个个个常常常常数数数数,或或或或者者者者是是是是表表表表示示示示一个通用数据存储器地址。一个通用数据存储器地址。一个通用数据存储器地址。一个通用数据存储器地址。2.2.赋值伪指令:赋值伪指令:EQUEQU(EquateEquateEquateEquate)第15页/共61页第十六页,共61页。实际上对于伪指令:实际上对于伪指令:实际上对于伪指令:实际上对于伪指令:ABC EQUABC EQUABC EQUABC EQU20H20H20H20H,其其其其中中中中ABCABCABCABC既既既既可可可可以以以以认认认认为为为为(rnwi)(rnwi)(rnwi)(rnwi)是是是是符符符符号号号号变变变变量量量量,因因因因 为为为为 ABCABCABCABC可可可可 以以以以 代代代代 表表表表 20H20H20H20H地地地地 址址址址;又又又又 可可可可 以以以以 认认认认 为为为为(rnwi)(rnwi)(rnwi)(rnwi)是是是是符符符符号号号号常常常常量量量量,因因因因为为为为ABCABCABCABC可可可可以以以以代代代代表表表表立立立立即数即数即数即数20H20H20H20H。所所所所以以以以对对对对于于于于一一一一个个个个定定定定义义义义的的的的符符符符号号号号量量量量,应应应应结结结结合合合合引引引引用用用用的指令进行分析才能真正确定符号量的类型。的指令进行分析才能真正确定符号量的类型。的指令进行分析才能真正确定符号量的类型。的指令进行分析才能真正确定符号量的类型。分析分析分析分析(fnx)ABC EQU(fnx)ABC EQU(fnx)ABC EQU(fnx)ABC EQU 20H 20H 20H 20H第16页/共61页第十七页,共61页。【例例例例题题题题(lt)6-2(lt)6-2(lt)6-2(lt)6-2】正正正正确确确确区区区区别别别别符符符符号号号号变变变变量量量量和和和和符符符符号号号号常常常常量之间的关系。量之间的关系。量之间的关系。量之间的关系。ABCABCABCABCEQU 20HEQU 20HEQU 20HEQU 20H ;定义符号量;定义符号量;定义符号量;定义符号量ABCABCABCABC ORG 0000HORG 0000HORG 0000HORG 0000H NOPNOPNOPNOPMOVLW 77HMOVLW 77HMOVLW 77HMOVLW 77HMOVWF 20HMOVWF 20HMOVWF 20HMOVWF 20HMOVLW 88HMOVLW 88HMOVLW 88HMOVLW 88HMOVF ABC,0MOVF ABC,0MOVF ABC,0MOVF ABC,0;ABCABCABCABC为符号变量为符号变量为符号变量为符号变量MOVLW ABC MOVLW ABC MOVLW ABC MOVLW ABC ;ABCABCABCABC为符号常量为符号常量为符号常量为符号常量NOPNOPNOPNOP END END END END第17页/共61页第十八页,共61页。在在符符号号名名定定义义和和引引用用过过程程中中,必必须须保保证证大大小小写写属属性性的的一一致致,注注意意不能混合使用。不能混合使用。如如 果果 有有 定定 义义:ABC ABC EQUEQU20H20H 在在引引用用符符号号名名ABCABC时时,不不能能改改变变其其大大小小写写的的属属性性,即即AbcAbc、aBCaBC或或ABcABc与与 ABCABC是是 不不 一一 样样 的的,在在 汇汇 编编(hubin)(hubin)时均会发生出错信息。时均会发生出错信息。第18页/共61页第十九页,共61页。格式:格式:格式:格式:ENDENDENDEND 说说说说明明明明:ENDENDENDEND伪伪伪伪指指指指令令令令表表表表示示示示汇汇汇汇编编编编语语语语言言言言源源源源程程程程序序序序(*.ASM*.ASM*.ASM*.ASM)的的的的结结结结束束束束,MPASMMPASMMPASMMPASM汇汇汇汇编编编编器器器器汇汇汇汇编编编编时时时时遇遇遇遇到到到到ENDENDENDEND就就就就认认认认为为为为(rnwi)(rnwi)(rnwi)(rnwi)程程程程序序序序已已已已结结结结束束束束,对对对对其其其其后后后后的的的的程序段不再进行汇编。程序段不再进行汇编。程序段不再进行汇编。程序段不再进行汇编。3.3.3.3.程序程序程序程序(chngx)(chngx)(chngx)(chngx)结束伪指令:结束伪指令:结束伪指令:结束伪指令:END END END END 第19页/共61页第二十页,共61页。格式:格式:LIST LIST 可选项,可选项,可选项,可选项,说说 明明:LISTLIST伪伪 指指 令令 用用 于于 设设 置置 各各 种种 汇汇 编编 参参 数数(cnsh)(cnsh),以以便便控控制制整整个个汇汇编编过过程程或或对对打打印印输输出出的的列表文件进行格式化。列表文件进行格式化。1 1)P P 例如:例如:P P16F87716F877 2 2)R R 例如:例如:R RDECDEC(十进制);(十进制);R RHEXHEX(十六进制);(十六进制);R RBINBIN(二进制);(二进制);默认为十六进制。默认为十六进制。4.4.4.4.列表列表列表列表(li bio)(li bio)(li bio)(li bio)选项伪指令:选项伪指令:选项伪指令:选项伪指令:LIST LIST LIST LIST 第20页/共61页第二十一页,共61页。格式:格式:格式:格式:INCLUDE“INCLUDE“INCLUDE“INCLUDE“文件名文件名文件名文件名”说说说说明明明明:INCLUDEINCLUDEINCLUDEINCLUDE伪伪伪伪指指指指令令令令的的的的主主主主要要要要功功功功能能能能是是是是将将将将外外外外部部部部预预预预先先先先编编编编写写写写好好好好的的的的指指指指定定定定文文文文件件件件纳纳纳纳入入入入本本本本源源源源程程程程序序序序的的的的汇汇汇汇编编编编内内内内容,这样可以减少重复劳动,提高编程效率。容,这样可以减少重复劳动,提高编程效率。容,这样可以减少重复劳动,提高编程效率。容,这样可以减少重复劳动,提高编程效率。如如如如:P16F877.INCP16F877.INCP16F877.INCP16F877.INC为为为为PIC16F877PIC16F877PIC16F877PIC16F877单单单单片片片片机机机机的的的的复复复复位位位位矢矢矢矢量量量量(shling)(shling)(shling)(shling)、专专专专用用用用寄寄寄寄存存存存器器器器的的的的地地地地址址址址及及及及其其其其控控控控制制制制位位位位和和和和状状状状态态态态位位位位的的的的位位位位地地地地址址址址的的的的原原原原始始始始定定定定义义义义,有有有有些些些些参参参参考考考考书书书书把把把把P16F877.INCP16F877.INCP16F877.INCP16F877.INC称为称为称为称为PIC16F877PIC16F877PIC16F877PIC16F877的头文件。的头文件。的头文件。的头文件。5.5.5.5.外调外调外调外调(widio)(widio)(widio)(widio)程序伪指令:程序伪指令:程序伪指令:程序伪指令:INCLUDE INCLUDE INCLUDE INCLUDE 第21页/共61页第二十二页,共61页。6.6.定义数据定义数据(shj)(shj)伪指令伪指令DBDB(DWDW、DEDE、DATADATA)表达式,)表达式,表达式,表达式,例题例题6-36-3ORGORG 0000H0000HNOPNOPORGORG 0100H0100HDBDB45H,67H,89H,0ABH,0CDH,0E45H,67H,89H,0ABH,0CDH,0EFHFH;定义定义6 6个字节数据个字节数据(shj)(shj)ORGORG 0200H0200HDBDB4567H,89ABH,0CDEFH4567H,89ABH,0CDEFH;定义定义6 6个字节数据个字节数据(shj)(shj)ORGORG 0300H0300HDBDBA,B,C,D,E,F,A,B,C,D,E,F,GG;定义定义6 6个字符数据个字符数据(shj)(shj)ORGORG 0400H0400HDBDBABCDEFGABCDEFG;定义定义1 1个字符串数据个字符串数据(shj)(shj)ENDEND注:建议使用注:建议使用DEDE定义数据定义数据(shj)(shj),可以定义单字节数据,可以定义单字节数据(shj)(shj)、单字节字符和字符串。单字节字符和字符串。第22页/共61页第二十三页,共61页。格式:格式:格式:格式:RADIX RADIX RADIX RADIX 说说说说明明明明:RADIXRADIXRADIXRADIX伪伪伪伪指指指指令令令令用用用用于于于于设设设设置置置置在在在在MPLAB-ICDMPLAB-ICDMPLAB-ICDMPLAB-ICD集集集集成成成成开开开开发发发发环环环环境境境境中中中中采采采采用用用用的的的的进进进进制制制制方方方方式式式式(fngsh)(fngsh)(fngsh)(fngsh),如如如如定定定定义义义义十十十十进进进进制制制制、八八八八进进进进制制制制和和和和十十十十六六六六进进进进制制制制等等等等参参参参数数数数,MPLAB-ICDMPLAB-ICDMPLAB-ICDMPLAB-ICD集成开发系统缺省为十六进制。集成开发系统缺省为十六进制。集成开发系统缺省为十六进制。集成开发系统缺省为十六进制。例如:例如:例如:例如:RADIX DEC RADIX DEC RADIX DEC RADIX DEC ;定义为十进制;定义为十进制;定义为十进制;定义为十进制 RADIX HEX RADIX HEX RADIX HEX RADIX HEX ;定义为十六进制;定义为十六进制;定义为十六进制;定义为十六进制 RADIX OCT RADIX OCT RADIX OCT RADIX OCT ;定义为八进制;定义为八进制;定义为八进制;定义为八进制7.7.7.7.进制定义进制定义进制定义进制定义(dngy)(dngy)(dngy)(dngy)伪指令:伪指令:伪指令:伪指令:RADIX RADIX RADIX RADIX 第23页/共61页第二十四页,共61页。8.8.体选伪指令体选伪指令 BANKSELBANKSEL BANKSEL ABC BANKSEL ABC MOVLW 00H MOVLW 00H MOVWF ABC MOVWF ABC9.9.页选伪指令页选伪指令 PAGESELPAGESEL PAGESEL DEL10MS PAGESEL DEL10MS CALL DEL10MS CALL DEL10MS第24页/共61页第二十五页,共61页。6.3 6.3 存储器选择存储器选择(xunz)(xunz)方式方式1.1.1.1.数据数据(shj)(shj)存储器体选方式存储器体选方式2.2.2.2.直接寻址访问数据直接寻址访问数据(shj)(shj)存储器存储器3.3.3.3.7+27+2模式模式4.4.4.4.间接寻址访问数据间接寻址访问数据(shj)(shj)存储器存储器5.5.5.5.8+18+1模式模式第25页/共61页第二十六页,共61页。在在在在直直直直接接接接寻寻寻寻址址址址中中中中,体体体体选选选选码码码码来来来来自自自自状状状状态态态态寄寄寄寄存存存存器器器器STATUSSTATUSSTATUSSTATUS的的的的RP1RP1RP1RP1和和和和RPORPORPORPO位位位位,体体体体内内内内(t(t(t(t ni)ni)ni)ni)的的的的单单单单元元元元地地地地址址址址直直直直接接接接来来来来自自自自指指指指令令令令机机机机器器器器码码码码。而而而而在在在在间间间间接接接接寻寻寻寻址址址址中中中中,体体体体选选选选码码码码由由由由STATUSSTATUSSTATUSSTATUS的的的的IRPIRPIRPIRP位和位和位和位和FSRFSRFSRFSR寄存器的寄存器的寄存器的寄存器的BIT7BIT7BIT7BIT7组成。组成。组成。组成。直接寻址直接寻址直接寻址直接寻址/间接间接间接间接(jin ji)(jin ji)(jin ji)(jin ji)寻址方式的示意寻址方式的示意寻址方式的示意寻址方式的示意图图图图 第26页/共61页第二十七页,共61页。2.2.程序存储器页选方式程序存储器页选方式6 6种途径种途径(tjng)(tjng)(1 1)复位地址)复位地址0000H0000H;(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需要装需要装载。载。第27页/共61页第二十八页,共61页。第28页/共61页第二十九页,共61页。例题例题例题例题6-46-46-46-4LISTLISTLISTLIST P=16F877P=16F877P=16F877P=16F877;PAGESEL;PAGESEL;PAGESEL;PAGESELINCLUDEP16F877.INCINCLUDEP16F877.INCINCLUDEP16F877.INCINCLUDEP16F877.INC;COUNTERCOUNTERCOUNTERCOUNTEREQUEQUEQUEQU30H30H30H30H;查表偏移量查表偏移量查表偏移量查表偏移量ORGORGORGORG0000H0000H0000H0000HNOPNOPNOPNOPMOVLWMOVLWMOVLWMOVLW20H20H20H20H;数据存储器起始地址数据存储器起始地址数据存储器起始地址数据存储器起始地址MOVWFMOVWFMOVWFMOVWFFSRFSRFSRFSRCLRFCLRFCLRFCLRFCOUNTERCOUNTERCOUNTERCOUNTER;查表偏移量置查表偏移量置查表偏移量置查表偏移量置0 0 0 0LOOPLOOPLOOPLOOP MOVFMOVFMOVFMOVFCOUNTER,WCOUNTER,WCOUNTER,WCOUNTER,WCALLCALLCALLCALLCHABIAOCHABIAOCHABIAOCHABIAO;调用查表子程序调用查表子程序调用查表子程序调用查表子程序MOVWFMOVWFMOVWFMOVWFINDFINDFINDFINDF;送入数据存储器送入数据存储器送入数据存储器送入数据存储器INCFINCFINCFINCFCOUNTERCOUNTERCOUNTERCOUNTER;指向下一偏移量指向下一偏移量指向下一偏移量指向下一偏移量INCFINCFINCFINCFFSRFSRFSRFSR;指向下一数据存储器指向下一数据存储器指向下一数据存储器指向下一数据存储器BTFSSBTFSSBTFSSBTFSSCOUNTER,4COUNTER,4COUNTER,4COUNTER,4;是否是否是否是否(sh fu)(sh fu)(sh fu)(sh fu)已取已取已取已取16161616个数据个数据个数据个数据GOTOGOTOGOTOGOTOLOOPLOOPLOOPLOOP;否,继续否,继续否,继续否,继续GOTOGOTOGOTOGOTO$;是,停止是,停止是,停止是,停止第29页/共61页第三十页,共61页。n n查表子程序查表子程序查表子程序查表子程序n n;n nCHABIAOCHABIAOCHABIAOCHABIAOADDWFADDWFADDWFADDWFPCL,FPCL,FPCL,FPCL,F;增加增加增加增加(zngji)(zngji)(zngji)(zngji)偏移量偏移量偏移量偏移量n nRETLWRETLWRETLWRETLW00H00H00H00H;第第第第0 0 0 0个数据个数据个数据个数据n nRETLWRETLWRETLWRETLW01H01H01H01H;第第第第1 1 1 1个数据个数据个数据个数据n nRETLWRETLWRETLWRETLW02H02H02H02H;第第第第2 2 2 2个数据个数据个数据个数据n nRETLWRETLWRETLWRETLW03H03H03H03H;第第第第3 3 3 3个数据个数据个数据个数据n nRETLWRETLWRETLWRETLW04H04H04H04H;第第第第4 4 4 4个数据个数据个数据个数据n nRETLWRETLWRETLWRETLW05H05H05H05H;第第第第5 5 5 5个数据个数据个数据个数据n nRETLWRETLWRETLWRETLW06H06H06H06H;第第第第6 6 6 6个数据个数据个数据个数据n nRETLWRETLWRETLWRETLW07H07H07H07H;第第第第7 7 7 7个数据个数据个数据个数据n nRETLWRETLWRETLWRETLW08H08H08H08H;第第第第8 8 8 8个数据个数据个数据个数据n nRETLWRETLWRETLWRETLW09H09H09H09H;第第第第9 9 9 9个数据个数据个数据个数据n nRETLWRETLWRETLWRETLW0AH0AH0AH0AH;第第第第10101010个数据个数据个数据个数据n nRETLWRETLWRETLWRETLW0BH0BH0BH0BH;第第第第11111111个数据个数据个数据个数据n nRETLWRETLWRETLWRETLW0CH0CH0CH0CH;第第第第12121212个数据个数据个数据个数据n nRETLWRETLWRETLWRETLW0DH0DH0DH0DH;第第第第13131313个数据个数据个数据个数据n nRETLWRETLWRETLWRETLW0EH0EH0EH0EH;第第第第14141414个数据个数据个数据个数据n nRETLWRETLWRETLWRETLW0FH0FH0FH0FH;第第第第15151515个数据个数据个数据个数据n n;n nENDENDENDEND第30页/共61页第三十一页,共61页。在在程程序序设设计计(shj)(shj)中中,除除主主程程序序以以外外还还有有一一部部分分很很重重要要的的内内容容就就是是关关于于子子程程序序的的设设计计(shj)(shj),它它是是为为完完成成特特定定的的目目的的而而构构成成的的复复合合程序。程序。6.4 6.4 6.4 6.4 常用常用常用常用(chn yn)(chn yn)(chn yn)(chn yn)子程序子程序子程序子程序的设计的设计的设计的设计 第31页/共61页第三十二页,共61页。转转转转移移移移和和和和循循循循环环环环程程程程序序序序,主主主主要要要要是是是是通通通通过过过过跳跳跳跳转转转转、判判判判断断断断和和和和位位位位测测测测试试试试指指指指令令令令(zhlng)(zhlng)(zhlng)(zhlng)来构成的。来构成的。来构成的。来构成的。1.1.1.1.跳转指令跳转指令跳转指令跳转指令(zhlng)GOTO(zhlng)GOTO(zhlng)GOTO(zhlng)GOTO;2.2.2.2.判判判判断断断断指指指指令令令令(zhlng)(zhlng)(zhlng)(zhlng)INCFSZINCFSZINCFSZINCFSZ、DECFSZDECFSZDECFSZDECFSZ;3.3.3.3.位位位位测测测测试试试试指指指指令令令令(zhlng)(zhlng)(zhlng)(zhlng)BTFSSBTFSSBTFSSBTFSS、BTFSCBTFSCBTFSCBTFSC。6.4.1 6.4.1 跳转和循环跳转和循环(xnhun)(xnhun)子程序子程序 第32页/共61页第三十三页,共61页。【例例例例 题题题题 6-56-56-56-5】假假假假 定定定定 执执执执 行行行行 某某某某 个个个个 显显显显 示示示示(xinsh)(xinsh)(xinsh)(xinsh)功功功功能能能能100100100100次次次次后后后后结结结结束束束束