久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9364|回復: 3
打印 上一主題 下一主題
收起左側

數碼管驅動及鍵盤控制芯片CH451中文手冊

[復制鏈接]
跳轉到指定樓層
樓主
1、概述

CH451 是一個整合了數碼管顯示驅動和鍵盤掃描控制以及μP 監控的多功能外圍芯 片。CH451 內置 RC 振蕩電路,可以動態驅動 8 位數碼管或者 64 位 LED,具有 BCD 譯碼、 閃爍、移位等功能;同時還可以進行 64 鍵的鍵盤掃描;CH451 通過 1 線或者可以級聯的
4 線串行接口與單片機等交換數據;并且提供上電復位和看門狗等監控功能。

2、特點
2.1. 顯示驅動
●  內置大電流驅動級,段電流不小于 30mA,字電流不小于 160mA。
●  動態顯示掃描控制,直接驅動 8 位數碼管或者 64 位發光管 LED。
●  可選數碼管的段與數據位相對應的不譯碼方式或者 BCD 譯碼方式。
●  字數據左移、右移、左循環、右循環。
●  各數字獨立閃爍控制。
●  通過占空比設定提供 16 級亮度控制。
●  支持段電流上限調整,可以省去所有限流電阻。
●  掃描極限控制,支持 1 到 8 個數碼管,只為有效數碼管分配掃描時間。
2.2. 鍵盤控制
●  內置 64 鍵鍵盤控制器,基于 8×8 矩陣鍵盤掃描。
●  內置去抖動電路。
●  鍵盤中斷,低電平有效輸出。
●  提供按鍵釋放標志位。
2.3. 外部接口
●  可選高速的 4 線串行接口,支持芯片級聯,時鐘速度從 0 到 10MHz。
●  可選簡潔的 1 線串行接口。
●  內置 RC 阻容振蕩電路,同時支持外接阻容振蕩。
●  內置上電復位,提供高電平有效復位輸出和低電平有效復位輸出。
●  內置看門狗電路 Watch-Dog。
2.4. 其它雜項
●  可選多種封裝:DIP28、SOP28、DIP24S、CHIP。
●  經過授權采用了 2 項專利技術,低成本,簡便易用。
●  更多增強功能以及整體方案請索取相關資料(需簽署技術保密協議)。


3、封裝



5、功能說明
5.1. 一般說明
本手冊中的數據,以 B 結尾的為二進制數,以 H 結尾的為十六進制數,否則為十進制數,標注為 x 的位表示該位可以是任意值。
CH451 是一個多功能外圍芯片,通過 1 線或者可以級聯的 4 線串行接口與單片機、DSP、微處理器等控制器交換數據。CH451 包含三個功能:數碼管顯示驅動、鍵盤掃描控制、μP 監控,三個功能之間相互獨立,控制器可以通過操作命令分別啟用、關閉、設定CH451 的任何一個功能。CH451 的串行接口是由硬件實現的,控制器可以頻繁地通過串行接口進行高速操作,而絕對不會降低 CH451 的工作效率。

5.2. 顯示驅動
CH451 對數碼管和發光管采用動態掃描驅動,順序為 DIG0 至 DIG7,當其中一個引腳吸入電流時,其它引腳則不吸入電流。CH451 內部具有大電流驅動級,可以直接驅動 0.5英寸至 2 英寸的共陰數碼管,段驅動引腳 SEG6~SEG0 分別對應數碼管的段 G~段 A,段驅動引腳 SEG7 對應數碼管的小數點,字驅動引腳 DIG7~DIG0 分別連接 8 個數碼管的陰極;CH451 也可以連接 8×8 矩陣的發光二級管 LED 陣列或者 64 個獨立發光管;CH451 還可以通過外接反相驅動器支持共陽數碼管,或者外接大功率管支持大尺寸的數碼管。CH451 支持掃描極限控制,并且只為有效數碼管分配掃描時間。當掃描極限設定為 1時,唯一的數碼管 DIG0 將得到所有的動態驅動時間,從而等同于靜態驅動;當掃描極限設定為 8 時,8 個數碼管 DIG7~DIG0 各得到 1/8 的動態驅動時間;當掃描極限設定為 4時,4 個數碼管 DIG3~DIG0 各得到 1/4 的動態驅動時間,此時各數碼管的平均驅動電流將比掃描極限為 8 時增加一倍,所以降低掃描極限可以提高數碼管的顯示亮度。CH451 將分配給每個數碼管的顯示驅動時間進一步細分為 16 等份,通過設定顯示占空比支持 16 級亮度控制。占空比的值從 1/16 至 16/16,占空比越大,數碼管的平均驅動電流越大,顯示亮度也就越高,但占空比與顯示亮度之間是非線性關系。CH451 內部具有 8 個 8 位的數據寄存器,用于保存 8 個字數據,分別對應于 CH451所驅動的 8 個數碼管或者 8 組每組 8 個的發光二極管。CH451 支持數據寄存器中的字數據左移、右移、左循環、右循環,并且支持各數碼管的獨立閃爍控制,在字數據左右移動或者左右循環移動的過程中,閃爍控制的屬性不受影響。例如,可以設定 CH451 的字驅動引腳 DIG3 和 DIG6 所對應的數碼管閃爍,而其余數碼管不閃爍,在字數據左移后,仍然是 DIG3 和 DIG6 所對應的數碼管閃爍。
CH451 默認情況下工作于不譯碼方式,此時 8 個數據寄存器中字數據的位 7~位 0分別對應 8 個數碼管的小數點和段 G~段 A,對于發光二極管陣列,則每個字數據的數據位唯一地對應一個發光二級管。當數據位為 1 時,對應的數據管的段或者發光管就會點亮;當數據位為 0 時,則對應的數據管的段或者發光管就會熄滅。例如,第三個數據寄存器的位 0 為 1,所以對應的第三個數碼管的段 A 點亮;第五個數據寄存器的位 7 為 0,所以對應的第五個數碼管的小數點熄滅。通過設定,CH451 還可以工作于 BCD 譯碼方式,該方式主要應用于數碼管驅動,單片機只要給出二進制數 BCD 碼,由 CH451 將其譯碼后直接驅動數碼管顯示對應的字符,簡化了單片機譯碼的工作。BCD 譯碼方式是指對數據寄存器中字數據的位 4~位 0 進行兼容 BCD 的譯碼,控制段驅動引腳 SEG6~SEG0 的輸出,對應于數碼管的段 G~段 A,同時用字數據的位 7 控制段驅動引腳 SEG7 的輸出,對應于數碼管的小數點,字數據的位 6 和位 5 不影響 BCD 譯碼的輸出,可以是任意值。下表為數據寄存器中字數據的位 4~位 0 進行 BCD 譯碼后,所對應的段 G~段 A 以及數碼管顯示的字符。另外,在字數據的位 4~位 0 為 11010B 時,即使字數據的位 7 是 0,數碼管仍然直接顯示.小數點字符,其段 G~段 A 輸出 0,而小數點輸出 1。參考下表,如果需要 在數碼管上顯示字符 0,只要置入數據 0xx00000B 或者 00H;需要顯示字符 0.(0 帶小數 點),只要置入數據 1xx00000B 或者 80H;反之,數據 1xx01000B 或者 88H 對應于字符 8.
(8 帶小數點);數據 0xx10011B 或者 13H 對應于字符=;數據 0xx11010B 或者 1AH 對應于

字符    .    (小數點);數據 0xx10000B 或者 10H 對應于字符        (空格,數碼管沒有顯示)。

5.3. 鍵盤掃描
CH451 的鍵盤掃描功能支持 8×8 矩陣的 64 鍵鍵盤。在鍵盤掃描期間,DIG7~DIG0
引腳用于列掃描輸出,SEG7~SEG0 引腳都帶有內部下拉,用于行掃描輸入;當啟用鍵盤
掃描功能后,DOUT 引腳的功能由串行接口的數據輸出變為鍵盤中斷以及數據輸出。
CH451 定期在顯示驅動掃描過程中插入鍵盤掃描。在鍵盤掃描期間,DIG7~DIG0 引
腳按照 DIG0 至 DIG7 的順序依次輸出高電平,其余 7 個引腳輸出低電平;SEG7~SEG0 引
腳的輸出被禁止,當沒有鍵被按下時,SEG7~SEG0 都被下拉為低電平;當有鍵被按下時,
例如連接 DIG3 與 SEG4 的鍵被按下,則當 DIG3 輸出高電平時 SEG4 檢測到高電平;為了
防止因為按鍵抖動或者外界干擾而產生誤碼,CH451 實行兩次掃描,只有當兩次鍵盤掃描
的結果相同時,按鍵才會被確認有效。如果 CH451 檢測到有效的按鍵,則記錄下該按鍵
代碼,并通過 DOUT 引腳產生低電平有效的鍵盤中斷,此時單片機可以通過串行接口讀取
按鍵代碼;在沒有檢測到新的有效按鍵之前,CH451 不再產生任何鍵盤中斷。CH451 不支
持組合鍵,也就是說,同一時刻,不能有兩個或者更多的鍵被按下。
CH451 所提供的按鍵代碼為 7 位,位 2~位 0 是列掃描碼,位 5~位 3 是行掃描碼,
位 6 是狀態碼(鍵按下為 1,鍵釋放為 0)。例如,連接 DIG3 與 SEG4 的鍵被按下,則按
鍵代碼是 1100011B 或者 63H,鍵被釋放后,按鍵代碼是 0100011B 或者 23H,其中,對應
DIG3 的列掃描碼為 011B,對應 SEG4 的行掃描碼為 100B。單片機可以在任何時候讀取按
鍵代碼,但一般在 CH451 檢測到有效按鍵而產生鍵盤中斷時讀取按鍵代碼,此時按鍵代
碼的位 6 總是 1,另外,如果需要了解按鍵何時釋放,單片機可以通過查詢方式定期讀取
按鍵代碼,直到按鍵代碼的位 6 為 0。下表是連接在 DIG7~DIG0 與 SEG7~SEG0 之間的鍵
被按下時,CH451 所提供的按鍵代碼。這些按鍵代碼具有一定的規律,如果需要鍵被釋放
時的按鍵代碼,則將表中的按鍵代碼的位 6 置 0,或者將表中的按鍵代碼減去 40H。

5.4. μP 監控
CH451 提供的μP 監控包括上電復位和看門狗 Watch-Dog。單片機、DSP、微處理器
等控制器的復位輸入引腳可以根據需要直接連接到 CH451 的 RST 引腳或者 RST#引腳,當
CH451 通電或者看門狗溢出時,RST 引腳輸出高電平有效的復位脈沖信號,RST#引腳輸出
低電平有效的復位脈沖信號。CH451 的上電復位脈沖信號同時作用于 CH451 芯片的內部電
路,而看門狗復位脈沖信號不會對 CH451 芯片的內部電路起作用。
CH451 的上電復位是指上電過程(從斷電狀態變為正常供電狀態的過程)中產生的
復位脈沖。CH451 的上電復位支持短至數微秒的快速上電過程和長達數秒的慢速上電過
程,以及正常供電狀態下電壓偶爾降低到復位門限以下的情況,但對于正常供電狀態下
電源電壓的小幅度波動以及各種短于數微秒的尖鋒干擾,CH451 不會產生復位信號。為了
減少 CH451 驅動大電流而產生的電源干擾,在設計印制電路板 PCB 時,應該緊靠 CH451
芯片,在正負電源之間并聯一組電源退耦電容,包括至少一個容量不小于 0.1uF 的獨石
或者瓷片電容和一個容量不小于 100uF 的電解電容。
CH451 在啟用看門狗功能后,只要清除輸入引腳 DCLK 的電平沒有變化,看門狗計時
器就會計時,當計滿溢出周期時,就會產生看門狗復位脈沖信號。為了避免計時溢出而
產生復位信號,控制器應該定期變化 DCLK 的電平,及時清除看門狗的計時。CH451 的看
門狗計時可以被下述的任何一個操作清除:上電復位、RSTI 引腳的手工復位、DCLK 從低
電平變為高電平、DCLK 從高電平變為低電平、DCLK 從高電平變為低電平再立即恢復為高
電平等。啟用看門狗功能后,當控制器的程序失控而使 DCLK 的電平長時間保持不變時,
CH451 就會輸出看門狗復位脈沖信號,從而使控制器復位并重新進入正常工作狀態。

5.5. 串行接口
CH451 具有硬件實現的高速 4 線串行接口,包括 4 根信號線:串行數據輸入線 DIN、
串行數據時鐘線 DCLK、串行數據加載線 LOAD、串行數據輸出線 DOUT。其中,DIN、DCLK、
LOAD 是帶上拉的輸入信號線,默認是高電平;DOUT 在未啟用鍵盤掃描功能時作為串行數
據輸出線,在啟用鍵盤掃描功能后作為鍵盤中斷和數據輸出線,默認是高電平。
DIN 用于提供串行數據,高電平表示位數據 1,低電平表示位數據 0,串行數據輸入
的順序是低位在前,高位在后。單片機可以在 DCLK 高電平期間變化 DIN 的電平,如果必
要也可以在 DCLK 低電平期間變化 DIN 的電平。另外,在上電復位后,CH451 默認選擇 1
線串行接口,所以單片機必須在 DCLK 輸出串行時鐘之前,先在 DIN 上輸出一個低電平脈
沖(由高電平變為低電平再恢復為高電平),通知 CH451 選擇 4 線串行接口。
DCLK 用于提供串行時鐘,CH451 在其上升沿從 DIN 輸入數據,在其下降沿從 DOUT
輸出數據。CH451 內部具有 12 位移位寄存器,在 DCLK 的上升沿,DIN 上的位數據被移入
移位寄存器的最高位寄存器,以此類推,原次低位數據移入最低位寄存器,在該上升沿
后的第一個下降沿,原次低位數據從 DOUT 輸出。CH451 允許 DCLK 引腳的串行時鐘頻率大
于 10MHz,從而可以實現高速串行輸入輸出。
LOAD 用于加載串行數據,CH451 在其上升沿加載移位寄存器中的 12 位數據,作為操
作命令分析并處理。也就是說,LOAD 的上升沿是串行數據幀的幀完成標志,此時無論移
位寄存器中的 12 位數據是否有效,CH451 都會將其當作操作命令。
單片機向 CH451 輸出串行數據的過程是(不是唯一的過程,可以有很多變化):
① 輸出一位數據,即向 DIN 輸出最低位數據 B0,并向 DCLK 輸出低電平脈沖(從高
電平變為低電平再恢復為高電平),其中包括一個上升沿使 CH451 輸入位數據;
② 以同樣的方式,輸出位數據 B1~B11;
③ 向 LOAD 輸出低電平脈沖,其中包括一個上升沿使 CH451 加載串行數據。
在本說明書中,將以 B0^B1^B2^B3^B4^B5^B6^B7^B8^B9^B10^B11^↑作為上述過程的
簡化描述,其中,^代表 DCLK 的上升沿,↑代表 LOAD 的上升沿,B0~B11 分別代表 1 位
數據,如果是字符 0 或 1 則對應 DIN 輸入的位數據,如果是字符 L 或 H 則對應 DOUT 輸出
的位數據 0 或 1。例如,1^0^0^0^0^0^0^0^0^1^0^0^↑表示向 CH451 發送了一組 12 位的
串行數據 001000000001B;1^1^1^0^↑H^H^L^L^L^H^H^表示先向 CH451 發送了一組 4 位的
串行數據 0111B,然后接收了一組 7 位的串行數據 1100011B。
在未啟用鍵盤掃描功能時,DOUT 用于輸出串行數據,移位寄存器中的最低位數據總
是在 DCLK 的下降沿出現在 DOUT 引腳。CH451 支持無限制的級聯,只要 3 根信號線就可以
連接無限多個 CH451 芯片。其中,所有 CH451 的 DCLK 并聯后連接單片機的 DCLK 輸出,
所有 CH451 的 LOAD 并聯后連接單片機的 LOAD 輸出,后級 CH451 的 DIN 連接前級 CH451
的 DOUT 輸出,最前級 CH451 的 DIN 連接單片機的 DIN 輸出。級聯電路中,單片機每次輸
出的串行數據必須是單個 CH451 的串行數據的位數乘以級聯的級數。例如,CH451 的串行
數據是 12 位,如果 3 個 CH451 進行級聯,則單片機每次輸出的數據位數必須是 36 位,
依次是后級 CH451 的命令數據、中級 CH451 的命令數據、前級 CH451 的命令數據。
下圖是在未啟用鍵盤掃描功能時,單片機通過串行接口向 CH451 發送 12 位數據的波
形示意圖,數據是 001000000001B,LOAD 的低電平脈沖可以更寬,圖中以虛線表示。


當啟用鍵盤掃描功能后,DOUT 用于鍵盤中斷和數據輸出,默認是高電平。當 CH451 檢測到有效按鍵時,DOUT 輸出低電平有效的鍵盤中斷;單片機被中斷后,發出讀取按鍵 代碼命令,CH451 在 LOAD 的上升沿后從 DOUT 輸出 7 位按鍵代碼的最高位;單片機繼續輸 出串行時鐘,在 DCLK 的每個下降沿,CH451 依次從 DOUT 輸出 7 位按鍵代碼的剩余 6 位, 順序是高位在前,低位在后;7 位按鍵代碼輸出完畢后,無論 DCLK 如何變化,CH451 都 將 DOUT 恢復為默認的高電平。單片機從 CH451 獲得按鍵代碼的過程是:
① 輸出一位數據,即向 DIN 輸出讀取按鍵代碼命令的最低位數據 B0,并向 DCLK 輸 出低電平脈沖;
② 以同樣的方式,輸出讀取按鍵代碼命令的位數據 B1~B11;
③ 向 LOAD 輸出低電平脈沖,其中包括一個上升沿使 CH451 加載串行數據,CH451
分析出是讀取按鍵代碼命令,立即在 DOUT 輸出按鍵代碼的最高位數據 K7;

④ 讀取一位數據,即從 DOUT 輸入按鍵代碼的最高位數據 K7,并向 DCLK 輸出低電
平脈沖;
⑤ 以同樣的方式,輸入按鍵代碼的位數據 K6~K0。
實際上,CH451 的讀取按鍵代碼命令只有位數據 B8~B11 是有效的,所以為了節約
時間,單片機發出的讀取按鍵代碼命令只需要 4 位數據,而不必發送 B0~B7。例如,按
鍵代碼是 63H,則上述過程的簡化描述是  1^1^1^0^↑H^H^L^L^L^H^H^,即先向 CH451 發
出讀取按鍵代碼命令 0111xxxxxxxxB,然后從 DOUT 接收按鍵代碼 1100011B。下圖是單片
機向 CH451 發送命令并接收按鍵代碼的波形示意圖,MCU 是指單片機的工作狀態。

6、操作命令

CH451 的操作命令均為 12 位,下表列出了 CH451 的各個操作命令所對應的 12 位串 行數據。其中,標注為 x 的位表示該位可以是任意值;標有名稱的位表示該位在 CH451 芯片內部具有相應的寄存器,其數據根據操作命令的不同而變化。

6.1. 空操作:0000xxxxxxxxB
空操作命令不對 CH451 產生任何影響。該命令可以在多個 CH451 級聯的應用中,透
過前級 CH451 向后級 CH451 發送操作命令而不影響前級 CH451 的狀態。例如,要將操作
命令 001000000001B 發送給兩級級聯電路中的后級 CH451(后級 CH451 的 DIN 引腳連接前
級 CH451 的 DOUT 引腳),只要在該操作命令后添加空操作命令 000000000000B 再發送,
簡化描述是  1^0^0^0^0^0^0^0^0^1^0^0^0^0^0^0^0^0^0^0^0^0^0^0^↑,那么,該操作命
令將經過前級 CH451 到達后級 CH451,而空操作命令留給了前級 CH451。另外,為了在不
影響 CH451 的前提下變化 DCLK 以清除看門狗計時,也可以發送空操作命令,在非級聯的
應用中,空操作命令可以只發送有效數據 B8~B11,簡化描述是 0^0^0^0^↑。

6.2. 芯片內部復位:001000000001B
內部復位命令將 CH451 的各個寄存器和各種參數復位到默認的狀態。芯片上電時,
CH451 總是被復位,此時各個寄存器均復位為 0,各種參數均恢復為默認值。

6.3. 字數據左移:001100000000B
字數據左移命令將 CH451 的字數據左移一次,即從 DIG0 向 DIG7 移動一位,然后最
右邊的 DIG0 補進數據 00H。例如,在數碼管 DIG7~DIG0 顯示“87654321”時,執行字數
據左移命令,顯示變為“7654321 ”(不譯碼方式)或者“76543210”(BCD 譯碼方式)。

6.4. 字數據右移:001100000010B
字數據右移命令將 CH451 的字數據右移一次,即從 DIG7 向 DIG0 移動一位,然后最
左邊的 DIG7 補進數據 00H。例如,在數碼管 DIG7~DIG0 顯示“87654321”時,執行字數
據右移命令,顯示變為“ 8765432”(不譯碼方式)或者“08765432”(BCD 譯碼方式)。

6.5. 字數據左循環:001100000001B
字數據左循環命令將 CH451 的字數據左循環一次,即從 DIG0 向 DIG7 移動一位,然
后最右邊的 DIG0 補進原 DIG7 的數據。例如,在數碼管 DIG7~DIG0 顯示“87654321”時,
執行字數據左循環命令,顯示變為“76543218”。

6.6. 字數據右循環:001100000011B
字數據右循環命令將 CH451 的字數據右循環一次,即從 DIG7 向 DIG0 移動一位,然
后最左邊的 DIG7 補進原 DIG0 的數據。例如,在數碼管 DIG7~DIG0 顯示“87654321”時,
執行字數據右循環命令,顯示變為“18765432”。

6.7. 設定系統參數:010000000[WDOG][KEYB][DISP]B
設定系統參數命令用于設定 CH451 的系統級參數:看門狗使能 WDOG,鍵盤掃描使能
KEYB,顯示驅動使能 DISP。各個參數均通過 1 位數據控制,將相應的數據位置為 1 則啟
用該功能,否則關閉該功能(默認值)。例如,命令數據 010000000101B 表示啟用看門狗
的功能、關閉鍵盤掃描的功能、啟用顯示掃描驅動的功能。

6.8. 設定顯示參數:0101[MODE][LIMIT][INTENSITY] B
設定顯示參數命令用于設定 CH451 的顯示參數:譯碼方式 MODE,掃描極限 LIMIT,
顯示亮度 INTENSITY。譯碼方式 MODE 通過 1 位數據控制,置 1 時選擇 BCD 譯碼方式,置
0 時選擇不譯碼方式(默認值)。掃描極限 LIMIT 通過 3 位數據控制,數據 001B~111B
和 000B 分別設定掃描極限為 1~7 和 8(默認值)。顯示亮度 INTENSITY 通過 4 位數據控

制,數據 0001B~1111B 和 0000B 分別設定顯示驅動占空比為 1/16~15/16 和 16/16(默 認值)。例如,命令數據 010101110000B 表示選擇不譯碼方式、掃描極限為 7、顯示驅動 占空比為 16/16;命令數據 010110001010B 表示選擇 BCD 譯碼方式、掃描極限為 8、顯示 驅動占空比為 10/16。

6.9. 設定閃爍控制:0110[D7S][D6S][D5S][D4S][D3S][D2S][D1S][D0S]B
設定閃爍控制命令用于設定 CH451 的閃爍顯示屬性:D7S~D0S 分別對應于 8 個字驅
動 DIG7~DIG0。閃爍屬性 D7S~D0S 分別通過 1 位數據控制,將相應的數據位置為 1 則使
能閃爍顯示,否則為正常顯示,不閃爍(默認值)。例如,命令數據 011000100001B 表示
設定數碼管 DIG5 和 DIG0 閃爍顯示,其余數碼管正常顯示,不閃爍。

6.10. 加載字數據:1[DIG_ADDR][DIG_DATA]B
加載字數據命令用于將字數據 DIG_DATA 寫入 DIG_ADDR 指定地址的數據寄存器中。
DIG_ADDR 通過 3 位數據指定數據寄存器的地址,數據 000B~111B 分別指定地址 0~7,
對應于 DIG0~DIG7 引腳驅動的 8 個數碼管。DIG_DATA 是 8 位的字數據。例如,命令數據
100001111001B 表示將字數據 79H 寫入第 1 個數據寄存器,如果是不譯碼方式,則 DIG0
引腳驅動的數碼管將顯示 E;命令數據 110010001000B 表示將字數據 88H 寫入第 5 個數據
寄存器,如果是 BCD 譯碼方式,則 DIG4 引腳驅動的數碼管將顯示 8.。

6.11. 讀取按鍵代碼:0111xxxxxxxxB
讀取按鍵代碼命令用于獲得 CH451 最近檢測到的有效按鍵的按鍵代碼。該命令是唯
一的具有數據返回的命令,CH451 從 DOUT 引腳輸出按鍵代碼,按鍵代碼總是 7 位數據,
最高位是狀態碼,位 5~位 0 是掃描碼。讀取按鍵代碼命令的位數據 B0~B7 可以是任意
值,所以控制器可以將該操作命令縮短為 4 位數據 B8~B11。例如,CH451 檢測到有效按
鍵并中斷,按鍵代碼是 5EH,簡化描述  1^1^1^0^↑表示向 CH451 發出讀取按鍵代碼命令
0111xxxxxxxxB,但實際并不讀取按鍵代碼;簡化描述 1^1^1^0^↑H^L^H^H^H^H^L^表示先
向 CH451 發出讀取按鍵代碼命令 0111xxxxxxxxB,然后從 DOUT 獲得按鍵代碼 5EH。

8、應用
8.1.連接單片機(下圖)
CH451 通過串行接口與單片機相連接。U2(28 腳封裝的CH451)向單片機 U1(51 系
列AT89C2051)提供復位信號RESET 和系統時鐘信號SCLK,如果要求定時精確,單片機
也可以用晶振獲得系統時鐘信號。CH451 的段驅動引腳串接了電阻 R1(200Ω),用以限
制和均衡段驅動電流,在 5V 電源電壓下,串接200Ω電阻通常對應段電流 13mA。電容C2
和C3 布置于U2 的電源引腳附近,用于電源退耦,減少驅動大電流產生的干擾。當不需
要鍵盤功能時,還可以省去 KEY 信號線,只使用 DCLK、DIN、LOAD 三根信號線;當使用
鍵盤功能時,CH451 的 DOUT 引腳的KEY 信號線最好連接到單片機的中斷輸入引腳,如果
連接到非中斷輸入引腳,則應該使用查詢方式確定 CH451 是否檢測到有效按鍵。




8.2. 驅動數碼管(上圖)
CH451 可以動態驅動 8 個共陰數碼管,所有數碼管的相同段引腳(段 A~段 G 以及小
數點)并聯后通過串接的限流電阻 R1 連接 CH451 的段驅動引腳 SEG0~SEG7,各數碼管的
陰極分別由 CH451 的 DIG0~DIG7 引腳進行驅動。串接限流電阻 R1 的阻值越大則段驅動
電流越小,數碼管的顯示亮度越低,R1 的阻值一般在 60Ω至 400Ω之間,在其它條件相
同的情況下,應該優先選擇較大的阻值。在數碼管的面板布局上,建議數碼管從左到右
的順序是 N1 靠左邊,N8 靠右邊,以便匹配字左右移動命令和字左右循環移動命令。

8.3. 鍵盤掃描(下圖)
CH451 具有 64 鍵的鍵盤掃描功能,如果應用中只需要很少的按鍵,則可以在 8×8
矩陣中任意去掉不用的按鍵。為了防止鍵被按下后在 SEG 信號線與 DIG 信號線之間形成
短路,影響數碼管顯示,一般應該在 CH451 的 DIG0~DIG7 引腳與鍵盤矩陣之間串接限流
電阻 R2,其阻值可以從 1KΩ至 10KΩ。



當數碼管多于 8 個時,可以采用多個 CH451 進行驅動。多個 CH451 與單片機的連接 方式,有兩種方案:一是單片機為每個 CH451 提供一根獨立的 LOAD 信號線,但 DIN 信號 線和 DCLK 信號線同時提供給所有的 CH451,也就是說,LOAD 信號線相當于 CH451 的片選線;二是將多個 CH451 進行級聯。圖中是以級聯方式驅動發光二極管 LED 點陣,U3(PIC 系列單片機)通過 DIN1、DCLK 和 LOAD 三根信號線控制所有的 CH451。參考 16×16 布局 圖,4 個 8×8 發光管陣列 L1~L4 組成 16×16 的點陣模塊,如果要顯示一個漢字,只要 將 32 字節的點陣數據通過 8 次 48 位的加載字數據命令送給 CH451 就可以了。因為是 4 個 CH451 級聯,所以每個操作命令都必須是 48 位數據,依次是 U7、U6、U5 和 U4 的命令 數據,最后由 LOAD 信號線輸出上升沿通知所有的 CH451 加載各自的命令數據。

8.5. 外部阻容振蕩
CH451 使用一個系統時鐘信號來同步芯片內部的各個功能部件,例如,當系統時鐘
信號的頻率變高時,顯示驅動刷新將變快、按鍵響應時間將變短、上電復位信號的寬度
將變窄、看門狗周期也將變短。一般情況下,CH451 的系統時鐘信號是由內置的阻容振蕩
提供的,這樣就不再需要任何外圍電路,但內置 RC 振蕩的頻率受電源電壓的影響較大,
當電源電壓降低時,系統時鐘信號的頻率也隨之降低。
在某些實際應用中,可能希望 CH451 提供更長或者更短的顯示刷新周期、按鍵響應
時間等,這時就需要調節系統時鐘信號的頻率。CH451 提供了 CLK 引腳,用于外接阻容振
蕩。當在 CLK 引腳與地 GND 之間跨接電容后,系統時鐘信號的頻率將變低;當在 CLK 引
腳與正電源 VCC 之間跨接電阻后,系統時鐘信號的頻率將變高。因為 CH451 的系統時鐘
信號被用于芯片內部的所有功能部件,所以其頻率不宜進行大幅度的調節,一般情況下,
跨接電容的容量在 5pF 至 100pF 之間,跨接電阻的阻值在 20KΩ至 500KΩ之間。跨接一
個 47pF 的電容則頻率降低為一半,跨接一個 47KΩ的電阻則頻率升高為兩倍。
另外,CH451 的 CLK 引腳可以直接輸入外部的系統時鐘信號,但外部電路的驅動能
力不能小于±2mA。CH451 在 CLKO 引腳提供了系統時鐘信號的二分頻輸出,對于一些不要
求精確定時的實際應用,可以由 CLKO 引腳向單片機提供時鐘信號,簡化外圍電路。

8.6. 單片機接口程序
下面提供了 U1(MCS-51 單片機)與 U2(CH451)的接口程序,供參考。

;****************************************************************************
;需要主程序定義的參數
CH451_DCLK    BIT    P1.7    ;串行數據時鐘,上升沿激活
CH451_DIN    BIT    P1.6    ;串行數據輸出,接 CH451 的數據輸入
CH451_LOAD    BIT    P1.5    ;串行命令加載,上升沿激活
CH451_DOUT    BIT    P3.2    ;INT0,鍵盤中斷和鍵值數據輸入,接 CH451 的數據輸出
CH451_KEY    DATA    7FH    ;存放鍵盤中斷中讀取的鍵值
;****************************************************************************
; 初始化子程序
RET
;
; 輸出命令子程序
; ENTRY: B-ACC 待寫的 12 位數據, 低 8 位在 ACC 中, 高 4 位在 B 的低 4 位中
; USE:    ACC, B, R7
CH451_WRITE:    CLR    EX0    ;禁止鍵盤中斷
CLR    CH451_LOAD    ;命令開始,此命令可以放在后面
MOV    R7,#08H    ;將 ACC 中 8 位送出
CH451_WRITE_8:    RRC    A    ;低位在前,高位在后
CLR    CH451_DCLK
MOV    CH451_DIN,C    ;送出一位數據
SETB    CH451_DCLK    ;產生時鐘上升沿通知 CH451 輸入位數據
DJNZ    R7,CH451_WRITE_8 ;位數據未完繼續
MOV    A,B
MOV    R7,#04H    ;將 B 中 4 位送出
CH451_WRITE_4:    RRC    A    ;低位在前,高位在后
CLR    CH451_DCLK
MOV    CH451_DIN,C    ;送出一位數據
SETB    CH451_DCLK    ;產生時鐘上升沿通知 CH451 輸入位數據
DJNZ    R7,CH451_WRITE_4 ;位數據未完繼續
SETB    CH451_LOAD    ;產生加載上升沿通知 CH451 處理命令數據
SETB    EX0    ;允許鍵盤中斷
RET
;
; 輸入鍵值子程序
; EXIT:    ACC 鍵值數據
; USE:    ACC, R7
CH451_READ:    CLR    EX0    ;禁止鍵盤中斷
CLR    CH451_LOAD    ;命令開始
MOV    A,#07H    ;讀取鍵值命令的高 4 位 0111B MOV    R7,#04H    ;忽略 12 位命令的低 8 位
CH451_READ_4:    RRC    A    ;低位在前,高位在后
CLR    CH451_DCLK
MOV    CH451_DIN,C    ;送出一位數據
SETB    CH451_DCLK    ;產生時鐘上升沿鎖通知 CH451 輸入位數據
DJNZ    R7,CH451_READ_4    ;位數據未完繼續
SETB    CH451_LOAD    ;產生加載上升沿通知 CH451 處理命令數據
CLR    A    ;先清除鍵值單元以便移位
MOV    R7,#07H    ;讀入 7 位鍵值
CH451_READ_7:    MOV    C,CH451_DOUT    ;讀入一位數據
CLR    CH451_DCLK    ;產生時鐘下升沿通知 CH451 輸出下一位
RLC    A    ;數據移入 ACC,高位在前,低位在后
SETB    CH451_DCLK
DJNZ    R7,CH451_READ_7    ;位數據未完繼續
CLR    IE0    ;清中斷標志,讀操作過程中有低電平脈沖
SETB    EX0    ;允許鍵盤中斷
RET
;
; 鍵盤中斷子程序
; USE:    堆棧 4 字節
CH451_INTER:    PUSH    PSW    ;現場保護
    PUSH    ACC   
    CLR    CH451_LOAD    ;命令開始
    MOV    A,#0F7H    ;讀鍵值命令,忽略命令的低 8 位,高 4 位用作結束標志
CH451_INTER_4:    SETB    C    ;在高位添 0 以檢測位數據結束
    RRC    A    ;低位在前,高位在后
    CLR    CH451_DCLK   
    MOV    CH451_DIN,C    ;送出一位數據
    SETB    CH451_DCLK    ;產生時鐘上升沿鎖通知 CH451 輸入位數據
CJNE    A,#0FFH,CH451_INTER_4 ;位數據未完繼續,共 4 位,完成后為 0FFH
    SETB    CH451_LOAD    ;產生加載上升沿通知 CH451 處理命令數據
    MOV    A,#0FCH    ;該數據用以檢測位數據結束
CH451_INTER_7:    MOV    C,CH451_DOUT    ;讀入一位數據
    CLR    CH451_DCLK    ;產生時鐘下升沿通知 CH451 輸出下一位
    RLC    A    ;數據移入 ACC,高位在前,低位在后
    SETB    CH451_DCLK   
    JC    CH451_INTER_7    ;位數據未完繼續,共 7 位,完成后才移出 0
    MOV    CH451_KEY,A    ;保存鍵值
    POP    ACC   
    POP    PSW   
    CLR    IE0    ;清中斷標志,該指令需根據實際情況作修改
    RETI        ;中斷返回
;
;****************************************************************************

完整的Word格式文檔51黑下載地址:
CH451DS1.PDF (232.71 KB, 下載次數: 15)



評分

參與人數 1黑幣 +10 收起 理由
a89588038 + 10 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:538350 發表于 2019-5-27 16:45 | 只看該作者
樓主有沒有測過CH451掃描的波形,可不可以給發一個,SEG按照手冊解釋是依次拉高,為什么我測著是都同時高呢?
回復

使用道具 舉報

板凳
ID:538350 發表于 2019-5-31 11:40 | 只看該作者
我知道了,確實是依次拉高,不過一直存在個長的高電平,在空隙里,,都拉低,然后輪詢一下,就是依次拉高一下,然后又進入很長的高電平。
回復

使用道具 舉報

地板
ID:490426 發表于 2020-5-20 09:34 | 只看該作者
為什么我的按鍵掃描沒有中斷,電壓是4.6V手冊說這不會影響啊


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久国产一区二区三区不卡 | 亚洲在线视频 | 国产精品美女在线观看 | 黄免费观看| 丁香五月网久久综合 | 久久久91 | 亚洲精品久久久一区二区三区 | 不卡一区 | 欧美中文字幕一区二区三区亚洲 | 欧美a区 | 中文字字幕在线中文乱码范文 | 久久一本| 久久久亚洲成人 | 日韩欧美在线一区 | 欧美九九九 | 久久综合久久综合久久 | 国产精品久久久久久久久久三级 | 久草在线影 | 五月婷婷丁香 | 户外露出一区二区三区 | 区一区二区三在线观看 | 欧美二区乱c黑人 | 三级在线观看 | 91在线一区 | 91精品国产综合久久久亚洲 | 久久男人| 一区二区三区四区av | 天天干亚洲 | 日韩精品一区二区三区在线观看 | 精品国产免费人成在线观看 | 狠狠亚洲 | 日本特黄a级高清免费大片 特黄色一级毛片 | 激情三区 | 国产网站在线播放 | 免费中文字幕日韩欧美 | 正在播放国产精品 | 中文在线播放 | av大片| 久久首页 | 亚洲日韩中文字幕一区 | 91久久久久久 |