|
zlg7289應用電路圖:
0.png (958.69 KB, 下載次數: 87)
下載附件
2016-10-17 21:22 上傳
zlg7289資料:
0.png (158.27 KB, 下載次數: 70)
下載附件
2016-10-17 21:22 上傳
zlg7289矩陣鍵盤的應用:
0.png (215.12 KB, 下載次數: 83)
下載附件
2016-10-17 21:23 上傳
源程序:
- /*該程序實現的功能是在小鍵盤按鍵,在LED上顯示所按的鍵的數值*/
- #include <stdio.h>
- #include "hardware.h"
- #include "zlg7289.h"
- #define SDIO_CTRLIO 0X4 //PF2
- #define SDIOOUT() (PDATF&=(~SDIO_CTRLIO));
- #define SDIOIN() (PDATF|=SDIO_CTRLIO);
- unsigned char keymap[]={ 7,4,1,0,10,0,0,0,8,5,
- 2,17,11,0,0,0,9,6,3,16,
- 12,13,0,0,14,0,15,0,0,0,
- 0,0,0,0,0, 0,0,0,0,0,
- 0,0,0,0,0, 0,0,0,0,0,
- 0,0,0,0,0, 0,0,0,0,0,
- 0,0,0,0
- }; //鍵盤映射表
- void sendsiodata(unsigned char data)
- {
- I_ISPC=0x10; //中斷掛起清零寄存器 清除未響應中斷請求([4] INT_SIO = 1 為清除)
- SIODAT=data; //給SIO數據寄存器賦值
- SIOCON|=(0x1<<3); //SIO控制寄存器澹([3] = 1 為 SIO開始)
- while(!(INTPND&0x10)); //中斷掛起寄存器([4] INT_SIO = 1 為請求)
- I_ISPC=0x10;
- }
- unsigned char readsiodata()
- {
- SDIOIN(); //端口F控制寄存器的PF2設置成Input
- sendsiodata(0);
- SDIOOUT(); //端口F控制寄存器的PF2設置成Output
- return SIODAT; //返回SIO數據寄存器的值
- }
- char getkey()
- {
- char key,mykey;
- INTMSK|=(0X1<<26);
- while(PDATG&0x10);
- ZLG7289_ENABLE();
- sendsiodata(ZLG7289_CMD_RDKEY);
- mykey=readsiodata(); //mykey的值為該鍵在鍵盤影射表中的位子
- ZLG7289_DISABLE();
- INTMSK&=(~0X1<<26);
- key=keymap[mykey]; //查表得出該鍵的值
- printf("mykey is %d\nreturn key is %d\n",mykey,key);
- return key;
- }
- static void Delay(int t) //延時函數
- {
- int i;
- for(;t>0;t--)
- for(i=0;i<400;i++);
- }
- int led_showdata(unsigned int a)
- {
- int i=0;
- INTMSK|=(0X1<<26);
- ZLG7289_ENABLE();
- sendsiodata(ZLG7289_CMD_RST); //發送鍵盤的絕對值到SIODAT
- Delay(20);
- a%=100000000; //為了避免a的值超出8 位數,如果超出8 位則將超出部分舍去
- //利用ZLG7289 將a 顯示到LED上
- for(i=0;i<8 && a !=0 ;i++)
- {
- sendsiodata(ZLG7289_CMD_DATA1|i);
- sendsiodata(a%10);
- a/=10;
- Delay(10);
- }
- for(;i<8;i++)
- {
- sendsiodata(ZLG7289_CMD_DATA0|i);
- sendsiodata(0xf);
- Delay(10);
- }
- ZLG7289_DISABLE();
- INTMSK&=(~0X1<<26);
- return 0;
- }
- int main()
- {
- printf("inputEnterExit!\n");
- while( (i = getkey()) != 15) //當小鍵盤按到回車鍵時退出,其他情況則將鍵盤值顯示到LED上
- {
- led_showdata(i);
- Delay(2000);
- }
- return 0;
- }
復制代碼
0.png (70.11 KB, 下載次數: 57)
下載附件
2016-10-17 21:25 上傳
所有資料下載:
zlg7289鍵盤加數碼管驅動程序及資料.rar
(1.42 MB, 下載次數: 112)
2016-10-17 21:24 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
|