📄 pass2.dat
字号:
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 + -