中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC16Fxxx的LCD驅(qū)動(dòng)程序(適用于HD44780兼容

        PIC16Fxxx的LCD驅(qū)動(dòng)程序(適用于HD44780兼容

        作者: 時(shí)間:2011-05-17 來(lái)源:網(wǎng)絡(luò) 收藏

        ;
        ;*********************************************************************
        ;* To put the HEX value to Display ,,
        ;* High nibble first than Low nibble
        ;* Input : W Reg.
        ;*********************************************************************
        PutHex
        banksel W_BUFR
        movwf W_BUFR ; Save W Register !!
        swapf W_BUFR,W ; High nibble first !!
        call Hex2ASCII
        call putc
        ;
        movf W_BUFR,W
        call Hex2ASCII
        call putcLCD
        return
        ;
        ;******************************************************************
        ;* Convert a low nibble to ASCII code
        ;* Input : W Reg.
        ;* Output: W Reg.
        ;******************************************************************
        Hex2ASCII
        andlw 0x0f ; Mask Bit 4 to 7
        movwf Hex_Bfr
        sublw .09
        btfsc STATUS,C ; If W less than A (C=1) --> only add 30h
        goto Add_W_30
        Add_W_37 movlw 0x37
        goto Hex_cont
        Add_W_30 movlw 0x30
        Hex_cont addwf Hex_Bfr,W ; The correct ASCII code for this char !!
        return
        ;
        ;*******************************************************************
        ;* SendCmd - Sends command to LCD *
        ;* This routine splits the command into the upper and lower *
        ;* nibbles and sends them to the LCD, upper nibble first. *
        ;*******************************************************************
        SendCmd
        banksel Byte
        movwf Byte ; Save WREG in Byte variable
        call Delay_1MS
        swapf Byte,W ; Send upper nibble first
        andlw 0x0f
        movwf LCD_DATA
        bcf LCD_CNTL,RS ; Clear for command
        bsf LCD_CNTL,E ; Clock nibble into LCD
        bcf LCD_CNTL,E
        movf Byte,W ; Write lower nibble last
        Send_4bit andlw 0x0f
        movwf LCD_DATA
        bcf LCD_CNTL,RS ; Clear for command
        bsf LCD_CNTL,E ; Clock nibble into LCD
        bcf LCD_CNTL,E
        return
        ;
        ;*******************************************************************
        ;* clrLCD - Clear the contents of the LCD *
        ;*******************************************************************
        clrLCD
        movlw CLR_DISP ; Send the command to clear display
        call SendCmd
        return
        ;
        ;*******************************************************************
        ;* L1homeLCD - Moves the cursor to home position on Line 1 *
        ;*******************************************************************
        L1homeLCD
        movlw DD_RAM_ADDR|0x00 ; Send command to move cursor to
        call SendCmd ; home position on line 1
        return

        本文引用地址:http://www.antipu.com.cn/article/150736.htm

        ;*******************************************************************
        ;* L2homeLCD - Moves the cursor to home position on Line 2 *
        ;*******************************************************************
        L2homeLCD
        movlw DD_RAM_ADDR|0x28 ; Send command to move cursor to
        call SendCmd ; home position on line 2
        return


        ;*******************************************************************
        ;* Delay - Generic LCD delay (1.024mS @ 4MHz) *
        ;* Since the microcontroller can not read the busy flag of the *
        ;* LCD, a specific delay needs to be executed between writes to *
        ;* the LCD. *
        ;*******************************************************************
        Delay_1MS ; 2 cycles for call
        clrf Count ; 1 cycle to clear counter variable
        Dloop
        nop
        decfsz Count,F ; These two instructions provide a
        goto Dloop ; (256 * 3) -1 cycle count
        return ; 2 cycles for return
        ;
        ;*******************************************************************
        ;* Delay - 1mS base delay *
        ;* input : W Reg. *
        ;* *
        ;*******************************************************************
        Delay_MS
        movwf Count1
        ;
        DLop1 call Delay_1MS
        decfsz Count1,F
        goto DLop1
        return
        ;
        END


        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉