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

📄 init.asm.bak

📁 完整的PIC学习程序示例 软件功能: RT1602C驱动 UART串口输出
💻 BAK
字号:
;/**************************************************************************
;*                                                                         *
;*         Copyright (c) 2006 by JINRUN Technology Co., Ltd.               *
;*  Title  :    FPPA TM demo board---PIC PARTY
;*  Content:    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软件设计参考,任何人都可以转载此资料。
;*        但任何单位或个人都不能将此资料作为商业用品。本资料可能存在一些缺陷,
;*        如果你将本资料用于产品,所引起的一切后果,均由使用者承担
;*                                                                        *
;**************************************************************************/
;----TMR0 initial----------------
; Name		:TMR0_INIT
; Input		:
; Output	:
; Temp REG	: 
; RETURN PAGE	: 0
; Function	:TMR0 initialization,source from PA4, 0 to 1 active
;----------------------
TMR0_INIT:
          MOVLW    0x00
          MOVWF    TMR0
          MOVLW    0xFC
          MOVWF    OPTION_REG
          BCF      INTCON, T0IE
          BANKSEL  TRISA
          BSF      TRISA, 4
          BANKSEL  TMR0
          RETURN
;----TMR0 initialization end---------
;
;-----TMR1 initial----------------------------
; Name		:TMR1_INIT
; Input		:
; Output	:
; Temp REG	: 
; RETURN PAGE	: 0
; Function	:TMR1 initialization
; Note		:source from Fosc/4, 10ms interrupt,pre_scale = 1 : 1,Fosc = 8MHz
;                65535-20000=45535=B1DFH
;----------------------  
TMR1_INIT:
	  BCF      INTCON, GIE
	  CLRF     TMR1L
	  MOVLW    0xFF
	  MOVWF    TMR1H
	  MOVLW    0xDF
	  MOVWF    TMR1L
	  MOVLW    0x01
	  MOVWF    T1CON
	  BANKSEL  PIE1
	  BSF      PIE1, TMR1IE 
	  BANKSEL  TMR1L
	  RETURN
;-----TMR1 initial end-----------------------	
;-----------PWM initial subroutine--------------------
; Name		:PWM_INT
; Input		:void
; Output	:void
; Temp REG	:void
; RETURN PAGE	: 0
; Function	:PWM1,PWM2 initialization
; 10-bit mode,last two bits set to high ,duty set to 0.5 
;-----------------------------------------------
PWM_INIT
	BANKSEL CCPR1L
	MOVLW   0x7F
	MOVWF   CCPR1L
	MOVWF   CCPR2L
	MOVLW   0x3C
	MOVWF   CCP1CON
	MOVWF   CCP2CON
	
	
	MOVLW   0x04
	MOVWF   T2CON
	BANKSEL PR2
	MOVLW   0xFF
	MOVWF   PR2
	BCF     TRISC, 2
	BCF     TRISC, 1
	BCF     PIE1, CCP1IE
	BANKSEL TMR0
	RETURN
;-------------PWM initial end--------------------------  
;
;-------------AD initial-------------------------------
; Name		:AD_INIT
; Input		:void
; Output	:void
; Temp REG	:
; RETURN PAGE	: 0
; Function	:AD initialization
; 10-bit,high 6 bit set to 0,
;------------------------------------------
AD_INIT:
       MOVLW   0x40
       MOVWF   ADCON0
       BANKSEL ADCON1
       MOVLW   0x82
       MOVWF   ADCON1
       BANKSEL TMR0
       RETURN
;-------------AD initial end--------------------------
;
;------------USART initial-----------------------------
;Name		:USART_INIT
;Input		:void
;Output		:void
;Temp Reg	:void
;Function	:UART initialization
; data: 8bit, bitrate:19200   stopbit: 1 ;Asynchronous mode
;Bitrate = Fosc/(16(x+1))----> x = Fosc/(16*Bitrate) - 1
;-----------------------------------------------
USART_INIT:
	BANKSEL  TXSTA   ;bank 1
	MOVLW    0x24
	MOVWF    TXSTA
	BSF      PIE1, RCIE
	MOVLW    .25     ;19200
	MOVWF    SPBRG
	BANKSEL  RCSTA   ;BANK 0
	MOVLW    0x90
	MOVWF    RCSTA
	
;使能串口端;不接收第9位;NONE;允许连续接收
;寻址关闭;桢错误0;溢出错误0;接收的第9位0	
	RETURN
	
;------------I/O initial------------------------------
; Name		:IO_INIT
; Input		:void
; Output	:void
; Temp REG	:
; RETURN PAGE	: 0(default setting)
; Function	:I/O initialization
;------------------------------------------
IO_INIT:
	BANKSEL   TRISC
	MOVLW     0x00	
	MOVWF     TRISD
	MOVWF     TRISE
;	MOVLW     0x81
	MOVWF     TRISC
	MOVLW     0xFF
	MOVWF     TRISA
	MOVWF     TRISB
	BANKSEL   TMR0
	RETURN
;----------I/O  initial end---------------
;       
;------GLOBAL VARIABLE initial--------------------------
; Name		:G_VARIABLE_INIT
; Input		:void
; Output	:void
; Temp REG	:void
; RETURN PAGE	: 0
; Function	:general variable initialization
;------------------------------------------
G_VARIABLE_INIT:
	MOVLW   0x7f
	MOVWF   FSR		
CLRF_LOOP:
        CLRF    INDF
        DECF    FSR, D
        MOVF    FSR, W
        XORLW   0x1f
        BTFSS   STATUS, Z
        GOTO    CLRF_LOOP	
	RETURN
;------GLOBAL VARIABLE initial end
;
;------initial------------------------------
; Name		:INITIAL
; Input		:void
; Output	:void
; Temp REG	:
; RETURN PAGE	: 0
; Function	:System initialization
;------------------------------------------
INITIAL:
        CALL    IO_INIT
	CALL    TMR0_INIT
	CALL    TMR1_INIT
;	CALL    PWM_INIT
	CALL    AD_INIT
	CALL    G_VARIABLE_INIT
	CALL    LCD_INIT
	CALL    USART_INIT
	CALL    COMPANY_LOGO_DISP
	CALL    PROJECT_LOGO_DISP
	MOVLW   0x00
	CALL    TITLE_DISP        ;on screen of PC
	MOVLW   0x01
	CALL    TITLE_DISP
	BSF     INTCON, PEIE
	BSF     INTCON, GIE
        BSF    ADCON0, ADON
	RETURN
;------ initial end------------------------
;
;----------SETUP PARAMETER---------------------
; Name		:SETUP_PARA
; Input		:void
; Output	:MUL16A,MUL16B
; TEMP REG 	:void
; RETURN BANK	:0
; Function	:SETUP PARAMETER FOR MULTIPLY
;----------------------------------------
SETUP_PARA_CUR:
        MOVLW    K_GAIN_CURHI
        MOVWF    MUL16AHI
        MOVLW    K_GAIN_CURLO
        MOVWF    MUL16ALO
        GOTO     SETUP_PARA_COM
SETUP_PARA_IREL:
SETUP_PARA_VCDS:
SETUP_PARA_VREF:
SETUP_PARA_OPDRV:       
SETUP_PARA_OP1:
	MOVLW    K_GAIN_OP1HI
	MOVWF    MUL16AHI
	MOVLW    K_GAIN_OP1LO
	MOVWF    MUL16ALO
	GOTO     SETUP_PARA_COM
SETUP_PARA_OP2:
        MOVLW	 K_GAIN_OP2HI
        MOVWF    MUL16AHI
        MOVLW    K_GAIN_OP2LO 
        MOVWF    MUL16ALO        
SETUP_PARA_COM:
        MOVF     AD_VAL_REGH, W
        MOVWF    MUL16BHI
        MOVF     AD_VAL_REGL, W
        MOVWF    MUL16BLO       
        return
;---------SETUP PARAMETER END--------------
;        
;---------GET BCD DATA------------------
; Name		:GET_BCD_DATA
; Input		:void
; Output	:TEMP0,TEMP1
; Temp REG	:void
; Return bank	:bank0
; Function	:Get BCD data
;-----------------------------
GET_BCD_DATA:
        MOVF     MULRH8, W
        MOVWF    TEMP0
        MOVF     MULRL8, W
        MOVWF    TEMP1
        return
;----------------------------------  
;-----------Delay 10 us-------------------
; Name		:DELAY_10US
; Input		:TEMP5
; Output	:void
; Temp reg	:void
; Function	:delay 10us 
;-----------------------------
DELAY_10US:
        MOVLW     0x06
	MOVWF     TEMP5
DELAY_10US_LOOP:
        DECFSZ    TEMP5
        GOTO      DELAY_10US_LOOP
        RETURN
;-----------End of delay 10 us-------------        	
	                 
        
        
    	        	    
            

	
         
           

⌨️ 快捷键说明

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