欢迎来到天天文库
浏览记录
ID:33538378
大小:45.00 KB
页数:17页
时间:2019-02-26
《pic单片机汇编语言基础》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、.....PIC单片机汇编语言基础1、程序的基本格式先介绍二条伪指令: EQU——标号赋值伪指令 ORG——地址定义伪指令 PIC16C5X在RESET后指令计算器PC被置为全“1”,所以PIC16C5X几种型号芯片的复位地址为: PIC16C54/55:1FFH PIC16C56:3FFH PIC16C57/58:7FFH 一般来说,PIC的源程序并没有要求统一的格式,大家可以根据自己的风格来编写。但这里我们推荐一种清晰明了的格式供参考。 TITLEThisis……;程序标题
2、;-------------------------------------- ;名称定义和变量定义 ;-------------------------------------- F0 EQU 0 RTCC EQU 1 PC EQU 2 STATUS EQU 3 FSR EQU 4word格式.整理版..... RA EQU 5 RB EQU 6 RC EQU 7 ┋ PIC16C54EQU1FFH;芯片复位地址 PIC16C56EQ
3、U3FFH PIC16C57EQU7FFH ;----------------------------------------- ORGPIC16C54GOTOMAIN ;在复位地址处转入主程序 ORG 0 ;在0000H开始存放程序 ;----------------------------------------- ;子程序区 ;----------------------------------------- DELAYMOVLW255 ┋
4、RETLW0 ;------------------------------------------ ;主程序区 ;------------------------------------------ MAIN MOVLWB‘00000000’ TRISRB ;RB已由伪指令定义为6,即B口word格式.整理版..... ┋ LOOP BSFRB,7CALLDELAY BCFRB,7CALLDELAY ┋
5、 GOTOLOOP ;------------------------------------------- END ;程序结束 注:MAIN标号一定要处在0页面内。 2、程序设计基础 1)设置I/O口的输入/输出方向 PIC16C5X的I/O口皆为双向可编程,即每一根I/O端线都可分别单独地由程序设置为输入或输出。这个过程由写I/O控制寄存器TRISf来实现,写入值为“1”,则为输入;写入值为“0”,则为输出。 MOVLW0FH ;00001111
6、(0FH) 输入输出 TRIS6 ;将W中的0FH写入B口控制器, ;B口高4位为输出,低4位为输入。 MOVLW0C0H;11000000(0C0H) RB4,RB5输出0RB6,RB7输出1 2)word格式.整理版.....检查寄存器是否为零 如果要判断一个寄存器内容是否为零,很简单,现以寄存器F10为例: MOVF10,1 ;F10→F10,结果影响零标记状态位Z B
7、TFSSSTATUS,Z ;F10为零则跳 GOTONZ ;Z=0即F10不为零转入标号NZ处程序 ┋ ;Z=1即F10=0处理程序 3)比较二个寄存器的大小 要比较二个寄存器的大小,可以将它们做减法运算,然后根据状态位C来判断。注意,相减的结果放入W,则不会影响二寄存器原有的值。 例如F8和F9二个寄存器要比较大小: MOVF8,0 ;F8→W SUBWF9,0 ;F9—W(F8)→W BT
8、FSCSTATUS,Z ;判断F8=F9否 GOTOF8=F9 BTFSCSTATUS,C ;C=0则跳 GOTOF9>F8 ;C=1相减结果为正,F9>F8 GOTOF9
此文档下载收益归作者所有