HT69F240 LCD / LED 面板驅動及按鍵掃描功能 HT69F240 LCD / LED 面板驅動及按鍵掃描功能 文件編碼:HA0342T 簡介 HT69F240 內建 LED 及 LCD 驅動器,不需外加組件即可直接推動 LCD 及 LED,LCD 驅動引 腳均可通過軟體設定選為 SEG 或者 SCOM,使用靈活。HT69F240 內含 4K Word Flash 程式 儲存器、256 Byte 數據儲存器、64 Byte EEPROM 等,本文以 HT69F240 為母體,給出 1/3 bias、 1/4 duty 的 LCD 驅動方法以及 LED 驅動方法。 工作原理 LCD 驅動原理 根據 LCD 的驅動原理可知,LCD 像素點上只能加上 AC 電壓,LCD 顯示器的對比度由 COM 腳上的電壓值減去 SEG 腳上的電壓值決定,當這個電壓差大於 LCD 的飽和電壓就能打開像 素點,小於 LCD 閾值電壓就能關閉像素點。採用如下的波形驅動 LCD 有助於提高 LCD 的 使用壽命。HT69F240 提供能夠產生 VDD/3、2/3VDD 電壓的介面 (即 SEG0 ~ SEG23),因而只要 I/O 口能夠模擬輸出 LCD 驅動信號,就能完成 1/3 bias 規格的 LCD 驅動。 由於 LCD 工作的最佳幀頻率通常在 25Hz ~ 250Hz,而 HT69F240 系統時鐘選擇 HIRC 4MHz, 設定時基定時器 0 的時鐘 fTB 為 fSYS/4,設定溢出時間為 1024/fTB,則每 1.024ms 發生一次溢出 中斷,若以此為時基,1/4 duty 時的幀週期為 1.024ms 8 = 8.192ms,即 1/ 8.192ms = 122.07Hz 符合要求。 1 HT69F240 LCD / LED 面板驅動及按鍵掃描功能 所用的 LCD 屏規格如下: PIN 1 2 3 5 COM1 风量 COM1 COM2 COM3 4 COM2 COM3 COM4 COM4 6 7 8 1A 9 10 11 2A S4 自动 # 13 14 15 16 17 18 22 23 24 8A 1F 1B 2F 2B S5 制冷 3F 3B 4F 4B 5F 5B 6F 6B 7F 7B 8F 8B S2 1G 1C 2G 2C S6 抽湿 3G 3C 4G 4C 5G 5C 6G 6C 7G 7C 8G 8C S3 1E 1D 2E 2D S7 制暖 3E 3D 4E 4D 5E 5D 6E 6D 7E 7D 8E 8D 工作溫度 0℃ TO +50℃ 連接方式 兩邊出針,直插 儲存溫度 -10℃ TO +60℃ 工作電壓 21 S1 TN,正圖 驅動條件 20 PM 3A AM 4A COL 5A 开机 6A 关机 7A 顯示模式 視角 19 60'CLOCK 偏光片類型 1/4 Duty、1/3 Bias 絲印類型 3.0V 下圖為 1/3 bias 規格 LCD 的 COM0 ~ COM3 驅動波形。 2 半透 外印 HT69F240 LCD / LED 面板驅動及按鍵掃描功能 HT69F240 內部提供了 24 個 SEG 的輸出,每個 SEG 均可以當做 SCOM 或普通 SEG 使用,並 且每個 SEG 還同時與 LED 驅動及普通 IO 口復用,可以通過設定 PAFS0、PAFS1、PBFS0、 PBFS1、PCFS0、PCFS1、PDFS0 這些暫存器的相應位元來選擇相應引腳的輸出功能,通過 設定這些暫存器可以選擇 IO 口作為普通 IO 輸出或輸出 1/3VDD 或輸出 2/3VDD,因此,任選 24 個 SEG 中的 4 個作為 SCOM,其餘的 SEG 作為 LCD 的普通 SEG,軟體模擬出每個引腳 需要輸出的波形即可實現 1/3 bias、1/4 duty 的 LCD 驅動。 根據上述的波形,可知,LCD 的驅動波形分成兩個幀,每幀有 4 個階段,程式利用每一次 TimerBase0 的中斷設定每個相應的引腳輸出,等到 FRAM0 完成後轉而切換到 FRAM1,在 FRAM1 階段輸出相應的波形,如此下去 FRAM0 和 FRAM1 相互交替。 LED 驅動原理 數碼管的驅動通常採用動態掃描的方式,動態掃描就是將一切數碼管的 8 個顯現筆畫“a、 b、c、d、e、f、dp”的同名端連在一起,在每個數碼管的公共極 COM 添加位元選通操控電 路,位元選通由各自獨立的 I/O 口操控,當微控制器輸出字形碼時,一切數碼管都收到相同 的自形碼,通過對不同 COM 端的操控,就可以實現對需要顯現的數碼管實現選通,通常是 通過分時輪番操控各個 LED 數碼管的 COM 端,就使得各個數碼管輪番受控顯現。每個位 元數碼管的點亮時刻為 1 ~ 2ms。HT69F240 可以不接外圍電路的情況下直推 LED,本文選用 2 個四位八段共陰型數碼管組成 8 個位元的 LED 數碼管,每個四位八段數碼管引腳圖如下 3 6 B C3 7 5 C2 G 8 4 C1 C 9 3 F DP 10 2 A 11 12 E D C0 1 所示: HT69F240 LCD / LED 面板驅動及按鍵掃描功能 應用電路 LCD 驅動電路原理 1 KEY_GND 2 3 SEG0 4 5 C1 SEG1 0.1uF 6 COM3 7 VCC COM2 8 COM1 9 COM0 10 SEG19 11 SEG18 12 SEG17 13 KEY0_MODE SEG16 14 COM0 PA2/INT0/ICPCK PA0/ICPDA VSS PA1/LED0/SEG0/XT1 PA3/LED1/SEG1/XT2 VDD PD1/LED23/SEG23/OSC1 PD0/LED22/SEG22/OSC2 PC7/LED21/SEG21 PC6/LED20/SEG20 PC5/LED19/SEG19 PC4/LED18/SEG18 PC3/LED17/SEG17 PC2/LED16/SEG16 PA4/LED2/SEG2/CTP/ETCK PA5/LED3/SEG3/CTCK/ETPA PA6/LED4/SEG4/TX/ETPIA PA7/LED5/SEG5/RX PB0/LED6/SEG6/SDA PB1/LED7/SEG7/SCL PB2/LED8/SEG8/INT1/PTPI/ETPB PB3/LED9/SEG9/PTP/ETPIB PB4/LED10/SEG10/PTCK PB5/LED11/SEG11 PB6/LED12/SEG12 PB7/LED13/SEG13 PC0/LED14/SEG14 PC1/LED15/SEG15 HT69F240 28 27 26 25 24 23 22 21 20 19 18 17 16 15 SEG2 SEG3 SEG4 SEG5 SEG6 SEG7 SEG8 SEG9 SEG10 SEG11 SEG12 SEG13 SEG14 SEG15 HT69F240 KEY1_INC COM1 KEY2_DEC COM2 KEY3_SHOUTDOWN COM3 KEY_GND LCD驅動電路 SEG11 SEG10 SEG9 SEG8 SEG7 SEG6 SEG5 SEG4 SEG3 SEG2 SEG1 SEG0 13 14 15 16 17 18 19 20 21 22 23 24 SEG11 SEG10 SEG9 SEG8 SEG7 SEG6 SEG5 SEG4 SEG3 SEG2 SEG1 SEG0 SEG12 SEG13 SEG14 SEG15 SEG16 SEG17 SEG18 SEG19 COM0 COM1 COM2 COM3 12 11 10 9 8 7 6 5 4 3 2 1 SEG12 SEG13 SEG14 SEG15 SEG16 SEG17 SEG18 SEG19 COM0 COM1 COM2 COM3 LCD_1/3 bisa_1/4 duty 功能:利用 HT69F240 驅動 1/3 bias、1/4 duty 的 LCD,且按鍵掃描與 LCD 的 SCOM 共用相 同的 Pin。 KEY0_MODE:用於切換 LCD 的顯示模式(程式設有五種顯示模式) 。 KEY1_INC:用於增加 LCD 顯示的溫度值的十位數。 KEY2_DEC:用於減小 LCD 顯示的溫度值的個位數。 KEY3_SHOUTDOWN:用於系統開機和關機的按鍵。 KEY_GND:用於將四個按鍵的公共端接到 HT69F240 的同一個引腳上。 COM0 ~ COM3:LCD 的 SCOM 引腳。 SEG0 ~ SEG19:LCD 的 SEG 引腳。 (實際應用電路可參考 HT69F240 data sheet) 。 4 HT69F240 LCD / LED 面板驅動及按鍵掃描功能 6 5 COM_C6 SWITCH_KEY COM_C0 B C1 C2 4 COM_C5 3 A F 1 COM_C4 2 C0 B 6 SEG_B 5 COM_C2 C2 C1 3 SEG_F 4 COM_C1 F 2 SEG_A A C0 1 COM_C0 LED 驅動電路原理 SET_KEY COM_C1 INC_KEY G C C3 COM_C7 7 8 DP 9 D 10 E PA2/INT0/ICPCK PA0/ICPDA VSS PA1/LED0/SEG0/XT1 PA3/LED1/SEG1/XT2 VDD PD1/LED23/SEG23/OSC1 PD0/LED22/SEG22/OSC2 PC7/LED21/SEG21 PC6/LED20/SEG20 PC5/LED19/SEG19 PC4/LED18/SEG18 PC3/LED17/SEG17 PC2/LED16/SEG16 11 12 G C3 COM_C3 7 8 C 1 2 3 KEY_GND 4 C1 5 0.1uF 6 7 8 VCC SEG_DP 9 SEG_G 10 SEG_F 11 SEG_E 12 SEG_D 13 SEG_C 14 SEG_G DP 9 SEG_C SEG_DP 10 D SEG_D 11 SEG_E 12 E COM_C2 PA4/LED2/SEG2/CTP/ETCK PA5/LED3/SEG3/CTCK/ETPA PA6/LED4/SEG4/TX/ETPIA PA7/LED5/SEG5/RX PB0/LED6/SEG6/SDA PB1/LED7/SEG7/SCL PB2/LED8/SEG8/INT1/PTPI/ETPB PB3/LED9/SEG9/PTP/ETPIB PB4/LED10/SEG10/PTCK PB5/LED11/SEG11 PB6/LED12/SEG12 PB7/LED13/SEG13 PC0/LED14/SEG14 PC1/LED15/SEG15 HT69F240 DEC_KEY COM_C3 MOV_KEY KEY_GND COM_C4 28 27 26 25 24 23 22 21 20 19 18 17 16 15 COM_C0 COM_C1 COM_C2 COM_C3 COM_C4 COM_C5 COM_C6 COM_C7 SEG_A SEG_B LED驅動電路 HT69F240 功能:利用 HT69F240 直推 LED 數碼管,採用共陰型數碼管。 SWITCH_KEY:用於系統的開機和關機。 SET_KEY:用於進入設定模式和退出設定模式。 INC_KEY:用於增加數碼管的顯示值。 DEC_KEY:用於減小數碼管的顯示值。 MOV_KEY:用於選擇設定哪一個數碼管。 KEY_GND:用於把五個按鍵的公共端接到 HT69F240 相同的引腳上。 COM_C0 ~ COM_C7:LED 數碼管的 COM 引腳。 SEG_A ~ SEG_DP:為數碼管的 8 個 SEG 腳。 說明:INC_KEY、DEC_KEY、MOV_KEY 必須在 SET_KEY 按下(即進入設定模式)才有效, 否則正常顯示模式無效。 (實際應用電路可參考 HT69F240 data sheet) 。 5 HT69F240 LCD / LED 面板驅動及按鍵掃描功能 S/W 流程圖 LCD 主流程圖 中斷例程 程式開始 RAM初始化 清零 判斷一幀的四個階段是否 處理完(初始從幀0開始) 輸出幀0四個階段 的 值,每進入一次 中斷輸出一個階段 波形值 暫存器初始化 LCD控制 暫存器初始化 是否幀0向幀1切換 各變量初始化 TimerBase0初 始化,1ms來 一次中斷 清WDT等待中 斷來臨 N Y 輸出幀1各階段的 值,每進入一次中 斷輸出一次值 N 按鍵掃描,改變相 應的顯示值 是否有按鍵 按下 N 切換到幀1,每進 入一次中斷輸出 相應階段的值 Y 設定開關旗標, 關機或開機,中斷 返回 N 輸出幀0第一階段 各引腳值, 中斷返回 N 輸出幀0第一階段 各引腳的值, 中斷返回 Y 增加顯示的溫度 值,各引腳輸出相 應值,中斷返回 Y 減小顯示的溫度 值,各引腳輸出相 應值,中斷返回 Y 是否開關 按鍵按下 N 設定模式鍵 是否按下 Y 是否進入 設定模式 Y 遞增按鍵 是否按下 N 遞減按鍵 是否按下 N 輸出幀0第一階 段各引腳的值 中斷返回 6 HT69F240 LCD / LED 面板驅動及按鍵掃描功能 LCD 主流程圖 7 HT69F240 LCD / LED 面板驅動及按鍵掃描功能 程式説明 LCD 程式說明 本程式的採用的 LCD 屏用於設定兩位元溫度值的顯示,可以顯示 00℃ ~ 99℃。通過四個按 鍵實現四種功能,設定的功能是高位元溫度值可以遞增按鍵調節,低元位溫度值可以遞減 按鍵調節,模式按鍵切換不同的顯示模式,開關機按鍵用於開機或關機這四種功能。 程 式 主 要 是 把 LCD 屏 要 顯 示 的 值 放 置 在 COM0_STATE_H 、 COM0_STATE_M 、 COM0_STATE_L、COM1_STATE_H、COM1_STATE_M、COM1_STATE_L、COM2_STATE_H、 COM2_STATE_M、COM2_STATE_L、COM3_STATE_H、COM3_STATE_M、COM3_STATE_L 這些變量之中,通過設定這些變量的值,然後由 FRAM_SHOW 代碼段用於顯示 COM0 ~ COM3 的值,SHOW_STATE 代碼段用於顯示 SEG0 ~ SEG19,程式還有幀 0 和幀 1 切換的判 斷,從而在每一次中斷進入顯示對應幀對應階段的值,每一幀有四個階段,整個完整的驅 動波形分成幀 0 和幀 1 兩幀。此外按鍵掃描 KEY_SCAN 都是在幀 0 的首個階段才進行掃描 的,並不在幀 1 這個階段掃描,因此掃描的時間約 8ms 進行一次按鍵的掃描,然後通過掃 描值改變 LCD 存放值的那些變量。最終在每 1ms 的中斷顯示副程式顯示相應階段的值。 根據上述説明,分 8 次依次設定 COM0 ~ COM3、SEG0 ~ SEG19 的輸出,其中 COM0 ~ COM3、 SEG0 ~ SEG19 的實際輸出電壓值跟所處的幀號以及所要輸出的數字量是 0 還是 1 有關。如 下表。 幀號 IO 口實際輸出值 COM 輸出數字量 SEG 輸出數字量 0 1/3VDD VDD 2/3VDD VSS 0 1 0 1 1 2/3VDD VSS 1/3VDD VDD LED 程式說明 本程式實現的功能是利用 HT69F240 直推 8 個 LED 數碼管,採用共陰極數碼管,共五個功 能按鍵,分別為開關機、設定、遞增、遞減、移位。每個按鍵功能如下: 開關機鍵:用於開機和關機。 設定鍵:用於進入設定模式,只有設定鍵按下遞增鍵、遞減鍵、移位鍵才有效。 遞增鍵、遞減鍵、移位鍵:用於設定指定位元的數碼管顯示值增加還是減小,移位鍵用於 選擇需要操作的數碼管具體位置。 程式範例 具體程式見附件。 8 HT69F240 LCD / LED 面板驅動及按鍵掃描功能 結論 本範例可以實現 HT69F240 直推 LCD 和 LED,且實現 SCON 與 IO 掃描整合在相同的引腳上。 用戶只需稍加改造即可用於 1/3 bias、1/4 duty 的 LCD 上以及 LED 數碼管驅動上。 附件 Source Code 檔案的程式附件,敬請參閱 Holtek 網頁資訊。 源代碼 HT69F240_LED.rar HT69F240_LCD.rar 9
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project