欢迎来到天天文库
浏览记录
ID:22002169
大小:69.50 KB
页数:6页
时间:2018-10-26
《pic系列单片机程序设计基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、>>PIC单片机原理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 4 RA EQU 5 RB EQU 6 RC EQU 7 ┋ PIC16C54EQU1FFH;芯片复位地址 PIC16C56EQU3FFH PIC16C5
3、7EQU7FFH ;----------------------------------------- ORGPIC16C54GOTOMAIN ;在复位地址处转入主程序 ORG 0 ;在0000H开始存放程序 ;----------------------------------------- ;子程序区 ;----------------------------------------- DELAYMOVLW255 ┋ RETLW0 ;-----------
4、------------------------------- ;主程序区 ;------------------------------------------ MAIN MOVLWB‘00000000’ TRISRB ;RB已由伪指令定义为6,即B口 ┋ LOOP BSFRB,7CALLDELAY BCFRB,7CALLDELAY ┋ GOTOLOOP ;-------------------------
5、------------------ END ;程序结束 注:MAIN标号一定要处在0页面内。 2、程序设计基础 1)设置I/O口的输入/输出方向 PIC16C5X的I/O口皆为双向可编程,即每一根I/O端线都可分别单独地由程序设置为输入或输出。这个过程由写I/O控制寄存器TRISf来实现,写入值为“1”,则为输入;写入值为“0”,则为输出。 MOVLW0FH ;00001111(0FH) 输入输出 TRIS6 ;将W中的0FH写入B口
6、控制器, ;B口高4位为输出,低4位为输入。 MOVLW0C0H;11000000(0C0H) RB4,RB5输出0RB6,RB7输出1 2)检查寄存器是否为零 如果要判断一个寄存器内容是否为零,很简单,现以寄存器F10为例: MOVF10,1 ;F10→F10,结果影响零标记状态位Z BTFSSSTATUS,Z ;F10为零则跳 GOTONZ ;Z=0即F10不为零转入标号NZ处程序
7、┋ ;Z=1即F10=0处理程序 3)比较二个寄存器的大小 要比较二个寄存器的大小,可以将它们做减法运算,然后根据状态位C来判断。注意,相减的结果放入W,则不会影响二寄存器原有的值。 例如F8和F9二个寄存器要比较大小: MOVF8,0 ;F8→W SUBWF9,0 ;F9—W(F8)→W BTFSCSTATUS,Z ;判断F8=F9否 GOTOF8=F9 BTFSCSTATUS,C ;C=0则跳 GO
8、TOF9>F8 ;C=1相减结果为正,F9>F8 GOTOF9
此文档下载收益归作者所有