PIC16F877 运算子程序

作者: 佚名   发布日期:2006-09-04 21:40   查看数:0   出自:互联网
下载资料简介
PIC16F877 运算子程序
1 PIC16F877汇编语言程序主体框架
以下是一个典型的程序结构:
;***************程序说明区*******************
LIST p=16f877 ;指定微控制器型号和文件输出格式
INCLUDE p16f877.inc ;读入MPLAB提供的定义文件P16F877.INC
;***片内RAM常用资源、变量定义和相应的说明*********
ACCALO EQU 20 ;存放加数或减数低8位
ACCAHI EQU 21 ;存放加数或减数高8位
ACCBLO EQU 23 ;存放被加数或被减数低8位
ACCBHI EQU 24 ;存放被加数或被减数高8位
S_W EQU 25 ;栈存W寄存器值
S_STATUS EQU 26 ;栈存STATUS寄存器值
;****************芯片复位矢量*******************
ORG 0X0000 ;由于PIC16F877芯片复位矢量在0000h单
;元,所以常在0000h单元处放置一条跳转
;指令,使单片机复位后能跳过中断矢量,
;直接执行主程序
START GOTO MAIN
;******************中断矢量**********************
ORG 0X0004 ;由于PIC16F877的中断矢量为0004h,所以
;当中断开放时, 需在此处加入中断程序,
;使单片机能在中断到来时及时进入相应的
;中断服务程序。为了可靠起见,如果单片
;机不使用中断,则常常在该中断矢量处放
;置RETFIE指令,可以使单片机不会因
;干扰产生误中断而导致程序跑飞
CALL PUSH ;调用保护现场子程序
BTFSS PIR1,ADIF
CALL AD ;若AD中断到,则执行中断服务程序
…….. ;此处可放多个中断子程序,并以软件安排
;中断优先级
CALL POP ;恢复中断现场
RETFIE ;中断返回
;****************主程序区*****************
ORG 0X0100 ;将主程序、子程序和中断服务程序等存放
;在0100h单元之后,在中断矢量和主程序
;区之间预留一些存储单元,以便写入判
;跳指令和一些必要的现场保护程序。此外
;用户也可以根据实际需要,使主程序从其
;它地址开始存放
MAIN BSF STATUS,RP0 ;选择存储体1


备注:
本站收集200多G的绝对实用的电子资料,但是站长还是个身无分文的学生,没有钱购买服务器,大量的资料没有办法供大家下载。但是,站长对这些资料进行了细致的分类,给大家一个资料索引,让大家更好的收集相关领域资料。本站资料部分来自互联网,朋友们可以在互联网上搜索到这些资料。当站长把资料整理完毕(大概需要1个月)后,会想办法让这些资料跟大家见面,也许用BT供大家下载,请大家耐心等待!
相关文章(最新&最热)