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

📄 bit1611b5_v023.asm

📁 Analog and digital LCD PANEL dirver code
💻 ASM
📖 第 1 页 / 共 5 页
字号:
OSD3_HL_ATTR                        EQU         041h    ; Palette 1
OSD3_BAR_ATTR                       EQU         042h    ; Palette 2
OSD3_DIGIT_ATTR                     EQU         040h    ; Palette 1


; ------------------------------------------------------------------------------
;   BCHS Range
; ------------------------------------------------------------------------------
; BRIGHTNESS                0x106
; Y = X + 106, X = 0..63, Default X = 32, Y = 138
BRIGHTNESS_MAX              EQU         169
BRIGHTNESS_DEFAULT          EQU         138
BRIGHTNESS_MIN              EQU         106
BRIGHTNESS_STEP_INC         EQU         001h    ; +1
BRIGHTNESS_STEP_DEC         EQU         0FFh    ; -1

; CONTRAST                  0x107
; Y = X + 75, X = 0..63, Default X = 32, Y = 107
CONTRAST_MAX_1              EQU         139     ; MAX+1
CONTRAST_MAX                EQU         138
CONTRAST_DEFAULT            EQU         107
CONTRAST_MIN                EQU         75
CONTRAST_STEP_INC           EQU         001h    ; +1
CONTRAST_STEP_DEC           EQU         0FFh    ; -1

; HUE                      0x10A
; Y = X - 32, X = 0..63, Default X = 32, Y = 0
HUE_MAX_1                   EQU         64      ; MAX+1
HUE_MAX                     EQU         63
HUE_DEFAULT                 EQU         32
HUE_MIN                     EQU         0
HUE_OFFSET                  EQU         32      ; -OFFSET
HUE_STEP_INC                EQU         001h    ; +1
HUE_STEP_DEC                EQU         0FFh    ; -1

; SATURATION                0x109
; Y = X + 6, X = 0..63, Default X = 32, Y = 38
SATURATION_MAX_1            EQU         70
SATURATION_MAX              EQU         69
SATURATION_DEFAULT          EQU         38
SATURATION_MIN              EQU         6
SATURATION_STEP_INC         EQU         001h    ; +1
SATURATION_STEP_DEC         EQU         0FFh    ; -1

; VCOM PWM: PWM2
; Y = X + 137, X = 0..63, Default X = 32, Y = 169
PWM_MAX                     EQU         63
PWM_DEFAULT                 EQU         32      ; R0E8
PWM_DEFAULT_N               EQU         32      ; R0E8
PWM_DEFAULT_P               EQU         32      ; R0E8
PWM_MIN                     EQU         0
PWM_OFFSET                  EQU         137     ; +OFFSET
PWM_STEP_INC                EQU         001h    ; +1
PWM_STEP_DEC                EQU         0FFh    ; -1


; ------------------------------------------------------------------------------
;       Interrupt Vectors
; ------------------------------------------------------------------------------
        ORG     0000h
        DW      ISR_0_SIGIN
        DW      ISR_1_NOSIG
        DW      ISR_2_MODECHG
        DW      ISR_3_VSYNC
        DW      ISR_4_TIMER0
        DW      ISR_5_TIMER1
        DW      ISR_6_IR
        DW      ISR_7_KEYIN

; ------------------------------------------------------------------------------
;       POR - Power On Reset
; ------------------------------------------------------------------------------
        ORG     0010h
POR:
        ; Default FREE-RUN MODE Background Pattern is enabled !

        ; To turn off BACKLIGHT
        MOV     R[ VP_009_GPO_TYPE ], BL_OFF_WP_ON

POR_000000_START:
        ; Speed Up
        CALL    SPEEDUP

POR_000010_PWM_INIT:
        MOV     R[ VP_0DE0E1_SYNC_DELAY ], E[ PWM12_0DE_0EA ], PWM12_0DE_0EA_END - PWM12_0DE_0EA - 1

POR_000030_VP_INIT:
        MOV     R[ VP_00B_SRST_ATTR1 ], E[ VP_00B_08B ], VP_00B_08B_END - VP_00B_08B - 1
        MOV     R[ VP_0A4_PLL_VND ], E[ VP_0A4_0A7 ], VP_0A4_0A7_END - VP_0A4_0A7 - 1

POR_000040_VD_INIT:
        MOV     R[ VP_101_AFE_ATTR ], E[ VD_101_137 ], VD_101_137_END - VD_101_137 - 1

POR_000050_GAMMA_INIT:
;       MOV     R[ VP_0200_02FF_GAMMA_LUT_R ], E[ GAMMA_200_2FF ], 0FFh
;       MOV     R[VP_0A2_GAMMA_ATTR], 005h

POR_000060_PORT_INIT:
        MOV     R[ VP_003_INT_MASK ], E[ PORT_003_00A ], PORT_003_00A_END - PORT_003_00A - 1

POR_000070_KEY_INIT:
        ;CALL    KEY_RESTART

POR_000080_SOURCE:
        ; Recall Video Source
        MOV     A, E[ USER_SOURCE ]
        MOV     R[ RAM_SOURCE ], A
        CALL    SVS_SetupVideoSource

        ; TCON Mode
        MOV     R[ RAM_TCON ], TCON_ID_RU

POR_000090_OSD_INIT:
        MOV     R[ VP_13813A_OSD1_H_POSITION ], E[ OSD1_SETUP ], OSD1_SETUP_END - OSD1_SETUP - 1
        MOV     R[ VP_146151_OSD2_H_POSITION ], E[ OSD2_SETUP ], OSD2_SETUP_END - OSD2_SETUP - 1
        MOV     R[ VP_154156_OSD3_H_POSITION ], E[ OSD3_SETUP ], OSD3_SETUP_END - OSD3_SETUP - 1

POR_000100_OSD_CODE:
        MOV     R[ VP_SHOW_OSD2 ], E[ TITLE ], TITLE_END - TITLE - 1
        FILL    R[ VP_SHOW_OSD3 ], FONT_20_BLANK, OSD3_AREA_1

POR_000110_OSD_ATTR:
        FILL    R[ VP_ATTR_OSD1 ], OSD1_NM_ATTR, OSD1_AREA_1
        FILL    R[ VP_ATTR_OSD2 ], OSD2_NM_ATTR, OSD2_AREA_1
        FILL    R[ VP_ATTR_OSD3 ], OSD3_NM_ATTR, OSD3_AREA_1
        FILL    R[ VP_ATTR_BAR  ], OSD3_BAR_ATTR, OSD3_BAR_1

POR_000120_OSD_PALETTE:
        MOV     R[ VP_0600_063F_PALETTE ], E[ OSD_PALETTE ], OSD_PALETTE_END - OSD_PALETTE - 1

POR_000130_IR:
        MOV     R[ VP_0F9_IR_UDCC_BAR ], IR_UDCC_BAR
        MOV     R[ VP_0FA_IR_UDCC ], IR_UDCC
        MOV     R[ VP_0FB_IR_ATTR ], IR_ATTR
        MOV     R[ VP_0FC_IR_ATTR2 ], IR_ATTR2

POR_000990_BCHS:
; =====================================
; Recall BRIGHTNESS
        MOV     A, E[ USER_BRIGHTNESS ]
        MOV     B, BRIGHTNESS_MIN
        COMP
        NOTC
        JC      B_NORMAL                    ; Jump if EEPROM >= Min.

B_EXCEPTION:
        MOV     A, BRIGHTNESS_DEFAULT

B_NORMAL:
        MOV     R[ RAM_BRIGHTNESS ], A

        MOV     B, 080h
        XOR
        MOV     R[ VP_106_DVP_BRIGHTNESS ], A

; =====================================
; Recall CONTRAST
        MOV     A, E[ USER_CONTRAST ]
        MOV     B, CONTRAST_MIN
        COMP
        NOTC
        JC      C_NORMAL                    ; Jump if EEPROM >= Min.

C_EXCEPTION:
        MOV     A, CONTRAST_DEFAULT

C_NORMAL:
        MOV     R[ RAM_CONTRAST ], A
        MOV     R[ VP_107_DVP_CONTRAST ], A

; =====================================
; Recall HUE
        MOV     A, E[ USER_HUE ]
        MOV     B, HUE_MAX_1
        COMP
        JC      H_NORMAL                    ; Jump if EEPROM < Max. + 1

H_EXCEPTION:
        MOV     A, HUE_DEFAULT

H_NORMAL:
        MOV     R[ RAM_HUE ], A

        MOV     B, HUE_OFFSET
        SUB
        MOV     R[ VP_10A_DVP_HUE ], A

; =====================================
; Recall SATURATION
        MOV     A, E[ USER_SATURATION ]
        MOV     B, SATURATION_MIN
        COMP
        NOTC
        JC      S_NORMAL                    ; Jump if EEPROM >= Min.

S_EXCEPTION:
        MOV     A, SATURATION_DEFAULT

S_NORMAL:
        MOV     R[ RAM_SATURATION ], A
        MOV     R[ VP_109_DVP_SATURATION ], A


; =====================================
; STATE PWM
        MOV     R[ RAM_SYSTEM_STATE ], STATE_NORMAL

        ; Disable Free-Run mode Background Pattern
        MOV     R[ VP_040_TESTPATTERN_ATTR ], 000h

        MOV     R[ RAM_MENU_CURSOR ], MENU_ID_STANDBY

; =====================================
PWM_SETUP:
        MOV     A, R[ VP_18C_DET_MODE ]
        JB      POR_NTSC, 0

POR_PAL:
        MOV     R[ VP_12A_ACLAMP_LEVEL ], ACLAMP_LEVEL_PAL
        MOV     A, E[ DEFAULT_PWM_P ]

        JMP     POR_HALT

POR_NTSC:
        MOV     R[ VP_12A_ACLAMP_LEVEL ], ACLAMP_LEVEL_NTSC
        MOV     A, E[ DEFAULT_PWM_N ]

POR_HALT:
        MOV     B, PWM_OFFSET
        ADD
        MOV     R[ VP_0E80E9_PWM2_DUTY ], A         ; PWM2 duty

        ; To turn on BACKLIGHT
        MOV     R[ VP_009_GPO_TYPE ], BL_ON_WP_ON

        ; Speed Down
        CALL    SPEEDDOWN

        ; OSD Clock OFF
        MOV     R[ VP_00B_SRST_ATTR1 ], OSD_CLK_OFF

POR_000900_KEY_INIT:
        CALL    KEY_RESTART
        MOV     R[ VP_0C0_DB ], 0E0h
        
        HALT
; ..............................................................................


; ------------------------------------------------------------------------------
; EEPROM Area for Backup Values
; ------------------------------------------------------------------------------
USER_BRIGHTNESS:        ; 0x106
        DB      BRIGHTNESS_DEFAULT

USER_CONTRAST:          ; 0x107
        DB      CONTRAST_DEFAULT

USER_HUE:               ; 0x10A
        DB      HUE_DEFAULT

USER_SATURATION:        ; 0x109
        DB      SATURATION_DEFAULT

USER_SOURCE:
        DB      SOURCE_DEFAULT


; =====================================
DEFAULT_BRIGHTNESS:     ; 0x106
        DB      BRIGHTNESS_DEFAULT

DEFAULT_CONTRAST:       ; 0x107
        DB      CONTRAST_DEFAULT

DEFAULT_HUE:            ; 0x10A
        DB      HUE_DEFAULT

DEFAULT_SATURATION:     ; 0x109
        DB      SATURATION_DEFAULT

DEFAULT_PWM:

DEFAULT_PWM_N:
        DB      PWM_DEFAULT_N

DEFAULT_PWM_P:
        DB      PWM_DEFAULT_P

DEFAULT_SOURCE:
        DB      SOURCE_DEFAULT

; ..............................................................................


; ------------------------------------------------------------------------------
;       Interrupt Service Routine
;       ISR 0: Signal Ready
;       ISR 1: No Signal
; ------------------------------------------------------------------------------
ISR_0_SIGIN:
ISR_1_NOSIG:
        HALT
; ..............................................................................



; ------------------------------------------------------------------------------
;       Interrupt Service Routine
;       ISR 2: Mode Change
; ------------------------------------------------------------------------------
ISR_2_MODECHG:
        ; Disable VS interrupt
        MOV     R[ VP_004_INT_ACK ], INT_ACK_VS_OFF           ; Disable VS interrupt

MODECHG_START:
        ; Speed Up
        CALL    SPEEDUP

        MOV     A, R[ VP_18C_DET_MODE ]
        JB      MODECHG_000020_NTSC, 0           ; Jump if NTSC

MODECHG_000010_PAL:
        MOV     A, BRIGHTNESS_P
        MOV     R[ VP_07C_BRIGHTNESS_R ], A
        MOV     R[ VP_07D_BRIGHTNESS_R ], A
        MOV     R[ VP_07E_BRIGHTNESS_R ], A

        MOV     A, CONTRAST_P
        MOV     R[ VP_07F_CONTRAST_R ], A
        MOV     R[ VP_080_CONTRAST_R ], A
        MOV     R[ VP_081_CONTRAST_R ], A

        MOV     R[ VP_0E00E1_PWM1_FREQ ], PWM1_FREQ_PAL
        MOV     R[ VP_12A_ACLAMP_LEVEL ], ACLAMP_LEVEL_PAL

        MOV     A, E[ DEFAULT_PWM_P ]
        JMP     MODECHG_000030

MODECHG_000020_NTSC:
        MOV     A, BRIGHTNESS_N
        MOV     R[ VP_07C_BRIGHTNESS_R ], A
        MOV     R[ VP_07D_BRIGHTNESS_R ], A
        MOV     R[ VP_07E_BRIGHTNESS_R ], A

        MOV     A, CONTRAST_N
        MOV     R[ VP_07F_CONTRAST_R ], A
        MOV     R[ VP_080_CONTRAST_R ], A
        MOV     R[ VP_081_CONTRAST_R ], A

        MOV     R[ VP_0E00E1_PWM1_FREQ ], PWM1_FREQ_NTSC
        MOV     R[ VP_12A_ACLAMP_LEVEL ], ACLAMP_LEVEL_NTSC

        MOV     A, E[ DEFAULT_PWM_N ]

MODECHG_000030:
        MOV     B, PWM_OFFSET
        ADD
        MOV     R[ VP_0E80E9_PWM2_DUTY ], A

        MOV     R[ VP_004_INT_ACK ], INT_ACK_VS_ON          ; Enable VS interrupt
        HALT
; ..............................................................................


; ------------------------------------------------------------------------------
;       Interrupt Service Routine
;       ISR 3: VSYNC
; ------------------------------------------------------------------------------
ISR_3_VSYNC:
        MOV     A, R[ RAM_SYSTEM_STATE ]
        JB      OSD_AUTO, STATE_BIT_PWM     ; Jump if the PWM fuction is running

        MOV     A, R[ RAM_VS_CNT ]

⌨️ 快捷键说明

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