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

📄 pass3.dat

📁 UART transmitter and receiver mocros
💻 DAT
📖 第 1 页 / 共 5 页
字号:
    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-;
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Transmit the time to the UART port in the format hh:mm:ss and end
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;with a carriage return.
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The time to converted must be stored in 3 scratch pad memory locations as
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;defined below. A register named 'store_pointer' must provide the address of
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;first location.
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;        Address                Data
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;     store_pointer      ----> hours
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;     store_pointer + 1  ----> minutes
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;     store_pointer + 1  ----> seconds
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The routine first converts the time into an ASCII string stored in scratch
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;pad memory starting at a location specified by a constant named 'string_start'.
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The string will then be transmitted.
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Registers used s0, s1, s2, 'store_pointer' and 'UART_data'.
    ADDRESS-0A8
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0A8
      LABEL-transmit_time
INSTRUCTION-LOAD
   OPERAND1-store_pointer
   OPERAND2-real_time_hours
    COMMENT-;locate current time in memory
    ADDRESS-0A9
      LABEL-
INSTRUCTION-CALL
   OPERAND1-time_to_ASCII
   OPERAND2-
    COMMENT-
    ADDRESS-0AA
      LABEL-
INSTRUCTION-CALL
   OPERAND1-transmit_string
   OPERAND2-
    COMMENT-
    ADDRESS-0AB
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Transmit the alarm time and status to the UART port in the format hh:mm:ss and
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;ending with carriage return.
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The alarm time to converted must be stored in 3 scratch pad memory locations as
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;defined below. A register named 'store_pointer' must provide the address of
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;first location.
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;        Address                Data
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;     store_pointer      ----> hours
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;     store_pointer + 1  ----> minutes
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;     store_pointer + 1  ----> seconds
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The routine first converts the time into an ASCII string stored in scratch
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;pad memory starting at a location specified by a constant named 'string_start'.
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The string will then be transmitted.
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Registers used s0, s1, s2, 'store_pointer' and 'UART_data'.
    ADDRESS-0AC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0AC
      LABEL-transmit_alarm_time
INSTRUCTION-LOAD
   OPERAND1-store_pointer
   OPERAND2-alarm_time_hours
    COMMENT-;locate alarm time in memory
    ADDRESS-0AD
      LABEL-
INSTRUCTION-CALL
   OPERAND1-time_to_ASCII
   OPERAND2-
    COMMENT-
    ADDRESS-0AE
      LABEL-
INSTRUCTION-CALL
   OPERAND1-transmit_string
   OPERAND2-
    COMMENT-
    ADDRESS-0AF
      LABEL-
INSTRUCTION-CALL
   OPERAND1-send_Alarm
   OPERAND2-
    COMMENT-
    ADDRESS-0B0
      LABEL-
INSTRUCTION-CALL
   OPERAND1-send_space
   OPERAND2-
    COMMENT-
    ADDRESS-0B1
      LABEL-
INSTRUCTION-FETCH
   OPERAND1-s0
   OPERAND2-alarm_status
    COMMENT-;read alarm status
    ADDRESS-0B2
      LABEL-
INSTRUCTION-TEST
   OPERAND1-s0
   OPERAND2-alarm_active
    COMMENT-;test for active
    ADDRESS-0B3
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
   OPERAND2-test_armed
    COMMENT-
    ADDRESS-0B4
      LABEL-
INSTRUCTION-CALL
   OPERAND1-send_Active
   OPERAND2-
    COMMENT-
    ADDRESS-0B5
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
    ADDRESS-0B6
      LABEL-test_armed
INSTRUCTION-TEST
   OPERAND1-s0
   OPERAND2-alarm_armed
    COMMENT-;test for on
    ADDRESS-0B7
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
   OPERAND2-alarm_is_off
    COMMENT-
    ADDRESS-0B8
      LABEL-
INSTRUCTION-CALL
   OPERAND1-send_ON
   OPERAND2-
    COMMENT-
    ADDRESS-0B9
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
    ADDRESS-0BA
      LABEL-alarm_is_off
INSTRUCTION-CALL
   OPERAND1-send_OFF
   OPERAND2-
    COMMENT-
    ADDRESS-0BB
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
    ADDRESS-0BC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0BC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0BC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Transmit ASCII string to UART
    ADDRESS-0BC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0BC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;An ASCII string must be provided in scratch pad memory commencing at the
    ADDRESS-0BC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;location specified by a constant named 'string_start'. The string must
    ADDRESS-0BC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;end with a carriage return (0D).
    ADDRESS-0BC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0BC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Registers used s1 and 'UART_data'.
    ADDRESS-0BC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;               s0 is then used in subroutine 'send_to_UART'
    ADDRESS-0BC
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0BC
      LABEL-transmit_string
INSTRUCTION-LOAD
   OPERAND1-s1
   OPERAND2-string_start
    COMMENT-;locate start of string
    ADDRESS-0BD
      LABEL-next_char_tx
INSTRUCTION-FETCH
   OPERAND1-UART_data
   OPERAND2-(s1)
    COMMENT-;read character from memory
    ADDRESS-0BE
      LABEL-
INSTRUCTION-CALL
   OPERAND1-send_to_UART
   OPERAND2-
    COMMENT-;transmit character
    ADDRESS-0BF
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-UART_data
   OPERAND2-character_CR
    COMMENT-;test for last character
    ADDRESS-0C0
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-Z
   OPERAND2-
    COMMENT-
    ADDRESS-0C1
      LABEL-
INSTRUCTION-ADD
   OPERAND1-s1
   OPERAND2-01
    COMMENT-;move to next character
    ADDRESS-0C2
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-next_char_tx
   OPERAND2-
    COMMENT-
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Receive ASCII string from UART
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;An ASCII string will be read from the UART and stored in scratch pad memory
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;commencing at the location specified by a constant named 'string_start'.
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The string will will have a maximum length of 16 characters including a
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;carriage return (0D) denoting the end of the string.
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;As each character is read, it is echoed to the UART transmitter.
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Some minor editing is supported using backspace (BS=08) which is used
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;to adjust what is stored in scratch pad memory and adjust the display
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;on the terminal screen using characters sent to the UART transmitter.
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;A test is made for the receiver FIFO becoming full. A full status is treated as
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;a potential error situation and will result in a 'Overflow Error' message being
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;transmitted to the UART, the receiver FIFO being purged of all data and an
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;empty string being stored (carriage return at first location).
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Registers used s0, s1, s2 and 'UART_data'.
    ADDRESS-0C3
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
    ADDRESS-0C3
      LABEL-receive_string
INSTRUCTION-LOAD
   OPERAND1-s1
   OPERAND2-string_start
    COMMENT-;locate start of string
    ADDRESS-0C4
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s2
   OPERAND2-s1
    COMMENT-;compute 16 character address
    ADDRESS-0C5
      LABEL-
INSTRUCTION-ADD
   OPERAND1-s2
   OPERAND2-10
    COMMENT-
    ADDRESS-0C6
      LABEL-receive_full_test
INSTRUCTION-INPUT
   OPERAND1-s0
   OPERAND2-UART_status_port
    COMMENT-;test Rx_FIFO buffer for full
    ADDRESS-0C7
      LABEL-
INSTRUCTION-TEST
   OPERAND1-s0
   OPERAND2-rx_full
    COMMENT-
    ADDRESS-0C8
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-read_error
    COMMENT-
    ADDRESS-0C9
      LABEL-
INSTRUCTION-CALL
   OPERAND1-read_from_UART
   OPERAND2-
    COMMENT-;obtain and echo character
    ADDRESS-0CA
      LABEL-
INSTRUCTION-STORE
   OPERAND1-UART_data
   OPERAND2-(s1)
    COMMENT-;write to memory
    ADDRESS-0CB
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-UART_data
   OPERAND2-character_CR
    COMMENT-;test for end of string
    ADDRESS-0CC
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-Z
   OPERAND2-
    COMMENT-

⌨️ 快捷键说明

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