?? ad.asm.bak
字號:
;/**************************************************************************
;* *
;* Copyright (c) 2006 by JINRUN Technology Co., Ltd. *
;* Title : FPPA TM demo board---PIC PARTY
;* FUN : AD,LCM Drive,Key input,LED flash,etc.,
;* MCU : PIC16F877A(PIC),PDK80C08(PDK)[FPPA TM]
;* LCD : RT1602C
;* OSC : 8MHz(ext. HT)
;* WDT : OFF
;* Author : Raker.Yang *
;* FPPA TM 簡介:FPPA TM是世界首創的多核心單晶片,所有RAM和ROM卻能夠共享
;* 目前支持8個核心(8路獨立PC,STACK,ACC等)
;* 既然有了獨立多核心,跑多任務程序也就更簡單了。
;* 更重要的是,它可以非常方便的擴展MCU外圍,如,PWM,IIC,UART等。
;* 如果你對FPPA TM技術感興趣,歡迎訪問筆者博客 http://gongkong.gkbk.com
;* 或加入作者QQ:595142970, QQ群25644462
;* 同時歡迎各路商家前來進行方案合作!
;*
;* 聲明:本資料僅供個人學習PIC或FPPA TM軟件設計參考,任何人都可以轉載此資料。
;* 但任何單位或個人都不能將此資料作為商業用品。本資料可能存在一些缺陷,
;* 如果你將本資料用于產品,所引起的一切后果,均由使用者承擔
;* *
;**************************************************************************/
;
;----------ADC MODE --------------------------------
; Name :ADC_GO
; Input :void
; Output :AD reuslt
; TEMP REG :TEMP3
; RETURN BANK :0
; Fucntion :AD process
;-----------------------------------------------
ADC_GO:
BCF PIR1, ADIF
BSF ADCON0, ADON
NOP
MOVLW 0x32
MOVWF TEMP3
DELAY_AD:
DECFSZ TEMP3 ;SAMPLE VOTAGE
GOTO DELAY_AD
BSF ADCON1, GO
NOP
NOP
WAIT_AD:
BTFSC ADCON1, GO
GOTO WAIT_AD
; BTFSS PIR1, ADIF
; GOTO WAIT_AD
; BCF PIR1, ADIF
;GET AD RESULT
BANKSEL ADRESL
MOVF ADRESL, W
BANKSEL TMR0
ADDWF AD_VAL_REGL, D
BTFSC STATUS, C
INCF AD_VAL_REGH
MOVF ADRESH, W
ADDWF AD_VAL_REGH, D
;
RETURN
;---------ADC MODE END------------------
;
;----------ADC VAL AVERAGE-----------------------
; Name :ADC_AVERAGE
; Input :AD_VAL_REGH,AD_VAL_REGL,TEMP3(RIGHT MOVE BIT CNT)
; Output :AD_VAL_REGH,AD_VAL_REGL
; TEMP REG :TEMP3
; RETURN BANK :0
; Fucntion :AD AVERAGE
;-----------------------------------------------
ADC_AVERAGE:
MOVWF TEMP3
CLRC
AVERAGE_NEXT:
RRF AD_VAL_REGH
RRF AD_VAL_REGL
CLRC
DECFSZ TEMP3
GOTO AVERAGE_NEXT
RETURN
;---------ADC VAL AVERAGE----------------------
;
;----------AD CONVER----------------------------
;Name :AD_CONVERT
;Input :
;Output :
;Temp Reg :TEMP2
;Function :間隔時間進行A/D轉換,到達規定的次數后求平均值
;-----------------------------------------------
AD_CONVERT:
BCF TIMER_FLAG, AD_CONVERT_FLAG
CALL ADC_GO
INCF AD_CONVERT_CNT
MOVF AD_CONVERT_CNT, W
XORLW AD_CNT
BTFSS STATUS, Z
GOTO AD_CONVERT_RET
CLRF AD_CONVERT_CNT
MOVLW 0x06 ;僅僅低8位有效,末尾兩位舍去
CALL ADC_AVERAGE
MOVF AD_VAL_REGL, W ;判斷AD值不等時才刷新顯示
XORWF AD_VAL_REGL_BUF, W
BTFSC STATUS, Z
GOTO AD_CONVERT_RET
MOVF AD_VAL_REGL, W
MOVWF AD_VAL_REGL_BUF
MOVWF TEMP3
ANDLW 0x0F
CALL HEX_OUTPUT
MOVWF DISP_DATAS + 1
SWAPF TEMP3, W
ANDLW 0x0F
CALL HEX_OUTPUT
MOVWF DISP_DATAS + 0
BSF LCD_DRV_REQ, S_LCD_DRV_REQ
BSF LCD_DRV_REQ, G_LCD_DRV_REQ
AD_CONVERT_RET:
RETURN
;-------AD_CONVERT END--------------------------------------
;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -