久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8054|回復: 3
收起左側

zlg7289鍵盤和數碼管驅動程序+應用電路+資料下載

[復制鏈接]
ID:140725 發表于 2016-10-17 21:26 | 顯示全部樓層 |閱讀模式
zlg7289應用電路圖:
0.png
zlg7289資料:
0.png

zlg7289矩陣鍵盤的應用:
0.png


源程序:
  1. /*該程序實現的功能是在小鍵盤按鍵,在LED上顯示所按的鍵的數值*/
  2. #include <stdio.h>
  3. #include "hardware.h"
  4. #include "zlg7289.h"
  5. #define SDIO_CTRLIO      0X4  //PF2
  6. #define SDIOOUT()  (PDATF&=(~SDIO_CTRLIO));
  7. #define SDIOIN()   (PDATF|=SDIO_CTRLIO);

  8. unsigned char keymap[]={  7,4,1,0,10,0,0,0,8,5,
  9. 2,17,11,0,0,0,9,6,3,16,
  10. 12,13,0,0,14,0,15,0,0,0,
  11. 0,0,0,0,0, 0,0,0,0,0,
  12.                               0,0,0,0,0, 0,0,0,0,0,
  13. 0,0,0,0,0, 0,0,0,0,0,
  14. 0,0,0,0
  15. };        //鍵盤映射表


  16. void sendsiodata(unsigned char data)
  17. {
  18. I_ISPC=0x10;         //中斷掛起清零寄存器 清除未響應中斷請求([4] INT_SIO = 1 為清除)
  19. SIODAT=data;        //給SIO數據寄存器賦值
  20. SIOCON|=(0x1<<3);        //SIO控制寄存器澹([3] = 1 為 SIO開始)
  21. while(!(INTPND&0x10));        //中斷掛起寄存器([4] INT_SIO = 1 為請求)
  22. I_ISPC=0x10;
  23. }

  24. unsigned char readsiodata()
  25. {
  26. SDIOIN();        //端口F控制寄存器的PF2設置成Input
  27. sendsiodata(0);        
  28. SDIOOUT();        //端口F控制寄存器的PF2設置成Output
  29. return SIODAT;        //返回SIO數據寄存器的值
  30. }

  31. char getkey()
  32. {
  33. char key,mykey;
  34. INTMSK|=(0X1<<26);

  35. while(PDATG&0x10);

  36. ZLG7289_ENABLE();
  37. sendsiodata(ZLG7289_CMD_RDKEY);
  38. mykey=readsiodata();        //mykey的值為該鍵在鍵盤影射表中的位子
  39. ZLG7289_DISABLE();
  40. INTMSK&=(~0X1<<26);
  41. key=keymap[mykey];         //查表得出該鍵的值
  42. printf("mykey is %d\nreturn key is %d\n",mykey,key);
  43. return key;
  44. }

  45. static void Delay(int t)         //延時函數
  46. {
  47.         int i;
  48.         for(;t>0;t--)
  49.                 for(i=0;i<400;i++);
  50. }

  51. int led_showdata(unsigned int a)
  52. {
  53. int i=0;
  54. INTMSK|=(0X1<<26);
  55. ZLG7289_ENABLE();
  56. sendsiodata(ZLG7289_CMD_RST);         //發送鍵盤的絕對值到SIODAT
  57. Delay(20);

  58. a%=100000000;         //為了避免a的值超出8 位數,如果超出8 位則將超出部分舍去
  59. //利用ZLG7289 將a 顯示到LED上
  60. for(i=0;i<8 && a !=0 ;i++)
  61. {
  62. sendsiodata(ZLG7289_CMD_DATA1|i);
  63. sendsiodata(a%10);
  64. a/=10;
  65. Delay(10);
  66. }
  67. for(;i<8;i++)
  68. {
  69. sendsiodata(ZLG7289_CMD_DATA0|i);
  70. sendsiodata(0xf);
  71. Delay(10);
  72. }

  73. ZLG7289_DISABLE();
  74. INTMSK&=(~0X1<<26);
  75. return 0;
  76. }

  77. int main()
  78. {
  79. printf("inputEnterExit!\n");
  80. while( (i = getkey()) != 15)        //當小鍵盤按到回車鍵時退出,其他情況則將鍵盤值顯示到LED上
  81. {
  82. led_showdata(i);
  83. Delay(2000);
  84. }
  85. return 0;
  86. }
復制代碼
0.png
所有資料下載:
zlg7289鍵盤加數碼管驅動程序及資料.rar (1.42 MB, 下載次數: 112)
回復

使用道具 舉報

ID:64765 發表于 2019-12-5 15:51 | 顯示全部樓層
學習了,謝謝分享。
回復

使用道具 舉報

ID:64765 發表于 2020-2-3 20:43 | 顯示全部樓層
正好需要此資料,雪中送炭,謝了。
回復

使用道具 舉報

ID:686739 發表于 2020-2-5 09:45 來自觸屏版 | 顯示全部樓層
學習一下,謝謝分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 黄色免费网 | 久久免费国产 | 日本a级大片 | 精东影业一区二区三区 | 黄色一级小说 | 理论片中文字幕 | 国产免费久久 | 超碰99在线 | 欧洲美一区二区三区亚洲 | 亚洲免费专区 | 99福利视频| 国产一区在线视频 | av福利网站 | 午夜视频在线免费观看 | 色噜噜狠狠一区二区三区果冻 | 91超碰人人 | 在线天堂视频 | 国产在线小视频 | 国产欧美一区二区三区视频在线观看 | 国产免费成人 | 天堂99| 91福利网站 | 日本在线不卡视频 | 懂色av一区二区三区 | 动漫av在线 | 精品福利在线观看 | 成人小视频在线 | 国产草草 | 国产精品自拍av | 中文字幕在线观看免费视频 | 国产亚洲视频在线观看 | 日韩成人中文字幕 | 亚洲蜜桃av| 日本亚洲天堂 | 亚洲激情欧美激情 | 99精品久久| 国产精品欧美激情 | 久久91精品| 国产成人精品视频 | 毛茸茸性猛交xxxx | 久久成人一区 |