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

📄 pass1.dat

📁 UART transmitter and receiver mocros
💻 DAT
📖 第 1 页 / 共 5 页
字号:
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-fetch_char_from_memory
INSTRUCTION-FETCH
   OPERAND1-s0
   OPERAND2-(s1)
    COMMENT-;read character
      LABEL-
INSTRUCTION-CALL
   OPERAND1-upper_case
   OPERAND2-
    COMMENT-;convert to upper case
      LABEL-
INSTRUCTION-ADD
   OPERAND1-s1
   OPERAND2-01
    COMMENT-;increment memory pointer
      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-;Read one character from the UART
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Character read will be returned in a register called 'UART_data' and will be
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;echoed to the UART transmitter.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The routine first tests the receiver FIFO buffer to see if data is present.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;If the FIFO is empty, the routine waits until there is a character to read.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;As this could take any amount of time the wait loop includes a call to the
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;subroutine which updates the real time clock.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Registers used s0 and UART_data
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-read_from_UART
INSTRUCTION-INPUT
   OPERAND1-s0
   OPERAND2-UART_status_port
    COMMENT-;test Rx_FIFO buffer
      LABEL-
INSTRUCTION-TEST
   OPERAND1-s0
   OPERAND2-rx_data_present
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
   OPERAND2-read_character
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-update_time
   OPERAND2-
    COMMENT-;Perform useful operation whilst waiting
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-read_from_UART
   OPERAND2-
    COMMENT-
      LABEL-read_character
INSTRUCTION-INPUT
   OPERAND1-UART_data
   OPERAND2-UART_read_port
    COMMENT-;read from FIFO
      LABEL-
INSTRUCTION-CALL
   OPERAND1-send_to_UART
   OPERAND2-
    COMMENT-;echo received character
      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-;Transmit one character to the UART
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Character supplied in register called 'UART_data'.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The routine first tests the transmit FIFO buffer to see if it is full.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;If the FIFO is full, the routine waits until there is space which could
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;be as long as it takes to transmit one complete character.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;    Baud Rate    Time per Character (10 bits)
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;      9600           1,024us
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;     19200             521us
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;     38400             260us
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;     57600             174us
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;    115200              87us
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Since this is a relatively long duration, the wait loop includes a
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;call to the subroutine which updates the real time clock.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Registers used s0
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-send_to_UART
INSTRUCTION-INPUT
   OPERAND1-s0
   OPERAND2-UART_status_port
    COMMENT-;test Tx_FIFO buffer
      LABEL-
INSTRUCTION-TEST
   OPERAND1-s0
   OPERAND2-tx_full
    COMMENT-
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
   OPERAND2-UART_write
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-update_time
   OPERAND2-
    COMMENT-;Perform useful operation whilst waiting
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-send_to_UART
   OPERAND2-
    COMMENT-
      LABEL-UART_write
INSTRUCTION-OUTPUT
   OPERAND1-UART_data
   OPERAND2-UART_write_port
    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-;Alarm output
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Uses the alarm status scratch pad memory to set or reset the alarm
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;control bit on the alarm output port.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Registers used s0
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-alarm_drive
INSTRUCTION-FETCH
   OPERAND1-s0
   OPERAND2-alarm_status
    COMMENT-;read status
      LABEL-
INSTRUCTION-AND
   OPERAND1-s0
   OPERAND2-alarm_active
    COMMENT-;isolate bit0
      LABEL-
INSTRUCTION-OUTPUT
   OPERAND1-s0
   OPERAND2-alarm_port
    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-;Transmit the time to the UART port in the format hh:mm:ss and end
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;with a carriage return.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The time to converted must be stored in 3 scratch pad memory locations as
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;defined below. A register named 'store_pointer' must provide the address of
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;first location.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;        Address                Data
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;     store_pointer      ----> hours
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;     store_pointer + 1  ----> minutes
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;     store_pointer + 1  ----> seconds
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The routine first converts the time into an ASCII string stored in scratch
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;pad memory starting at a location specified by a constant named 'string_start'.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The string will then be transmitted.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Registers used s0, s1, s2, 'store_pointer' and 'UART_data'.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-transmit_time
INSTRUCTION-LOAD
   OPERAND1-store_pointer
   OPERAND2-real_time_hours
    COMMENT-;locate current time in memory
      LABEL-
INSTRUCTION-CALL
   OPERAND1-time_to_ASCII
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-transmit_string
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Transmit the alarm time and status to the UART port in the format hh:mm:ss and
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;ending with carriage return.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The alarm time to converted must be stored in 3 scratch pad memory locations as
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;defined below. A register named 'store_pointer' must provide the address of
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;first location.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;        Address                Data
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;     store_pointer      ----> hours
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;     store_pointer + 1  ----> minutes
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;     store_pointer + 1  ----> seconds
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The routine first converts the time into an ASCII string stored in scratch
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;pad memory starting at a location specified by a constant named 'string_start'.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;The string will then be transmitted.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;Registers used s0, s1, s2, 'store_pointer' and 'UART_data'.
      LABEL-
INSTRUCTION-
   OPERAND1-
   OPERAND2-
    COMMENT-;
      LABEL-transmit_alarm_time
INSTRUCTION-LOAD
   OPERAND1-store_pointer
   OPERAND2-alarm_time_hours
    COMMENT-;locate alarm time in memory
      LABEL-
INSTRUCTION-CALL
   OPERAND1-time_to_ASCII
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-transmit_string
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-send_Alarm
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-send_space
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-FETCH
   OPERAND1-s0
   OPERAND2-alarm_status
    COMMENT-;read alarm status
      LABEL-
INSTRUCTION-TEST
   OPERAND1-s0
   OPERAND2-alarm_active
    COMMENT-;test for active
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
   OPERAND2-test_armed
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-send_Active
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-test_armed
INSTRUCTION-TEST
   OPERAND1-s0
   OPERAND2-alarm_armed
    COMMENT-;test for on
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
   OPERAND2-alarm_is_off
    COMMENT-
      LABEL-
INSTRUCTION-CALL
   OPERAND1-send_ON
   OPERAND2-
    COMMENT-
      LABEL-
INSTRUCTION-RETURN
   OPERAND1-
   OPERAND2-
    COMMENT-
      LABEL-alarm_is_off
INSTRUCTION-CALL
   OPERAND1-send_OFF
   OPERAND2-

⌨️ 快捷键说明

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