⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad.asm

📁 完整的PIC学习程序示例 软件功能: RT1602C驱动 UART串口输出
💻 ASM
字号:
;/**************************************************************************
;*                                                                         *
;*         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
	BSF     LCD_DRV_REQ, SCREEN_DRV_REQ
AD_CONVERT_RET:
        RETURN
;-------AD_CONVERT END--------------------------------------
;        
	
	 
	    
	
	
	
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -