TTP229触摸模块的51单片机驱动程序

2019-11-08来源: 51hei关键字:TTP229  触摸模块  51单片机  驱动程序

网购了一块TTP229的触摸模块。模块中实际使用的是8229BSF集成块。本人用STC89C52搭建了测试电路。用12864液晶显示。
显示01-16,表示16个按钮的对应值。

制作出来的实物图如下:
TTP229.jpgTTP229_1.jpg

单片机源程序如下:

/*********************************************************************************

* 【作    者】: 

* 【版    本】: 

* 【函数功能】: 利用单线制DS18B20温度传感器, 并在液晶12864上显示

* 【使用说明】: 触摸板P1的第一和第三跳线短接

**********************************************************************************/

#include

#include

#include

#include

#include


#define uchar unsigned char

#define uint  unsigned int


// 液晶现实属区区

uchar code pic1[];

uchar code pic2[];

uchar code pic3[]; 

/* 液晶控制接口 -----------------------------------------------*/

sbit RS  = P0^7;

sbit WRD = P0^6;

sbit E   = P0^5;

sbit PSB = P0^4;

sbit RES = P0^3;


sbit sign = P1^0;

sbit sign1 = P1^1;


// TTP229接口

sbit SDA=P1^2;

sbit SCL=P1^3; 


// 温度传感器接口

sbit DQ=P3^7; //数据传输线接单片机的相应的引脚 

/* 温度测量用变量定义 -----------------------------------------------*/

unsigned char tempL=0; //设全局变量

unsigned char tempH=0; 

unsigned int sdate;//测量到的温度的整数部分

unsigned char xiaoshu1;//小数第一位

unsigned char xiaoshu2;//小数第二位

unsigned char xiaoshu;//两位小数

bit  fg=1;        //温度正负标志


// 液晶处理函数

void TransferData(char data1,bit DI);

void display(void);

void display_grapic(void);

void delayms(uint n);

void DisplayLine(uchar line1,uchar line2);

void DisplayGraphic(uchar *adder);

void delay(uint m);

void lcd_mesg(uchar *adder1);


void delay1ms(unsigned int t);


// 18B20温度传感器函数

void ReadTemperature(void);

void Init_DS18B20(void);

unsigned char ReadOneChar();

void WriteOneChar(unsigned char dat);

void Delay10us(unsigned int t);

void Initial_com(void);


// 扫描TTP229电容触摸键盘模块

unsigned int TTP229B(void);


/********************************************************************

* 名称 : Convert(uchar In_Dat)

* 功能 : 因为电路设计时,P2.0--P2.7接法刚好了资料中的相反,所以设计该函数。

* 输入 : 1602资料上的值

* 输出 : 送到1602的值

***********************************************************************/

unsigned char Convert(uchar In_Dat) {

    uchar i, Out_Dat;

    for(i=0; i<8; i++){

                Out_Dat=  In_Dat;

    }

    return Out_Dat;

}


void initinal(void)  {         //LCD字库初始化程序

        delay(40);             //大于40MS的延时程序

        PSB=1;                 //设置为8BIT并口工作模式

        delay(1);              //延时

        RES=0;                 //复位

        delay(1);              //延时

        RES=1;                 //复位置高

        delay(10);

        TransferData(0x30,0);  //Extended Function Set :8BIT设置,RE=0: basic instruction set, G=0 :graphic display OFF

        delay(100);            //大于100uS的延时程序

        TransferData(0x30,0);  //Function Set

        delay(37);             ////大于37uS的延时程序

        TransferData(0x08,0);  //Display on Control

        delay(100);            //大于100uS的延时程序

        TransferData(0x10,0);  //Cursor Display Control光标设置

        delay(100);            //大于100uS的延时程序

        TransferData(0x0C,0);  //Display Control,D=1,显示开

        delay(100);            //大于100uS的延时程序

        TransferData(0x01,0);  //Display Clear

        delay(10);             //大于10mS的延时程序

        TransferData(0x06,0);  //Enry Mode Set,光标从右向左加1位移动

        delay(100);            //大于100uS的延时程序

}


/********************************************************************

* 名称 : initina2()

* 功能 : 主函数

* 输入 : 无

* 输出 : 无

***********************************************************************/

void     initina2(void)           //LCD显示图片(扩展)初始化程序

          {

           delay(40);             //大于40MS的延时程序

           PSB=1;                 //设置为8BIT并口工作模式

           delay(1);              //延时

           RES=0;                 //复位

           delay(1);              //延时

           RES=1;                 //复位置高

           delay(10);


           TransferData(0x36,0);  //Extended Function Set RE=1: extended instruction

           delay(100);            //大于100uS的延时程序

           TransferData(0x36,0);  //Extended Function Set:RE=1: extended instruction set

           delay(37);             ////大于37uS的延时程序

           TransferData(0x3E,0);  //EXFUNCTION(DL=8BITS,RE=1,G=1)

           delay(100);            //大于100uS的延时程序

           TransferData(0x01,0);  //CLEAR SCREEN

           delay(100);            //大于100uS的延时程序

          }


/********************************************************************

* 名称 : Main()

* 功能 : 主函数

* 输入 : 无

* 输出 : 无

***********************************************************************/

void    main(void) {

    uchar init18B20[]={

                "温度传感器18B20 "  

                "初始化中......  "

                "                "

                "                "

        };

        

        uchar curtemp[]={

                "当前温度:      "  

                "                "

                "                "

                "                "

        };

        uchar IC_DAT2[]={

            "白日依山尽,    "                        //0x80

            "欲穷千里目,    "                        //0x90

            "黄河入海流。    "                        //0x88

            "更上一层楼。    "                        //0x98

        };

        unsigned int key=0;


        // 初始化串口

        Initial_com();


        initinal();                    //调用LCD字库初始化程序

        delay(100);            //大于100uS的延时程序 

        lcd_mesg(IC_DAT2);     //显示中文汉字2

        delayms(80);


        sign = 0;

    // 显示温度传感器18B20初始化中

        initinal();                    //调用LCD字库初始化程序

        delay(100);            //大于100uS的延时程序

        lcd_mesg(init18B20);      //显示中文汉字1

[1] [2] [3]
关键字:TTP229  触摸模块  51单片机  驱动程序 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic479372.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:单片机按键&串口控制步进电机正反转调速含程序和仿真
下一篇:AT89S52单片机16LED摇摇棒设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

博世推出专为智能家居虚拟触摸屏BML100PI模块
在中国上海举行的慕尼黑上海电子展上,Bosch Sensortec展示了BML100PI,这是一款能够为智能家居各类表面增加虚拟触摸屏的互动投影模块,可将普通储物架变为个人助理。 BML100PI模块为交互式投影提供了一套完整的即用型解决方案,可实现高度灵活的虚拟触摸屏。所生成的激光束可在任何表面上创建无需聚焦图像,然后逐行扫描以检测任何手势或手指移动。准确的手势和触摸识别无需校准或调整。Bosch Sensortec的交互式投影模块为所有智能家居设备增添触摸屏,并可实现高度直观的用户体验,与静态物理屏幕相比,可谓是一种完全灵活的替代产品。 智能家居的私人助理家用设备制造商可以使用BML100PI来创建“智能储
发表于 2019-03-21
博世推出专为智能家居虚拟触摸屏BML100PI模块
利用STM32外部中断驱动四路数字触摸感应传感器模块
,main函数函数体中都是调用初始化配置函数,然后进入死循环,等待中断响应。以上就是STM32外部中断的介绍,功能可以不用管,知道该配置哪些东西就够了。ok,基础知识学习完了吧!那么就可以买个具体模块来试试了。这里用的是四路数字触摸感应传感器模块。下面是该模块的简要描述:一、模块描述该传感器模块是四路触摸感应模块,基于TTP224芯片。通过触摸数字(1、2、3、4),可以起到控制外围硬件电路的作用。手按数字开关,对应的灯(D1、D2、D3、D4)会亮,对应的四个输出口(OUT1、OUT2、OUT3、OUT4)中的一个会输出高电平。模块参数:1、板载TTP224电容式4键触摸感应IC2、板载4路电平状态指示灯3、工作电压
发表于 2017-11-09
利用STM32外部中断驱动四路数字触摸感应传感器模块
e络盟推出具有触摸界面的彩色显示模块的WaRP7开发平台
开发服务经销商 e络盟 推出了具有触摸界面的集成彩色显示模块,以及用于 WaRP7 开发平台的 Android SDK(软件开发套件),该开发平台面向物联网和可穿戴应用。WaRP7 LCD 模块将标准的 MIPI 显示屏与 DSI(显示串行接口)和 I2C(集成电路)接口相结合,专为 WaRP7 产品而设计。屏幕为圆形,有效面积直径为 31.9 mm,320 RGB × 320 点分辨率,功耗为 226 mW。WaRP7 解决了多种技术难题,使开发人员可专心创建差异化功能,从而加快和方便了物联网及可穿戴设备的开发。该平台由一块主板和一块子卡组成。主板基于 NXP® i.MX 7Solo 应用处理器,并且采用 ARM® Cortex
发表于 2017-09-12
stm32开发板开发笔记(5)-2.4寸26万色TFT触摸屏模块
因为产品要用到显示屏和触摸,就买了一个2.4寸的彩色触摸屏模块。 原理图: 显示屏的驱动芯片是ILI9325  ILI9325 is a 262,144-color one-chip SoC driver for a-TFT liquid crystal display with resolution of 240RGBx320 dots, comprising a 720-channel source driver, a 320-channel gate driver, 172,800 bytes RAM for graphic data of 240RGBx320 dots, and
发表于 2016-08-22
stm32开发板开发笔记(5)-2.4寸26万色TFT触摸屏模块
Microchip推出完备的投射电容式触摸和3D手势界面模块
SiS新产品集成了投射电容式触摸传感器以及Microchip获奖的GestIC® 3D手势技术   全球领先的整合单片机、混合信号、模拟器件和闪存专利解决方案的供应商——Microchip Technology Inc.(美国微芯科技公司)日前宣布与矽统科技股份有限公司(SiS)合作共同为客户带来完备的投射电容式触摸(PCAP)和3D手势界面模块,以期加快开发速度并降低成本。有了这些模块,开发人员可以更轻松地使用Microchip获奖的GestIC®技术来设计多点触控和3D手势显示应用。GestIC技术可以实现距显示屏表面最远20 cm以内的手部跟踪。手势的优点是通用性强、卫生
发表于 2016-01-13
AVR单片机跑马灯的仿真设计
简易的跑马灯设计。基于AVR单片机仿真原理图如下:单片机源程序如下:/********************************************************************                            汇诚科技*********************************************************************/#include <iom16v.h>
发表于 2019-11-11
AVR单片机跑马灯的仿真设计
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved