Windows下PIC 8位单片机源程序汇编和固化(二)
Windows 下 PIC 8 位单片机源程序汇编和固化(二) 2 在 MPLAB 中建立 PIC 单片机源程序笔者将以附图的 PIC16C55 脉冲计数试验电路(计数时,RA1 口为十进制码输入,RB 口为二进制码输出)的源程序 PIC count.ASM 为例,介绍在 MPLAB 集成开发环境下编辑(建立)PIC 单片机源程序的方法。其操作步骤如下。
(1)打开 MPLAB 桌面(窗口)和空白编辑窗口开启 PC 机,启动运行 Windows,在 Windows 的管理程序下,用鼠标点击显示屏上的图标 Microchip(快捷),即可启动运行 MPLAB 集成开发软件,此时屏幕上将显示 MPLAB 的桌面(见今年第 25 期本版的《源程序的汇编和固化(一)》文中的附图)。从已打开的 MPLAB 的桌面(窗口)上,用鼠标点击 MPLAB 菜单栏中最左边的 File(文件),即可打开 File 的下拉菜单,再用鼠标点击下拉菜单中的命令 New Source(新建源程序),即可打开一个空白的编辑窗口,在此窗口中用键盘键入 PIC 16C55 COUNT?
ASM 源程序再对其进行编辑(以 MPLAB V3?01 版为例): LIST P=16C55 #INCLUDE P16C5X?INC COUNT EQU 1EH ORG 0START MOVLW 0 MOVWF PORTB;设置 B 口为输出 TRIS PORTB CLRF COUNT;置计数器 COUNT 为零 LOOP BTFSS PORTA,1;判断开关 K 按下否? GOTO INCOUNT;按下开关 K,跳转执行 IN-;COUNTENDLOOP GOTO LOOP;开关未按下,继续循环;判断 INCOUNT INCF COUNT,1;计数器 COUNT+1 MOVF COUNT,W MOVWF PORTB;从 B 口输出计数值 DEBOUNCE BTFSS PORTA,1;判断开关 K 释放否。
GOTO DEBOUNCE;没有释放继续判断 GOTO LOOP;开关 K 释放重新开始 ORG 0x1FF;复位向量 GOTO START END 说明:在 MPLAB 集成开发环境下建立源程序时,其源程序文件的开始应使用伪指令 List(列表选择指令)指示符,指定处理的类型(对象)。所以,上述的源程序的开始处为 List P=16C55。其中的“P=”是处理类型,代表设置微控制器为 16C55(芯片)。
接着又用了伪指令#include P16C5X?INC,代表 MPLAB 应把要处理(类型)的微控器 F16C55 的所有已设置的文件,在需要时就读入这里的源程序中。这条伪指令就为源程序中的代码设置大为简化,例如 PORTB、TRIS 以及其它特殊功能寄存器,就不再用 EQU 伪指令给它们赋值了。 源程序中紧接着上面的伪指令为 ORG,代表存放程序的起始地址。所以在一个源程序中,可以根据需要多次使用 ORG 伪指令定位。
在上述的源程序中,使用了两次 ORG。值得注意,在 PIC 系列单片机中,对初级产品 PIC16C54/55 的复位向量为 1FFH;PIC16C56 为 3FFH;PIC16C57/58 为 7FF;对中级和高级产品的复位向量为 000H 和 0000H。由此可见在建立 PIC 单片机源程序时,使用一些伪指令是很有必要的,用它可以为建立源程序完成一些特定功能,使编制的源程序大大简化。源程序后面的各条指令功能均已在注释中给了说明,这里不再复述。