2012年12月8日 星期六

如何控制 HD44780 字元型式LCD



源自於http://www.add.ece.ufl.edu/4744/docs/lcdmanual/commands.html

LCD Commands 指令集

  • CGRAM = Character Generator RAM. DDRAM=Display Data RAM.


HD44780 instruction set
InstructionCodeDescriptionExecution time**
RSR/WDB7DB6DB5DB4DB3DB2DB1DB0
Clear display0000000001Clears display and returns cursor to the home position (address 0).1.64mS
Cursor home000000001*Returns cursor to home position (address 0). Also returns display being shifted to the original position. DDRAM contents remains unchanged.1.64mS
Entry mode set00000001I/DSSets cursor move direction (I/D), specifies to shift the display (S). These operations are performed during data read/write.40uS
Display On/Off control0000001DCBSets On/Off of all display (D), cursor On/Off (C) and blink of cursor position character (B).40uS
Cursor/display shift000001S/CR/L**Sets cursor-move or display-shift (S/C), shift direction (R/L). DDRAM contents remains unchanged.40uS
Function set00001DLNF**Sets interface data length (DL), number of display line (N) and character font(F).40uS
Set CGRAM address0001CGRAM addressSets the CGRAM address. CGRAM data is sent or received after this setting.40uS
Set DDRAM address001DDRAM addressSets the DDRAM address. DDRAM data is sent or received after this setting.40uS
Read busy-flag and address counter01BFDDRAM addressReads Busy-flag (BF) indicating internal operation is being performed and reads address counter contents.0uS
Write to CGRAM or DDRAM10write dataWrites data to CGRAM or DDRAM.40uS
Read from CGRAM or DDRAM11read dataReads data from CGRAM or DDRAM.40uS
Notes:
  • DDRAM = Display Data RAM.
  • CGRAM = Character Generator RAM.
  • DDRAM address corresponds to cursor position.
  • Address Counter is used for both DDRAM and CGRAM.
  • * = Don't care.
  • ** = Based on Fosc = 250KHz.
Bit names
BitSettings
I/D0 = Decrement cursor position1 = Increment cursor position
S0 = No display shift1 = Display shift
D0 = Display off1 = Display on
C0 = Cursor off1 = Cursor on
B0 = Cursor blink off1 = Cursor blink on
S/C0 = Move cursor1 = Shift display
R/L0 = Shift left1 = Shift right
DL0 = 4-bit interface1 = 8-bit interface
N0 = 1/8 or 1/11 Duty (1 line)1 = 1/16 Duty (2 lines)
F0 = 5x7 dots1 = 5x10 dots
BF0 = Can accept instruction1 = Internal operation in progress




Clear Display (清除顯示器)


RS  R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
=== === === === === === === === === ===
 0   0   0   0   0   0   0   0   0   1 
Clears all display and returns the cursor to the home position (Address 0).
Details
Writes space code (20h) into all DD RAM addresses. Sets address counter to DD RAM location 0. Returns display to its original state if it was shifted. In other words, the display disappears and the cursor or blink goes to the left edge of the display (the first line if 2 lines are displayed). Sets entry mode I/D to 1 (Increment Mode). Entry mode shift (S) bit remains unchanged.

Execution Time = 82µs-1.64ms / 120µs-4.9ms



Cursor Home (游標歸位)


RS  R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
 0   0   0   0   0   0   0   0   1   * 
Returns the cursor to the home position (Address 0). Returns display to its original state if it was shifted.
Details
Sets the address counter to DD RAM location 0 in the address counter. Returns display to its original state if it was shifted. DD RAM contents remain unchanged. The cursor or blink goes to the left edge of the display (the first line if 2 lines are displayed).

Execution Time = 40µs-1.6ms / 120µs-4.8ms



Entry Mode Set(進入模式集)


RS  R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
=== === === === === === === === === ===
 0   0   0   0   0   0   0   1  I/D  S 
Sets the effect of subsequent DD RAM read or write operations. Sets the cursor move direction and specifies or not to shift the display. These operations are performed during data read and write.
Details
Specifies whether to increment (I/D = 1) or decrement (I/D = 0) the address counter after subsequent DD RAM read or write operations.
If S = 1 the display will be shifted to the left (if I/D = 1) or right (if I/D = 0) on subsequent DD RAM write operations. This makes it looks as if the cursor stands still and the display moves when each character is written to the DD RAM. if S = 0 the display will not shift on subsequent DD RAM write operations.

Execution Time = 40µs / 120µs



Display ON/OFF(顯示器字元 開/關)


RS  R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
=== === === === === === === === === ===
 0   0   0   0   0   0   1   D   C   B 
Controls display of characters and cursor.
Details
D: The display is ON when D = 1 and OFF when D = 0. The DD RAM contents remain unchanged.
C: The cursor is displayed when C = 1 and is not displayed when C = 0.
The cursor is displayed as 5 dots in the 8th line when the 5 x 7 dot character font is selected and as 5 dots in the 11th line when the 5 x 10 dot character font is selected.
B: The character at the the cursor position blinks when B = 1.
Blinking is performed by switching between all blank dots and the display character every 409.6 ms.

Execution Time = 40µs / 120µs



Cursor and Display Shift(游標及顯示器 移位方向)


RS  R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
=== === === === === === === === === ===
 0   0   0   0   0   1  S/C R/L  *   * 
Moves the cursor and shifts the display without changing DD RAM contents
Details
Shifts cursor position or display to the right or left without writing or reading display data. This function is used to correct or search for the display. In a 2-line display, the cursor moves to the 2nd line when it passes the 40th digit of the 1st line. Notice that the 1st and 2nd line displays will shift at the same time. When the displayed data is shifted repeatedly each line only moves horizontally. The 2nd line of the display does not shift into the 1st line position.

S/C R/L                                          
=== ===                                          
 0   0   Shifts the cursor position to the left 
         (Address Counter is decremented by 1)   
 0   1   Shifts the cursor position to the right
         (Address Counter is incremented by 1)  
 1   0   Shifts the entire display to the left  
         The cursor follows the display shift   
 1   1   Shifts the entire display to the right 
         The cursor follows the display shift   
Execution Time = 40µs / 120µs



Function Set(功能集)


RS  R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
=== === === === === === === === === ===
 0   0   0   0   1   DL  N   F   *   * 
Sets interface data length (DL), number of display lines (N) and character font (F)
Details
This command should be issued only after automatic power-on initialization has occurred, or as part of the module initialization sequence.
DL: Sets interface data length
    Data sent or received in 8 bit lengths (DB7-DB0) when DL = 1Data sent or received in 4 bit lengths (DB7-DB4) when DL = 0
    When the 4 bit length is selected, data must be sent or received in pairs of 4-bits each. The most-significant 4 bits are sent or received first.
N: Sets number of display linesF: Sets character font

    display Character  Duty                             
N F  lines    Font    Factor Remarks                    
=== ======= ========= ====== =======                    
0 0    1    5x 7 dots  1/8    -                         
0 1    1    5x10 dots  1/11   -                         
1 *    2    5x 7 dots  1/16  Cannot display 2 lines with
                             5x10 dot character font    
Note that a 1 line x 16 character display is treated as a 2 line x 8 character display. The first `line' is the left eight character positions on the display and the second `line' is the right eight character positions. This also means that the 16 characters on the display do not occupy 16 sequential DD RAM locations.
Execution Time = 40µs / 120µs



Set CG RAM Address(設定字元產生器地址)


RS  R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
=== === === === === === === === === ===
 0   0   0   1   A   A   A   A   A   A 
Sets the CG RAM address. Subsequent read or write operations refer to the CG RAM.
Details
Sets the specified value (AAAAAA) into the address counter. Subsequent read or write operations transfer data from, or to, the character generator RAM.

Execution Time = 40µs / 120µs



Set DDRAM Address(設定顯示器地址)


RS  R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
=== === === === === === === === === ===
 0   0   1   A   A   A   A   A   A   A 
Sets the DD RAM address. Subsequent read or writes refer to the DD RAM.
Details
Sets the specified value (AAAAAAA) into the address counter. Subsequent read or write operations transfer data from, or to, the display RAM. Note: Adjacent display RAM locations do not necessarily refer to adjacent display positions.

Execution Time = 40µs / 120µs



Read busy flag and address counter(讀取忙碌旗號及地址計數器)


RS  R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
=== === === === === === === === === ===
 0   1   BF  A   A   A   A   A   A   A 
Reads the state of the busy flag (BF) and the contents of the address counter.
Details
Reads the busy flag (BF) that indicates the state of the LCD module. BF = 1 indicates that the module is busy processing the previous command. BF = 0 indicates that the module is ready to perform another command.
The value of the address counter is also returned. The same address counter is used for both CG and DD RAM transfers.
This command can be issued at any time. It is the only command which the LCD module will accept while a previous command is still being processed.
Execution Time = 1µs



Write data to CG or DD RAM(寫入資料到CG/DD記憶體中)


RS  R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
=== === === === === === === === === ===
 1   0   D   D   D   D   D   D   D   D 
Writes data into DD RAM or CG RAM
Details
Writes a byte (DDDDDDDD) to the CG or the DD RAM. The destination (CG RAM or DD RAM) is determined by the most recent `Set RAM Address' command. The location to which the byte will be written is the current value of the address counter. After the byte is written the address counter is automatically incremented or decremented according to the entry mode. The entry mode also determines whether or not the display will shift.

Execution Time = 40µs / 120µs



Read data from CG or DD RAM(從CG/DD記憶體中讀取資料)


RS  R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
=== === === === === === === === === ===
 1   1   D   D   D   D   D   D   D   D 
Reads data from DD RAM or CG RAM.
Details
Reads a byte (DDDDDDDD) from the CG or DD RAM. The source (CG RAM or DD RAM) is determined by the most recent `Set RAM Address' command. The location from which the byte will be read is the current value of the address counter. After the byte is reda the address counter is automatically incremented or decremented according to the entry mode.

Execution Time = 40µs / 120µs




沒有留言:

張貼留言

2024_09 作業3 以Node-Red 為主

 2024_09 作業3  (以Node-Red 為主  Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker  2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...