欧美视频综合-欧美视频中文字幕-欧美视频在线观在线看-欧美视频在线观看网站-直接观看黄网站免费视频-正在播放久久

機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發
培訓信息
贊助商
HT48R50A的 LCD字符顯示+KEY按鍵處理示例程序
HT48R50A的 LCD字符顯示+KEY按鍵處理示例程序
 更新時間:2010-2-2 16:10:22  點擊數:0
【字體: 字體顏色

; ********************************************
; Function : LCD字符顯示+KEY按鍵處理示例程序 *

; MicroProcessor : HT48R50A-1/28SKDIP-A      *

; Author:         www.picavr.com             *
; Crystal :       4MHz                       *
; ********************************************
#INCLUDE                HT48R50A-1.INC
LCD_DATA                EQU     PC
LCD_DATA_CTRL           EQU     PCC
LCD_CTRL                EQU     PB
LCD_CTRL_CTRL           EQU     PBC
E                       EQU     1
RS                      EQU     0
;------------------------------------------------------------
DATA    .SECTION        AT 60H  ’DATA’
DELAY_COUNTER_1         DB      ?       ;[60H]
DELAY_COUNTER_2         DB      ?       ;[61H]
DELAY_COUNTER_3         DB      ?       ;[62H]
DATA                    DB      ?       ;[63H]
COUNTER                 DB      ?       ;[64H]
;------------------------------------------------------------
CODE    .SECTION        AT 00H  ’CODE’
                ORG     00H
                JMP     START
                ORG     0CH
                JMP     TIMER1

                ORG     20H
START:
                MOV     A,01111111B
                MOV     PAC,A
                CALL    LCD_RESET
                MOV     A,OFFSET LCD_MESSAGE_1
                MOV     TBLP,A
                CALL    LCD_DISPLAY
                MOV     A,09H
                MOV     INTC,A
                MOV     A,80H
                MOV     TMR1C,A
FIRST_TIME:
                MOV     A,PA
                AND     A,00010000B
                SUB     A,00010000B
                SZ      ACC
                JMP     FIRST_TIME
PRESS_ANY_KEY:
                MOV     A,OFFSET LCD_MESSAGE_2
                MOV     TBLP,A
                CALL    LCD_DISPLAY
ANY_KEY:
                MOV     A,PA
                AND     A,00010000B
                SUB     A,00010000B
                SZ      ACC
                JMP     ANY_KEY
                MOV     A,PA
                AND     A,00001111B
                MOV     DATA,A
                SUB     A,09H
                SZ      ACC
                JMP     NEXT_CHECK
                JMP     START
NEXT_CHECK:
                MOV     A,DATA
                SUB     A,08H
                SZ      ACC
                JMP     PLAY_MONOTONY
                JMP     PLAY_A_SONG
PLAY_MONOTONY:
                CALL    MONOTONY
                JMP     ANY_KEY
PLAY_A_SONG:
                MOV     A,OFFSET LCD_MESSAGE_3
                MOV     TBLP,A
                CALL    LCD_DISPLAY
                CLR     COUNTER
PLAY_LOOP:
                MOV     A,OFFSET SONG_DATA
                ADD     A,COUNTER
                MOV     TBLP,A
                TABRDL  DATA
                DEC     DATA
                CALL    MONOTONY
                INC     COUNTER
                MOV     A,COUNTER
                SUB     A,4BH
                SZ      ACC
                JMP     PLAY_LOOP
                JMP     PRESS_ANY_KEY
                RET
;------------------------------------------------------------
TIMER1:
                CPL     PA
                RETI
;------------------------------------------------------------
MONOTONY        PROC
                MOV     A,OFFSET MUSIC_DATA
                ADD     A,DATA
                MOV     TBLP,A
                TABRDL  DATA
                MOV     A,DATA
                MOV     TMR1L,A
                MOV     A,TBLP
                ADD     A,08H
                MOV     TBLP,A
                TABRDL  DATA
                MOV     A,DATA
                MOV     TMR1H,A
                SET     TMR1C.4
                CALL    DELAY_LONG
                CLR     TMR1C.4
                RET
MONOTONY        ENDP
;------------------------------------------------------------
LCD_RESET       PROC
                CLR     LCD_DATA_CTRL
                CLR     LCD_CTRL_CTRL
                CLR     LCD_DATA
                CLR     LCD_CTRL
                MOV     A,00110011B     ;STEP 0
                MOV     DATA,A          ;LCD RESET
                CALL    TRANSFER        ;
                MOV     A,00110010B     ;SETP 1
                MOV     DATA,A          ;FUNCTION SET
                CALL    TRANSFER        ;
                MOV     A,00001100B     ;STEP 2
                MOV     DATA,A          ;DISPLAY TURN ON
                CALL    TRANSFER        ;
                MOV     A,00000001B     ;STEP 3
                MOV     DATA,A          ;DISPLAY CLEAN
                CALL    TRANSFER        ;
                CALL    DELAY           ;DELAY SOME TIME
                MOV     A,00000110B     ;STEP 4
                MOV     DATA,A          ;ENTRY MODE SET
                CALL    TRANSFER        ;
                RET
LCD_RESET       ENDP
;------------------------------------------------------------
LCD_DISPLAY     PROC
                MOV     A,10000000B     ;STEP 1
                MOV     DATA,A          ;DD RAM ADDRESS SET
                CALL    TRANSFER        ;FIRST LINE
                MOV     A,10H           ;STEP 2-1
                MOV     COUNTER,A       ;WRITE DATA TO DD RAM
FIRST_LINE:
                CLR     LCD_CTRL.RS
                MOV     A,00011100B     ;STEP 2-2
                MOV     DATA,A          ;DISPLAY/CURSOR
                CALL    TRANSFER        ;SHIFT
                SET     LCD_CTRL.RS
                TABRDL  DATA
                CALL    TRANSFER
                CALL    DELAY
                INC     TBLP
                SDZ     COUNTER
                JMP     FIRST_LINE
                CLR     LCD_CTRL.RS

                MOV     A,11000000B     ;STEP 3
                MOV     DATA,A          ;DD RAM ADDRESS SET
                CALL    TRANSFER        ;SECOND LINE
                MOV     A,10H           ;STEP 4-1
                MOV     COUNTER,A       ;WRITE DATA TO DD RAM
SECOND_LINE:
                CLR     LCD_CTRL.RS
                MOV     A,00011000B     ;STEP 4-2
                MOV     DATA,A          ;DISPLAY/CURSOR
                CALL    TRANSFER        ;SHIFT
                SET     LCD_CTRL.RS
                TABRDL  DATA
                CALL    TRANSFER
                CALL    DELAY
                INC     TBLP
                SDZ     COUNTER
                JMP     SECOND_LINE
                CLR     LCD_CTRL.RS
                RET
LCD_DISPLAY     ENDP
;------------------------------------------------------------
TRANSFER        PROC
                SWAP    DATA
                MOV     A,DATA
                MOV     PC,A
                CALL    WRITE
                SWAP    DATA
                MOV     A,DATA
                MOV     PC,A
                CALL    WRITE
                RET
TRANSFER        ENDP
;------------------------------------------------------------
WRITE           PROC
                SET     LCD_CTRL.E
                CLR     LCD_CTRL.E
                MOV     A,0FFH
                MOV     DELAY_COUNTER_1,A
WRITE_WAIT:
                SDZ     DELAY_COUNTER_1
                JMP     WRITE_WAIT
                RET
WRITE           ENDP
;------------------------------------------------------------
DELAY           PROC
                MOV     A,0A0H
                MOV     DELAY_COUNTER_1,A
                MOV     DELAY_COUNTER_2,A
DELAY_WAIT:
                SDZ     DELAY_COUNTER_2
                JMP     DELAY_WAIT
                SDZ     DELAY_COUNTER_1
                JMP     DELAY_WAIT
                RET
DELAY           ENDP
;------------------------------------------------------------
DELAY_LONG      PROC
                MOV     A,003H
                MOV     DELAY_COUNTER_1,A
                MOV     DELAY_COUNTER_2,A
                MOV     DELAY_COUNTER_3,A
DELAY_LONG_WAIT:
                SDZ     DELAY_COUNTER_3
                JMP     DELAY_LONG_WAIT
                SDZ     DELAY_COUNTER_2
                JMP     DELAY_LONG_WAIT
                SDZ     DELAY_COUNTER_1
                JMP     DELAY_LONG_WAIT
                RET
DELAY_LONG      ENDP
;------------------------------------------------------------
                ORG     0F00H
LCD_MESSAGE_1:          ;[LCD 4 BITS DATA ]
                        ;[TRANSFER TEST OK]
                DC      4CH,43H,44H,20H,34H,20H,42H,49H
                DC      54H,53H,20H,44H,41H,54H,41H,20H
                DC      54H,52H,41H,4EH,53H,46H,45H,52H
                DC      20H,54H,45H,53H,54H,20H,4FH,4BH
LCD_MESSAGE_2:          ;[   MINI PIANO   ]
                        ;[ PRESS ANY KEY! ]
                DC      20H,20H,20H,4DH,49H,4EH,49H,20H
                DC      50H,49H,41H,4EH,4FH,20H,20H,20H
                DC      20H,50H,52H,45H,53H,53H,20H,41H
                DC      4EH,59H,20H,4BH,45H,59H,21H,20H
LCD_MESSAGE_3:          ;[   PLAY MUSIC   ]
                        ;[ JUST A MOMENT! ]
                DC      20H,20H,20H,50H,4CH,41H,59H,20H
                DC      4DH,55H,53H,49H,43H,20H,20H,20H
                DC      20H,4AH,55H,53H,54H,20H,41H,20H
                DC      4DH,4FH,4DH,45H,4EH,54H,21H,20H
MUSIC_DATA:
                DC      043H,0B1H,009H,033H
                DC      083H,0C7H,005H,023H
                DC      0FCH,0FCH,0FDH,0FDH
                DC      0FDH,0FDH,0FEH,0FEH
SONG_DATA:
                DC      06H,06H,05H,06H,05H,03H
                DC      05H,03H,03H,02H,03H,03H
                DC      02H,02H,01H,02H,02H,05H
                DC      05H,03H,03H,02H,03H,03H
                DC      06H,06H,05H,06H,05H,03H
                DC      04H,04H,04H,03H,02H,03H,03H
                DC      05H,05H,05H,05H,05H,07H
                DC      06H,06H,06H,06H,05H,06H,06H
                DC      08H,08H,08H,07H,05H
                DC      06H,06H,06H,06H,05H,06H,05H,03H
                DC      05H,05H,05H,05H,05H,07H
                DC      06H,06H,06H,06H,05H,06H
;------------------------------------------------------------
                END

  • 上一篇: HT48R50A的 5X7 LED點陣+LCD顯示示例程序
  • 下一篇: 沒有了
  • 發表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發消息66821730(技術支持)點擊這里給我發消息66821730(廣告投放) 點擊這里給我發消息41031197(編輯) 點擊這里給我發消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業自行提供,該企業負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(濱江)機電一體化學會
    中國行業電子商務100強網站

    網站經營許可證:浙B2-20080178-1