PIC单片机温敏电阻测温课程设计.docx

上传人:小飞机 文档编号:3163791 上传时间:2023-03-11 格式:DOCX 页数:16 大小:46.18KB
返回 下载 相关 举报
PIC单片机温敏电阻测温课程设计.docx_第1页
第1页 / 共16页
PIC单片机温敏电阻测温课程设计.docx_第2页
第2页 / 共16页
PIC单片机温敏电阻测温课程设计.docx_第3页
第3页 / 共16页
PIC单片机温敏电阻测温课程设计.docx_第4页
第4页 / 共16页
PIC单片机温敏电阻测温课程设计.docx_第5页
第5页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《PIC单片机温敏电阻测温课程设计.docx》由会员分享,可在线阅读,更多相关《PIC单片机温敏电阻测温课程设计.docx(16页珍藏版)》请在三一办公上搜索。

1、PIC单片机温敏电阻测温课程设计一、设计目的、要求及方案选择 1、设计目的 随着社会的进步和工业技术的发展,人们越来越重视温度对产品的影响,许多产品对温度范围要求严格,目前市场上普遍存在的问题有温度信息传递不及时、精度不够的缺点,不利于工业控制者根据温度变化及时做出决定。在这样的形式下,开发一种实时性高、精度高的温度采集系统就很有必要。 本课题用一种基于单片机的数据采集系统方案,该方案根据热敏电阻随温度变化而变化的特性,采用串联分压电路。单片机采集热敏电阻的电压,通过A/D转换将模拟量 电压信号转换成数字量电压信号,经过查表转换得到温度值,控制数码管实时显示温度值。本系统中所器件是PIC16F

2、877单片机、NTC热敏电阻和数码管。 2、设计要求 热敏电阻温度测量系统设计 任务要求:a、设计基于热敏电阻信号调理电路 b、设计A/D转换电路 c、设计数码管显示电路 3、设计方案的选择 本设计以PIC16F877单片机系统为核心,采用热敏电阻对温度进行检测;通过电容进行充放电进行A/D转换把温度信号调解转换为电压信号,计算出电阻,与PIC16F877单片机接口设置LED八段数码管实时显示温度值。本设计包括热敏电阻选择、测量模块、数据传输模块、温度显示模块四个部分。文中对每个部分功能、实现过程作详细介绍。 二、硬件系统各模块电路的设计 1、单片机系统的设计 PIC16F877单片机的基本功

3、能区域的主要功能模块包括以下7部分 1) 程序存储器区域 PIC16F877单片机带有Flash程序存储器结构,主要存放由用户预先编制好的程序和一些固定不变的数据。程序存储器共有8K14位程序单元空间,即0000H1FFFH,由程序计数器提供13条地址线进行单元选择,每个单元宽14位,能够存放一条PIC单片机系统指令。在系统上电或其他复位情况下,程序计数器均从0000H地址单元开始工作。如果遇到调用子程序或系统发生事件中断时,都将把当前程序断点处的地址送入8级14位的堆栈区域进行保护。堆栈是一个独立的存储区域,在子程序或中断服务程序执行完后,再恢复断点地址,使主程序得以继续执行。通过14位程序

4、总线,取出对应程序指令的机器码,送入指令寄存器,将组成的操作码和操作数进行有效分离。如果操作数为地址,则进入地址复用器;如果操作数为数据,则进入数据复用器。而操作码将在指令译码和控制单元中转化为相应的功能操作。 2) 数据存储区域 PIC16F877单片机数据存储器主要包括特殊功能寄存器和通用寄存器两部分,用于存取CPU在执行程序过程中产生的中间数据或预置的参数。RAM数据存储器的每个存储单元除具备普通存储器功能之外,还能实现移位、置位、复位和位测试等通常只有寄存器才能完成的操作。PIC16F877共有512字节单元空间,即000H1FFH.地址复用器组合9条地址线,实现512个数据存储器单元

5、地址的有效选择。对于不同的数据访问,地址复用器的组合方式也存在差异。当采用直接寻址时,RAM地址的形成采用7加2模式,即7位数据来源于指令操作数,2位数据来源于STATUS 状态寄存器RP1、RP0;而采用间接寻址时,RAM地址的形成采用8加1模式,即8位数据来源于文件选择寄存器FSR,1位数据来源于STATUS状态寄存器IRP 基本功能区域配置有地址和数据两种复用器,是一种信号的选择开关,可根据指令功能的不同而选择其中的一个通路。 3) E2PROM数据存储器模块 2PIC16F877单片机嵌入一个2568位EPROM数据存储器模块。它与内部数据存储器最大的差异在于可在线擦/写,存储的内容掉

6、电时不会丢失。完成数据存取功能,PIC单片机指令集没有提供现成的机器指令,而必须采用特殊的程序段。 4) 算术逻辑运算区域 PIC16F877单片机中一个非常重要的部件就是算术逻辑单元ALU,主要实现算数运算和逻辑运算。一般对于双目操作类指令,如“加”、“减”、“与”、“或”的两个操作数将来源于工作寄存器W和数据复用器。而执行的结果可以送入工作寄存器W或返回数据总线,同时会将运算结果的状态送入STATUS状态寄存器。 与算术逻辑运算区域关联的特殊功能寄存器有以下3种 工作寄存器W:相当于其它单片机中的“累加器A”,是数据传送的桥梁,是最为繁忙的工作单元。在运算前,W可以暂存准备参加运算的一个操

7、作数; 状态寄存器STATUS:反映最近一次算术逻辑运算结果的状态特征,如是否产生进位、借位、结果是否为零等,共涉及3个标志位。该寄存器在其他单片机中又称为标志寄存器或程序状态字寄存器。另外,状态寄存器还包括数据寄存器区域的选择信息。如图所示的状态寄存器STATUS指向数据存储器地址复用器的3条控制线,配合完成间接寻址和直接寻址。 文件选择寄存器FSR:是与INDF完成间接寻址的专用主题寄存器,用于存放间接地址,即预先将要访问单元的地址存入该寄存器。 1) 输入/输出端口模式 PIC16F877单片机具有丰富的接口资源,共设置有5个输入/输出端口,分别为RA、RB、RC、RD和RE,合计共有3

8、3个引脚。大多数引脚除了基本I/O功能外,还配置有其他特殊功能,例如模拟量输入通道,串/并行通信线和MPLABICD专用控制线等。这些端口引脚在使用中存在着差异,特别是RA和RE中所涉及的输入/输出通道,只有当对ADCON1进行设置后才能用作为数字累输入/输出引脚。另外,RB端口的高4位具有特殊的电平变化中断功能,为实时监控提供了很大方便。RC端口拥有各类串行通信功能,包括主控同步串行通信MSSP和通用同步/异步收发器USART 1 2) 多功能定时器模块 PIC16F877单片机配置有3个功能较强的多功能定时器模块:TMR0、TMR1和TMR2。他们都具有不同位宽的可编程定时器,出TMR2以

9、外都可作为计数器使用。每个定时器/计数器模块都配有不同比例的预分频器或后分频器。另外,还有两个重要的专门用途;当设置在同步计数方式下,TMR1可与捕捉/比较/脉宽调制CCP模块配合实现脉宽调制输出功能。 3) 核心模块 PIC16F877单片机具有多种功能强大的系统复位模式:基于电容的效应,当系统芯片加电后,VDD电压会有一个逐渐上升的过程,只有达到1.51.8V后,上电复位电路将自动产生一个复位脉冲,使单片机复位;而为了保障系统程序安全,可靠运行,当VDD掉电跌落到VBOR(大约4V)的时间大于TBOR时,如果掉电复位功能处于使能方式,将自动产生一个复位信号并使芯片保持在复位状态;而此时如果

10、VDD恢复到正常范围,上电延时电路再提供一个72ms延时,才使CPU从复位状态返回到原正常运行状态。另外,核心模块还带有两种特殊的延时电路:上电延时和起振延时电路。在芯片加电时,上电延时定时器PWRT提供一个固定的72ms正常上电延时。上电延时电路采用RC振荡器方式工作。当PWRT处于延时过程时,芯片就能一直保持在复位状态,以确保电源电压在这个固定延时内达到合适的芯片工作电压;在上电延时电路提供一个72ms延时后,起振定时器OST将提供1024个振荡周期的延迟时间,以确保晶体或陶瓷谐振器能够有合适的时间起振并产生稳定的时序波形。 PIC16F877单片机嵌入了一个具有较强功能的看门狗定时器WD

11、T,能够有效防止因环境干扰而引起系统程序“飞溢”。WDT的定时/计数脉冲是由芯片内专用的RC振荡器产生的。它的工作既不需要任何外部器件,也与单片机的时钟电路无关。这样,即使单片机的时钟停止,WDT仍能继续工作。看门狗电路在实时控制系统有着重要的应用价值,可以在18ms基本定时基础上加入1:11:128的预分频比例,从而达到182304ms的定时。一旦在程序中启用看门狗电路,定时的长短将直接与看门狗复位指令CLRWDT的设置有关。其原则是:程序循环或程序段内插入CLRWDT,确保正常程序运行时看门狗电路执行复位的间隙时间小于看门狗电路设置的溢出时间。 PIC16F877单片机最具特色的内容之一就

12、是具有强大的在线调试功能和低压编程功能,为初学者提供了一个友好的操作平台,在Microchip公司提供的集成开发环境MPLABIDE和实验板的支持下,完成在线调试程序的功能。在对PIC16F877单片机进行在线串行编程时,该电路允许使用芯片工作电压VDD作为编程电压,而不需要额外的高电压 2:PIC16F877单片机的专用功能模块 PIC16F877单片机内部集成了多个专用功能模块,其功能和使用方法比较复杂。PIC16F877单片机专用功能区域主要包括了6个充分体现PIC16F877单片机特色的专用功能模块。 1)串行通信和并行数据传送模块 在RC端口汇集有多种串行数据传送方式,主要包括同步串

13、行端口SSP和通用同步/异步收发器USART。SSP具有SPI和I2C两种系统内部进行数据传送的工作方式,可实现多机或外接专用器件进行特殊通信。USART是一种常规的二线式串行通信模式,在PC机和单片机中都有配置。它可以定义为两种工作方式:半双工同步方式和全双工异步方式,以实现外接专用器件之间或远距离多机进行特2 殊通信。另外,RD端口可作为并行从动端口PSP,是一条处于被动工作方式下数据传送的高速通道,并行数据总线的权限将由于其进行数据交换的另一方控制。 2)捕捉/比较/脉宽调制模块 PIC16F877单片机配置有两个功能较强,颇具特色的功能模块CCP1和CCP2,分别能与TMR1和TMR2

14、配合实现对信号的输入捕捉,输出比较和脉宽调制PWM输出功能。 输入捕捉功能:主要通过TMR1定时器,及时捕捉外加信号的边沿触发,用来间接测量信号周期,频率,脉宽等。 输出比较功能:主要通过TMR1定时器和比较电路,输出宽度可调的方波信号,以驱动那些工作于脉冲型的电气部件。 脉宽调制PWM输出功能:主要通过TMR2定时器,PR2周期寄存器和比较电路,输出周期和脉宽可调的周期性方波信号,以控制可控硅的导通状态,步进电机转动角度或调整发光器件亮度等。 3) A/D转换器模块 A/D转换器是专门功能区域重要的器件之一。PIC16F877单片机本身就嵌入了一个10位分辨率的模/数转换器,最多可带有8个模

15、拟量输入通道,用来将外部的模拟量变换成单片机可以接受和处理的数字量。A/D转换器采用常规的逐次比较法,参考电压即可使用标准的VDD和VSS信号,也可使用外加参考电压的方式。A/D转换器内部配置有独立的时钟信号,即使PIC单片机处于睡眠的情况下,照样可以进行模/数转换。 2、基于热敏电阻温度测量电路设计 2-1 热敏电阻的介绍 热敏电阻传感器是对温度敏感的电阻器的总称,是半导体测温元件。随着外界温度的变化,其阻值会相应发生较大改变。按温度系数分为负温度系数热敏电阻和正温度系数热敏电阻两大类。NTC热敏电阻以MF为其型号,PTC热敏电阻以MZ为其型号。热敏电阻符号如下图: 应用:1、家用电器,如空

16、调机、微波炉、电风扇、电取暖炉等的温度控制与温度检测。 2、办公自动化设备,如复印机、打印机的温度检测或温度补偿 3、工业、医疗、环保、气象、食品加工设备的温度控制与检验。 4、液面指示和流量测量。 5、手机电池。 6、仪表线圈、集成电路、石英晶体振荡器和热电偶的温度补偿。 电阻与温度表 阻值 温度 3 55340 52420 49660 47080 44640 42340 40160 38120 36200 34380 3.226 31040 29500 28060 26680 25400 24180 23020 21920 20880 19900 18970 18290 17260 164

17、60 15710 15000 14320 13680 13070 12490 11940 11420 10920 10450 10000 9574 9166 8778 8480 8058 7724 7404 4 10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 7098 6808 6532 6268 6015 5776 5546 5326 5118 4918 4726 4544 4368 4202 4042 3888 3742

18、 3602 3460 3340 3216 3098 2986 2878 2774 2674 2580 2488 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 数码管显示的原理 在单片机应用系统中,如果需要显示的内容只有数码和某些字母,使用LED数码管是一种较好的选择。LED数码管显示清晰、成本低廉、配置灵活,与单片机接口简单易行。 LED数码管原理: LED数码管是由发光二极管作为显示字段的数码型显示器件。下图为0.5英尺LED数码管的外形和引脚图,其中七只发光二极管分别对

19、应ag笔段构成“”字形另一只发光二极管dp作为小数点。因此这种LED显示器称为七段数码管或八段数码管。 5 LED数码管 LED数码管按电路中的连接方式可以分为共阴极和共阳极两大类,如上图。共阳型是将各段发光二极管的正极连在一起,作为公共端COM,公共端COM接高电平,ag、dp各笔段通过限流电阻接控制端。某笔段控制端低电平时,该笔段发光,高电平时不发光。控制这几段笔段发光,就能显示出某个数码或字符。共阴型是将各数码发光二极管的负极连在一起,作为公共端COM接地,某笔段通过限流电阻接高电平时发光。 LED数码管按其外形尺寸有多种形式,使用较多的是0.5英寸和0.8英寸;按显示颜色也有多种形式,

20、主要有红色和绿色;按亮度强弱可分为高亮和普亮,指通过同样的电流显示亮度不一样,这是因发光二极管的材料不一样而引起的。 LED数码管的使用与发光二极管相同,根据其材料不同正向压降一般为1.52V额定电流为10mA,最大电流为40mA。静态显示时取10mA为宜,动态扫描显示可加大,加大脉冲电流,但一般不超过40mA。 LED数码管编码方式 当LED数码管与单片机相连时,一般将LED数码管的各笔段引脚a、b、g、dp按某一顺序接到单片机某一个并行I/O口D0、D1、D7,当该I/O口输出某一特定数据时,就能使LED数码管显示出某个字符。例如要使共阳极LED数码管显示“0”,则a、b、c、d、e、f各

21、笔段引脚为低电平,g和dp为高电平,如下表。 共阳极LED数码管显示数字“0”时各管段编码 D7 dp 1 D6 g 1 D5 f 0 D4 e 0 D3 d 0 D2 c 0 D1 b 0 D0 a 0 字段码 C0H 显示数 0 C0H称为共阳极LED数码管显示“0”的字段码,不计小数点的字段码称为七段码,包括小数点的字段称为八段码。 LED数码管编码方式有多种,按小数点计否可分为七段码和八段码;按共阴共阳可分为共阴字段码和共阳字段码,不计小数点的共阴字段码与共阳字段码互为反码;按a、b、g、dp编码顺序是高位在前,还是低位在前,又可分为顺序字段码和逆序字段码。甚至在某些特殊情况下将a、b

22、、g、dp顺序打乱编码。下表为共阴极和共阳极LED数码管几种八段编码表。 6 0 1 2 3 4 5 6 7 8 9 共阴极和共阳极LED数码管几种八段编码 共阴顺序小数点暗 共阴逆序小数点暗 共阳顺共阳顺序 序 dp g f e d c b 16进a b c d e f g 16进制 小数点小数点a 制 dp 亮 暗 0 0 1 1 1 1 1 1 1 1 1 1 1 0 3FH FCH 40H C0 H 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 06H 60H 79H F9 H 0 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 5BH DAH 24H A

23、4 H 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 4FH F2H 30H B0 H 1 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 66H 66H 19 H 99 H 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 6DH B6H 12 H 92 H 1 0 0 1 1 1 1 1 0 1 0 1 1 1 1 1 7DH BEH 02 H 82 H 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 07H E0H 78 H F8 H 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 7FH FEH 00 H 80

24、 H 1 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 6FH F6H 10 H 90 H 1 0 三、软件系统各模块电路的设计 1、程序设计语言的选用 本设计中采用的处理器是PIC16F877单片机,由此可采用面向的程序设计语言,包括汇编语言和C高级语言,这两种语言各有特点。汇编语言更接近机器语言,常用来编制与系统硬件相关的程序,如访问I/O端口、中断处理程序、实时控制程序、实时通信程序等;而数学运算程序则适合用C高级语言编写,因为用高级语言编写运算程序可提高编程效率和应用程序的可靠性。考虑到设计中要用到乘除运算,在智能测控装置的基本功能软件开发中,全部程序均采用C高级语言编写

25、。 2、 软件程序的设计 程序主要由主程序和子程序两部分构成。 主程序主要实现系统的初始化,温度信号采集。 系统的初始化包括寄存器的初始化,通信的初始化,LED显示的初始化,输出端口的初始化,采集、累计数据的初始化。 7 子程序主要有延时程序和显示程序等。 显示程序包括数据转换。 2-2 显示电路软件的设计 #include _CONFIG(XT & WDTDIS & LVPDIS & BORDIS); const unsigned char ctab = 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F; const uns

26、igned int oumu=55340,52420,49660,47080,44640,42340,40160,38120,36200,34380,32660,31040,29500,28060,26680,25400,24180,23020,21920,20880, 19900,18970,18290,17260,16460,15710,15000,14320,13680,13070,12490,11940,11420,10920,10450,10000,9574,9166,8778,8480,8058,7724,7404,7098,6808,6532, 6268,6015,5776,55

27、46,5326,5118,4918,4726,4544,4368,4202,4042,3888,3742,3602,3460,3340,3216,3098,2986,2878,2774,2674,2580,2488; const unsigned char tem=10,9,8,7,6,5,4,3,2,1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38, 39,40,41,42,43,44,45,46,47,48,49,50,51

28、,52,53,54,55,56,57,58,59,60; void display (unsigned char); void hanshu (void); unsigned int x,y,z=0; unsigned char g,h=0; float a,b,c; void main (void) TRISC0=0; TRISC1=0; TRISC2=0; TRISC3=0; TRISC4=0; TRISB1=0; TRISB2=0; TRISB3=0; TRISB4=0; 8 TRISD = 0; ADCON1 = 0b10001110; / RA0/AN0为模拟通道,右对齐 TRISA

29、0 = 1; / RA0为输入 ADCON0 = 0b00000001; / 配置AD模块 RB1=0; RB2=0; RB3=0; RB4=0; while (1) ADGO = 1; / 开始转换 while (ADGO); hanshu; display(g); while(!(z=oumuh+1) /将阻止与已知阻值表比较 h+; if(h=70) h=0; g=temh; void display (unsigned char zl) /显示函数 char i; PORTD = ctab(zl/1000)%10; RB4 = 1; for (i=0; i100; i+); RB4 =

30、 0; PORTD = ctab(zl/100)%10; RB3 = 1; for (i=0; i100; i+); RB3 = 0; PORTD = ctab(zl/10)%10; RB2 = 1; for (i=0; i100; i+); 9 RB2 = 0; PORTD = ctabzl%10; RB1 = 1; for (i=0; i100; i+); RB1 = 0; void hanshu (void) /转换结果变电阻 x=ADRESH8|ADRESL; a=5.0*x/1023.0; b=a*1000; y=(int)b; c=10000.0*y/(5000.0-y); z=(

31、int)c; 四:结论 本设计中,是以温度采集及检测为总目标,以PIC16F877单片机最小应用系统为总控制中心,辅助设计有温度采样电路、驱动显示单元等。单片机开发过程是一个非常严谨,复杂,科学,周密和细致,及技术性和综合性都相当高的过程,它要求你必须具备相当扎实的专业基础和理论知识,较强的实践专业操作技能。能以细致和科学的头脑去考察、分析和解决问题。同时在设计中必须要有足够的耐心,持之以恒的毅力,坚强的意志以及实事求是,一丝不苟的精神,才能开发出理想的设计出来。在设计过程中,遇到了许多问题,如设计初始阶段目的不明,思绪混乱,经过认真思考和老师的指导,才使自己思路明确,抓住重点,不懂就问,在规定的时间内系统有序的完成。温度检测是工业过程控制中一个重要参数,了解到温度检测的重要性,使自己在设计过程中,更加有兴趣和动力,在软件设计方面,遇到了一些实际问题,不过,在老师的指导和同学的帮助下都能一一解决,使自己学到了许多新的知识。 五、参考文献 1 付家才等主编单片机控制工程实践技术,化学工业出版社 2 李荣正等主编pic单片机原理及应用,北京航空航天大学出版社 3 汪贵平 李登峰等编著新编单片机原理及应用,机械工业出版社 10

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号