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

📄 lcd.asm.asm

📁 液晶显示屏应用源程序
💻 ASM
📖 第 1 页 / 共 3 页
字号:
                mov       a, #06h                ; 6
                ajmp      load_key_code
;
rd_id_5:
                jb        con2, rd_id_4
                mov       a, #05h                ; 5
                ajmp      load_key_code
;
rd_id_4:
                jb        con3, no_key
                mov       a, #04h                ; 4
                ajmp      load_key_code
;
next_row:
                mov       p0, #00000111b
                orl       column, #column_input
                mov       a, column
                anl       a, #screen_data
                cjne      a, #0fh, rd_id_a
                ajmp      no_key
;
rd_id_a:
                jb        con0, rd_id_3
                mov       a, #0ah                ; A
                ajmp      load_key_code
;
rd_id_3:
                jb        con1, rd_id_2
                mov       a, #03h                ; 3
                ajmp      load_key_code
;
rd_id_2:
                jb        con2, rd_id_1
                mov       a, #02h                ; 2
                ajmp      load_key_code
;
rd_id_1:
                jb        con3, no_key           ; 1
                mov       a, #01h
                ajmp      load_key_code
;
;================================================|
; RAM 清零.
;================================================|
ram_clear:
                mov       key_state, #00h
                mov       disp_para_tab, #00
                mov       count_data, #00
                clr       input_para_flag
                clr       need_sel_char
                clr       add_flag
                clr       add2_flag
                clr       run_cp_flag
                clr       run_ca_flag
                clr       f00
                clr       run_flag
                clr       rx_flag
                clr       selected_char_flag
                clr       disp_real_data
                mov       id_buf, #00
                ret
;
;================================================|
; 存入键值。
;================================================|
load_key_code:                                   ; 2.save key_code in key_code register
                setb      buzzer
                mov       dly_time, #20
                mov       key_code, a
                setb      cs_244
;
;------------------------------------------------|
;------------------------------------------------|
load_etr:                                        ; 3. according to key_state, load entrance
;
                mov       a, key_state
                rl        a                      ; a*2
                push      acc
                mov       dptr, #sub_entrn_table
                movc      a, @a+dptr
                mov       b, a                   ; load high 8 bits addrss
                pop       acc
                inc       a                      ; load low 8 bits addrss
                movc      a, @a+dptr
                mov       dpl, a
                mov       dph, b
;
                mov       a, key_code
                rl        a
                add       a, dpl
                mov       dpl, a
                mov       a, dph
                addc      a, #00
                mov       dph, a
load_next_state:
		clr       a
		movc      a, @a+dptr
		mov       key_state, a           ; load next state.
                clr       a
                inc       dptr
                movc      a, @a+dptr             ; read subroutine entrance code
                mov       dptr, #sub_j_tab
                mov       b, a
                rl        a
                add       a, b
                jmp       @a+dptr
;
sub_j_tab:
                ljmp      sub_no_ack             ; 0 state
                ljmp      sub_edit_prog          ; 1 编制运行程序
                ljmp      sub_adj_time           ; 2 调整系统时间
                ljmp      sub_jump_n             ; 3 跳转到设定步执行
                ljmp      sub_compensate         ; 4 设定补偿参数
                ljmp      sub_timing_data        ; 5 查询系统状态
                ljmp      sub_start_time         ; 6 上传系统的开机时间
                ljmp      sub_draw_curve         ; 7 绘制历史数据曲线
                ljmp      sub_view_program       ; 8 查看系统程序
                ljmp      sub_download_program   ; 9 下载程序
                ljmp      sub_start_run          ; a 开机
                ljmp      sub_no_ack             ; b
                ljmp      sub_cancel             ; c 取消
                ljmp      sub_affirm_save_prog   ; d 确认
                ljmp      sub_return             ; e 返回
                ljmp      sub_pause              ; f 暂停
                ljmp      sub_input_prog_para    ; 10h 输入程序参数
;
sub_entrn_table:                                 ; index table of state sub_table entrance address
;
                dw        tb_0                   ; state 0 table entrance address
                dw        tb_1                   ; state 1
                dw        tb_2                   ; state 2
                dw        tb_3                   ; state 3
                dw        tb_4                   ; state 4
                dw        tb_5                   ; state 5
                dw        tb_6
                dw        tb_7
                dw        tb_8
                dw        tb_9
                dw        tb_a                   ; program menu
;
tb_0:
                db        00h, 00h               ;0
                db        01h, 01h               ;1 edit program.
                db        02h, 02h               ;2 adjust system time and date
                db        03h, 03h               ;3
                db        04h, 04h               ;4
                db        0ah, 05h               ;5
                db        06h, 06h               ;6
                db        07h, 07h               ;7
                db        08h, 08h               ;8
                db        09h, 09h               ;9
                db        00h, 0ah               ;10
                db        00h, 0ah               ;11
                db        00h, 00h               ;12
                db        00h, 00h               ;13
                db        00h, 0eh               ;14
                db        00h, 00h               ;15
;
tb_1:
tb_5:
                db        05h, 10h               ;0
                db        05h, 10h               ;1
                db        05h, 10h               ;2
                db        05h, 10h               ;3
                db        05h, 10h               ;4
                db        05h, 10h               ;5
                db        05h, 10h               ;6
                db        05h, 10h               ;7
                db        05h, 10h               ;8
                db        05h, 10h               ;9
                db        05h, 0ah               ;10
                db        05h, 00h               ;11
                db        05h, 0ch               ;12  cancel
                db        01h, 0dh               ;13  affirm, double click affirm
                db        00h, 0eh               ;14  return
                db        05h, 00h               ;15
;
tb_2:
                db        02h, 02h               ; state 2 table, adjust system clock.
                db        02h, 02h               ; 1
                db        02h, 02h               ; 2
                db        02h, 02h               ; 3
                db        02h, 02h               ; 4
                db        02h, 02h               ; 5
                db        02h, 02h               ; 6
                db        02h, 02h               ; 7
                db        02h, 02h               ; 8
                db        02h, 02h               ; 9
                db        02h, 00h               ; 10
                db        02h, 00h               ; 11
                db        02h, 0ch               ; 12  cancel
                db        00h, 0dh               ; 13  affire
                db        00h, 0eh               ; 14 . reture main menu
                db        02h, 00h               ; 15 .
;
tb_3:
                db        03h, 03h               ; state 2 table, adjust system clock.
                db        03h, 03h               ; 1
                db        03h, 03h               ; 2
                db        03h, 03h               ; 3
                db        03h, 03h               ; 4
                db        03h, 03h               ; 5
                db        03h, 03h               ; 6
                db        03h, 03h               ; 7 db        02h, 0dh               ; state 2 table, adjust system clock.
                db        03h, 03h               ; 8
                db        03h, 03h               ; 9
                db        03h, 03h               ; 10  open machine
                db        03h, 00h               ; 11
                db        03h, 0ch               ; 12  cancel
                db        00h, 0dh               ; 13  affire
                db        00h, 0eh               ; 14 . reture main menu
                db        03h, 00h               ; 15
;
tb_4:
                db        04h, 04h               ; state 2 table, adjust system clock.
                db        04h, 04h               ; 1
                db        04h, 04h               ; 2
                db        04h, 04h               ; 3
                db        04h, 04h               ; 4
                db        04h, 04h               ; 5
                db        04h, 04h               ; 6
                db        04h, 04h               ; 7
                db        04h, 04h               ; 8
                db        04h, 04h               ; 9
                db        04h, 0ah               ; 10
                db        04h, 00h               ; 11
                db        04h, 0ch               ; 12  cancel
                db        00h, 0dh               ; 13  affire
                db        00h, 0eh               ; 14 . reture main menu
                db        04h, 00h               ; 15 .
;
tb_6:
tb_7:
tb_8:
tb_9:
tb_a:
                db        06h, 00h               ; state
                db        06h, 00h               ; 1
                db        06h, 00h               ; 2
                db        06h, 00h               ; 3
                db        06h, 00h               ; 4
                db        06h, 00h               ; 5
                db        06h, 00h               ; 6
                db        06h, 00h               ; 7
                db        06h, 00h               ; 8
                db        06h, 00h               ; 9
                db        06h, 0ah               ; 10
                db        06h, 00h               ; 11
                db        06h, 00h               ; 12
                db        06h, 00h               ; 13
                db        00h, 0eh               ; 14
                db        06h, 00h               ; 15
;

;
;================================================|
; 发送系统开机命令
;================================================|
sub_start_run:
                jbc       run_flag, sub_close_run
                mov       dptr, #start_command
                lcall     sub_send_command
                jnb       ri, $
                mov       a, sbuf
                cjne      a, #'X', fail_start_run
                setb      run_flag
                lcall     delay_flash_time
                lcall     disp_clear
                ljmp      sub_disp_real_data
;
fail_start_run:
                ret
;
;================================================|
; 发送系统关机命令                               +
;================================================|
sub_close_run:
                mov       dptr, #close_command
                lcall     sub_send_command
                ret
;
;================================================|
; 发送系统暂停运行命令.                                           
;================================================|
sub_pause:
                mov       dptr, #pause_command
                lcall     sub_send_command
                ret
;
;================================================|
; 显示系统实时状态.
;================================================|
sub_timing_data:
                lcall     disp_select_code       ; inquire system state
;

;
sub_disp_real_data:
                lcall     disp_id
                setb      disp_real_data
                mov       oxl, #0
                mov       oy, #0
                lcall     disp_system
                mov       count1, #4
                mov       dptr, #zheng_tab
                lcall     disp_chin_picture
                lcall     disp_run
                lcall     disp_general_run_data
                mov       r0, #data_buf
                inc       r0
                inc       count_data
                mov       a, @r0
                cjne      a, #28h, not_loop_command
                ljmp      disp_run_loop_para
;
not_loop_command:
                mov       a, count_data
                add       a, #3
                mov       count_data, a

⌨️ 快捷键说明

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