找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3401|回复: 4
打印 上一主题 下一主题
收起左侧

合泰触摸芯片C51单片机程序例程

[复制链接]
跳转到指定楼层
楼主
上节讲了LED驱动芯片的介绍,这次给大家推荐一款触摸芯片,我要介绍的是来自合泰的BS814A-2这款触摸芯片,他与上节将的通讯时一样的,它也是IIC通讯协议进行通讯的,具体如何使用请查阅它的DataSheep!
附上电路图


由于STC8G1K17它内部只有一组硬件IIC,这组已经被LED驱动芯片使用了,所以这次就的使用模拟IIC程序来进行通讯了,IIC的通讯协议这里不再强调了,需要了解的请转到http://www.51hei.com/bbs/dpj-210572-1.html
以下为单片机源程序
  1. #include "main.h"

  2. #define TOU_SDA  P34
  3. #define TOU_CLK  P35

  4. extern uint8_t Read_Touch(void);

  5. KEY_t KEY =
  6. {
  7.         Read_Touch,
  8. };

  9. //检测是否被触摸,被触摸及读取触摸数据
  10. static uint8_t Read_TouchData(void)
  11. {
  12.         uint8_t i;
  13.         uint8_t Touch_dat=0x00;
  14.         
  15.         TOU_SDA = 1;
  16.         TOU_CLK = 1;        
  17.         if(TOU_SDA==0)
  18.         {
  19.                 TOU_CLK = 0;
  20.                 for(i=0;i<8;i++)
  21.                 {
  22.                         Delay.delayus(80);  //稍作延时  45us
  23.                         TOU_CLK = 1;
  24.                         Touch_dat >>= 1;
  25.                         Delay.delayus(40);  //22.5us后读取数据,在数据的中间读取数据
  26.                         if(TOU_SDA)         //读取数据
  27.                                 Touch_dat |= 0x80;
  28.                         Delay.delayus(40);  //稍作延时  22.5us
  29.                         TOU_CLK = 0;                        
  30.                 }
  31.                 TOU_SDA = 1;  //释放总线
  32.                 TOU_CLK = 1;  //释放总线
  33.         }
  34.         return Touch_dat;
  35. }

  36. //将都到的触摸数据进行解析
  37. static uint8_t Read_Touch(void)
  38. {
  39.         uint8_t Touch_DAT;
  40.         
  41.         Touch_DAT = Read_TouchData();
  42.         switch(Touch_DAT)
  43.         {
  44.                 case 0x8F:return 0;break;  //没有按键按下,返回0
  45.                 case 0x9E:return 1;break;  //KEY1按键按下,返回1
  46.                 case 0x9D:return 2;break;  //KEY2按键按下,返回2
  47.                 case 0x9B:return 3;break;  //KEY3按键按下,返回3
  48.                 case 0x97:return 4;break;  //KEY4按键按下,返回4
  49.                 default:return 0;break;
  50.         }
  51. }
复制代码

上图2个文件下载: 触摸驱动程序.zip (1.1 KB, 下载次数: 35)

评分

参与人数 1黑币 +80 收起 理由
admin + 80 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:854029 发表于 2021-8-1 15:34 | 只看该作者
我用过,后来不用合泰了,如果你的按键不是和单片机在同一张PCB板上的最好不要用IIC或者其它串行传输数据的触摸芯片,当时我的按键板通过一条50cm的线连接主板,效果令人抓狂
回复

使用道具 举报

板凳
ID:686513 发表于 2021-8-2 12:01 | 只看该作者
学习一下学习一下学习一下
回复

使用道具 举报

地板
ID:766282 发表于 2021-8-2 13:24 | 只看该作者
来个完整的方案
回复

使用道具 举报

5#
ID:468878 发表于 2021-8-2 14:12 | 只看该作者
acolorwolf 发表于 2021-8-1 15:34
我用过,后来不用合泰了,如果你的按键不是和单片机在同一张PCB板上的最好不要用IIC或者其它串行传输数据的 ...

说说你的故事
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表