zlg7290cs 8位數(shù)碼管驅(qū)動ic

品牌 zlg-mcu 型號 zlg7290cs
批號 09+ 封裝 soic24
營銷方式 庫存 產(chǎn)品性質(zhì) 熱銷
處理信號 模擬信號 工藝 混合集成

型號:zlg7290cs

:zlg-mcu

封裝:soic24

描述:全新原裝無鉛現(xiàn)貨

  

zlg7290使用說明

 

  一.        作用及其功能介紹

 

  zlg7290能夠直接驅(qū)動8 位共陰式數(shù)碼管(或64 只獨立的led),同時還可以掃描管理多達64 只按鍵。其中有8 只按鍵還可以作為功能鍵使用,就像電腦鍵盤上的ctrl、shift、alt 鍵一樣。另外zlg7290b 內(nèi)部還設(shè)置有連擊計數(shù)器,能夠使某鍵按下后不松手而連續(xù)有效。采用i2c 總線方式,與微控制器的接口僅需兩根信號線。可控掃描位數(shù),可控任一數(shù)碼管閃爍。

 

  二.        使用說明

 

  zlg7290b是基于i2c總線接口的芯片。主控單片機aduc831作為主器件時,內(nèi)部沒有i2c總線功能,因此需用spi總線的引腳來模擬i2c總線。具體連接如下:

 

  zlg7290b         aduc831

 

  gnd         dgnd

 

  sda         mosi

 

  scl         sclock

 

  /int          int0

 

  vcc         dvdd

 

  但是,這種連接不是唯一的,只是在所寫的軟件里需要這樣連接。其實中斷可以根據(jù)自己所選的中斷而定。地(gnd)和電源(vcc)也可以另外從電源上接過來。所用電源為5v。

三.軟件庫及調(diào)用說明

 

  (1)i2c頭文件庫

 

 ?、?void i2c_delay(); i2c延時程序

 

 ?、?void i2c_init(); i2c 總線初始化,使總線處于空閑狀態(tài)

 

  ⑶ void i2c_start(); 產(chǎn)生i2c 總線的起始狀態(tài)

 

 ?、?void i2c_write(char dat); 向i2c 總線寫1 個字節(jié)的數(shù)據(jù)

 

 ?、?char i2c_read(); 從從機讀取1 個字節(jié)的數(shù)據(jù)

 

 ?、?bit i2c_getack(); 讀取從機應(yīng)答位

 

 ?、?void i2c_putack(bit ack); 主機產(chǎn)生應(yīng)答位或非應(yīng)答位

 

 ?、?void i2c_stop(); 產(chǎn)生i2c 總線的停止狀態(tài)

 

 ?、?void idle(); 將i2c總線置于空閑狀態(tài),即將時鐘線和數(shù)據(jù)線都拉高

 

 ?、?bit i2c_puts(unsigned char slaveaddr,unsigned int subaddr,unsigned char submod,char *dat,unsigned int size); i2c 總線綜合發(fā)送函數(shù),向從機發(fā)送多個字節(jié)的數(shù)據(jù)

 

 ?、?bit i2c_gets(unsigned char slaveaddr,unsigned int subaddr,unsigned char submod,char *dat,unsigned int size);i2c 總線綜合接收函數(shù),從從機接收多個字節(jié)的數(shù)據(jù)

 

  ⑿ char gets2(unsigned char subaddr);

 

 ?。?)zlg7290函數(shù)庫

 

  首先要包含另一個庫zlg7290b.h,里面定義了zlg7290的各個寄存器地址和它本身的地址。而zlg7290.h包含的函數(shù)如下:

 

  ⑴ bit zlg7290_writereg(unsigned char regaddr, char dat) 向zlg7290 的某個內(nèi)部寄存器寫入數(shù)據(jù)

 

 ?、?unsigned char zlg7290_readreg(unsigned char regaddr) 從zlg7290 的某個內(nèi)部寄存器讀出數(shù)據(jù)

 

  ⑶ bit zlg7290_cmd(char cmd0, char cmd1) 向zlg7290 發(fā)送控制命令

 

 ?、?bit zlg7290_segonoff(char seg, bit b) 段尋址,單獨點亮或熄滅數(shù)碼管(或led)中的某一段

 

 ?、?bit zlg7290_download(char addr, bit dp, bit flash, char dat) 下載數(shù)據(jù)并譯碼

 

  說明:⑴,⑵,⑶,⑷,⑸中的函數(shù)都有返回值,0表示正常返回,1表示訪問zlg7290 時出現(xiàn)異常。

 

 ?。?)主函數(shù)zlg7290b.c;

 

  void int0_svc() interrupt 0 中斷服務(wù)函數(shù)

 

  void delay1(unsigned int t) 延時函數(shù)

 

  void systeminit() 系統(tǒng)初始化函數(shù),用于初始化定時器和讓zlg7290復(fù)位

 

  void clearall() 清除所有數(shù)碼管顯示函數(shù)

 

  void test_dispbuf() 測試直接寫顯存函數(shù),

 

  void test_download() 測試下載數(shù)據(jù)函數(shù)

 

  void test_scannum() 測試掃描不同數(shù)碼管函數(shù)

 

  void test_flash() 測試閃爍功能函數(shù)

 

  void test_segonoff() 測試段尋址函數(shù),用于將數(shù)碼管分段點亮

 

  void dispvalue(char x, unsigned char dat) 以十進制顯示數(shù)據(jù)函數(shù)

 

  void disphexvalue(char x, unsigned char dat) 以十六進制顯示數(shù)據(jù)函數(shù)

 

  void test_key() 測試按鍵函數(shù),自動讀出鍵值并且在數(shù)碼管上顯示