品牌 | 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ù)碼管上顯示