电容感应式16通道触模按键SGT002的应用_第1页
电容感应式16通道触模按键SGT002的应用_第2页
电容感应式16通道触模按键SGT002的应用_第3页
电容感应式16通道触模按键SGT002的应用_第4页
电容感应式16通道触模按键SGT002的应用_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电容感应式16通道触模按键SGT002的应用按键键盘开发软、硬件注意事项 一、硬件 1、 PCB 板按键面需铺地,提高抗干扰能力; 2、 按键与地之间的间距0.5mm; 3、 按键键盘尽量做大,以手指的最大有效接触面积为标准; 4、 按键通道口走线上请不要接不必要的焊盘; 5、 C4 请使用偏差小于10%的电容。C4 取10nF; 6、 请准确评估触摸介质厚度,以方便软件处理; 7、 触摸介质与按键PCB 需紧密连接; 8、 尽量减小触摸介质的厚度,这样可以增加按键识别的灵敏度; 9、 尽量使用1 层触摸介质,这样增加按键识别的可靠性; 二、软件 1、 目前按键有效差值:0CH(介质厚度大概在

2、1.2mm1.6mm,两层介质板); 2、 每个按键通道口的计数范围在0500H0800H 范围内; 3、 由于计数值会随外界环境的温、湿度的变化而变化,所以软件上需做好环境自适应的处理; /上位机软件以串口调试助手协助开发,直观地显示当前触模通道号;和 16进制数据:CL、CH /可以使用任意一款:串口调试助手软件。* ; 奥宇星单片机工作室 ; ; Copyright 2009 aoyux McuStudio ; All rights Reserved ;作者:奥宇星       QQ:393193589;stc12c5

3、616 晶振频率为11.0592MHz 指令周期:1.085069us/6功能说明:电容感应式16通道触模按键SGT002的应用 现在的消费类电子市场,更追求高端 高档次的产品,像 IPOD MP3 的触摸按键的实现,就是产品的一个设计的飞跃,它取消了机械按键的定位,开模,按键寿命等一系列问题,并使得美观大方,成功案例还有珠海魅族的 MP4 MINIPLAER 和巧克力手机,我相信在一些中高挡的产品,触摸按键的应用会越来越广泛 。 SGT002具有良好的抗高频干扰、防水性能、高灵敏度、外围器件特少(共5个外围阻容器件)、多通道(共16通道)等一些特点。 作者开发了SGT002的驱动程序,同时搭

4、配上、下位机软件的开发:可帮助客户快速开发SGT002,缩短新产品的开发周期。;*/ /下位机软件: /#include <reg52.h> #include <stc12c5616.h>/ #include <intrins.h> #define uint unsigned int/ #define uchar unsigned char/ #define ulong unsigned long/ #define ufloat unsigned float/ sbit dat=P32;/ sbit clk=P34;/ sbit in_t=P33;/ uch

5、ar a; /uchar SBUF_RI_Buffer10; uchar REM_Buffer5; uchar code DispTab='0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' uchar code DispTab_1='S','W

6、',' ',' ',' ',' ','C','L','=',' ',' ','C','H','=',' ',' ' uchar code DispTab_2=' ',' ',' ',' ',' ',' ',' ',' ',' 

7、9;,' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ' void init()/ TMOD=0x21; TH1=0xfd;/11.0592MHz 9600 TL1=0xfd; PCON&=0x80; SCON=0x40; AUXR=0x40;/波特率倍增 /11.0592MHz 115200 TH0=0x00;/ TL0=0x00;/ EA=1; ET0=1; TR0=0;

8、TR1=1; ES=0; REN=1; PT0=1; /PT0H=1;/定时器0中断优先级最高:第三 dat=1; clk=1; in_t=1; void delay1(uint z)/ delay(10); 10次为1ms uchar x; for(;z>0;z-) for(x=0;x<160;x+) void Time_interrupt(void) interrupt 1 /定时器0中断 TR0=0; void RS232_in(void) interrupt 4/串口中断 EA=0; if(RI=1)/接收 RI=0; /SBUF_RI_Buffer0=SBUF;/RS23

9、23接收缓冲区 / else /if(TI=1)/发送 TI=0; EA=1; void RS232()/通信检测 uchar i; /ES=0; /if(SBUF_RI_Buffer0=0xff) / for(i=0;i<2;i+)/显示:SW SBUF=DispTab_1i; while(TI=0); TI=0; for(i=2;i<3;i+)/显示:116 if(a>=10) SBUF=DispTaba/10; while(TI=0); TI=0; SBUF=DispTaba%10; while(TI=0); TI=0; else SBUF=DispTaba; whil

10、e(TI=0); TI=0; SBUF=DispTab_1i; while(TI=0); TI=0; for(i=3;i<9;i+)/显示:4个空格,CL= SBUF=DispTab_1i; while(TI=0); TI=0; /显示:CL值 SBUF=DispTab(REM_Buffer0/16); while(TI=0); TI=0; SBUF=DispTab(REM_Buffer0%16); while(TI=0); TI=0; for(i=9;i<14;i+)/显示:4个空格,CH= SBUF=DispTab_1i; while(TI=0); TI=0; SBUF=Dis

11、pTab(REM_Buffer1/16); while(TI=0); TI=0; SBUF=DispTab(REM_Buffer1%16); while(TI=0); TI=0; for(i=0;i<19;i+)/显示:4个空格 SBUF=DispTab_2i; while(TI=0); TI=0; /SBUF_RI_Buffer0=0x00; /ES=0; / void sgt002_init()/sgt002初始化 uchar i; delay1(100); /10ms for(i=0;i<24;i+) clk=0; _nop_(); clk=1; _nop_(); void

12、sgt002_write(uchar volue,volue_data)/sgt002 写操作 uchar i,volue_volue; clk=1; dat=1; _nop_(); dat=0; _nop_(); clk=0; _nop_(); for(i=0;i<3;i+) volue_volue=volue; volue_volue&=0x01; if(volue_volue=0x01) dat=1; else dat=0; clk=1; _nop_(); clk=0; _nop_(); volue=volue>>1; for(i=0;i<8;i+) vo

13、lue_volue=volue_data; volue_volue&=0x01; if(volue_volue=0x01) dat=1; else dat=0; clk=1; _nop_(); clk=0; _nop_(); volue_data=volue_data>>1; clk=1; dat=1; sgt002_read(uchar volue)/sgt002 读操作 uchar i,volue_volue; clk=1; dat=1; _nop_(); dat=0; _nop_(); clk=0; _nop_(); for(i=0;i<3;i+) volue_

14、volue=volue; volue_volue&=0x01; if(volue_volue=0x01) dat=1; else dat=0; clk=1; _nop_(); clk=0; _nop_(); volue=volue>>1; volue_volue=0x00; for(i=0;i<8;i+)/读 volue_volue=volue_volue>>1; clk=1; _nop_(); clk=0; _nop_(); if(dat=1) volue_volue|=0x80; clk=1; dat=1; return volue_volue; vo

15、id main() init();/系统初始化 sgt002_init();/sgt002初始化 sgt002_write(0x00,0x80);/sgt002 写操作 delay1(10); sgt002_write(0x00,0x80);/sgt002 写操作 while(1) /SW1=0x00; /SW2=0x01; /SW3=0x02; /SW4=0x03; /SW5=0x04; /SW6=0x05; /SW7=0x06; /SW8=0x07; /SW9=0x08; /SW10=0x09; /SW11=0x0a; /SW12=0x0b; /SW13=0x0c; /SW14=0x0d;

16、 /SW15=0x0e; /SW16=0x0f; for(a=0;a<16;a+) sgt002_write(0x02,a+0x80);/sgt002 写操作 SW0SW16 按键扫描 /sgt002_write(0x02,0x84);/sgt002 写操作 ,SW11 /delay1(10); while(in_t=0); REM_Buffer0=sgt002_read(0x05);/sgt002 读操作,读CL REM_Buffer1=sgt002_read(0x07);/sgt002 读操作,读CH if(REM_Buffer0<=0xa0) if(REM_Buffer1<=0x03) /SBUF_RI_Buffer0=0xff; RS232();/通信检测SBUF_RI_Buffer0=0xff; /delay1(100); /* if(REM_Buffer0<0xaa) for(a=0;a<60;a+) sgt002_write(0x02,0x8c);/sgt002 写操作 ,SW11 delay1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论