pass3.dat
来自「FPGA 基于PICOBLAZE内核的LCD显示程序,完整,XILINX」· DAT 代码 · 共 3,451 行 · 第 1/5 页
DAT
3,451 行
OPERAND2-
COMMENT-;Registers used s4
ADDRESS-085
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-085
LABEL-LCD_write_inst4
INSTRUCTION-AND
OPERAND1-s4
OPERAND2-F8
COMMENT-;Enable=1 RS=0 Instruction, RW=0 Write, E=0
ADDRESS-086
LABEL-
INSTRUCTION-OUTPUT
OPERAND1-s4
OPERAND2-LCD_output_port
COMMENT-;set up RS and RW >40ns before enable pulse
ADDRESS-087
LABEL-
INSTRUCTION-CALL
OPERAND1-LCD_pulse_E
OPERAND2-
COMMENT-
ADDRESS-088
LABEL-
INSTRUCTION-RETURN
OPERAND1-
OPERAND2-
COMMENT-
ADDRESS-089
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-089
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-089
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Write 8-bit instruction to LCD display.
ADDRESS-089
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-089
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;The 8-bit instruction should be provided in register s5.
ADDRESS-089
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Instructions are written using the following sequence
ADDRESS-089
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; Upper nibble
ADDRESS-089
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; wait >1us
ADDRESS-089
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; Lower nibble
ADDRESS-089
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; wait >40us
ADDRESS-089
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-089
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Registers used s0, s1, s4, s5
ADDRESS-089
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-089
LABEL-LCD_write_inst8
INSTRUCTION-LOAD
OPERAND1-s4
OPERAND2-s5
COMMENT-
ADDRESS-08A
LABEL-
INSTRUCTION-AND
OPERAND1-s4
OPERAND2-F0
COMMENT-;Enable=0 RS=0 Instruction, RW=0 Write, E=0
ADDRESS-08B
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;OR s4, LCD_drive ;Enable=1
ADDRESS-08B
LABEL-
INSTRUCTION-CALL
OPERAND1-LCD_write_inst4
OPERAND2-
COMMENT-;write upper nibble
ADDRESS-08C
LABEL-
INSTRUCTION-CALL
OPERAND1-delay_1us
OPERAND2-
COMMENT-;wait >1us
ADDRESS-08D
LABEL-
INSTRUCTION-LOAD
OPERAND1-s4
OPERAND2-s5
COMMENT-;select lower nibble with
ADDRESS-08E
LABEL-
INSTRUCTION-SL1
OPERAND1-s4
OPERAND2-
COMMENT-;Enable=1
ADDRESS-08F
LABEL-
INSTRUCTION-SL0
OPERAND1-s4
OPERAND2-
COMMENT-;RS=0 Instruction
ADDRESS-090
LABEL-
INSTRUCTION-SL0
OPERAND1-s4
OPERAND2-
COMMENT-;RW=0 Write
ADDRESS-091
LABEL-
INSTRUCTION-SL0
OPERAND1-s4
OPERAND2-
COMMENT-;E=0
ADDRESS-092
LABEL-
INSTRUCTION-CALL
OPERAND1-LCD_write_inst4
OPERAND2-
COMMENT-;write lower nibble
ADDRESS-093
LABEL-
INSTRUCTION-CALL
OPERAND1-delay_40us
OPERAND2-
COMMENT-;wait >40us
ADDRESS-094
LABEL-
INSTRUCTION-LOAD
OPERAND1-s4
OPERAND2-F0
COMMENT-;Enable=0 RS=0 Instruction, RW=0 Write, E=0
ADDRESS-095
LABEL-
INSTRUCTION-OUTPUT
OPERAND1-s4
OPERAND2-LCD_output_port
COMMENT-;Release master enable
ADDRESS-096
LABEL-
INSTRUCTION-RETURN
OPERAND1-
OPERAND2-
COMMENT-
ADDRESS-097
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-097
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-097
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-097
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Write 8-bit data to LCD display.
ADDRESS-097
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-097
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;The 8-bit data should be provided in register s5.
ADDRESS-097
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Data bytes are written using the following sequence
ADDRESS-097
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; Upper nibble
ADDRESS-097
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; wait >1us
ADDRESS-097
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; Lower nibble
ADDRESS-097
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; wait >40us
ADDRESS-097
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-097
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Registers used s0, s1, s4, s5
ADDRESS-097
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-097
LABEL-LCD_write_data
INSTRUCTION-LOAD
OPERAND1-s4
OPERAND2-s5
COMMENT-
ADDRESS-098
LABEL-
INSTRUCTION-AND
OPERAND1-s4
OPERAND2-F0
COMMENT-;Enable=0 RS=0 Instruction, RW=0 Write, E=0
ADDRESS-099
LABEL-
INSTRUCTION-OR
OPERAND1-s4
OPERAND2-0C
COMMENT-;Enable=1 RS=1 Data, RW=0 Write, E=0
ADDRESS-09A
LABEL-
INSTRUCTION-OUTPUT
OPERAND1-s4
OPERAND2-LCD_output_port
COMMENT-;set up RS and RW >40ns before enable pulse
ADDRESS-09B
LABEL-
INSTRUCTION-CALL
OPERAND1-LCD_pulse_E
OPERAND2-
COMMENT-;write upper nibble
ADDRESS-09C
LABEL-
INSTRUCTION-CALL
OPERAND1-delay_1us
OPERAND2-
COMMENT-;wait >1us
ADDRESS-09D
LABEL-
INSTRUCTION-LOAD
OPERAND1-s4
OPERAND2-s5
COMMENT-;select lower nibble with
ADDRESS-09E
LABEL-
INSTRUCTION-SL1
OPERAND1-s4
OPERAND2-
COMMENT-;Enable=1
ADDRESS-09F
LABEL-
INSTRUCTION-SL1
OPERAND1-s4
OPERAND2-
COMMENT-;RS=1 Data
ADDRESS-0A0
LABEL-
INSTRUCTION-SL0
OPERAND1-s4
OPERAND2-
COMMENT-;RW=0 Write
ADDRESS-0A1
LABEL-
INSTRUCTION-SL0
OPERAND1-s4
OPERAND2-
COMMENT-;E=0
ADDRESS-0A2
LABEL-
INSTRUCTION-OUTPUT
OPERAND1-s4
OPERAND2-LCD_output_port
COMMENT-;set up RS and RW >40ns before enable pulse
ADDRESS-0A3
LABEL-
INSTRUCTION-CALL
OPERAND1-LCD_pulse_E
OPERAND2-
COMMENT-;write lower nibble
ADDRESS-0A4
LABEL-
INSTRUCTION-CALL
OPERAND1-delay_40us
OPERAND2-
COMMENT-;wait >40us
ADDRESS-0A5
LABEL-
INSTRUCTION-LOAD
OPERAND1-s4
OPERAND2-F0
COMMENT-;Enable=0 RS=0 Instruction, RW=0 Write, E=0
ADDRESS-0A6
LABEL-
INSTRUCTION-OUTPUT
OPERAND1-s4
OPERAND2-LCD_output_port
COMMENT-;Release master enable
ADDRESS-0A7
LABEL-
INSTRUCTION-RETURN
OPERAND1-
OPERAND2-
COMMENT-
ADDRESS-0A8
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-0A8
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-0A8
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-0A8
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Reset and initialise display to communicate using 4-bit data mode
ADDRESS-0A8
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Includes routine to clear the display.
ADDRESS-0A8
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-0A8
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Requires the 4-bit instructions 3,3,3,2 to be sent with suitable delays
ADDRESS-0A8
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;following by the 8-bit instructions to set up the display.
ADDRESS-0A8
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-0A8
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; 28 = '001' Function set, '0' 4-bit mode, '1' 2-line, '0' 5x7 dot matrix, 'xx'
ADDRESS-0A8
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; 06 = '000001' Entry mode, '1' increment, '0' no display shift
ADDRESS-0A8
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; 0E = '00001' Display control, '1' display on, '1' cursor off, '0' cursor blink off
ADDRESS-0A8
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; 01 = '00000001' Display clear
ADDRESS-0A8
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-0A8
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Registers used s0, s1, s2, s3, s4
ADDRESS-0A8
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-0A8
LABEL-LCD_reset
INSTRUCTION-CALL
OPERAND1-delay_20ms
OPERAND2-
COMMENT-;wait more that 15ms for display to be ready
ADDRESS-0A9
LABEL-
INSTRUCTION-LOAD
OPERAND1-s4
OPERAND2-30
COMMENT-
ADDRESS-0AA
LABEL-
INSTRUCTION-CALL
OPERAND1-LCD_write_inst4
OPERAND2-
COMMENT-;send '3'
ADDRESS-0AB
LABEL-
INSTRUCTION-CALL
OPERAND1-delay_20ms
OPERAND2-
COMMENT-;wait >4.1ms
ADDRESS-0AC
LABEL-
INSTRUCTION-CALL
OPERAND1-LCD_write_inst4
OPERAND2-
COMMENT-;send '3'
ADDRESS-0AD
LABEL-
INSTRUCTION-CALL
OPERAND1-delay_1ms
OPERAND2-
COMMENT-;wait >100us
ADDRESS-0AE
LABEL-
INSTRUCTION-CALL
OPERAND1-LCD_write_inst4
OPERAND2-
COMMENT-;send '3'
ADDRESS-0AF
LABEL-
INSTRUCTION-CALL
OPERAND1-delay_40us
OPERAND2-
COMMENT-;wait >40us
ADDRESS-0B0
LABEL-
INSTRUCTION-LOAD
OPERAND1-s4
OPERAND2-20
COMMENT-
ADDRESS-0B1
LABEL-
INSTRUCTION-CALL
OPERAND1-LCD_write_inst4
OPERAND2-
COMMENT-;send '2'
ADDRESS-0B2
LABEL-
INSTRUCTION-CALL
OPERAND1-delay_40us
OPERAND2-
COMMENT-;wait >40us
ADDRESS-0B3
LABEL-
INSTRUCTION-LOAD
OPERAND1-s5
OPERAND2-28
COMMENT-;Function set
ADDRESS-0B4
LABEL-
INSTRUCTION-CALL
OPERAND1-LCD_write_inst8
OPERAND2-
COMMENT-
ADDRESS-0B5
LABEL-
INSTRUCTION-LOAD
OPERAND1-s5
OPERAND2-06
COMMENT-;Entry mode
ADDRESS-0B6
LABEL-
INSTRUCTION-CALL
OPERAND1-LCD_write_inst8
OPERAND2-
COMMENT-
ADDRESS-0B7
LABEL-
INSTRUCTION-LOAD
OPERAND1-s5
OPERAND2-0E
COMMENT-;Display control
ADDRESS-0B8
LABEL-
INSTRUCTION-CALL
OPERAND1-LCD_write_inst8
OPERAND2-
COMMENT-
ADDRESS-0B9
LABEL-LCD_clear
INSTRUCTION-LOAD
OPERAND1-s5
OPERAND2-01
COMMENT-;Display clear
ADDRESS-0BA
LABEL-
INSTRUCTION-CALL
OPERAND1-LCD_write_inst8
OPERAND2-
COMMENT-
ADDRESS-0BB
LABEL-
INSTRUCTION-CALL
OPERAND1-delay_1ms
OPERAND2-
COMMENT-;wait >1.64ms for display to clear
ADDRESS-0BC
LABEL-
INSTRUCTION-CALL
OPERAND1-delay_1ms
OPERAND2-
COMMENT-
ADDRESS-0BD
LABEL-
INSTRUCTION-RETURN
OPERAND1-
OPERAND2-
COMMENT-
ADDRESS-0BE
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-0BE
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Position the cursor ready for characters to be written.
ADDRESS-0BE
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;The display is formed of 2 lines of 16 characters and each
ADDRESS-0BE
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;position has a corresponding address as indicated below.
ADDRESS-0BE
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-0BE
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; Character position
ADDRESS-0BE
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
ADDRESS-0BE
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-0BE
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; Line 1 - 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
ADDRESS-0BE
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-; Line 2 - C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
ADDRESS-0BE
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
ADDRESS-0BE
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;This routine will set the cursor position using the value provided
ADD
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?