电容式触摸按键的设计与实现(软件部分)_第1页
电容式触摸按键的设计与实现(软件部分)_第2页
电容式触摸按键的设计与实现(软件部分)_第3页
电容式触摸按键的设计与实现(软件部分)_第4页
电容式触摸按键的设计与实现(软件部分)_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

1、 学校代码: 11059 学 号: 0805070076 Hefei University 毕业论文(设计)BACHELOR DISSERTATION 论文题目: 电容式触摸按键的设计与实现(软件部分) 学位类别: 工 学 学 士 学科专业: 自 动 化 作者姓名: 贾 克 慎 导师姓名: 储 忠 完成时间: 2012-5-24 电容式触摸按键的设计与实现(软件部分)中 文 摘 要当今,自动化控制系统已经在各行各业得到了广泛的应用和发展,在便携式媒体播放器和移动手持终端等大容量、高可视性产品的应用中,触摸式按键作为一种接口技术已被广泛采用。由于具有方便易用,时尚和低成本的优势,越来越多的电子产

2、品开始从传统的机械按键转向触摸式按键。在触摸按键技术方面,目前主要可分为电阻式触摸按键与电容式感应按键。由于电阻式的触摸按键需要在设备表面贴一张触摸电阻薄膜, 其耐用性较低;而电容感应按键技术具有在非金属操作面板上无须开孔处理、防水防污、易清洁、无机械开关磨损而寿命长等优点。本论文通过分析电容式触摸感应技术,研究人体触摸算法,设计出基于PIC单片机的电容式触摸按键系统。根据系统的要求完成了整体方案设计,在所设计的控制方案里对控制系统的软、硬件设计作了详细论述。本论文主要介绍软件部分,并将系统软件分为:系统初始化模块、按键识别模块、LCD显示模块、高优先级和低优先级中断服务程序模块。首先将各个模

3、块进行分析研究,然后进行软硬件联合调试,最后完成该毕业设计所要求的内容。关键词:电容式触摸感应;模块化;调试;PIC16F1937 Design and implementation of capacitive touch keysAbstractNowadays,automatic control systems have been widely used and developed in Every aspect of life,the application of portable media players and mobile handsets, such as large-capa

4、city, high-visibility products, the touch buttons as an interface technology has been widely adopted. Easy to use, stylish and low-cost advantage, more and more electronic products began to shift from the traditional mechanical buttons with touch button.Touch-button technology can be divided into re

5、sistive touch buttons and capacitive sensing buttons. Resistive touch keys touch the surface of the device is attached a resistive film, the lower its durability; Capacitive sensing key technologies has a handle on the panel of non-metallic operating without opening, watering pollution, easy to clea

6、ning, non-mechanical switches wear long life advantages.In this paper, by analyzing capacitive touch sensing technology and studying human touch algorithm, we finish the design of capacitive touch button system based on PIC microcontroller. According to the requirements of the system we complete the

7、 overall design of the control system,in which hardware and software design are discussed in detail. This paper mainly introduces the software part, which is divided into four modules: the system initialization module, the key recognition module, LCD display module, a high priority and low priority

8、interrupt service routine module. First do analysis and study on every module. Then combine hardware with software and debug. Finally complete the graduation designs requirements.KEY WORD: Capacitive touch sensing;Modular design;Debugging;PIC16F1937目 录 TOC o 1-3 h z u HYPERLINK l _Toc325413098 第一章 前

9、言 PAGEREF _Toc325413098 h 1 HYPERLINK l _Toc325413099 1.1 系统简介 PAGEREF _Toc325413099 h 1 HYPERLINK l _Toc325413100 1.2 课题的研究背景 PAGEREF _Toc325413100 h 1 HYPERLINK l _Toc325413101 1.3 课题研究现状与发展趋势 PAGEREF _Toc325413101 h 1 HYPERLINK l _Toc325413102 1.4 课题研究的内容 PAGEREF _Toc325413102 h 2 HYPERLINK l _To

10、c325413103 1.5 本章小结 PAGEREF _Toc325413103 h 2 HYPERLINK l _Toc325413104 第二章 系统设计 PAGEREF _Toc325413104 h 3 HYPERLINK l _Toc325413105 2.1 设计任务 PAGEREF _Toc325413105 h 3 HYPERLINK l _Toc325413106 2.1.1 电容触摸感应技术的分析 PAGEREF _Toc325413106 h 3 HYPERLINK l _Toc325413107 2.1.2 人体触摸检测算法的研究 PAGEREF _Toc325413

11、107 h 5 HYPERLINK l _Toc325413108 2.2 总体方案分析 PAGEREF _Toc325413108 h 5 HYPERLINK l _Toc325413109 2.2.1 中央处理模块 PAGEREF _Toc325413109 h 6 HYPERLINK l _Toc325413110 2.2.2 电源转换电路 PAGEREF _Toc325413110 h 6 HYPERLINK l _Toc325413111 2.2.3 信息显示模块 PAGEREF _Toc325413111 h 6 HYPERLINK l _Toc325413112 2.3 系统功能

12、结构及组成 PAGEREF _Toc325413112 h 6 HYPERLINK l _Toc325413113 2.3.1 系统功能结构 PAGEREF _Toc325413113 h 6 HYPERLINK l _Toc325413114 2.3.2 系统组成 PAGEREF _Toc325413114 h 7 HYPERLINK l _Toc325413115 2.4 本章小结 PAGEREF _Toc325413115 h 7 HYPERLINK l _Toc325413116 第三章 系统软件设计 PAGEREF _Toc325413116 h 8 HYPERLINK l _Toc

13、325413117 3.1 软件设计思想 PAGEREF _Toc325413117 h 8 HYPERLINK l _Toc325413118 3.1.1按键检测思想 PAGEREF _Toc325413118 h 8 HYPERLINK l _Toc325413119 3.1.2 各个显示模块设计思想 PAGEREF _Toc325413119 h 10 HYPERLINK l _Toc325413120 3.2 主处理程序设计 PAGEREF _Toc325413120 h 10 HYPERLINK l _Toc325413121 3.3 按键设计模块 PAGEREF _Toc32541

14、3121 h 14 HYPERLINK l _Toc325413122 3.3.1 按键识别 PAGEREF _Toc325413122 h 14 HYPERLINK l _Toc325413123 3.3.2 按键的程序框图 PAGEREF _Toc325413123 h 15 HYPERLINK l _Toc325413124 3.4 显示模块程序设计 PAGEREF _Toc325413124 h 18 HYPERLINK l _Toc325413125 3.4.3 LCD显示模块 PAGEREF _Toc325413125 h 18 HYPERLINK l _Toc325413126

15、3.5 软件开发环境介绍 PAGEREF _Toc325413126 h 19 HYPERLINK l _Toc325413127 3.5.1 工程文件的建立 PAGEREF _Toc325413127 h 20 HYPERLINK l _Toc325413128 3.5.2 源程序的加载 PAGEREF _Toc325413128 h 22 HYPERLINK l _Toc325413129 3.5.3 源程序编译、下载 PAGEREF _Toc325413129 h 23 HYPERLINK l _Toc325413130 3.6 本章小结 PAGEREF _Toc325413130 h

16、24 HYPERLINK l _Toc325413131 第四章 硬件设计 PAGEREF _Toc325413131 h 25 HYPERLINK l _Toc325413132 4.1 硬件设计原则 PAGEREF _Toc325413132 h 25 HYPERLINK l _Toc325413133 4.2 电容式触摸式按键的设计 PAGEREF _Toc325413133 h 25 HYPERLINK l _Toc325413134 4.2.1 PCB常规设计 PAGEREF _Toc325413134 h 25 HYPERLINK l _Toc325413135 4.2.2 电极与

17、元件的设计 PAGEREF _Toc325413135 h 27 HYPERLINK l _Toc325413136 4.2.3 覆盖物 PAGEREF _Toc325413136 h 29 HYPERLINK l _Toc325413137 4.2.4 触摸式按键的原理 PAGEREF _Toc325413137 h 29 HYPERLINK l _Toc325413138 4.3 显示模块的设计 PAGEREF _Toc325413138 h 31 HYPERLINK l _Toc325413139 4.4 段式液晶驱动HT1621 PAGEREF _Toc325413139 h 31 H

18、YPERLINK l _Toc325413140 4.5 本章小结 PAGEREF _Toc325413140 h 33 HYPERLINK l _Toc325413141 第五章 系统测试 PAGEREF _Toc325413141 h 34 HYPERLINK l _Toc325413142 第六章 总结 PAGEREF _Toc325413142 h 38 HYPERLINK l _Toc325413143 参考文献 PAGEREF _Toc325413143 h 39 HYPERLINK l _Toc325413144 致谢 PAGEREF _Toc325413144 h 41 HYP

19、ERLINK l _Toc325413145 附录A 系统原理图 PAGEREF _Toc325413145 h 42 HYPERLINK l _Toc325413146 附录B 系统PCB布线图 PAGEREF _Toc325413146 h 43 HYPERLINK l _Toc325413147 附录C 实物图片 PAGEREF _Toc325413147 h 44 HYPERLINK l _Toc325413148 附录D 程序代码 PAGEREF _Toc325413148 h 45第一章 前言在便携式媒体播放器和移动手持终端等大容量、高可视性产品的应用中,触摸式按键作为一种接口技术

20、已被广泛采用1。由于具有方便易用,时尚和低成本的优势,越来越多的电子产品开始从传统的机械按键转向触摸式按键。因此触摸式按键作为一种简单方便的接口成果具有十分重要的意义。1.1 系统简介为解决传统的机械式按键输入方式易磨损、寿命短等问题,消费电子产品已经开始逐步采用触摸感应按键,以取代传统的机械式按键。最新一代电荷检测技术,利用操作者的手指与触摸按键焊盘之间产生电荷电平来进行检测,通过监测电荷的微小变化来确定手指接近或者触摸到感应表面。通过本次设计可以更加深入了解电容触摸感应的相关知识,熟悉电容式触摸按键实现的具体过程。1.2 课题的研究背景触摸技术如今已经成为信息技术发展的新趋势,由于操控直观

21、、快捷,大大提升了人机互动的效率,被大量用于高端智能手机及平板电脑。触摸控制技术2又可分为触摸屏( Touch Screen) 技术和触摸按键( Touch Key) 技术。在触摸按键技术方面,目前主要可分为电阻式触摸按键与电容式感应按键。电阻式的触摸按键由多块导电薄膜按照按键的位置印制而成,需要在设备表面贴一张触摸薄膜。电阻式触摸按键虽然价格低廉,但其导电薄膜耐用性较低。因此,电容式触摸按键便成了一种理想的替代方案。电容式触摸按键的优点在于它不易受到温度、静电、水、灰尘等外界因素影响,操作准确性高;靠人手感应,整个界面没有按键存在,可使产品更加美观。此外,由于按键没有接点,使用寿命更为长久。

22、1.3 课题研究现状与发展趋势触摸控制技术又可分为触摸屏技术和触摸按键技术。 在触摸按键技术方面,目前主要可分为电阻式触摸按键与电容式感应按键。由于电阻式的触摸按键需要在设备表面贴一张触摸电阻薄膜, 其耐用性较低;而电容感应按键技术具有在非金属操作面板上无须开孔处理、防水防污、易清洁、无机械开关磨损而寿命长等优点。 近几年随着苹果公司将电容触摸感应技术从笔记本电脑引用到iPod 后,电容触摸感应热浪正席卷几乎所有电子产品,从笔记本电脑、智能 、PDA、游戏机等手持设备, 到LCD 、TV、DVD 等消费电子产品,再到洗衣机、空调、冰箱、热水器、电磁炉以及咖啡壶等大小家电, 无不以加入电容触摸感

23、应为新的卖点。目前,世界知名电子元件供应商均加大了对电容触摸按键的应用研究, 并推出众多的专业芯片, 有专用电容感应按键类的全ASIC, 也有众多基于MCU集成类的IC。但这些芯片价格较高, 在一些按键数量少、成本要求低的电路中很难得到运用。另外,使用这些集成类IC,很难做到所选资源恰好等于使用的情况,存在资源的浪费情况。而且对于升级成熟产品的机械式按键,还存在变更原MCU 代码的风险。同时,目前,对于电容式触摸按键的介绍大多也停留在基于电容量测量的原理上。1.4 课题研究的内容我组在结合电容式触摸按键的原理上,设计基于RC充放电原理,即根据这个充电时间的变化量就可以判断出是否有按键按下,中央

24、处理器是否获得信号,LED是否发光,从而判断出按键是否设计成功。 需要研究的问题如下:分析电容式触摸感应技术;了解人体触摸检测算法的研究;理解电容式触摸按键的工作原理;了解控制核心单片机PIC16F1937组成及功能;完成基本电路的设计,并画出电路原理图;编写出程序,并进行调试。1.5 本章小结本章主要介绍接口技术的发展,从机械按键转化为触摸按键,从电阻式按键与电容式按键的比较重看出,电容式按键在现在及未来的发展前途十分光明,同时也引出本次毕业设计电容式触摸按键的设计与实现,最后在本次毕业设计所要实现的要求做出了大概的介绍。第二章 系统设计2.1 设计任务电容式触摸按键的设计是采用模块化设计的

25、方法。根据课题研究的内容和实现的功能可以将系统划分成几个模块,每个模块可以单独设计和调试,最后可以进行模块间的接口和调试,因此,该系统的结构和性能就可以取决于各个功能模块的性能和模块之间的兼容性。根据课题研究的内容分析,电容式触摸按键的设计任务和要求如下:分析电容触摸感应技术;研究人体触摸检测算法;以单片机PIC16F1937为中央处理器;现场可以通过控制按键使得观察LCD显示和LED流水灯来进行判断。2.1.1 电容触摸感应技术的分析电容式感应正在越来越多地应用于我们的日常生活。优雅时尚的电容式感应界面越来越广泛地应用在便携媒体播放器(PMP)、手机、计算机、POS终端和其它家用电子设备上,

26、如今又开始广泛应用于工业和医学应用领域。电容式感应是一种以触摸操作为基础的感应形式。作为传统机械式按钮和滑动触头的一种替代技术,电容式感应技术还可以用于设计触摸屏、触摸板和接近感应装置。这项技术并不感应按钮的具体状态,而是用于检测导电物体是否存在,许多情况下,用户的手指就是这个导电物体。1、触摸操作系统的优点和实现方式:之所以采用触摸操作系统,其原因有几种。基本原因之一是为了获得更高的可靠性和耐久性。例如,公共信息亭内的按钮要承受大量不当的使用和频繁的操作。机械式按钮会很容易磨损并导致故障发生。而更换按钮和修理机械式传感器将会增加总系统成本。而使用触摸操作系统时,系统更为耐用,从长期角度来说,

27、能够减少总成本。触摸操作系统还可以拥有更多灵活性,因为它的按钮可以用于多项功能。例如,在传统的工业键盘上,机械式按钮实际上只能执行单项功能,或者只能代表规定好的某个菜单选项。而在使用触摸屏时,因为显示可以连续改变,所以可以采用更多方式来设计界面。唯一的限制只是设计方案的需要而巳。同样的道理,由于单个按钮可以应用于多种用途,触摸操作系统就能够在更小的空间内拥有更多的功能。最后,触摸操作系统与机械式按钮相比的一个重要优点是:它可以改善最终用户的体验。基于触摸操作的解决方案通常更为直观易懂并且方便用户使用。触摸操作系统可以采用多种不同方式来实现。其中包括采用电阻膜、红外传感器,甚至是表面声波。电容式

28、感应能够在感应到手指存在时启用,而无需电阻膜所要求的触摸笔或压力。由于基于触摸的解决方案没有机械运动部件,因此它比机械式按钮和开关更为经久耐用。而在各种基于触摸的解决方案中,电容传感器拥有极其优秀的耐久性。红外解决方案会受到表面污染物的不良影响,而电容式感应技术对环境因素具有较强的耐受性。由于电容式感应可以采用多种外覆层材料,并可以采用不同水平的分辨率和精确度,因此不会仅限于某些特定应用领域。电容式感应可以应用于消费类电子产品中,如移动手机、MP3播放器和数码相机,也可以应用于工业或家用电器,如冼衣机或信息亭。2、电容式感应的工作原理在两个导电元件相互之间靠得很近时,就会产生一个电容值,本图中

29、标为Cp,这个电容值是由于传感器垫板与接地板之间的耦合现象而形成的。Cp属于寄生电容,典型数量级任10pF至300pF。传感器与接地板靠近时也会形成一个边缘电场,这个电场能够穿透外覆层。基本上,人体组织也属于导电体。将一根手指放存边缘电场附近时,就会增加这个电容系统的导电表面面积。但是,附加手指电容值的数量级在0.1pF至10pF。虽然一根于指的存在会导致电容发生变化,但与寄生电容相比,该变化的幅度是相当小的。而传感器的测得电容值称为CX。在没有手指存在的情况下,CX基本上等于CP。而在于指存在时,CX则为CP和CF的和。在当今的电子产品领域,噪声也成为另一项重要的考虑因素3。各类感应噪声,诸

30、如来自电力线路的噪声,以及来自移动手机或日光灯的辐射噪声,无时无刻不存在,所以必须加以考虑。为了进行有效防范,可以增加信噪比,并消除虚假触摸响应。在设计信噪比、耐久性、静电放电抵抗力以及精确度时,所选择的外覆层材料以及外覆层厚度具有很大的影响。而且,在考虑材料的类型和厚度时,必须根据产品的需要,在许多方面采取折衷方式。随着外覆层材料厚度的增加,信号和噪声两方面均会减少。但是,外覆层材料越厚,则对于静电放电的抵抗力就越强。人体的静电电压可以高达15 KV,而电容式感应系统的外覆层有助于避免集成电路在遭受此类静电放电时发生永久性损坏。另一种解决方法是,使用一层聚酰亚胺(Kapton)带,这种材料在

31、需要超强静电放电保护的应用中能够发挥良好的作用。当然,外覆层越厚,也就越不容易破裂或者遭到破坏。因此本设计中会通过这些电容感应的分析提出比较合理的方案来实现电容式触摸按键的设计。2.1.2 人体触摸检测算法的研究触摸感应检测按键是近年来迅速发展起来一种新型按键。它可以穿透绝缘材料外壳(玻璃、塑料等等),通过检测人体手指带来的电荷移动,而判断出人体手指触摸动作,从而实现按键功能。电容式触摸按键不需要传统按键的机械触点,也不再使用传统金属触摸的人体直接接触金属片而带来的安全隐患以及应用局限。电容式感应按键做出来的产品可靠耐用,美观时尚,材料用料少,便于生产安装以及维护,取代传统机械按钮键以及金属触

32、摸。目前业内已有好几种电容触摸传感技术存在。多数技术是基于测量由于人手指触摸产生额外电容而改变的频率或占空比。有些其他的方法则使用电荷平衡或是充电上升及下降时间的测量。由于玻璃手指地之间产生电容,我们才能够检测到触压,人体电路模型的最简单描述为“接地的导体4。按照前面对电容的定义,手指是作为接地的电极来影响触摸屏本身的电容分布的。该电容与电路对地的自然寄生电容并联。并联电容相加,所以当手指接近焊盘时总电容将变大。电容增量的百分比如式(2-1)是:C% = ( (Cp + Cf)Cp)/Cp = Cf/Cp。 ( 2-1)电容增量就是我们检测的依据,手指将引入额外的电容,导致振荡器的RC 时间常

33、数改变。稍后将看到,RC时间常数增加,振荡器频率将减小,在单片机中将检测这一频率变化。还值得注意的是,希望Cp比较小,因为我们知道Cf 非常小。如果Cp 较小,则电容和频率的增量百分比将比较大。已知手指触压产生的电容范围在5-15 pF 之间。不应把手指电容视作常数,也不要认为它与环境无关。2.2 总体方案分析通过电容式触摸按键的设计任务和要求可以看出,本系统需要设计以单片机PIC16F1937为控制核心,将电容式触摸按键所发出信号进行分析和输出显示。系统总体设计框图如图2-1所示:图2-1系统总体设计框图由总体方案框图可以看出,电容式触摸按键的设计可划分为:中央处理模块,触摸按键模块、电源转

34、换模块和信息显示模块等。2.2.1 中央处理模块中央处理模块是本系统核心部分,即CPU部分,它的主要工作任务是将数据传输、处理和控制等等。本系统中的中央处理模块可以采用PIC16F1937的单片机。2.2.2 电源转换电路电源转换电路是将相对较高的交流电压转化为本电子系统可以正常运行的电源电压的电路,该电路是任何电子系统稳定运行的基础电路,任何电子系统都不可或缺电源转换和稳压电路,只有正确合理的设计了电源转换盒稳压电路才能保证电子系统的正常、稳定的运行。本课题中,设计输入工作电压为5V。2.2.3 信息显示模块信息显示模块主要包括LCD、 LED的显示。通过调节按键来观察LCD显示,LED是为

35、了检测触摸按键是否正常工作。2.3 系统功能结构及组成2.3.1 系统功能结构本次电容式触摸按键设计主要采用PIC16F1937单片机,外围电路主要包括触摸式按键模块,LCD和LED显示控制模块与及主要实现的功能是单片机通过PIC kit3与PC机获得所编程的源代码,将程序拷入硬件中,用手触摸按键时,按键出激发一个信号,传输到单片机,再由单片机经过处理分别传送到LED和LCD,CPU通过液晶驱动器HT1621将湿度与温度值在液晶中显示。人机接口设立四个触摸按键;触摸式按键主要采用电容式传感器;CPU通过测量电容式传感器充放电时间读出键值, CPU再对相应的键值做出响应。通过调节按键来观察LCD

36、显示情况,LED主要作用是为了检测触摸按键是否正常工作。2.3.2 系统组成通过方案的确定以及功能的明确,可以得到系统的结构组成如图2-2所示图2-2系统组成框图2.4 本章小结本章首先主要介绍了总体的方案设计,并对各个模块进行分析,和对电容式触摸按键设计进行系统分析;依据系统技术要求进行了整体方案设计;分析了系统的整体结构;依据系统技术要求和方案对单片机进行了选型,并且绘制出总体的系统框图,从而更加系统的看出各模块所需要进行的任务。第三章 系统软件设计3.1 软件设计思想电容式触摸按键的软件设计主要分成电容式触摸按键的检测和信号经过单片机对各个显示模块作用部分,而显示模块主要通过对LCD与L

37、ED的显示来判断触摸按键是否正常运行,软件设计和系统功能的开发和完善是一个循序渐进过程,本文所作的软件开发是基于实现触摸按键基本功能要求设计的该系统软件有主程序、功能键处理程序、显示程序、延时子程序等。3.1.1按键检测思想一、检测原理(3-1)电容式触摸按键电路的原理5构成如图3-1所示,按键即是一个焊盘,与地构成一个感应电容,在周围环境不变的情况下电容值固定为微小值,具有固定的充放电时间,而当有一个导体向电极靠近时,会形成耦合电容,这样就会改变固有的充放电时间,而手指就是这样的导体。通过测量充放电时间的改变即可检测是否有按键被按下。充放电时间t的计算如公式(3-1)所示:(3-1) (3-

38、2)式中,t,R,C分别为充放电时间,电阻值,电容值;V1为充放电终止电压值;V2为充放电起始电压值;Vt为充放电t时刻电容上的电压值。其中电容可根据电容公式求得如公式(3-2): 其中,o为真空的介电常数,r为相对介电常数,d为电容基板间的距离,A为基板面积。图3-1电容式触摸按键基本原理示意图首先,开关在断开的状态下该按键被下拉电阻拉低,电势为0 V,这时开关闭合开始对按键充电,等充满电稳定后再断开开关,这时按键开始放电,并用定时器记录这段放电时间t1,反复该过程。当有手指触碰按键时,放电时间会改变为t2,如图3-2所示,由此即可判断出手指是否触摸到该按键。图3-2电容式触摸按键放电时间示

39、意图二、按键的软件设计在电容触摸传感技术中,多数技术是基于测量由于人手指触摸产生额外电容而改变的频率或占空比。有些其他的方法则使用电荷平衡或是充放电上升及下降时间的测量。本次软件设计最主要的是基于以上步骤不断对键盘进行扫描,除此之外由于触摸按键的电容值会受环境的影响而变化,尤其是温度和湿度的影响,因此能跟踪环境变化及时校正基本充放电时间tbase很必要,基本流程如图3-3。如果控制器发现很长时间内没有按键被按下(这里设置为60s),就开始启动校正功能,重新扫描键盘,获取新的充放电时间,并作为基准值,这样可以克服环境变化带来的影响。图3-3触摸按键程序流程图3.1.2 各个显示模块设计思想该系统

40、的整个软件设计全部采用模块化程序设计思想,由系统初始化模块、按键识别模块、LCD模块、高优先级和低优先级中断服务程序四大模块组成。其中,系统初始化模块、按键识别和LCD显示模块在主程序完成,而中断服务完成TMR0定时溢出中断、TMR1外部计数溢出中断、TMR3的1 计数溢出中断以及INT0外脉冲上边沿捕获中断等。3.2 主处理程序设计主程序的系统初始化模块包括对PIC6单片机的CPU系统时钟初始化、PIC单片机的I/O方向初始化、TMR0定时/计数器的初始化、TMR3定时/计数器的初始化和系统相关变量的初始化过程。一、CPU系统始终初始化PIC16单片机内部集成了经过校正的4MHz主时钟源,系

41、统上电默认主时钟为1MHz。通常,需要对OSCCON寄存器进行配置,使其工作在4MHz。若为了提高CPU的运算速度,则采用PIC16单片机的内部PLL的4倍频以使CPU主时钟达到16MHz,只需要对OSCTUNE寄存器进行设置。本系统采用16MHz的时钟源,因此初始化的结果如下:OSCCON= 0b01101000,选择内部4MHz的主振荡器OSCTUNE= 0b00000000,使能PLL的4倍频,从而CPU内核时钟为F为16MHz二、PIC单片机I/O口方向初始化RA0为传感器的输入,RB0.3由于RB端口接有4个按键K1.4和INT0外部中断信号输入,因此需要将RB端口配置成带有上拉功能

42、的输入端口,可以启用RB内部弱上拉。RD端口的RD0.7和RE端口的RE0.2是与LCD模块连接,主要是从PIC单片机输出数据或指令到LCD模块,因此可以将其全部设置为输出方向;另外,由于RE0.2上电复位默认为模拟输入口,不是数字I/O口,因此需要对ADCON1控制寄存器配置RE0.2为数字I/O口。P1A和P1B是PWM信号的输出,应将R1A和R1B配置成输出引脚。具体的初始化结果如下:ADCON1 = 0b10110000; /内部Frc Vref = VDDADCON0 = 0b00000001; /ADON = 1 As AN0TRISA = 0b11111111; /PORTA 输

43、入 ANSELA = 0b00000001; /RA0传感器输入 TRISB = 0b11111111; /RB0-RB3触摸按键 ANSELB = 0b00001111; /4个触摸按键WPUB = 0b00000000; /无上拉IOCBP = 0b00000000; /关电平变化中断IOCBN = 0b00000000;TRISD = 0b11111001; /LATD1 LATD2 LED输出ANSELD = 0b00000000; /数字I/O TRISC = 0b10011000; /串口 I2C TRISE = 0b00000111; /PORTE输出ANSELE = 0b000

44、00000; /数字I/OWPUE = 0b00000000; /无上拉 TRISCbits.TRISC6=0;RD6为输出引脚TRISCbits.TRISC7=0;RD7为输出引脚TRISDbits.TRISD4=0; P1A为输出引脚TRISDbits.TRISD5=0; P1B为输出引脚三、触摸按键寄存器初始化,使用TMR0定时2.5mS,查寻TMR1 计数值:CPSCON0 = 0b10001100; /打开电容模块,高频率振荡CPSCON1 = 0b00000011; /设置扫描通道 0-3OPTION_REG = 0b11010011; /TMR0 1:16分TMR0IF = 0;

45、TMR0IE = 1;T1CON = 0b11000101; /计数,时钟来源电容模块 1:1分频T1GCON = 0b00000000; /与门控位无关TMR1GIF = 0;TMR1GIE = 0;四、CPU中断系统初始化硬件中共用到4个中断源,分别是TMR0定时1s溢出中断、TMR1计数溢出中断源、TMR3定时溢出中断源和INT0外部中断。在这4个中断源中,将INT0和TMR0作为高优先中断放在高优先级中断服务程序中执行,TMR1和TMR3放在低优先中断服务程序中执行,因此就有中断优先级初始化。具体的初始化过程如下:INTCONbits.TMR0IF=0;/TMR0溢出标志位清0INTC

46、ONbits.TMR0IE=1;/TMR0溢出中断允许PIR1bits.TMR1IF=0;/TMR1溢出标志位清0PIE1bits.TMR1IE=1;/TMR1溢出中断允许IPR1bits.TMR1IP=0;/低优先级PIR2bits.TMR3IF=0;/TMR1溢出标志位清0PIE2bits.TMR3IE=1;/TMR1溢出中断允许IPR2bits.TMR3IP=0;/低优先级INTCONbits.INT0IF=0;/清INT0中断标志位/INTCONbits.INT0IE=1;/INT0中断允许INTCON2bits.RBPU=0;/允许内部弱上拉INTCON2bits.INTEDG0=1

47、;/上边沿触发中断RCONbits.IPEN=1;/允许中断优先级位INTCONbits.GIE=1;/CPU全局中断使能允许INTCONbits.PEIE=1;/CPU第二梯队中断使能允许主循环,通过使用FOR语句实现无限循环,其主程序模块流程图,如图3-4所示:图3-4主程序流程图3.3 按键设计模块主程序中要实现对电容式触摸按键的检测和实现,通过LCD与LED的显示,来判断按键是否能够实现其所要求的功能,该模块中没有采用常规的按键识别过程。3.3.1 按键识别1、判断是否有键按下;2、延时去除按键抖动;3、再判断是否真的按下;4、是真的按下,则执行按键处理程序;5、等待按键释放。在第2步

48、中一般在软件上调用一个延时子程序来完成,实际也是一个For循环语句;在第5步中一般在软件上是用一个While循环语句判断等待按键发生变化而退出该循环。这两步在主程序中执行要消耗CPU很多时间,使得CPU的利用率不高。为了提高CPU利用率,可以采用硬件扩展键盘识别专用芯片来完成,但这样会造成成本的上升以及CPU或专用芯片的资源浪费。为了考虑提高CPU的效率和充分利用CPU的资源等因素,可将第2步和第5步的延时和等待过程用其他方式来代替。具体实现方法如下:1、定义一个按键是否成功按下标志变量KeyCounter;等于1表示按下成功,等于0表示不成功。2、定义一个软计数器加1的整型变量KeyCoun

49、ter。3、所有直接采用While循环语句或For循环语句的部分采用If语句代替。按键识别过程的方法步骤如下:1、判断按键是否按下。2、若按下,则判断KeyFlag标志是否为0。3、若KeyFlag标志为0,则KeyCounter软计数器加1。4、判断KeyCounter软计数是否到一定的数值(这一过程实际上是按键去抖动处理)。5、若KeyCounter计到一定数值上,则判断按键是否真的按下。6、若按键真的按下,则置KeyFlag为1,表示按键按下成功。7、开始进行按键对应功能的处理过程。8、判断按键是否释放。9、若按键释放,则清KeyFlag为0,同时清KeyCounter软计数器为0。3.

50、3.2 按键的程序框图1、按键识别流程图该按键识别过程的程序框图如图3-5所示。在整个过程中没有出现循环语句,从而使得主程序运行模块的效率得提高,保证了CPU的实时性。图3-5按键识别方法程序框图2、按键子程序流程图按键扫描主循环。调用测量触摸按键子程序和按键扫描子程序,每调用该子程序。如图3-6所示:图3-6按键子程序流程图3、测触摸按键子程序流程图使用PIC单片机片内的A/D、TA检测有无触摸按键。每执行一次按键子程序都调用该子程序。如图3-7所示图3-7 测触摸按键子程序流程图3.4 显示模块程序设计显示模块中主要通过LCD与LED的显示,来判断电容式触摸按键是否能够正常运作。3.4.3

51、 LCD显示模块LCD显示驱动单独做成一个源程序文件和头文件,可以方便以后其他模块或其他应用程序的调用。在LCD显示驱动模块中主要是LCD初始化函数LCD_Initize()、写LCD数据函数Write_LCD_Data()和LCD字符的显示函数LCD_Dispstr()。LCD模块在系统上点必须进行初始化,主要包括对接口数据的总线长度、显示行数、字体类型和光标的模式控制等。LCDPS = 0b00000000; / 预分频比1:1LCDCON = 0b10000011; / Fosc/256,1/4COM LCD使能LCDREF = 0b11000000; / REFLCDRL = 0b11

52、110111; / 参考电阻网络LCDCST = 0b00000000; / 最大对比度LCDSE0 = 0b10110000; / SEG4 SEG5 SEG7LCDSE1 = 0b10000000; / SEG15LCDSE2 = 0b11111111; / SEG16 SEG17 SEG18 SEG19 SEG20 SEG21 SEG22 SEG23LCDDATA0 = 0b00000000; / 显示LCDDATA1 = 0b00000000;LCDDATA2 = 0b00000000;LCDDATA3 = 0b00000000;LCDDATA4 = 0b00000000;LCDDAT

53、A5 = 0b00000000;3.5 软件开发环境介绍微芯公司为PIC16F19377系列的集成与调试提供的工具包括:软仿真器,集成开发调试软件MPLAB IDE8,PIC系列单片机可采用汇编语言或C语言编写源程序代码。MPLAB IDE是一个完整的PIC单片机集成开发环境,也是目前比较优秀、比较流行的PIC单片机开发软件,大部分的PIC系列的单片机都可以采用该软件工具进行开发。MPLAB IDE包括下列功能:集成可视化编辑界面,可直接编写C、汇编等文件。集成代码生成工具,包括汇编器、连接器等等。基本调试工具,支持调试断点工具走。系统的软件设计是用PIC的汇编语言在MPLAB IDE集成环境

54、下运行、调试、完成的运行。本设计采用PIC集成开发环境MPLAB IDE 8.843.5.1 工程文件的建立启动MPLAB IDE编译软件进入MPLAB IDE v8.84界面,如图3-9所示图3-9 MPLAB IDE v8.84界面点击“MPLAB IDE v8.84”对话框中的Project Project Wizard,点击Project Wizard然后弹出一对话框,如图3-10所示:图3-10 Project Wizard对话框在此对话框中点击“下一步”出现选择芯片类型PIC16F1937,然后再进行“下一步”后在对话框选项“Create New Project File”中填写新

55、项目中的文件“F:touch”,再点击“下一步”,最后完成项目的建立,此时对话框显示如图3-11所示:图3-11所建项目的界面在以上步骤完成后,可以点击菜单栏的ConfigureSelect Device,在Select Device对话框里可以确认所选的芯片是否有误。3.5.2 源程序的加载在图3-11所示的界面里,点击菜单栏里FileNew,建立一个新建文件,并在文档里进行编程,待编程完成后保存文件并命为“touch.c”,然后右击对话框“touch.mcp”中Source Files,点击Add File to Project选中touch.c并打开,代码加入项目中,如图3-12所示:图

56、3-12将程序添加到项目中3.5.3 源程序编译、下载在图3-12的界面里,点击按钮或者ProjectBuild将程序进行编译,并观察最终是否编译正确。先将硬件通过PICkit39线连接PC机,然后将软件里的编译好的程序下载到硬件中,其步骤为DebuggerSelect ToolPICkit3。如图3-13所示图3-13 查找并打开PICkit3界面打开PICkit 3下载器之后,点击工具栏上的下载按钮,即可下载程序,如图3-14所示:图3-14 程序下载界面3.6 本章小结本章介绍软件编程,加载以及下载的平台,并说明系统的设计思想为采用模块化设计思路,并对PIC16F1937单片机在程序MP

57、LAB IDE v8.84平台中用C语言进行编写,对系统主程序的流程进行了比较系统的分析,并且说明各模块的功能,指出并基本上实现了各个部分模块的功能。第四章 硬件设计4.1 硬件设计原则本系统在设计硬件电路时主要从以下原则出发:一、硬件电路设计与软件设计相结合优化硬件电路。一些由硬件实现的功能可用软件来实现,反过来一些由软件实现的功能也可用硬件来完成。用软件来实现硬件的功能时,其响应时间比用硬件实现长,还要占用CPU时间。但是用软件实现硬件的功能可以简化硬件结构,提高硬件电路的可靠性,还可降低成本。因此在本系统的设计过程中,在满足可行性和实时性的前提下尽可能地将硬件功能用软件来实现。二、可靠性

58、及抗干扰设计。根据可靠性设计理论,系统所用芯片数量越少,系统的平均无故障时间越长,而且所用芯片数量越少,地址、数据总线在电路板上受干扰的可能性就越少,因此单片机基本系统的设计思想是在满足功能的情况下力争使用较少数量的芯片。三、灵活的功能扩展。一次设计往往不能完全考虑到系统的各个方面,系统需要不断完善,需要进行功能升级。功能扩展时系统应该在原有设计不需要很大改变的情况下,修改软件和少量硬件甚至不修改硬件就能完成。功能扩展是否灵活是衡量一个系统优劣的重要指标。根据系统要求及上面几个硬件设计原则,系统以单片机PIC16F1937为中央处理单元,由键盘输入电路,LCD显示,放大器连接电路等组成。下面对

59、主要的电路设计做详细介绍。4.2 电容式触摸式按键的设计 作为第二代按键的触摸式按键已在各种电子器件中大规模应用10,它具有制作方便,成本低,占用空间少等优点。随着电子设备的集成度越来越高,占用空间越来越少,触摸按键将无疑会取代常规的按键。4.2.1 PCB常规设计为电容感应式应用设计印制电路板时,需要考虑包括与感应电路直接相关的许多问题。整个电路将影响感应元件与其走线的电容。通常,PCB对敏感度有负影响。硬件元器件如电容,连接头,电阻,LED等会增加感应式按键的寄生电容。即使是与感应无关的走线也可能与感应元件产生耦合,从而降低应用的性能。种种原因说明了在设计电容感应式应用时必须仔细检查和优化

60、整个布板11。电路板面积对于电容式感应,由感应元件及走线覆盖的面积是最重要的。最好将这个面积保持在最小,通过最小化控制器与传感器之间的距离。将处理器放在感应元件中间可确保最优的电路板面积。地层不推荐将传感器的走线放在任何电源层上。充满在传感器下面的地层或电源层会增加对地的寄生电容,并降低灵敏度。当将地层放在传感器下面时,地层必须使用十字交叉形以保证铜的覆盖率小于40%(图4-1),并置于最远的一层,以降低对地的寄生电容,同时保证较好的屏蔽效果。图4-1地层设计示意图3、被动屏蔽被动屏蔽的原理是使用驱动电极的相同信号驱动屏蔽。使用被动屏蔽替代接地屏蔽有如下优点: 、电极与屏蔽线之间的寄生电容不会

温馨提示

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

评论

0/150

提交评论