| 品牌 | zlg-mcu | 型號 | zlg7290cs |
| 批號 | 09+ | 封裝 | soic24 |
| 營銷方式 | 庫存 | 產品性質 | 熱銷 |
| 處理信號 | 模擬信號 | 工藝 | 混合集成 |
型號:zlg7290cs
:zlg-mcu
封裝:soic24
描述:全新原裝無鉛現貨
zlg7290使用說明
一. 作用及其功能介紹
zlg7290能夠直接驅動8 位共陰式數碼管(或64 只獨立的led),同時還可以掃描管理多達64 只按鍵。其中有8 只按鍵還可以作為功能鍵使用,就像電腦鍵盤上的ctrl、shift、alt 鍵一樣。另外zlg7290b 內部還設置有連擊計數器,能夠使某鍵按下后不松手而連續有效。采用i2c 總線方式,與微控制器的接口僅需兩根信號線。可控掃描位數,可控任一數碼管閃爍。
二. 使用說明
zlg7290b是基于i2c總線接口的芯片。主控單片機aduc831作為主器件時,內部沒有i2c總線功能,因此需用spi總線的引腳來模擬i2c總線。具體連接如下:
zlg7290b aduc831
gnd dgnd
sda mosi
scl sclock
/int int0
vcc dvdd
但是,這種連接不是唯一的,只是在所寫的軟件里需要這樣連接。其實中斷可以根據自己所選的中斷而定。地(gnd)和電源(vcc)也可以另外從電源上接過來。所用電源為5v。
三.軟件庫及調用說明
(1)i2c頭文件庫
⑴ void i2c_delay(); i2c延時程序
⑵ void i2c_init(); i2c 總線初始化,使總線處于空閑狀態
⑶ void i2c_start(); 產生i2c 總線的起始狀態
⑷ void i2c_write(char dat); 向i2c 總線寫1 個字節的數據
⑸ char i2c_read(); 從從機讀取1 個字節的數據
⑹ bit i2c_getack(); 讀取從機應答位
⑺ void i2c_putack(bit ack); 主機產生應答位或非應答位
⑻ void i2c_stop(); 產生i2c 總線的停止狀態
⑼ void idle(); 將i2c總線置于空閑狀態,即將時鐘線和數據線都拉高
⑽ bit i2c_puts(unsigned char slaveaddr,unsigned int subaddr,unsigned char submod,char *dat,unsigned int size); i2c 總線綜合發送函數,向從機發送多個字節的數據
⑾ bit i2c_gets(unsigned char slaveaddr,unsigned int subaddr,unsigned char submod,char *dat,unsigned int size);i2c 總線綜合接收函數,從從機接收多個字節的數據
⑿ char gets2(unsigned char subaddr);
(2)zlg7290函數庫
首先要包含另一個庫zlg7290b.h,里面定義了zlg7290的各個寄存器地址和它本身的地址。而zlg7290.h包含的函數如下:
⑴ bit zlg7290_writereg(unsigned char regaddr, char dat) 向zlg7290 的某個內部寄存器寫入數據
⑵ unsigned char zlg7290_readreg(unsigned char regaddr) 從zlg7290 的某個內部寄存器讀出數據
⑶ bit zlg7290_cmd(char cmd0, char cmd1) 向zlg7290 發送控制命令
⑷ bit zlg7290_segonoff(char seg, bit b) 段尋址,單獨點亮或熄滅數碼管(或led)中的某一段
⑸ bit zlg7290_download(char addr, bit dp, bit flash, char dat) 下載數據并譯碼
說明:⑴,⑵,⑶,⑷,⑸中的函數都有返回值,0表示正常返回,1表示訪問zlg7290 時出現異常。
(3)主函數zlg7290b.c;
void int0_svc() interrupt 0 中斷服務函數
void delay1(unsigned int t) 延時函數
void systeminit() 系統初始化函數,用于初始化定時器和讓zlg7290復位
void clearall() 清除所有數碼管顯示函數
void test_dispbuf() 測試直接寫顯存函數,
void test_download() 測試下載數據函數
void test_scannum() 測試掃描不同數碼管函數
void test_flash() 測試閃爍功能函數
void test_segonoff() 測試段尋址函數,用于將數碼管分段點亮
void dispvalue(char x, unsigned char dat) 以十進制顯示數據函數
void disphexvalue(char x, unsigned char dat) 以十六進制顯示數據函數
void test_key() 測試按鍵函數,自動讀出鍵值并且在數碼管上顯示