《电子信息工程毕业论文.doc》由会员分享,可在线阅读,更多相关《电子信息工程毕业论文.doc(48页珍藏版)》请在三一办公上搜索。
1、2011届毕业设计(论文)题 目:基于PSoC的温度检测系统的软件设计学 院: 电子与信息工程 专 业: 电子信息工程 班 级: 电子0701 姓 名: 仇俊杰 指导老师: 朱晓梅 起讫日期: 2011-02-212011-06-14 2011年 6月基于PSoC的温度检测系统的软件设计摘 要随着现代计算机和自动化技术的发展,作为各种信息的感知、采集、转换、传输处理的功能器件,温度检测的作用日益突出,已成为自动检测、自动控制系统和计量测试中不可缺少的重要技术工具。本文主要介绍基于PSoC的温度检测系统的软件设计,开发工具使用的是Cypress公司的PSoC Designer5.1,实现的功能主
2、要包括温度数据的检测、处理、显示和报警,通过键盘设定报警值。本文简单介绍了PSoC(可编程片上系统)的特点、以及内部的主要模块,介绍了温度检测系统的各硬件模块,该系统体积小、成本低、工作可靠、具有很高工程应用价值 放最后。关键词:可编程片上系统(PSoC) 温度传感器 软件设计The Software Design of temperature detection based on PSoCAbstractAs the development of the computer and automation technology and as the function device of sens
3、or, convert, transmission and process, temperature detection becomes more and more important. It is a key technology tool in automation of detection, control and measure test. The article mainly introduces the software design of temperature detection based on PSoC. The software design is based on th
4、e PSoC Designer5.1 which is developed by Cypress. The important functions include the detection of temperature data, process, display and alarm. Through the set of the key, it can give an alarm. The paper also briefly introduces the characteristics of PSoC(Programmable System on Chip) as well as som
5、e of the configuration of the hardware design module. This system has many characteristicslittle volume, low cost and working stability, and it is very useful to the engineering application. Key Words : PSoC ;Temperature detection ;Software development 目 录摘 要IABSTRACTII第一章 绪 论11.1 设计背景和意义11.2 本文的安排1
6、第二章 简述主要集成芯片和软件开发环境22.1 简述主要集成芯片 PSoC22.2 软件开发环境72.2.1 PSoC Express72.2.2 PSoC Designer 5.18第三章 硬件电路分析113.1 总体电路框图设计分析113.2 模块电路分析113.2.1 电源电路113.2.2 温度传感器模块123.2.3 报警器模块133.2.4 LED显示模块133.2.5 键盘扫描模块15第四章 软件设计164.1 总体流程图164.2 软件设计164.2.1 PSoC Designer 5.1软件开发流程简介164.2.2基于PSoC的温度检测系统的软件设计详细流程184.2.3
7、键盘扫描184.2.4 温度传感器数据输入214.2.5 数据放大224.2.6 模数转换234.2.7 数据的显示和报警244.2.8 系统全局变量26第五章 软硬件调试285.1前期准备285.2 调试29第六章 设计中的问题和设计方法改进316.1 设计中的问题316.2 设计方法改进32结 语33参考文献34附 录135附 录240致 谢42第一章 绪 论1.1 设计背景和意义 温度是工业生产和自动控制中最常见的工艺参数之一 ,生产过程中常常需要对温度进行检测和监控,采用单片机进行温度检测,数值显示和数据的存储,效率高,性能稳定,还可以实现实时控制等技术要求,在工业生产中应用越来越广泛
8、。在日常生活中,对温度的检测也十分重要,比如流动人口的温度检测,家用空调,热水器,电饭煲的电器设备等,这里存在很大的安全隐患,解决这些问题就需要我们找到一种精度高,成本低的方法。本文提出一种基于PSoC的温度检测系统的软件设计。他使用的开发工具是赛普瑞斯公司开发的PSoC designer5.1。实现的功能主要包含数据的输入,数据的处理,数据的显示,键盘扫面。该系统能实现温度的报警和温度上下限的设置,如果超过上限和下限就能自动报警。1.2 本文的安排本文通过比较几种软件设计方法的优缺点,找出适合自己研究的方向,并能够最大限度地应用所学知识。本文主要完成了以下的工作:1 简述主要集成芯片和软件开
9、发工具;2 简述硬件电路分析;3 详细阐述软件设计过程;4 进行软硬件联合调试;5 分析调试中遇到的问题,提出改进的方案。第二章 简述主要集成芯片和软件开发环境2.1 简述主要集成芯片 PSoCPSoC系列单片机是在一个专有的MCU(Microprogrammed Control Unit)内核周围集成了可配置的模拟和数字外围器件阵列PSoC块,利用芯片内部的可编程互联阵列,有效地配置芯片上的模拟和数字块资源,达到可编程片上系统的目的。PSoC 是一种对于标准的“全数字式”微控制器设计、纯粹的模拟设计以及介乎此二者之间的所有设计而言具有同等的高适用性的器件,是一种具有极端灵活且完全可编程的混合
10、信号SOC 的基本原理的全新一代器件。功能介绍:赛普拉斯的PSoC(TM)混合信号阵列是可编程的片上系统(SOC),其集成了微控制器以及嵌入式系统中通常围绕微控制器周围的模拟及数字组件。采用一个微控制器,一个PSoC器件最多可集成100种外设功能,从而帮助客户节约设计时间和板上面积,降低了功耗,系统成本也可降低5美分到10美元不等。方便易用的开发工具使设计人员能够准确选择所需的外设功能,包括放大器、ADC、DAC、滤波器及比较器等模拟功能以及定时器、计数器、PWM、SPI和UART等数字功能。PSoC系列的模拟功能包括轨至轨输入、可编程增益放大器以及最大14位的ADC,其噪声极低,输入损耗及电
11、压偏移也非常低。PSoC设备包括最大32 KB的闪存、2 KB的SRAM、带有32位累加器的8x8乘法器、电源和睡眠监控电路,以及硬件I2C通信等。PSoC Designer(TM)是PSoC的传统软件开发环境,它是一款功能全面的基于图形用户接口(GUI)的设计工具套件,使用户能以简单的点击对设计中的硅技术进行配置。在PSoC Designer的帮助下,用户可以采用C语言或汇编语言编写MCU的代码,还可用事件触发器和多断点等先进的特性对设计进行调试,同时还可以采用C语言、汇编语言或二者的结合,通过代码实现单步进。本次设计采用CY8C29466-24PXI他的管脚图如下: 图2-1 PSoC的引
12、脚图P07 口:数字IO口,模拟列多路复用器输入。P05 口:数字IO口,模拟列多路复用器输入和列输出。P03 口:数字IO口,模拟列多路复用器输入和列输出。P01 口:数字IO口,模拟列多路复用器输入。P27 口:数字IO口。P25 口:数字IO口。P23 口:数字IO口,直接开关电容模块输入。P21 口:数字IO口,直接开关电容模块输入。SMP口:开关模式泵(SMP)至所需要的外部器件的连接。P17 口:数字IO口,I2C串行时钟(SCL)。P15 口:数字IO口,I2C串行数据(SDA)。P13 口:数字IO口。P11 口:数字IO口,晶振(XTALin)、I2C串行时钟(SDA),IS
13、SP-SDATA.Vss 口:地线连接。P10 口:数字IO口,晶振(XTALout)、I2C串行时钟(SDA),ISSP-SDATA.P12 口:数字IO口。P14 口:数字IO口,可选的外部时钟输入(EXTCLK)P16 口:数字IO口。XRES 口:高电平有效的外部电路复位信号并配内部下拉电阻。P20 口:数字IO口,直接开关电容模块输入。P22 口:数字IO口,直接开关电容模块输入。P24 口:数字IO口,外部模拟地(AGND)。P26 口:数字IO口,外部基准电压源(VREF)P00 口:数字IO口,模拟列多路复用器输入。P02 口:数字IO口,模拟列多路复用器输入和列输出。P04
14、口:数字IO口,模拟列多路复用器输入和列输出。P06 口:数字IO口,模拟列多路复用器输入.Vdd 口:供电电压。PSoC 体系架构由4 个主要区域构成:PSoC 核心、数字系统、模拟系统和系统资源。可配置型全局总线连接方式可让所有器件资源结合成一个完整的定制系统。每个CY8C29x66 PSoC 器件系列能够包括多达8 个IO 端口,并连接至全局数字和模拟互连线路,提供了对16 个数字模块和12 个模块的访问能力。PSoC 核心就是一个功能强大的引擎,它支持丰富的指令集。此核心包含了1 个CPU、存储器、时钟和可配置GPIO(通用IO)。M8C CPU核是一款性能强大的处理器,运行速度可高达
15、24 MHz,并提供了1 个4 MIPS 级8 位Harvard 架构微处理器。此CPU 利用了容量为25 个向量的中断控制器,以简化实时内嵌事件的编程。程序执行的定时和保护采用了内含的休眠定时器和监视定时器(WDT)存储器内含用于程序存储的32KB 闪存、用于数据存储的2KBSRAM,以及最高24KB 的采用闪存仿真的EEPROM 存储器。程序闪存存储器在64 字节的区块上采用了4 个保护级别,从而可以实现定制化的软件知识产权(IP) 保护功能。PSoC 器件集成了多个灵活的内部时钟发生器,包括了1 个随着温度和电压变化的精度达2.5% 的24 MHz IMO (内部主振荡器)。而这个24
16、MHz IMO 也可以倍频至48 MHz 以供数字系统使用。还有为休眠定时器和监视定时器(WDT) 提供的低功率32 kHz ILO (内部低速振荡器)。如果对晶体精度有一定要求,则可以使用可配备的ECO (32.768 kHz 外部晶体振荡器)作为一个实时时钟(RTC),并可以有选择性地运用锁相环(PLL) 技术生成晶体精确级24 MHz 系统时钟。而时钟与可编程时钟分频器(也是一种系统资源)可以共同提供了一种能够将几乎任何时序要求集成到PSoC 器件内的灵活性。PSoC GPIO 提供了对于器件的CPU、数字资源和模拟资源的连接能力。每个引脚的驱动模式均可以从8 种选项中进行选取,从而为外
17、部接口安排提供极高的灵活性。每根引脚还能够根据高电平、低电平以及上次读取后变化事件生成系统中断。通过他的管脚功能描述我们引出他的内部资源,他的内部资源电路图如下图2-2 PSoC的内部资源配置图数字系统由16 个PSoC 数字模块构成。每个模块均是一个8 位资源,可以单独使用,也可以与其它模块联合构成8 位、16 位、24 位和32 位外设,这些均称为用户模块基准规格。数字外设配置包括了如下的各项。1、 脉冲宽度调制器(8 至32 位)2、 存在死区的脉冲宽度调制器(8 至32 位)3 、计数器(8 至32 位)4、 定时器(8 至32 位)5 、UART, 8 位且可选择奇偶校验(最多4 个
18、)6 、SPI 主设备和从设备(每种最多4 个)7 、I2C 从设备和多主设备(1 个作为系统资源提供)8、 循环冗余码校验器 / 发生器(8 至32 位)9、 IrDA 模块(最多4 个)10、 伪随机序列发生器(8 至32 位)数字模块可以通过一系列的全局总线连接至任意GPIO 引脚,全局总线能够将任何信号路由至任何引脚。全局总线允许信号进行利用,并允许执行逻辑运算。这种可配置性打破了用户设计受固定外设控制器限制的局面。数字模块按照4 行进行配备,而其中模块的数量依PSoC 器件系列而变。这样就可以让用户对于自己的应用进行系统资源的最优化选择。图2-3 PSoC的内部资源数字模块图模拟系统
19、由12 个可配置模块构成,这样能够创建复杂的模拟信号流。模拟外设具有很好的灵活性,并可以进行定制以支持特定的应用要求。一些较为常见PSoC 模拟功能(绝大多数以用户模块的形式提供)列出如下1、 模数转换器(最多4 个,分辨率为6 位至14 位,可选择增量、增量累加以及逐次逼近(SAR) 型)2、 滤波器(2 极、4 极、6 极或8 极带通、低通和陷波滤波器)3、 放大器(最多4 个,可选择增益可达48 倍)4、 测量放大器(最多2 个,可选择增益最多达93 倍)5、比较器(最多4 个,拥有16 个可选择阈值)6、 数模转换器(最多4 个,分辨率为6 位至9 位)7、 乘法数模转换器(最多4 个
20、,分辨率为6 位至9 位)8、 大电流输出驱动器(4 个40 mA 的驱动器作为核心资源)9、 1.3V 基准源(作为系统资源)10、 DTMF 拨号器 10、 调制器11、相关器12、峰值检测器13、其它许多可能的拓扑结构图2-4 PSoC的内部资源模拟模块图2.2 软件开发环境在软件开发的过程中,Cypress公司开发出了两种软件开发的版本,下面我们对开发方法进行具体介绍。2.2.1 PSoC ExpressPSoC Express是业界第一款易用型开发工具,它让系统工程师能够开发出基于微控制器的设计方案,而无需进行任何汇编语言或C语言的编程工作。PSoC Express在更高抽象水平上进
21、行操作,并且不要求进行固件开发,因此能够在几个小时或几天之内完成创建、仿真并编程到目标PSoC器件中,而不再需要花费几周或几个月的时间。PSoC Express所具有的对便携性的内置支持、无缝多任务处理能力、设计可视化特色以及丰富的内容库,使设计方案的创建更快、更可靠。利用PSoC Express,设计人员只需在其各自的专业应用领域内工作,通过在目录中选择输入和输出设备来定义一个定制解决方案,然后对其进行逻辑连接来定义系统行为。例如,用户可以选择温度传感器、电压输入、风扇、LED,然后定义风扇工作的温度范围、电压监视器阀值以及序列逻辑。在PSoC Express内部,设计人员还可以通过仿真对设
22、计进行校验,然后生成并下载设备编程文件。此外,该工具还使得用户可以适用赛普拉斯的任意一款PSoC器件进行设计,以及创建定制化项目文档,其中带有寄存器映射的数据表、接口电路图以及材料清单等。无需编写任何微控制器代码,设计人员即可更快速地实施可靠的定制应用。2.2.2 PSoC Designer 5.1PSoC Designer 5.1是Cypress最新推出的开发平台,为业界首创且唯一一套能在同一个封装的整合式设计环境中,同时包含免撰写程式码与高阶语言编程模式之创新工具。Cypress结合革命性的PSoC Express可视化嵌入式系统设计工具,以及功能完整的PSoC Designer软体,开发
23、出一套全新的设计模式。使用者一开始可用拖放式的可视化设计模式(从系统层级检视),接着再转移到C语言程式码的设计模式(从晶片层级检视),以针对其专案进行微调与客制化,所有步骤均可用此款 PSoC Designer 5.1工具来完成。 新款PSoC Designer 5.1 工具除了整合 PSoC Express的功能,还包括专属PSoC Mixed-Signal Array的9.61版HI-TECH C PRO编译器。此款新版编译器内含一个新增的Lite模式,可让设计人员免费使用,且没有一般免费编译器在时间或程式码长度方面的限制。PSoC Designer 5.1 亦包含多种升级功能,包括便利的
24、操作功能,并确保提供嵌入式设计工程师,最好的工具、介面、以及元件,且能快速而简单地完成最复杂的设计,及提高目标PSoC元件的效率。这些加强功能包括以最普遍的软体应用为基础所开发出来的图形化使用者介面功能。例如,实际上使用者可把软体中每个视窗自行设定在适合的开发工作空间,并可透过标签介面(tabbed interface)随时隐藏或显示,或以独立的视窗显示,以在多重显示器的环境中发挥超高的效率。PSoC Designer能协助使用者发挥PSoC元件的强大功能与高弹性。借由系统层级与晶片层级两个专案设计模式,使用者可选择以免撰写程式码、撰写所有程式码、或混合两种模式等方法,在更高的抽象层级上进行作
25、业,无需开发韧体,系统层级的专案设计让用户能在数小时或数天内针对目标PSoC元件完成建立、模拟、以及编程的作业,而无需花费数周或数月的时间。晶片层级的专案设计模式为使用者提供一系列的周边功能(称为使用者模组),采用弹性化的类比与数位PSoC模块技术,进行选择、置放、与连接针脚的设计,然后针对客制化的混合讯号设计开发专属的韧体。在系统层级的专案设计中,PSoC Designer会自动产生晶片层级的设计资讯以及所有的韧体,而且让用户能加入使用者模组,以及采用C语言或组合语言所撰写的更多功能。 此款功能强大又容易使用的IDE环境具备一个强大的使用者模组、许多可预先设定、预先规划的嵌入式周边元件功能;
26、以及众多透过 help对话方块、下拉式选单、以及其他图形式介面的使用者辅助功能。使用者模组运用可配置的PSoC元件,开发出各式各样的实用功能,像是计数器、计时器、PWM、及包括ADC及DAC的类比转换器; 通讯连接线路则包括像UART、SPI、I2C,及比较器、可程式增益模块、滤波器、及启动载入器。每款使用者模组都包含硬体配置资料、启动程式码、以及中断服务常式,还有许多API可供选用。这些API,或应用编程介面的软体功能,都能让用户立即控制使用者模组的所有层面。这种创新的方法能协助研发业者得到一个全功能的客制化元件,无需花费数周或数个月的时间查阅恼人的资料表,或耗费可观的心力撰写低阶程式,及无
27、止境的除错。PSoC元件将可高度灵活配置组态的系统单晶片架构运用在嵌入式控制设计中,能提供等同于现场可编程ASIC的flash基础架构,而无需负担ASIC的开发时程或NRE成本之缺点。PSoC元件由一个晶片内建的微控制器所控制,整合可组态的类比与数位电路,并同时提供加强版的设计与减少元件数。PSoC元件内含最高可至32KB的快闪记忆体、2KB的SRAM、8x8乘法器与32位元累加器、电源与睡眠模式监控电路、以及硬体I2C通讯元件。 弹性化的PSoC资源让设计人员不论是在设计、验证、生产或现场等各种阶段,都能进行以韧体为基础的改变,以维持其产品之创新性。PSoC独特的弹性化能力可缩短设计周期,也
28、能容许最新的功能提升。所有PSoC元件皆能动态调整组态,协助设计人员立即改变内部资源,利用最少的元件完成所交付的任务。 各种简单易用的开发工具,让设计人员能为选择各类可组态的函式库元件,例如放大器、ADC、DAC、滤波器、比较器等类比功能,以及像是计时器、计数器、PWM、SPI、以及UART等数位功能。PSoC系列的类比功能包括rail-to-rail输入、可编程增益放大器、以及具备极低杂讯、极低输入端漏电率、以及极少电压偏移的14位元ADC。软件平台视图如下:图2-5 软件平台界面图下图是PSoC的三个子系统PSOC Designer器件编辑器子系统应用程序编辑器子系统调试器子系统图2-6
29、PSoC子系统图 第三章 硬件电路分析3.1 总体电路框图设计分析 一般而言,一个温度检测系统包括温度数据采集、温度数据处理和温度数据显示与智能报警四个部分。对于本设计也采用这种结构,即电路采集数据,单片机执行温度数据处理和显示的功能。另外,也设计了键盘接口,可以实现温度上限和下限的设定,具体框图如图3-1。 图3-1 总体电路框图在图3-1中,温度传感器用来采集温度数据,它的原理是传感器将采集到的电压信号送到PSoC芯片中,PSoC芯片执行电压信号的放大处理,然后交给模数转器,执行电压模拟信号转换成数字信号,将采集到的数字信号进过调整速出到显示电路中。3.2 模块电路分析3.2.1 电源电路
30、电源电路的作用是输出稳定的5V芯片中工作电压、工作电流。本次设计采用的是常用的AMS1117-5V稳压器电路,AMS1117内部集成过热保护和限流电路,是电池供电和便携式计算机的最佳选择,固定输出电压为5.0V,电源电路如下图所示: 图 3-2 典型固定输出电路为了确保AMS1117的稳定性,对可调电压版本,输出需要连接一个至少22F的钽电容。对于固定电压版本,可采用更小的电容,具体可以根据实际应用确定。通常,线性调整器的稳定性随着输出电流增加而降低,本次设计采用两个10F的电容。图 3-3电源电路设计图3.2.2 温度传感器模块 本次设计的温度传感器电路的核心部件是温度传感器,LM35 是N
31、S 公司生产的集成电路温度传感器系列产品之一,它具有很高的工作精度和较宽的线性工作范围,该器件输出电压与摄氏温度线性成比例。因而,从使用角度来说, LM35 与用开尔文标准的线性温度传感器相比更有优越之处,LM35 无需外部校准或微调,可以提供1/4的常用的室温精度。LM35比例因数:线性+10.0mV/;非线性值:1/4;使用温度范围:-55+150额定范围,引脚介绍:正电源Vcc;输出;输出地/电源地。电路图如下:图3-4 温度传感器电源路3.2.3 报警器模块 本次设计的报警器模块核心部件是蜂鸣器。蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报
32、警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型,本次设计采用的是电磁式蜂鸣器,它是一种有源类型的蜂鸣器,直接连上额定电压就可连续发声,电路设计如下图所示: 图 3-5 蜂鸣器电路图3.2.4 LED显示模块数字的显示功能在一个设计当中是不可或缺的部分,为此本次设计当中加入了4个七段共阴极数码管,我们选用的是共阴极数码管,一般来说,共阴极的数码管会比共阳极的数码管亮一点,其原理图如下:图 3-5数码管原理图如图3-5所示每个数码管都会连接一个三极管的集电极,利用集电极电流受基集电流的控制,基集电流的很小的变化,会引起集电极电流
33、的很大的变化。我们在数码管的基集加上一定的电压会使三极管导通,数码管会和地相连接,这样就实现了数码管点亮的作用,同时我们这里还得用到一个74HC244芯片(八同相三态缓冲器/线驱动器),用到的功能是驱动数码管的8个段选。三极管和 74HC244的电路图如下所示图3-6 三极管电路图3-7 74HC244电路3.2.5 键盘扫描模块在设计温度检测系统的时候,考虑到完善系统的功能,我们加入了键盘扫描功能,使得这个系统能设定一些温度的上下限。通过查询资料,我们选定了4*4矩阵键盘,同时软件编程使用的是行扫描法,其电路原理图如下图所示:图3-8 键盘扫描原理图第四章 软件设计4.1 总体流程图本设计主
34、体部分由硬件实现,软件部分的工作主要为硬件初始化;数据信号输入;数据信号处理;数据信号显示。主流程图如图4-1。数据信号显示数据信号处理数据信号输入 图4-1 主流程图4.2 软件设计4.2.1 PSoC Designer 5.1软件开发流程简介创建一个工程:单击“Start new project”新建文件,点击“Creat New Project”;填写自己的文件名称,点击“Browse”可以选择存储位置,填好后点击“下一步”并点击“是”,选择编辑语言的种类,选择C语言,点击“完成”即可;器件编程器:器件编程器主要用来:选择用户模块、放置用户模块、连接用户模块、配置管脚、跟踪资源、生成应用
35、程序框架等。选择用户模块:用户模块是一个预先配置的功能,在放置和配置后可以像外围部件一样工作。用户可以在器件编辑器子系统中选择用户模块。窗口左边是用户模块集合子窗口。单击用来查看具体的用户模块,双击用来选定所用的用户模块。放置用户模块:单击工具栏的Interconnect View图标即可进入放置用户模块窗口配置用户模块:通过配置用户模块,可以使用户模块与外部引脚或其他用户模块关联起来。通过配置PSoC模块的输入输出参数来完成用户模块的连接,通过以下步骤可以完成。用户模块的配置:单击放置好的用户模块就可以看到用户模块参数。单击参数内容框出现下拉箭头,选择合适的参数:如下图所示:图4-2 用户模
36、块的配置图全局资源的选择:全局资源决定运行的硬件环境,会影响到整个设计。要改变全局资源,单击参数内容框的下拉箭头,选择合适的参数值。如下图所示: 图4-3 全局资源的选择图连接用户模块:配置好模块后,可以进行用户模块之间的连接。用户模块连接使得PSoC模块之间可以通讯。通过配置PSoC模块的输入输出参数来完成用户模块的互连。互连总线提供了一个外部引脚连接到其他数字用户模块的路径。连接用户模块可以在器件编辑器下的Interconnect View模式中完成。图4-4连接用户模块图调试:编写好应用程序后,需要把程序下载到相应的硬件进行调试验证。Cypress公司提供了ICE通过USB连接到PSoC
37、 Designer,通过PSoC Designer调试器子系统上简单的几个图标,便可以进行系统的调试工作。4.2.2基于PSoC的温度检测系统的软件设计详细流程 本次软件设计详细流程图按如下所示:数字的显示和报警AD模数转换放大器数据信号的输入键盘扫描图4-5软件设计详细流程图4.2.3 键盘扫描采用行扫描法,P1口高四位为列低四位为行,行扫描的流程图如下:P1行输出0列高电平B=0xF0NP1=P1&0xF0判断P1是否等于0xF0YP1行输出B列高电平N返回值判断P1是否等于0xF0B左移一位Y图4-6行扫描法流程图键盘扫描软件代码如下:int keychengxu()key=0;PRT1
38、DR=0xF0;for(i=0;i100;i+);b=PRT1DR&0xF0;if(b!=0xF0) PRT1DR=0XFE; for(i=0;i100;i+); b=PRT1DR&0xF0; if(b!=0xF0) switch(b)case 0xE0:key=key+3;return key;break;case 0xD0:key=key+2;return key;break;case 0xB0:key=key+1;return key;break;case 0x70:key=key+0;return key;break; key=key+4; PRT1DR=0XFD; for(i=0;i
39、100;i+); b=PRT1DR&0xF0; if(b!=0xF0) switch(b)case 0xE0:key=key+3;return key;break;case 0xD0:key=key+2;return key;break;case 0xB0:key=key+1;return key;break;case 0x70:key=key+0;return key;break; key=key+4; PRT1DR=0XFB; for(i=0;i100;i+); b=PRT1DR&0xF0; if(b!=0xF0) switch(b)case 0xE0:key=key+3;return k
40、ey;break;case 0xD0:key=key+2;return key;break;case 0xB0:key=key+1;return key;break;case 0x70:key=key+0;return key;break; key=key+4; PRT1DR=0XF7; for(i=0;i100;i+); b=PRT1DR&0xF0; if(b!=0xF0) switch(b)case 0xE0:key=key+3;return key;break;case 0xD0:key=key+2;return key;break;case 0xB0:key=key+1;return
41、key;break;case 0x70:key=key+0;return key;break; / Insert your main routine code here. elsereturn -1;4.2.4 温度传感器数据输入我们使用的是CY8C29466-24PXI芯片,使用引脚P02当做模拟输入口他的配置资源如图分布:图4-7 P02配置资源图AnalogColumn_InputMux_1代表的是模拟量的输入,他的驱动是High Z Analog,中断功能关闭,初始值为0。4.2.5 数据放大本次设计选用PSoC内部可编程放大器,他有33种放大选择,资源配置如下:图4-8 PGA配置资
42、源图放大增益Gain是1.000,管脚输入是AnalogColumn_InputSelect_1也就是P02,参考电压Reference是接地,用户放置模块如图所示:图4-9 PGA用户放置模块PGA启动程序代码如下:#include / part specific constants and macros#include PSoCAPI.h / PSoC API definitions for all User Modulesvoid main(void) PGA_1_SetGain(PGA_G8_00); PGA_1_Start(PGA_MEDPOWER);如果增益大于或者等于1.000,的增益公式如下: (4-1) 如果增益小于或者等于1.000,的增益公式如下:(4-2)4.2.6 模数转换本次设计选用PSoC内部ADCINC模数转换器,他有9种方案可供选择,我们采用的是14位的转化方案,他的资源配置如下图所示:图4-10