pic汇编语言格式.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
pic汇编语言格式

PIC单片机汇编语言编程基础1、程序的基本格式  先介绍二条伪指令:  EQU ——标号赋值伪指令  ORG ——地址定义伪指令  PIC16C5X在RESET后指令计算器PC被置为全“1”,所以PIC16C5X几种型号芯片的复位地址为:   PIC16C54/55:1FFH   PIC16C56:3FFH   PIC16C57/58:7FFH  一般来说,PIC的源程序并没有要求统一的格式,大家可以根据自己的风格来编写。但这里我们推荐一种清晰明了的格式供参考。  TITLE This is …… ;程序标题  ;  ;名称定义和变量定义  ;  F0    EQU  0  RTCC   EQU  1  PC    EQU  2  STATUS  EQU  3  FSR   EQU  4  RA    EQU  5  RB    EQU  6  RC    EQU  7         ┋  PIC16C54 EQU 1FFH ;芯片复位地址  PIC16C56 EQU 3FFH  PIC16C57 EQU 7FFH  ;  ORG PIC16C54 GOTO MAIN   ;在复位地址处转入主程序  ORG   0          ;在0000H开始存放程序  ;  ;子程序区  ;  DELAY MOVLW 255      ┋      RETLW 0  ;  ;主程序区  ;  MAIN      MOVLW B      TRIS RB       ;RB已由伪指令定义为6,即B口       ┋  LOOP      BSF RB,7 CALL DELAY              BCF RB,7 CALL DELAY        ┋      GOTO LOOP  ;       END       ;程序结束   注:MAIN标号一定要处在0页面内。2、程序设计基础  1) 设置 I/O 口的输入/输出方向  PIC16C5X的I/O 口皆为双向可编程,即每一根I/O 端线都可分别单独地由程序设置为输入或输出。这个过程由写I/O控制寄存器TRIS f来实现,写入值为“1”,则为输入;写入值为“0”,则为输出。      MOVLW 0FH  ;0000 1111(0FH)            输入 输出      TRIS 6    ;将W中的0FH写入B口控制器,             ;B口高4位为输出,低4位为输入。      MOVLW 0C0H ; 11 000000(0C0H)              RB4,RB5输出0 RB6,RB7输出1  2) 检查寄存器是否为零  如果要判断一个寄存器内容是否为零,很简单,现以寄存器F10为例:      MOVF 10,1      ;F10→F10,结果影响零标记状态位Z      BTFSS STATUS,Z    ;F10为零则跳      GOTO NZ        ;Z=0即F10不为零转入标号NZ处程序       ┋          ;Z=1即F10=0处理程序  3) 比较二个寄存器的大小  要比较二个寄存器的大小,可以将它们做减法运算,然后根据状态位C来判断。注意,相减的结果放入W,则不会影响二寄存器原有的值。  例如F8和F9二个寄存器要比较大小:       MOVF 8,0       ;F8→W       SUBWF 9,0      ;F9—W(F8)→W       BTFSC STATUS,Z    ;判断F8=F9否       GOTO F8=F9       BTFSC STATUS,C    ;C=0则跳       GOTO F9F8       ;C=1相减结果为正,F9F8       GOTO F9F8       ;C=0相减结果为负,F9F8         ┋   4) 循环n次的程序  如果要使某段程序循环执行n次,可以用一个寄存器作计数器。下例以F10做计数器,使程序循环8次。       COUNT EQU 10     ;定义F10名称为COUNT(计数器)          ┋       MOVLW 8       MOVWF COUNT LOOP   ;循环体   LOOP           ┋       DECFSZ COUNT,1    ;COUNT减1,结果为零则跳       GOTO LOOP       ;结果不为零,继续循环           ┋       ;结果为零,跳出循环   5)“IF……THEN……”格式的程序  下面以“IF X=Y THEN GOTO NEXT”格式为例。       MOVF X,0      ;

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档