单片机基础分析和总结.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文档。上传文档
查看更多
1、PIC 单片机程序的基本格式先介绍二条伪指令: 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、PIC 单片机程序设计基础 设置 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 检查寄存器是否为零 如果要判断一个寄存器内容是否为零,很简单,现以寄存器 F10 为例: MOVF 10,1 ;F10→F10,结果影响零标记状态位 Z BTFSS STATUS,Z ;F10 为 零 则 跳 GOTO NZ ;Z=0 即 F10 不为零转入标号 NZ 处程序 ;Z=1 即 F10=0 处理程序 比较二个寄存器的大小 要比较二个寄存器的大小,可以将它们做减法运算,然后根据状态位 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 ┋ 循环 n 次的程序 如果要使某段程序循环执行 n 次,可以用一个寄存器作计数器。下例以F10 做计数器,使程序循环 8 次。 COUNT EQU 10 ;定义 F10 名称为 COUNT(计数器) ┋ MOVLW 8 MOVWF LOOP COUNT LOOP ;循环体 ┋ DECFSZ COUNT,1 ;COUNT 减 1,结果为零则跳GOTO LOOP ;结果不为零,继续循环 ;结果为零,跳出循环 5)“IF??THEN??”格式的程序 下面以“IF X=Y THEN GOTO NEXT”格式为例。 MOVF X,0 ;X→W SUBWF Y,0 ;Y—W(X)→W BTFSC STATUS,Z ;X=Y 否 GOTO NEXT ;X=Y,跳到 NEXT 去执行。 ;X≠Y 6)“FOR??NEXT”格式的程序 “FOR??NEXT”程序使循环在某个范围内进行。下例是“FOR X=0 TO 5” 格式的程序。F10 放 X 的初值,F11 放 X 的终值。 START EQU 10 DAEND EQU 11 ┋ MOVLW 0 MOVWF START ; 0→START(F10) MOVLW 5 LOOP MOVWF DAEND ;5→DAEND(F11) ┋ INCF START,1 ;START 值加 1 MOVF START,0 SUBWF DAEND,0 ;START=DAEND ?(X=5 否) BTFSS STATUS,

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

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

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档