歡迎您光臨本站 登入註冊首頁

PIC單片機程序結構介紹

admin @ 2014-03-14 , reply:0

概述

為了快速掌握PIC單片機源程序的基本結構,這裡給出一個典型的程序結構框架。建立源程序時首先用偽指令TITLE提供程序的標題,接著給出整個程序的總說明,並用列表偽指令LIST指定所用單片機型號和文件輸出……

為了快速掌握PIC單片機源程序的基本結構,這裡給出一個典型的程序結構框架。 建立源程序時首先用偽指令TITLE提供程序的標題,接著給出整個程序的總說明,並用列表偽指令LIST指定所用單片機型號和文件輸出格式,再利用INCLUDE偽指令讀入MPASM中提供的定義文件如《P16F84 INC》,然後對片內常用資源進行定義,再給出一般程序的基本結構框架。現舉例如下。

       TITLE“This is……”;程序標題
  ;程序說明
  LIST P="16F84",F=1NHX8M
  ;
  include
  -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

[admin via 研發互助社區 ] PIC單片機程序結構介紹已經有2419次圍觀

http://cocdig.com/docs/show-post-411.html