EzCode4E驅動HT1621點亮LCD
HT1621 是一個128(32x4)點的LCD驅動器。透過幾條串列介面與主控制器通訊,就可以點亮LCD。本文介紹用Alpha的EzCode4EV4.50驅動HT1621來顯示數位。
HT1621的指令概述
|
指令名稱 |
指令代碼 |
D/C |
功能描述 |
上電時重設預設 |
|
READ |
110
a5 a4 a3 a2 a1 a0 d0 d1 d2 d3 |
D |
讀RAM資料 |
|
|
WRITE |
101
a5 a4 a3 a2 a1 a0 d0 d1 d2 d3 |
D |
寫資料到RAM |
|
|
READ-MODIFY-WRITE |
101
a5 a4 a3 a2 a1 a0 d0 d1 d2 d3 |
D |
讀和寫資料 |
|
|
SYS DIS |
10000000000X |
C |
關閉系統振盪器和LCD偏壓發生器 |
√ |
|
SYS EN |
10000000001X |
C |
開啓系統振盪器 |
|
|
LCD OFF |
10000000010X |
C |
關閉LCD偏壓發生器 |
√ |
|
LCD ON |
10000000011X |
C |
開啓LCD偏壓發生器 |
|
|
TIMER DIS |
10000000100X |
C |
時基輸出失效 |
|
|
WDT DIS |
10000000101X |
C |
WDT溢出旗號輸出失效 |
|
|
TIMER EN |
10000000110X |
C |
時基輸出使能 |
|
|
WDT EN |
10000000111X |
C |
WDT溢出旗號輸出有效 |
|
|
TONE OFF |
10000001000X |
C |
關閉聲音輸出 |
√ |
|
TONE ON |
10000001001X |
C |
開啓聲音輸出 |
|
|
CLR TIMER |
100000011XXX |
C |
時基發生器清零 |
|
|
CLR WDT |
1000000111XX |
C |
清除WDT 狀態 |
|
|
XTAL 32K |
100000101XXX |
C |
系統時鐘源,晶振 |
|
|
RC 256K |
100000110XXX |
C |
系統時鐘源,片內RC 振盪器 |
√ |
|
EXT 256K |
100000111XXX |
C |
系統時鐘源,外部時鐘源 |
|
|
指令名稱 |
指令碼 |
D/C |
功能描述 |
上電時複
位預設 |
|
BIAS 1/2 |
1000010abX0X |
C |
LCD 1/2 偏壓選項
ab=00:2 個公共口
ab=01:3 個公共口
ab=10:4 個公共口 |
|
|
BIAS 1/3 |
1000010abX1X |
C |
LCD 1/3 偏壓選項
ab=00:2 個公共口
ab=01:3 個公共口
ab=10:4 個公共口 |
|
|
TONE 4K |
100010XXXXXX |
C |
聲音頻率4KHz |
|
|
TONE 2K |
100011XXXXXX |
C |
聲音頻率2KHz |
|
|
/IRQ DIS |
100100X0XXXX |
C |
使/IRQ 輸出失效 |
√ |
|
/IRQ EN |
100100X1XXXX |
C |
使/IRQ 輸出有效 |
|
|
F1 |
100101XX000X |
C |
時基/WDT 時鐘輸出1Hz |
|
|
F2 |
100101XX001X |
C |
時基/WDT 時鐘輸出2Hz |
|
|
F4 |
100101XX010X |
C |
時基/WDT 時鐘輸出4Hz |
|
|
F8 |
100101XX011X |
C |
時基/WDT 時鐘輸出8Hz |
|
|
F16 |
100101XX100X |
C |
時基/WDT 時鐘輸出16Hz |
|
|
F32 |
100101XX101X |
C |
時基/WDT 時鐘輸出32Hz |
|
|
F64 |
100101XX110X |
C |
時基/WDT 時鐘輸出64Hz |
|
|
F128 |
100101XX111X |
C |
時基/WDT 時鐘輸出128Hz |
√ |
|
TEST |
10011100000X |
C |
測試模式 |
|
|
NORMAL |
10011100011X |
C |
普通模式 |
√ |
注:
X :0或1
a5~a0 :RAM位址
d3~d0 :RAM資料
D/C :資料/指令模式
本例子中使用到的指令包括:指令模式,寫模式,寫連續位址模式
HT1621指令模式(指令代碼100)
HT1621寫模式(指令代碼101)
HT1621寫連續位址模式
模擬使用的LCD(圖1)與邏輯表(圖2)
圖1 圖2
此LCD可以使用AM4AA的Target Board中LCD的第20個8字(詳見AM4AA_Romter_UM)。
參考電路圖(圖3)
圖3
圖3電路圖中的LCD即爲AM4AA的Target Board中LCD的第20個8字。
例子功能
上電迴圈顯示數位0,1,2,……9
程式流程如下:
上電à設定1621的普通工作模式à開啓1621系統振盪器à設定1621系統時鐘源à選擇1621偏壓與公共埠à開啓1621 LCD偏壓發生器à點亮全部LCDà滅全部LCDà迴圈顯示數位
程式中Subroutine函數:
Send_com_nibble: 發送指令碼中的4bit,發送順序爲bit3àbit2àbit1àbit0,連續使用3次,可發完一個指令。
Send_nibble: 發送資料中的4bit,發送順序爲bit0àbit1àbit2àbit3
write_ID_address: 發送操作模式和位址,操作模式爲3bit,可選讀資料/寫資料/寫指令,位址爲6bit,發送由高位到低位。