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

📄 pass2.dat

📁 FPGA 基于PICOBLAZE内核的LCD显示程序,完整,XILINX
💻 DAT
📖 第 1 页 / 共 4 页
字号:
   OPERAND1-character_BS
   OPERAND2-08
    COMMENT-;Back Space command character
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;**************************************************************************************
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Initialise the system
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;**************************************************************************************
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-cold_start
INSTRUCTION-CALL
   OPERAND1-LCD_reset
   OPERAND2-
    COMMENT-;initialise LCD display
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Write 'Frequency Generator' to LCD display and display for 4 seconds
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s5
   OPERAND2-10
    COMMENT-;Line 1 position 0
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_cursor
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-disp_Frequency
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s5
   OPERAND2-22
    COMMENT-;Line 2 position 2
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_cursor
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-disp_Generator
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-delay_1s
   OPERAND2-
    COMMENT-;wait 4 seconds
      LABEL-
INSTRUCTION-CALL
   OPERAND1-delay_1s
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-delay_1s
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-delay_1s
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_clear
   OPERAND2-
    COMMENT-;clear screen
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-CALL
   OPERAND1-delay_1ms
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;**************************************************************************************
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; Main program
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;**************************************************************************************
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; The main program is centred on the task of editing the frequency. It waits until the
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; rotary control is used and then makes the appropriate changes. If the actual digit
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; digit value is changed then the calculation to drive the DDS is performed each time.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; The start state is that of allowing the edit cursor position to be moved. Rotary
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; inputs are detected by the interrupt service routine and set a flag bit which the
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; main program then uses to adjust the cursor position and pointer to the corresponding
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; BCD digit in memory.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; A press of the rotary control is detected by polling and used to change to the digit
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; editing mode.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;**************************************************************************************
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; Display frequency on top line of the LCD and DDS data on the lower line
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;**************************************************************************************
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; The BCD value should be stored in scratch pad memory in 9 ascending locations
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; called BCD_digit0 to BCD_digit8.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; The value is displayed in the format      xxx.xxx xxxMHz
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; However, the most significant 2 digits will be blanked if zero.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; registers used s0,s1,s2,s3,s4,s5,s6,s7
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-display_3_digits
INSTRUCTION-LOAD
   OPERAND1-s3
   OPERAND2-03
    COMMENT-;3 digits to display
      LABEL-3digit_loop
INSTRUCTION-FETCH
   OPERAND1-s5
   OPERAND2-(s2)
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-display_digit
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-SUB
   OPERAND1-s2
   OPERAND2-01
    COMMENT-;decrement digit pointer
      LABEL-
INSTRUCTION-SUB
   OPERAND1-s3
   OPERAND2-01
    COMMENT-;count digits displayed
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-3digit_loop
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-display_digit
INSTRUCTION-ADD
   OPERAND1-s5
   OPERAND2-30
    COMMENT-;convert BCD to ASCII character
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_write_data
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-display_space
INSTRUCTION-LOAD
   OPERAND1-s5
   OPERAND2-character_space
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_write_data
   OPERAND2-
    COMMENT-
      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-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;**************************************************************************************
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; Routines to display hexadecimal values on LCD display
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;**************************************************************************************
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; Convert hexadecimal value provided in register s0 into ASCII characters
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; The value provided must can be any value in the range 00 to FF and will be converted into
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; two ASCII characters.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;     The upper nibble will be represented by an ASCII character returned in register s3.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;     The lower nibble will be represented by an ASCII character returned in register s2.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; The ASCII representations of '0' to '9' are 30 to 39 hexadecimal which is simply 30 hex
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; added to the actual decimal value. The ASCII representations of 'A' to 'F' are 41 to 46
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; hexadecimal requiring a further addition of 07 to the 30 already added.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; Registers used s0, s2 and s3.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-hex_byte_to_ASCII
INSTRUCTION-LOAD
   OPERAND1-s2
   OPERAND2-s0
    COMMENT-;remember value supplied
      LABEL-
INSTRUCTION-SR0
   OPERAND1-s0
   OPERAND2-
    COMMENT-;isolate upper nibble
      LABEL-
INSTRUCTION-SR0
   OPERAND1-s0
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-SR0
   OPERAND1-s0
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-SR0
   OPERAND1-s0
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-hex_to_ASCII
   OPERAND2-
    COMMENT-;convert
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s3
   OPERAND2-s0
    COMMENT-;upper nibble value in s3
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s0
   OPERAND2-s2
    COMMENT-;restore complete value
      LABEL-
INSTRUCTION-AND
   OPERAND1-s0
   OPERAND2-0F
    COMMENT-;isolate lower nibble
      LABEL-
INSTRUCTION-CALL
   OPERAND1-hex_to_ASCII
   OPERAND2-
    COMMENT-;convert
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s2
   OPERAND2-s0
    COMMENT-;lower nibble value in s2
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; Convert hexadecimal value provided in register s0 into ASCII character
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Register used s0
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-hex_to_ASCII
INSTRUCTION-SUB
   OPERAND1-s0
   OPERAND2-0A
    COMMENT-;test if value is in range 0 to 9
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-C
   OPERAND2-number_char
    COMMENT-
      LABEL-
INSTRUCTION-ADD
   OPERAND1-s0
   OPERAND2-07
    COMMENT-;ASCII char A to F in range 41 to 46
      LABEL-number_char
INSTRUCTION-ADD
   OPERAND1-s0
   OPERAND2-3A
    COMMENT-;ASCII char 0 to 9 in range 30 to 40
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; Display the two character HEX value of the register contents 's0' on the LCD
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; at the current cursor position.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; Registers used s0, s1, s2, s3, s4, s5
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-display_hex_byte
INSTRUCTION-CALL
   OPERAND1-hex_byte_to_ASCII
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s5
   OPERAND2-s3
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_write_data
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s5
   OPERAND2-s2
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-LCD_write_data
   OPERAND2-
    COMMENT-
      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-; Display the 32-bit value stored in 4 ascending memory locations as an 8 character
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; HEX value at the current cursor position. Register s7 must contain the memory
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; location of the most significant byte (which is also the highest address).
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-; Registers used s0, s1, s2, s3, s4, s5, s6, s7
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-display_hex_32_bit
INSTRUCTION-LOAD
   OPERAND1-s6
   OPERAND2-04
    COMMENT-;4 bytes to display
      LABEL-disp32_loop
INSTRUCTION-FETCH
   OPERAND1-s0
   OPERAND2-(s7)
    COMMENT-;read byte
      LABEL-
INSTRUCTION-CALL
   OPERAND1-display_hex_byte
   OPERAND2-
    COMMENT-;display byte
      LABEL-
INSTRUCTION-SUB
   OPERAND1-s7
   OPERAND2-01
    COMMENT-;decrement pointer
      LABEL-
INSTRUCTION-SUB
   OPERAND1-s6
   OPERAND2-01
    COMMENT-;count bytes displayed
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-Z
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-disp32_loop
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-

⌨️ 快捷键说明

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