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‘00000000’ 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 ...