AVR Assembler-Code for HD44780 Displays
Description
The following assembler code is from some greater project. The parameters of the procedures are passed through the registers RP0 , RP1 and RP2 , the return value is located in the register RRet after the call. These register names have to be defined before the code can be used. To use this code the file inttimer16.asm is also required. It contains two delay-routines that are able put the processor into sleep mode to save power.
The code consists of the following routines and macros:
- disp_instruction and disp_data
- (macro) Puts the display into data or instruction mode.
- disp_put_byte
- Writes a byte to the display. Example:
disp_data ldi RP0, 'A' rcall disp_put_byte ldi RP0, 'B' rcall disp_put_byte
- disp_read_byte
- Reads a byte from the display
- disp_reset
- Resets the display to default values. The contents of the display are erased and the cursor is moved to the position of the first character.
- disp_write_string
- Writes a null-terminated string out of program memory to the
display. Example:
CSEG: string_hello_world: .db 'H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', ↵ 'd', '!', 0 ldi RP0, LOW( 2 * string_hello_world ) ldi RP1, HIGH( 2 * string_hello_world ) rcall disp_write_string
Download
Assembler-Code for HD44780 ( 2 kB)