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

📄 pass2.dat

📁 FPGA 基于PICOBLAZE内核的LCD显示程序,完整,XILINX
💻 DAT
📖 第 1 页 / 共 4 页
字号:
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Write 4-bit instruction to LCD display.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The 4-bit instruction should be provided in the upper 4-bits of register s4.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Note that this routine does not release the master enable but as it is only
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;used during initialisation and as part of the 8-bit instruction write it
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;should be acceptable.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Registers used s4
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-LCD_write_inst4
INSTRUCTION-AND
   OPERAND1-s4
   OPERAND2-F8
    COMMENT-;Enable=1 RS=0 Instruction, RW=0 Write, E=0
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-s4
   OPERAND2-LCD_output_port
    COMMENT-;set up RS and RW >40ns before enable pulse
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_pulse_E
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Write 8-bit instruction to LCD display.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The 8-bit instruction should be provided in register s5.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Instructions are written using the following sequence
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; Upper nibble
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; wait >1us
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; Lower nibble
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; wait >40us
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Registers used s0, s1, s4, s5
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-LCD_write_inst8
INSTRUCTION-LOAD
   OPERAND1-s4
   OPERAND2-s5
    COMMENT-
      LABEL-
INSTRUCTION-AND
   OPERAND1-s4
   OPERAND2-F0
    COMMENT-;Enable=0 RS=0 Instruction, RW=0 Write, E=0
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;OR s4, LCD_drive                    ;Enable=1
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_write_inst4
   OPERAND2-
    COMMENT-;write upper nibble
      LABEL-
INSTRUCTION-CALL
   OPERAND1-delay_1us
   OPERAND2-
    COMMENT-;wait >1us
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s4
   OPERAND2-s5
    COMMENT-;select lower nibble with
      LABEL-
INSTRUCTION-SL1
   OPERAND1-s4
   OPERAND2-
    COMMENT-;Enable=1
      LABEL-
INSTRUCTION-SL0
   OPERAND1-s4
   OPERAND2-
    COMMENT-;RS=0 Instruction
      LABEL-
INSTRUCTION-SL0
   OPERAND1-s4
   OPERAND2-
    COMMENT-;RW=0 Write
      LABEL-
INSTRUCTION-SL0
   OPERAND1-s4
   OPERAND2-
    COMMENT-;E=0
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_write_inst4
   OPERAND2-
    COMMENT-;write lower nibble
      LABEL-
INSTRUCTION-CALL
   OPERAND1-delay_40us
   OPERAND2-
    COMMENT-;wait >40us
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s4
   OPERAND2-F0
    COMMENT-;Enable=0 RS=0 Instruction, RW=0 Write, E=0
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-s4
   OPERAND2-LCD_output_port
    COMMENT-;Release master enable
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Write 8-bit data to LCD display.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The 8-bit data should be provided in register s5.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Data bytes are written using the following sequence
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; Upper nibble
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; wait >1us
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; Lower nibble
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; wait >40us
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Registers used s0, s1, s4, s5
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-LCD_write_data
INSTRUCTION-LOAD
   OPERAND1-s4
   OPERAND2-s5
    COMMENT-
      LABEL-
INSTRUCTION-AND
   OPERAND1-s4
   OPERAND2-F0
    COMMENT-;Enable=0 RS=0 Instruction, RW=0 Write, E=0
      LABEL-
INSTRUCTION-OR
   OPERAND1-s4
   OPERAND2-0C
    COMMENT-;Enable=1 RS=1 Data, RW=0 Write, E=0
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-s4
   OPERAND2-LCD_output_port
    COMMENT-;set up RS and RW >40ns before enable pulse
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_pulse_E
   OPERAND2-
    COMMENT-;write upper nibble
      LABEL-
INSTRUCTION-CALL
   OPERAND1-delay_1us
   OPERAND2-
    COMMENT-;wait >1us
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s4
   OPERAND2-s5
    COMMENT-;select lower nibble with
      LABEL-
INSTRUCTION-SL1
   OPERAND1-s4
   OPERAND2-
    COMMENT-;Enable=1
      LABEL-
INSTRUCTION-SL1
   OPERAND1-s4
   OPERAND2-
    COMMENT-;RS=1 Data
      LABEL-
INSTRUCTION-SL0
   OPERAND1-s4
   OPERAND2-
    COMMENT-;RW=0 Write
      LABEL-
INSTRUCTION-SL0
   OPERAND1-s4
   OPERAND2-
    COMMENT-;E=0
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-s4
   OPERAND2-LCD_output_port
    COMMENT-;set up RS and RW >40ns before enable pulse
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_pulse_E
   OPERAND2-
    COMMENT-;write lower nibble
      LABEL-
INSTRUCTION-CALL
   OPERAND1-delay_40us
   OPERAND2-
    COMMENT-;wait >40us
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s4
   OPERAND2-F0
    COMMENT-;Enable=0 RS=0 Instruction, RW=0 Write, E=0
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-s4
   OPERAND2-LCD_output_port
    COMMENT-;Release master enable
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Reset and initialise display to communicate using 4-bit data mode
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Includes routine to clear the display.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Requires the 4-bit instructions 3,3,3,2 to be sent with suitable delays
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;following by the 8-bit instructions to set up the display.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  28 = '001' Function set, '0' 4-bit mode, '1' 2-line, '0' 5x7 dot matrix, 'xx'
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  06 = '000001' Entry mode, '1' increment, '0' no display shift
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  0E = '00001' Display control, '1' display on, '1' cursor off, '0' cursor blink off
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;  01 = '00000001' Display clear
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Registers used s0, s1, s2, s3, s4
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-LCD_reset
INSTRUCTION-CALL
   OPERAND1-delay_20ms
   OPERAND2-
    COMMENT-;wait more that 15ms for display to be ready
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s4
   OPERAND2-30
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_write_inst4
   OPERAND2-
    COMMENT-;send '3'
      LABEL-
INSTRUCTION-CALL
   OPERAND1-delay_20ms
   OPERAND2-
    COMMENT-;wait >4.1ms
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_write_inst4
   OPERAND2-
    COMMENT-;send '3'
      LABEL-
INSTRUCTION-CALL
   OPERAND1-delay_1ms
   OPERAND2-
    COMMENT-;wait >100us
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_write_inst4
   OPERAND2-
    COMMENT-;send '3'
      LABEL-
INSTRUCTION-CALL
   OPERAND1-delay_40us
   OPERAND2-
    COMMENT-;wait >40us
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s4
   OPERAND2-20
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_write_inst4
   OPERAND2-
    COMMENT-;send '2'
      LABEL-
INSTRUCTION-CALL
   OPERAND1-delay_40us
   OPERAND2-
    COMMENT-;wait >40us
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s5
   OPERAND2-28
    COMMENT-;Function set
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_write_inst8
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s5
   OPERAND2-06
    COMMENT-;Entry mode
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_write_inst8
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s5
   OPERAND2-0E
    COMMENT-;Display control
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_write_inst8
   OPERAND2-
    COMMENT-
      LABEL-LCD_clear
INSTRUCTION-LOAD
   OPERAND1-s5
   OPERAND2-01
    COMMENT-;Display clear
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_write_inst8
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-delay_1ms
   OPERAND2-
    COMMENT-;wait >1.64ms for display to clear
      LABEL-
INSTRUCTION-CALL
   OPERAND1-delay_1ms
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Position the cursor ready for characters to be written.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The display is formed of 2 lines of 16 characters and each
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;position has a corresponding address as indicated below.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;                   Character position
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;           0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; Line 1 - 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; Line 2 - C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;This routine will set the cursor position using the value provided
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;in register s5. The upper nibble will define the line and the lower
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;nibble the character position on the line.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; Example s5 = 2B will position the cursor on line 2 position 11
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Registers used s0, s1, s2, s3, s4
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-LCD_cursor
INSTRUCTION-TEST
   OPERAND1-s5
   OPERAND2-10
    COMMENT-;test for line 1
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
   OPERAND2-set_line2
    COMMENT-
      LABEL-
INSTRUCTION-AND
   OPERAND1-s5
   OPERAND2-0F
    COMMENT-;make address in range 80 to 8F for line 1
      LABEL-
INSTRUCTION-OR
   OPERAND1-s5
   OPERAND2-80
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_write_inst8
   OPERAND2-
    COMMENT-;instruction write to set cursor
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-set_line2
INSTRUCTION-AND
   OPERAND1-s5
   OPERAND2-0F
    COMMENT-;make address in range C0 to CF for line 2
      LABEL-
INSTRUCTION-OR
   OPERAND1-s5
   OPERAND2-C0
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_write_inst8
   OPERAND2-
    COMMENT-;instruction write to set cursor
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;This routine will shift the complete display one position to the left.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The cursor position and LCD memory contents will not change.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Registers used s0, s1, s2, s3, s4, s5
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-LCD_shift_left
INSTRUCTION-LOAD
   OPERAND1-s5
   OPERAND2-18
    COMMENT-;shift display left
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_write_inst8
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-

⌨️ 快捷键说明

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