当前位置:首页 > 嵌入式 > 嵌入式硬件

http://  为了快速掌握pic单片机源程序的基本结构,这里给出一个典型的程序结构框架。建立源程序时首先用伪指令title提供程序的标题,接着给出整个程序的总说明,并用列表伪指令list指定所用单片机型号和文件输出格式,再利用include伪指令读入mpasm中提供的定义文件如《p16f84?inc》,然后对片内常用资源进行定义,再给出一般程序的基本结构框架。现举例如下。   title“this is……”;程序标题
   ;程序说明
   list p=16f84,f=1nhx8m
   ;
   include <p16f84.inc>
   -config_rc_qsc &_wdt_0ff…
   ;资源定义和变量定义
   status equ 03
   fsr equ 04
   porta equ 05
   portb equ 06
   j equ 01f
   k equ 01e
   ;…………………
       org 0000 ;
       goto main ;跳过中断矢量
       org 0004
       goto intsrv;子程序入口地址
   ;……………………………………
   main       ;从0005h开始放主程序
       call initports ;端口初始化
       call inittimers;定时器初始化
       …
   intsrv …     ;中断服务程序区
   svbrth…      ;子程序区
     end      ;程序结束符
   当然,在编写程序时可根据实际情况加以调整。下面是一份实际程序清单,要求将数据88h写入pic16f84单片机内部eeprom的20h单元,而后再从20h单元将其读出。
   list p=16f84,f=inhx8m
   ;……………………………
   status equ  03  ;定义寄存器
   eedata equ  08
   eeadr equ  09
   intcon equ  0bh
   eecon1 equ  88h
   eecon2 equ  89h
   ;…………………………
   rd    equ  0    ;定义位
   wr  equ  1
   rp0   equ  5
   gie  equ  7
   ;…………………………
        org  0
        goto wrstart
   ;……………………………
        org  10h
   wrstart         ;写入操作开始
        clrw      ;清w,使w=0
        bcf status,rp0 ;选bank0
        movlw 20h
        movwf eeadr   ;地址→eeadr
        movlw 88h
        movwf eedata  ;写入数据→
                 ;eedata
        bsf status,rp0 ;选bank1
        bsf eecon1,2 ;写操作使能允许
        bcf intcon,gie ;关闭所有的中断
        movlw 0x55
        movwf eecon2  ;55h→eecon2
        movlw 0xaa
        movwf eecon2  ;aah→eecon2
       bsf eecon1,wr ;启动写操作
        bsf intcon,gie ;恢复开中断
   rdstart          ;读出操作开始
        bcf status,rp0
        movlw 20h
        movwf eeadr   ;地址→eeadr
        bsf status,rp0
        bsf eecon1,rd ;启动读操作
        bcf status,rp0
        movf eedata,w ;将eeprom
                 ;数据读入w
   end


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭