精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

對CH451的概念、操作命令、硬件連接與實例的詳解

2oON_changxuemc ? 2018-02-03 10:08 ? 次閱讀

1) CH451簡介

CH451可用于LED數碼管顯示驅動、鍵盤掃描控制、μP監控電路等領域。芯片封裝包括雙列直插DIP28、SOP28以及DIP24S封裝。其內置RC振蕩電路,可以直接動態驅動8位數碼管或者64位LED,具有BCD譯碼或不譯碼功能,可實現數據的左移、右移、左循環、右循環、各數字獨立閃爍等控制功能。CH451內置大電流驅動級,段電流不小于30 m A,字電流不小于160mA,并有16級亮度控制功能。該器件內置64鍵鍵盤控制器,可實現8×8矩陣鍵盤掃描,并內置去抖動電路,可提供按鍵中斷與按鍵釋放標志位等功能。CH451可選擇簡潔的1線串行接口或高速4線串行接口,且內置上電復位,可提供高電平有效復位和低電平有效復位兩種輸出,同時內置看門狗電路。整合了數碼管顯示驅動和鍵盤掃描控制以及μP監控的多功能外圍芯片。用CH45l擴展鍵盤顯示接口,具有接口簡單、占用CPU資源少、外圍器件簡單、性價比高等優點,可在各種單片機系統中得到廣泛的應用。

2)CH451操作命令介紹

CH451共有11條操作命令,每條操作命令均為12位,其中高4位為標識碼,低8位為參數,x可為任意值(下同)

空操作(0000xxxxxxxxB)

空操作命令對CH451不產生任何影響,該命令可以在多個CH451級聯的應用中透過前級CH451向后級cH451發送操作命令,而不影響前級cH451的狀態。例如,要將操作命令001000000001B發送給兩級級聯電路中的后級CH45l(后級CH451的DIN引腳連接到前級CH451的DOUT引腳),只要在該操作命令后添加空操作命令000000000000B再發送,那么,該操作命令將經過前級cH451到達后級cH451,而空操作命令留給了前級CH451。另外,為了在不影響CH45l的前提下變化DCLK以清除看門狗計時器,也可以發送空操作命令。在非級聯的應用中,空操作命令可只發送高4位。

芯片內部復位(001000000001B)

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

字數據左移(001100000000B)

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

字數據右移(001100000010B)

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

字數據左循環(001100000001B)

字數據左循環命令將CH451的字數據左循環一次,即從DIGO向DIG7移動一位,然后最右邊的DIGO補進原DIG7的數據。例如,在數碼管DIG7-DIGO顯示“8”765432l”時,執行字數據左循環命令,顯示變為“76543218”。

字數據右循環(001100000011B)

字數據右循環命令將CH451的字數據右循環一次,即從DIG7向DIGO移動一位,然后最左邊的DIG7補進原DIG0的數據。例如,在數碼管DIG7-DIGO顯示“8765432l”時,執行字數據右循環命令,顯示變為“18765432"。

設定系統參數(010000000WDOG][KEYB][DIsP]B)

該命令用于設定cH451的系統級參數,如看門狗使能wDOG,鍵盤掃描使能KEYB,顯示驅動使能DISP。各個參數均可通過1位數據來進行控制,將相應的數據位置為1可啟用該功能,否則關閉該功能(默認值)。

設定顯示參數(0101[MoDE][LIMIT][INTENSITY]B)

此命令用于設定CH45l的顯示參數,如譯碼方式MODE(1位)、掃描極限LIMIT(3位)、顯示亮度INTENSITY(4位)等。譯碼方式MODE為1時選擇BcD譯碼方式,為0時選擇不譯碼方式。CH451默認工作于不譯碼方式,此時8個數據寄存器中字節數據的位7-位0分別對應8個數碼管的小數點和段G~段A,當數據位為1時,對應的數據段(或發光管)點亮;數據位為O時熄滅。cH451工作于BcD譯碼方式主要應用于數碼管驅動,單片機只要給出二進制數的BcD碼,便可由CH451將其譯碼,并直接驅動數碼管以顯示對應的字符。BcD譯碼方式是對數據寄存器中字節數據的位4~位0進行兼容BcD的譯碼,可用于控制段驅動引腳SEG6~SEGO的輸出,它們對應于數碼管的段G-段A,同時可用字節數據的位7控制段來驅動引腳SEG7的輸出以對應數碼管的小數點,字節數據的位6和位5不影響BcD譯碼的輸出,它們可以是任意值。將位4~位0進行BCD譯碼可顯示以下28個字符,其中00000B-0ll11B分別對應于“0~F”,10000B-11010B分別對應于“”空格、“+”、+或加號、“一”或減號、“=”等于號、“左方括號”、“右方括號”、“一”下劃線、“H”、“L”、“P”、“.”小數點、其余值為空格。

掃描極限uMIT控制位00lB~1l1B和000B(默認值)可分別設定掃描極限1~7和8。顯示亮度INTENSITY控制位的0001B~1111B和0000B(默認值)則用于分別設定顯示驅動占空比1/16~15/16和16/16,以實現16級顯示亮度控制。

設定閃爍控制(0110[D7s1][D6S][D5s][D4S][D3S][D2S][D1S][D0S]B)

設定閃爍控制命令用于設定CH451的閃爍顯示屬性,其中D7s-130S分別對應于8個字驅動DIG7~DIGO。閃爍屬性D7s-DOS分別通過l位數據控制,將相應的數據位置為1可使能閃爍顯示,否則為正常顯示,不閃爍(默認值)。

加載字數據(1[DIG-ADDR]DIG—DATAlB)

加載字數據命令用于將字節數據DIG_DATA(8位)寫入DIG_ADDR(3位)指定的數據寄存器中。DIG_ADDR的000B-111B分別用于指定數據寄存器的地址O~7,并分別對應于DIGO-DIG7引腳驅動的8個數碼管。DIG_DATA為待寫入的字節數據。

讀取按鍵代碼(0111xxxxxxxxB)

讀取按鍵代碼命令用于獲得cH451最近檢測到的有效按鍵的按鍵代碼。該命令是唯一的具有數據返回的命令,CH451通常從DOUT引腳輸出按鍵代碼,按鍵代碼總是7位數據,最高位是狀態碼,位5~位O是掃描碼。讀取按鍵代碼命令的位數據B7-B0可以是任意值,所以控制器可以將該操作命令縮短為4位數據Bl1~B8。例如,CH451檢測到有效按鍵并中斷時,如按鍵代碼是5EH,則先向CH451發出讀取按鍵代碼命令011lB,然后再從DOUT獲得按鍵代碼5EH。

CH451所提供的按鍵代碼為7位,位2一位O是列掃描碼,位5~位3是行掃描碼,位6是狀態碼(鍵按下為1,鍵釋放為O)。例如,連接DIG3與SEG4的鍵被按下時,按鍵代碼為63H,鍵被釋放后,按鍵代碼是23H。單片機可以在任何時候讀取按鍵代碼,但一般在CH451檢測到有效按鍵而產生鍵盤中斷時讀取按鍵代碼,此時按鍵代碼的位6總是1。另外,如果需要了解按鍵何時釋放,單片機可以通過查詢方式定期讀取按鍵代碼,直到按鍵代碼的位6為0。表1是連接在DIG7-DIGO與SEG7-SEGO之間的鍵被按下時,CH451所提供的按鍵代碼。這些按鍵代碼具有一定的規律,如果需要鍵被釋放時的按鍵代碼,可將表2中的按鍵代碼的位6置0,也可將表中的按鍵代碼減去40H。應注意的是CH451不支持組合鍵,也就是說,同一時刻,不能有兩個或者更多的鍵被按下。

表1 CH451按鍵代碼

對CH451的概念、操作命令、硬件連接與實例的詳解

3) 硬件連接

CH451能夠一次性驅動8位數碼管,與單片機串行通信。支持數碼管的左移,右移,左循環,右循環,獨立閃爍,16級亮度控制等功能。是單片機控制多個數碼管的得力助手,現將MEGA16單片機(MEGA16是AVR單片機,改程序稍加修改可以應用到8051單片機PIC單片機MSP430單片機上)驅動CH451的程序發布,希望能有所用。CH451的詳細資料可去官方網站下載。圖1為硬件連接電路圖。

對CH451的概念、操作命令、硬件連接與實例的詳解

圖1: CH451與LED數碼管連接電路圖

四)程序實例

AVRCH451驅動程序頭文件

#ifndef_CH451_H

#define_CH451_H

#include

//CH451命令宏定義

#defineCH451_RESET0x0201//復位

#defineCH451_LEFT MOV 0x0300//設置移動方式-左移

#defineCH451_LEFTCYC0x0301//設置移動方式-左循

#defineCH451_RIGHT MOV 0x0302//設置移動方式-右移

#defineCH451_RIGHTCYC0x0303//設置移動方式-右循

#defineCH451_SYSOFF0x0400//關顯示、鍵盤、看門狗

#defineCH451_SYSON10x0401//開顯示

#defineCH451_SYSON20x0403//開顯示、鍵盤

#defineCH451_SYSON30x0407//開顯示、鍵盤、看門狗功能

#defineCH451_DSP0x0500//設置默認顯示方式

#defineCH451_BCD0x0580//設置BCD譯碼方式

#defineCH451_TWINKLE0x0600//設置閃爍控制

#defineCH451_KEY0x0700//讀鍵盤代碼

#defineCH451_DIG00x0800//數碼管位0顯示

#defineCH451_DIG10x0900//數碼管位1顯示

#defineCH451_DIG20x0A00//數碼管位2顯示

#defineCH451_DIG30x0B00//數碼管位3顯示

#defineCH451_DIG40x0C00//數碼管位4顯示

#defineCH451_DIG50x0D00//數碼管位5顯示

#defineCH451_DIG60x0E00//數碼管位6顯示

#defineCH451_DIG70x0F00//數碼管位7顯示

//端口宏定義

#defineDCLK(1<<;PA3)

#defineDIN(1<<;PA5)

#defineLOAD(1<<;PA7)

#defineDOUT(1<<;PE5)

#defineCH451_DCLK_HIGHPORTA|=DCLK//時鐘信號

#defineCH451_DCLK_LOWPORTA&=~DCLK

#defineCH451_DIN_HIGHPORTA|=DIN//數據輸入

#defineCH451_DIN_LOWPORTA&=~DIN

#defineCH451_LOAD_HIGHPORTA|=LOAD//命令加載信號,上升延激活

#defineCH451_LOAD_LOWPORTA&=~LOAD

#defineCH451_DOUTPINE&DOUT//鍵盤中斷和鍵值數據輸出

externucharKeyValue;//鍵值全局聲明

//函數申明

voidCH451_WriteCommand(uintCommand);//CH451寫命令函數

voidCH451_Init();//CH451初始化函數

voidCH451_GetKeyValue();//CH451鍵盤代碼讀取函數

voidCH451_DisplayDig(ucharDIG,ucharData,ucharPoint);//CH451顯示一位數碼管函數

#endif

AVR CH451驅動程序文件

#include"CH451.h"

ucharKeyValue;//鍵值

//共陰數碼管編碼表

constucharDSYCode[18]={0x3F,0x06,0x5B,0x4F,//0,1,2,3

0x66,0x6D,0x7D,0x07,//4,5,6,7

0x7F,0x6F,0x77,0x7C,//8,9,A,b

0x39,0x5E,0x79,0x71,//C,d,E,F

0x40,0x00};//-,全滅

constuintDigCode[8]={CH451_DIG0,CH451_DIG1,CH451_DIG2,CH451_DIG3,

CH451_DIG4,CH451_DIG5,CH451_DIG6,CH451_DIG7};

//鍵盤編碼表

constucharKeyCode[16]={0x40,0x41,0x42,0x43,//0,1,2,3

0x48,0x49,0x4A,0x4B,//4,5,6,7

0x50,0x51,0x52,0x53,//8,9,A,B

0x58,0x59,0x5A,0x5B};//C,D,E,F

//CH451寫命令函數

voidCH451_WriteCommand(uintCommand){

uchari;

CH451_LOAD_LOW;//命令開始

for(i=0;i<12;i++){//送入12位數據,低位在前

if(Command&0x0001)CH451_DIN_HIGH;//輸出低位數據

elseCH451_DIN_LOW;

CH451_DCLK_LOW;

Command>>=1;//數據右移一位

CH451_DCLK_HIGH;//上升沿有效

}

CH451_LOAD_HIGH;//加載數據

}

//CH451初始化函數

voidCH451_Init(){

CH451_DIN_LOW;//低電平使能串行接口

CH451_DIN_HIGH;

CH451_WriteCommand(CH451_RESET);//復位CH451

CH451_WriteCommand(CH451_SYSON2);//開顯示、鍵盤

DDRE&=~DOUT;//PE5輸入方向

EICRB|=(1<

EIMSK|=(1<

}

//CH451鍵值讀取函數

voidCH451_GetKeyValue(){

uchari;

ucharGetKeyValue=0x00;//鍵盤代碼

CH451_WriteCommand(CH451_KEY);//發送讀取鍵值命令

for(i=0;i<7;i++){

GetKeyValue<<=1;

if(CH451_DOUT)GetKeyValue|=1;//從高到低讀入451的數據

elseGetKeyValue|=0;

CH451_DCLK_LOW;//下降沿有效

CH451_DCLK_HIGH;

}

if(GetKeyValue==0x00)return;//讀出鍵碼為0跳過

for(i=0;i<16;i++){//查找鍵盤代碼對應的鍵值

if(GetKeyValue==KeyCode){

KeyValue=i;

break;

}

}

}

//CH451顯示一位數碼管,DIG選擇數碼管,Data要顯示的數字,Point是否顯示小數點

voidCH451_DisplayDig(ucharDIG,ucharData,ucharPoint){

if(Point==1)CH451_WriteCommand(DigCode[DIG]|(DSYCode[Data]|0x80));

elseCH451_WriteCommand(DigCode[DIG]|DSYCode[Data]);

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6032

    文章

    44514

    瀏覽量

    632951
  • led數碼管
    +關注

    關注

    2

    文章

    73

    瀏覽量

    22065
  • CH451
    +關注

    關注

    0

    文章

    10

    瀏覽量

    12011

原文標題:AVR單片機驅動CH451實例程序_C語言

文章出處:【微信號:changxuemcu,微信公眾號:暢學單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ch451應用電路及程序

    CYGNAL 單片機簡介ch451應用電路及程序 
    發表于 07-20 22:01

    CH451數碼管驅動及鍵盤控制芯片相關資料分享

    CH451是 南京沁恒電子有限公司生產的芯片,它為雙列直插DIP28與SOP28封裝以及DIP24S封裝。內置RC振蕩電路,可以直接動態驅動8位數碼管或者64位LED,具有BCD譯碼或不譯碼功能,可
    發表于 04-26 07:03

    分享一種CH451與AMEG32的接口方案

    分享一種CH451與AMEG32的接口方案
    發表于 06-04 06:06

    ch451工作異常是怎么回事?

    請教一下ch451是否可以鍵盤和數碼管一起使用,目前遇到電路這樣接之后上電后數碼管直接有顯示如下圖,單片機發控制命令后無反應,能否幫看一下電路是否有問題,
    發表于 10-12 07:45

    CH451中文資料手冊pdf(數碼管驅動及鍵盤控制芯片)

    數碼管驅動及鍵盤控制芯片CH451中文手冊(第三版)CH451 是一個整合了數碼管顯示驅動和鍵盤掃描控制以及μP 監控的多功能外圍芯片。CH451 內置RC 振蕩電路,可以動態驅動8
    發表于 07-20 21:48 ?918次下載

    ch451數碼管驅動實例程序

    CH451 使用一個系統時鐘信號來同步芯片內部的各個功能部件,例如,當系統時鐘信號的頻率變高時,顯示
    發表于 07-20 21:55 ?211次下載
    <b class='flag-5'>ch451</b>數碼管驅動<b class='flag-5'>實例</b>程序

    數碼管驅動及鍵盤控制芯片CH451

    概述CH451是一個整合了數碼管顯示驅動和鍵盤掃描控制以及μP監控的多功能外圍芯片。CH451內置RC振蕩電路,可以動態驅動8位數碼管或者64位LED,具有BCD譯碼、閃爍、移位等功能;
    發表于 07-14 13:52 ?74次下載

    新型的鍵盤顯示驅動芯片CH451的性能特點和工作原理

    介紹一種新型的鍵盤顯示驅動芯片CH451的性能特點和工作原理,給出了CH451鍵盤顯示驅動芯片與MCS-51單片機的接口方法與相應的軟件驅動程序。
    發表于 09-11 16:47 ?67次下載

    CH451芯片的LED顯示系統的設計

    CH451芯片的LED顯示系統的設計 0 概述     LED點陣顯示是集微電子技術、計算機技術、信息處理于一體的新型顯示方式。由于其具有
    發表于 04-12 12:01 ?1731次閱讀
    <b class='flag-5'>CH451</b>芯片的LED顯示系統的設計

    數碼管顯示驅動和鍵盤掃描控制器CH451及其應用

    摘要:介紹一種新型的鍵盤顯示驅動芯片CH451的性能特點和工作原理,給出了CH451鍵盤顯示驅動芯片與,CH451單片機的接口方法與相應的軟件驅動程序。 關鍵詞:鍵盤顯示控制; 單片機;CH4
    發表于 02-26 09:55 ?130次下載
    數碼管顯示驅動和鍵盤掃描控制器<b class='flag-5'>CH451</b>及其應用

    鍵盤顯示芯片CH451與MEGA32的接口設計

    文中介紹MEGA32AVR單片機和鍵盤顯示驅動芯片CH451的接口設計與實現方法 ,給出了MEGA32控制兩片CH451硬件設計和C語言軟件實現。利用該設計能夠實現鍵盤控制、數碼管顯示和發光二極管亮滅功能,
    發表于 03-29 10:19 ?8次下載

    數碼管顯示驅動和鍵盤掃描控制器CH451及其應用

    本文介紹一種新型的鍵盤顯示驅動芯片CH451的性能特點和工作原理,給出了CH451鍵盤顯示驅動芯片與MCS一51單片機的接口方法與相應的軟件驅動程序。
    發表于 03-29 11:00 ?25次下載

    使用STM32F107單片機控制CH451數碼管左移顯示鍵碼值

    本文檔的主要內容詳細介紹的是利用STM32F107單片機控制CH451,數碼管依次左移顯示鍵碼值。
    發表于 02-15 08:00 ?28次下載
    使用STM32F107單片機控制<b class='flag-5'>CH451</b>數碼管左移顯示鍵碼值

    沁恒股份數碼管驅動及鍵盤控制芯片:CH451介紹

    CH451 是一個整合了數碼管顯示驅動和鍵盤掃描控制以及μP 監控的多功能外圍芯片。
    的頭像 發表于 11-12 11:37 ?2599次閱讀
    沁恒股份數碼管驅動及鍵盤控制芯片:<b class='flag-5'>CH451</b>介紹

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

    電子發燒友網站提供《數碼管驅動及鍵盤控制芯片CH451手冊.pdf》資料免費下載
    發表于 09-09 10:07 ?0次下載
    數碼管驅動及鍵盤控制芯片<b class='flag-5'>CH451</b>手冊