pic单片机

2025-05-02 版权声明 我要投稿

pic单片机(精选8篇)

pic单片机 篇1

一、定时器的使用

(1)实验目的:通过学习和实验理解PIC单片机定时器的内部工作原理,学会定时器 初始化配置编程,并能利用实验板对定时器有简单的应用。

(2)实验器材:16位PIC单片机学习板。

(3)实验过程:

1、PIC单片机定时器概述:根据具体器件,dsPIC30F 器件系列提供了几个16 位定时器。这些定时器被指定为Timer1、Timer2、Timer3 ……等。可分为三种类型:A类型时基、B类型时基和C类型时基。

A类型时基:在大多数dsPIC30F 器件上,至少有一个A 类型定时器。通常Timer1 是A 类型定时器。A 类型定时器与其他类型的定时器相比,有下列独特的功能:

可以使用器件的低功耗32 kHz 振荡器作为时钟源工作

可以在使用外部时钟源的异步模式下工作

A 类型定时器独特的功能使它可以用于实时时钟应用(Real-Time Clock,RTC)。16 位定时器模式:在16 位定时器模式下,定时器在每个指令周期递增,直到与预先装入周期寄存器PR1 中的值匹配,然后复位至0,继续计数。当CPU 进入空闲模式时,定时器将停止递增,除非TSIDL(T1CON<13>)位 = 0。如果TSIDL = 1,定时器模块逻辑将继续递增,直到CPU 空闲模式终止。位同步计数器模式:在16 位同步计数器模式下,定时器将在外部时钟信号的上升沿递增,外部时钟信号与内部相位时钟同步。定时器计数,直到等于PR1 中预先装入的值,然后复位至0,继续计数。当CPU 进入空闲模式时,同上。位异步计数器模式:在16 位异步计数器模式下,定时器在外部时钟信号的上升沿递增。定时器计数,直到等于PR1 中预先装入的值,然后复位至0,继续计数。当定时器配置为异步工作模式时,CPU 进入空闲模式,如果TSIDL = 1,则定时器将停止递增。

B类型时基:在大多数dsPIC30F 器件上,如果存在Timer2 和Timer4,它们是B 类型定时器。与其他类型的定时器相比,B 类型定时器有下列独特的功能:

B 类型定时器可以和C 类型定时器相连形成32 位定时器。B 类型定时器的TxCON

寄存器具备T32 控制位,用来使能32 位定时器功能。B 类型定时器的时钟同步在预分频逻辑后执行。为输入捕捉,输出比较/ 简单PWM 模块提供时基

C类型时基:在大多数dsPIC30F 器件上,Timer3 和Timer5 是C 类型定时器。与其他类型的定时器相比,C 类型定时器有下列独特的功能:

C 类型定时器可以和B 类型定时器相连形成32 位定时器。在某个给定的器件上,至少有一个C 类型定时器能够触发A/D 转换。

相关寄存器:要使用定时器,首先要了解定时器相关寄存器,dspic30f4011的定时器相关寄存器有:

以A类时基定时器(Timer1)为例,要用到的相关寄存器有:T1CON(定时器1控制寄存器)、IFS0bits(中断标志状态寄存器)、IPC0bits(中断优先级控制寄存器)、IEC0bits(中断允许控制寄存器)、PR1(定时器初值寄存器)

定时器模式:所有类型的定时器都可以在定时器模式下工作。在定时器模式下,定时器的输入时钟由内部系统时钟(FOSC/4)提供。当使能为该模式时,对于1:1 的预分频器设置,定时器的计数值在每个指令周期都会加1。

通过清零TCS 控制位(TxCON<1>)选择定时器模式。

同步模式控制位TSYNC(T1CON<2>)在该模式下不起作用,因为使用了系统时钟源产生定时器时钟。

定时器初值计算:指令周期=1/(fosc/4),定时器初值=所需定时时间/(指令周期×分频比)

程序代码:

#include “p30f4011.h” void timer_init()

{

T1CON=0X8030;

//预分频256,ton=1,开始计时,其余都为0//清除TMR1的中断标志 //中断优先级为7 //使能中断

//在预分频256模式下,计时1秒

IFS0bits.T1IF = 0;

IPC0bits.T1IP = 7;IEC0bits.T1IE = 1;}

PR1=0x1c20;

void __attribute__((__interrupt__))_T1Interrupt(void)//中断服务程序 {}

void main(){}

TRISE=0x100;

//将LED相连IO口设为输出 //执行定时器1初始化 //PORTE初始化输出为低

IFS0bits.T1IF=0;PORTE++;

//软件清除定时器1中断标志位 //实现每一秒对PORTE加1,用LED显示

timer_init();PORTE=0;

while(1);//程序进入死循环,定时执行定定时器中断程序

二、中断

实验目的:通过学习和实践理解PIC单片机中断的特性及工作原理,学会中断的初始化配置,并能对中断进行简单的应用。

实验器材:16位PIC单片机学习板。

实验过程:

dsPIC30F的中断特性:

多达8 个处理器异常和软件陷阱 7 个用户可选择的优先级

具有多达62 个向量的中断向量表(Interrupt Vector Table,IVT)每个中断或异常源都有唯一的向量 指定的用户优先级中的固定优先级

用于支持调试的备用中断向量表(Alternate Interrupt Vector Table,AIVT)固定的中断入口和返回延时

中断优先级:

(1)可以为每个外设中断源分配7 个优先级之一。

可用的优先级从1 开始为最低优先级,7 级为最高优先级。如果与中断源有关的IPC 位被全部清零,则中断源被有效禁止。

(2)由于特定的优先级会被分配给一个以上的中断请求源,所以在给定的用户分配

级别内提供了一种解决优先级冲突的方法。

根据每个中断源在IVT中的位置,它们都有一个自然顺序优先级。中断向量的编号越低,自然优先级越高,而向量的编号越高,自然优先级越低。

(3)任何待处理的中断源的总优先级都首先由该中断源在IPCx 寄存器中用户分配的优先级决定,然后由IVT 中的自然顺序优先级决定。

相关寄存器:INTCON1 和INTCON2(全局中断控制寄存器)、IFSx(中断标志状态寄存器)、IECx(中断使能控制寄存器)、IPCx(中断优先级控制寄存器)、SR(CPU状态寄存器)、CORCON(内核控制寄存器)。

初始化配置:

1.如果不需要中断嵌套,将NSTDIS 控制位置1。

2.通过写相应的IPCx 控制寄存器中的控制位选择中断源的用户分配优先级。如果不需要多个优先级,所有允许的中断源的IPCx 寄存器控制位均可以编程为同一个非零值。3.在相关的IFSx 状态寄存器中清零与外设相关的中断标志状态位。

4.通过在相应的IECx 控制寄存器中置1 与中断源相关的中断允许控制位,使能中断源。

程序代码:

void init(){

IFS0bits.INT0IF = 0;//清除INT0的中断标志

IPC0bits.INT0IP = 7;//中断优先级为7 IEC0bits.INT0IE = 1;}

void __attribute__((__interrupt__))_INT0Interrupt(void)//中断服务程序 {

IFS0bits.INT0IF = 0;Led=~Led;}

int main(){

unsigned char Led=0;init();while(1){

PORTE = Led;

//清INT0中断标志//实现LED亮灭变化 //使能中断

pic单片机 篇2

关键词:PIC单片机,低功耗,睡眠状态,振荡方式,硬件设计

0 引言

目前,电子产品的日趋小型化和智能化,对单片机的低功耗应用提出了更高的要求,尤其是便携式产品、野外检测仪器仪表、海河航标灯和玩具产品,对低功耗的要求更为突出。设计一个性能良好的低功耗产品,需要从硬件设计、软件设计等多方面综合考虑,是一项较为复杂的系统工作,本文阐述了低功耗设计的几种具体措施。

1 系统设计方面

1.1 选择合适的模块

PIC系列单片机虽然功耗都很低,但不同的模块电能消耗仍然不同,既便是在同一个系列里,选择的芯片型号不同,它们的电能消耗量也不同!选型时,要注意资料中详细的参数说明,一般型号后缀为LC的芯片能耗比后缀为C的能耗要小,目前,Microahip公司最新推出了18个引脚的低功耗芯片,如PIC18F1220、PIC18F1320和n W级的芯片如PIC16F627A等,可以根据产品的实际需求,合理地来选择芯片的型号。

1.2 选择合适的工作条件

一般单片机睡眠模式下运行要比正常模式下运行耗电小得多,所以如果其它条件允许,应尽量让芯片处于睡眠状态;单片机在低电压下工作时比较省电,在选用单片机时尽可能选择较低的工作电压;另外,单片机MCU的电流和振荡频率成正比,所以,在速度允许的情况下,应尽可能选择振荡频率比较低的芯片。

1.3 选择合适的振荡方式

晶体振荡器、谐振器和RC振荡器,有着不同的唤醒时间。一般来说,晶体振荡器的唤醒时间最长为8.5m S左右,谐振器的唤醒时间约为390µS,而RC振荡器的唤醒时间最短,约为1.15µS左右。单片机在工作时,如果唤醒时间过长,在唤醒过程中存在一个预工作阶段,此时处理器已经开始消耗电能,但是还没有运行程序,这就会带来更多的电能消耗。如果所设计的产品,唤醒后的工作时间很短,一般应采用RC振荡器较为合理。

晶体振荡器、谐振器和RC振荡器,有着不同的电耗,即使在相同频率下,它们的电耗也不同。一般说来,晶体振荡器的工作电耗最小,RC振荡的工作电耗最大。三者比较结果如表1所示。

在不能长期工作在休眠状态的场合,如计时时钟,一般应采用晶体振荡器以获得节能效果。为了节能我们有时候还在晶体振荡器的回路中串上一个小电阻RS,如图1所示,这是因为晶体的驱动功率为:P=U2/Re,U:芯片向晶体提供的电压;Re:晶体的等效电阻;在晶体振荡器回路中串上一个小电阻RS后,加大晶体的等效电阻。这样,不仅可以减少在晶体上的功率消耗、还可以防止晶体过驱动、稳定晶体的振荡频率以及延长晶体寿命。RS的取值范围是0~10KΩ,主要基于Timer1振荡器,所有内建Timer1芯片都可以用外部晶体来实现RTC。如:PIC16F72、PIC16F73、PIC16F877、PIC18F452和PIC18F85等。

1.4 合理处理I/O管脚

I/O管脚的处理,在低功耗系统里非常重要。设置为输出的管脚可以驱动20~25m A电流。所以检查你的设计,优化每个输出管脚上的电流消耗是非常重要的,即使是弱上拉的管脚,依然可以输出400u A电流,为达到节能目的,可以禁止内部上拉,使用外部较大的电阻做上拉。必要时还可以用一个I/O口来控制外部上拉,以便在不需要检测输入时或在休眠状态下进一步节能。如图二中的输入口I1、I2和I3的外部电路。I/O口管脚可以吸收1u A电流,而MCLR,RA4/T0CKI和OSC1可能吸收5u A电流。在干扰的环境下,让I/O管脚悬空(输入、高阻),可能因内部锁存器频繁翻转,极大地增加电流消耗,所以对于没有用的管脚,都设置为输出(高或者低均可)。

1.5 Timer1异步时钟方式下使用

在需要实时时钟的场合,在Timer1上接入一个32.768k Hz晶振,就可以实现成本低和电耗低。Timer1可以在不用外部时钟芯片、允许芯片进入睡眠模式下,继续走时钟(时间/日期)。

2 应用休眠省电模式

执行一条S L E E P指令后,便进入了休眠(SLEEP)方式。在这种方式中,为了使耗电量降至最低,把所有I/O引脚接至VDD或VSS,以确保没有外部电路从I/O引脚上引出电流,关闭A/D转换,禁止使用外部时钟,引脚必须处于一个逻辑高电平状态。

单片机从耗电的角度出发常常会进入休眠状态,但由于某个特殊的原因,又会及时从休眠状态中唤醒。

1)如果芯片出现以下事件,单片机便可以从休眠状态进入唤醒状态:

(1)将外部的复位信号输入到引脚;

(2)监视定时器激活(如果WDT使能);

(3)来自引脚INT的中断,RB端口的电平变位,或者其他一些外围设备中断。

外部复位将引起器件复位,而其他事件都被认为是程序正常运行的继续。通过查询STATUS寄存器中的位和位,可用来确定器件复位的原因。

当休眠状态被唤醒,设置成电源开启标志位被清零。如果WDT发生了定时时间到而引起唤醒状态,位被清零。

2)如果以下外围设备出现中断请求,也可使单片机从休眠状态中唤醒:

(1)并行从动端口读/写操作;

(2)在异步计数方式下,定时器TMR1中断;

(3)CCP捕捉方式中断;

(4)特殊事件触发在异步方式下,定时器1采用外部时钟;

(5)SSP(起始/停止)位探测中断;

(6)在从动方式下,SSP发送或接收中断(SPI/I2C);

(7)USAR的RX/TX(同步从动方式);

(8)当A/D时钟源为RC时,A/D转换中断;

(9)EEPROM写入操作完成。

当执行SLEEP指令时,下一个指令(PC+1)被预先取出。为了使器件能通过某一中断事件而激活,与之对应的中断允许位必须被置位。唤醒状态与GIE位的状态无关,如果GIE位被清零,器件将继续执行SLEEP指令后面的指令;如果GIE位被置位,器件将执行SLEEP指令后面的指令,然后转移到中断地址(0004H)。若用户不希望执行SLEEP指令后面的指令,那么在SLEEP指令后面必须要有一个NOP指令。

3 案例分析

设计一个低功耗系统产品,是一个综合规划的内容,需要考虑的因素很多。如图2所示,给出了一个具体硬件实施方案:

单片机的系统时钟采用外接R1、C1阻容振荡方式提供。既可以节省成本,又可以快速启动单片机,减少唤醒时的能耗。

日期、小时、分钟、秒的计时采用定时器/计数器TMR1完成。TMR1是具有独立的低功耗、低频率振荡器,既便是在单片机处于睡眠状态,TMR1依然可以精确计时并能在计时溢出时产生中断请求,唤醒单片机。石英晶体XTL采用32768Hz的低频晶体,在晶体回路中串有电阻R5,以便进一步降低能耗。

芯片采用5V电源供电,掉电保持电源BT1采用2.4V的锂电池。BT1接在一个模拟I/O口上,R6为充电限流电阻。单片机可以通过该电阻以脉冲方式对电池充电,而停止充电时,可以通过该口以模拟输入方式,检测电源电压并调整充电脉冲的宽度,即通过软件实现智能PWM充电。在外部电源掉电时,电池BT1可以经电阻R6和I/O口输入端保护二极管D向单片机供电。由于这时的供电电流仅为微安级,因此电阻R6上的压降可以忽略不计,D1的作用是防止电池BT1向其它芯片或电路放电。如果掉电时间不是很长的话,可用漏电较小的胆电容代替电池;如果掉电时间较长的话,可用CSC-4法拉级大电容代替电池,持续时间可以从几分钟到几天。

输入口I1、I2、I3均接有120KΩ的上拉电阻R2、R3、R4,但该上拉电阻不是接到电源正极,而是接到输出端口O1上。单片机处于工作状态时,O1口输出高电平;单片机进入睡眠状态时,将O1口置成低电平或高阻状态。注意,在这里一定要把内部上拉屏蔽掉。

输出口O2接有一只二极管D2。二极管D2的作用是防止在系统掉电后高电平输出时,消耗较多的维持电能。当O2口输出低电平时,二极管D2导通,三极管基极被嵌位而截止;当O2口输出高电平时,二极管D2截止,电源经R7向三极管提供基极偏流,三极管饱和导通,继电器线圈得电,常开触点闭合。

4 结论

总之,PIC单片机工作时要最大限度地降低功耗,就要根据具体的应用场合,从硬件设计和软件设计上综合考虑,并采用相应的措施,以达到降低功耗之目的。

参考文献

[1]刘启中,李荣正.PIC单片机原理及应用[M].北京:航空航天大学出版社,2003.

[2]丁跃军,来清民.PIC单片机基础教程[M].北京:航空航天大学出版社,2005.

[3]张明峰.PIC单片机入门与实战[M].北京:航空航天大学出版社,2004.

pic单片机 篇3

关键词:电站故障保护;PIC单片机;模块

中图分类号:TM769 文献标识码:A 文章编号:1674-7712 (2014) 16-0000-01

随着电子技术的发展,以单片机为控制核心故障保护模块以其优良的安全性、平稳性、可靠性全面取代了传统模拟式保护系统,在电站故障保护中的到了全面应用,本研究基于PIC单片机设计并实现了电机故障保护模块,现将相关设计理念及实现过程介绍如下。

一、故障保护模块的功能要求

电站故障保护按照电站故障保护类型通常可以重故障保护和轻故障保护两类。其中重故障保护包括超速、油压低、水温高等。轻故障保护包括过电压、过频率、过电流、欠电压、欠频率等。依据不同的故障类型,故障保护模块会有相应的保护动作,一般情况下发生轻故障时,故障保护模块会切断电源实现对设备的保护,而一旦设备发生重故障,故障保护模块则会在第一时间断电停机,以保证发电设备不会受到损害。

二、故障保护模块的模块组成

本研究故障保护模块由机组电源检测、频率检测、转速检测、温度控制、压力检测、PIC16F877A单片机控制等部分组成。分布于电站的电源设备、转速控制设备、频率变送设备、温度传感设备、压力传感设备等位置,用于收集和处理电站的各项工作数据,经过处理后输入中央处理器,在中央处理器内部完成内部比较,以判断是否存在故障,如果运行平稳无障碍,在进行持续循环监控,一旦发展出现故障会第一时间进入故障处理进程,对故障进行保护。

三、故障保护模块的硬件设计

该电站故障保护模块的核心器件采用PIC16F877单片机。总线结构采用哈佛总线,其指令系统采用通用的RISC系统,在程序编写方面比较简单,易于实现。在故障模块内部设有8路模拟量输入通道,通过I/O能够驱动LED管、继电器及光电耦合器,控制电路简单有效。

(一)电源及频率检测单元

本模块采用三相电源和频率变送器完成信号转换成工作,信号被转化为电压为5V的直流信号后,以该直流电压作为PIC16F877单片机输入信号,通过变送器完成线性光电隔离工作,该模块具有精度较高、体积较小、能耗较低、频率较宽等诸多优势。

(二)转速采集单元

通过数字测速系统转速采集单元完成采样工作,具体转速测定是通过安装在发动机飞轮壳上的磁性传感器完成的。发动机飞轮齿顶部位置距离磁性传感器的距离在应在1mm以内,经过整形后,传感器输出交流信号被输入到PIC16F877单片机的TMR1端口中,由TMR1完成信号的脉冲计数工作,并以此实现转速实际监测工作。TRM1作为16bit的计数寄存器,其中包含有低频时基振荡器和3bit可编程预分频器,其测速的精确度较高,分辨度较高,且通常不会受到其他器件的影响。

(三)压力及温度检测单元

电站的压力及稳步检验工作是依托于安装在油压传感器以及水箱散热器上的传感器实现和完成的,压力及温度传感信号全部采用开关量,在实施光电隔离之后,输入到PIC16F877单片机的I/O端口。

(四)输出回路

电站故障保护模块的系统的输出主要包括停机和断电两个开关量,经过光电隔离后,由PIC16F877单片机的输出口驱动停机继电器和停电继电器完成停机和断电动作。

四、故障保护模块的软件设计

该电站故障保护模块软件由汇编语言进行编写,主要包括有初始化程序、A/D转换程序、TMR1计数程序、故障保护程序等。

(一)初始化程序

电站故障保护模块中的初始化程序中包括数据方向控制、中断控制、IN-TCON、ADCON0等多个寄存器。

(二)A/D转换程序

单片机内部嵌有ADC模块,其数字量精度为10bit,有8个模拟通道,并设有AD-CON0、ADCON1、ADRESH、ADRESL等四个专用寄存器。使用了PIC16F877单片机的三个模拟量通道。ADCON0寄存器设置为11000001,ADCON1存器设置为00000100,模拟输入为AN0、AN1、AN3,A/D转换结果在ADRESH和AD-RESL中存放。

(三)TMR1计数程序

TMR1计数程序由16bit的定时器/计数器构成,分为三种工作模式,采用异步计数器,T1CON設置为00000110。由于TMR1由TMR1H和TMR1L组成,在读数时应注意分次读取。

(四)故障保护程序

故障保护程序重点完成A/D采样、定时器/计数器TMR1及I/O口压力及温度监控数据比较判别,并输出相应动作。

五、故障保护模块的抗干扰设计

在具体实施过程中系统的抗干扰设计同样是一项十分重要的工作,本研究主要实施了七项抗干扰设计举措。一是依托在相关供电/断电的交流接触器线圈侧加装RC瞬变噪声抑制网络,来实现抗干扰功能。二是通过加装控制继电器线圈两侧续流二极管,来实现抗干扰功能。三是采用屏蔽线装备转速磁性传感器传输线实现抗干扰。四是在模拟量输入通道中加装线性光电隔离变送器,并设置T型低通滤波器实现抗干扰。五是通过DC/DC变换器供电实现抗干扰。六是在开关量输入/输出通道中增加光电隔离器实现抗干扰。七是在PCB板入口处电源与底线间加装的电容器,并采取线条垂直交叉走线实现抗干扰。

本电站故障保护模块设计经过实际应用,经过实际验证可完全满足电站故障保护要求,模块运行安全稳定,对于确保电站安全具有重要作用。

参考文献:

[1]王军宁,何迪.TI DSP/BIOS用户手册与驱动开发[M].北京:清华大学出版社,2007:78-80.

[2]白凤山.单片机在高压异步电机综合保护中的应用[J].内蒙古大学学报,2003(05):552-556.

pic单片机 篇4

将已硬化的混凝土干燥后浸入有机单体中,用加热或辐射等方法使混凝土孔隙内的单体聚合,使混凝土与聚合物形成整体,称为聚合物浸渍混凝土,

由于聚合物填充了混凝土内部的孔隙和微裂缝,从而增加了混凝土的密实度,提高了水泥与骨料之间的粘结强度,减少了应力集中,因此具有高强、耐蚀、抗冲击等优良的物理力学性能,

与基材(混凝土)相比,抗压强度可提高2~4倍,一般可达150MPa。

浸渍所用的单体有:甲基丙烯酸甲酯(MMA)、苯乙烯(S)、丙烯腈(AN)、聚脂-苯乙烯等。对于完全浸渍的混凝土应选用粘度尽可能低的单体,如MMA、S等,对于局部浸渍的混凝土,可选用粘度较大的单体如聚脂-苯乙烯等。

pic单片机 篇5

对于原有的井下供电系统的高压防爆开关和低压馈电开关具有基本的短路、过载、漏电和监视保护功能。但这些只能满足现场的基本保护,系统的综合保护器精度和灵敏度并不高。与多功能的智能保护器相比,有着较多的功能上的缺陷,不方便工作人员的保护整定。当有开关故障发生时仅有简单的指示灯指示,极不方便事故的判断检修。因设施陈旧,保护误动作也时有发生,为电网的供电管理结合维护带来了极大的难度们不能满足煤矿的实际需求。

1 系统总体方案设计

本系统系统硬件部分主要由信号采集、信号预处理电路A/D转换、控制电路、时钟电路、数据通信、人机界面等几部分组成。单片机通过专用电能计量芯片对电力信号进行检测,该芯片内部集成了ADC、电压基准、功率/电能计算模块等,可以直接对交流信号进行采样、检测并将检测结果保存在其内部寄存器中,单片机通过简单的三线串行接口就能读取其测量数据结果,真正实现了单一环节测量。

2 系统硬件设计

2.1 系统电源电路

由于开关电源易产生高频干扰信号,对测量的精确性影响较大,故系统电源电路采用了传统的线性电源设计方法,被测电压信号(220V或100V)。同时也是电源电路的输入级,经过滤波、过流、过压保护电路后,经变压器降压、整流作为系统的工作电源。此外,电源电路采用三相并联结构以保证系统在一相或两相电压缺相的情况下仍能继续工作,确保能够判别系统的工作状况是否正常。

2.2 强弱电隔离及保护电路

由于被测的电压电流信号较高,因此必须对信号进行隔离处理。系统采用高精度的电压电流互感器实现信号转换,并在其互感器副边设计有保护电路以防止过流、过压对系统可能造成的破坏。

2.3 信号预处理

信号预处理的目的在于限流保护、防止浪涌电压,减少电磁干扰、输入滤波。经互感器变换后的电压电流信号在进入CS5460A之前应先通过信号预处理电路,其目的在于对两路信号进行滤波和保护CS5460A不受损坏。由于CS5460A两个通道的最大检测电压为150mV,电流通道最大短时承受电流为100mA,为预防工作中出现的异常情况,必须设计相应的保护电路。另外,预处理电路也是消除噪声,保证精度的重要环节。

2.4 信号测量电路

单片机同时控制三片CS5460A分别对三相电压电流信号采样测量,这部分电路包括PIC单片机与CS5460A的连接电路以及CS5460A的信号输入电路,其中信号输入处理电路起着滤波和保护的作用。模拟信号输入电路(A相电路)。PT以及其后的串联分压电路将220V的电压变换为100mV的交流信号,CT为变比1000:1的高精度电流互感器。经变换后的被测信号以差模电压的形式接到CS5460A的模拟信号输入端,由于互感器自身角差的影响,可能造成输入信号产生相位偏移,使得功率测量的误差增大,而CS5460A具有数字相位补偿功能(可进行-2.8°至+2.8°的相位补偿)可以大大减小互感器角差的影响。

2.5 人机交互系统电路

这部分电路主要控制两个系统间数据通讯及信号的传输。信号检测系统是整个系统的核心部分,系统的整体性能很大部分取决于这一部分的设计,本设计的现场测控装置主要通过485总线进行连接,再通过485转光纤模块将将井下各个采集点的信息传输至井上。井上通过Labview来做出可视化操作界面来对数据进行相应的显示和操作。

3 上位机设计

3.1 登录权限

本系统具有完备的管理权限设计,可以通过对登陆者的操作权限进行相应设置。可以通过界面设置登录密码及账户,登录者的注册信息保存在数据库中。保证了操作人员的稳定和可靠性。通过新建建立账户,通过编辑安全区可以编辑成员的操作权限,

3.2 监控主界面

本系统的主界面设计主要有用户管理功能,实时数据库存储功能,历史数据库管理功能以及打印管理。其中,用户管理又设计了权限操作和管理用户功能;实时数据库管理主要包括采集现场数据和显示实时趋势以及数据的报警信息和故障信息处理;历史数据库管理部分主要包括历史数据查询功能和历史曲线显示功能两个部分。

3.3 系统报警

监控对象的变化是调度控制人员最为关心的内容,因此本设计在系统中提高了报警功能,当有问题出现时,系统将以不同的方式将系统中发生的变化告知调度监控及管理人员。界面主要有声光报警信息提示、提示的主要信息包括遥信变位信号、遥测越限信号以及事故变位信号等。

4.4 实时数据报表

本系统将采集的数据信息自动插入数据库建好的表格里,通过sql语句编程实现了系统具备检索信息功能。界面设有显示,查询以及打印授权、修改等功能。资料库操作的权限可有授权人进行调用,表格资料打印输出等。实时打印报表而不影响正系系统传感器正常对数据的采集。也可以实时查看报表数据。

4.5 趋势曲线

本部分的功能模块主要是采集数据的实时曲线与历史曲线界面。该界面将采集到的各线路电量参数进行实时显示自动整理,并将数据自动进行存储。只管方便的显示了当前的各个设备运行情况并作为报警的依据。也可以通过系统的软测量预测下一组数据的范围,具有提前预警的功能。

4.6 其他管理功能

本社记得上微机软件设计了数据库的存储功能每用户可以在一段时间内查找数据并输出。极大的方便了维护人员的检修等。对于有用的数据信息也可以通过输出刻录到光盘上以便于以后的查询。也可以输出相应的数据报表经打印机打印备份。

5 结论

系统主要实现了在电网正常运行、三相不平衡状态、故障状态下的信号检测及处理,完成多功能高精度电能仪表测量功能,并实现电网信息采集监控以及对电力系统运行状况进行分析和统计。在电能计量方面,系统能实现三相电流、电压、有无功功率、视在功率、功率因数、频率和有无功电量的测量与统计功能。通过实际运行测试,能够完成各项功能且运行稳定。为井下供电系统的可靠运行打下坚实基础,确保矿井的安全生产。

摘要:本设计在研究了煤矿井下35Kv及6KV的供电特点以及原有设备存在的问题基础上,深入研究了井下供电系统的可靠性,采用PIC单片机作为主控制器,设计了供电测控保护系统。本系统主要解决由于矿井下设备使用年限较长,设备比较陈旧,各保护功能不完善以及管理困难维护难度大等问题,当系统有问题出现时,相关技术及管理人员能够及时发现及迅速处理,避免因供电为题为煤矿带来的损失。当供电网络一旦出现故障能自动预警预报。

关键词:供电保护,PIC,预警预报

参考文献

[1]陈玉堂,荣锋.基于485总线的多路数据采集系统.电脑与电信,2008.

pic单片机 篇6

摘 要 随着触摸按键技术的不断发展,触摸式按键已经在电器、移动电话、厨房设备、家电产品、工控开关等方面大量应用。传统的机械按键具有易磨损、安装复杂、受温度湿度影响变化较大等缺点,而压电薄模式触摸按键造价高昂,而且容易损坏,受温度湿度影响变化更大等缺点。电容触摸感应式技术完全弥补了以上两种按键的缺点,且具有不怕磨损、防水保护、不受温度、湿度影响、造价低廉、增加产品寿命、可以令产品更加美观,显得更加高档式等优点。

关键词 电容触摸 按键 振荡器

Microchip推出电容式触摸按键的方案,可以做到16个键(如果超过16个键也可以通过组合的方式实现),其中PIC16F72X系列单片机内部本身集成了电容式触摸传感模块,可以做到一个I/O口对应一个按键。

一、电容触摸按键原理

电容式触摸感应按键的基本原理就是一个不断地充电和放电的张弛振荡器。如果未触摸按键,张弛振荡器有一个固定的充电放电周期,频率是可以测量的。如果我们用手指或者触摸笔接触按钮,就会增加电容器的介电常数,充电放电周期就变长,频率就会相应减少。在单片机中将检测这一频率变化,就可以侦测触摸动作。

电容触摸按键主要有三个关键部分组成——电容传感器、松弛振荡器、频频测量。

1.电容传感器原理

根据电容公式:C= or A / d

åo 真空的介电常数 år 相对介电常数

d 电容极板之间的距离 A 极板面积 C 电容

当人手指触摸传感器时,由于玻璃-手指-地之间会产生的电容,该电容与电路对地的自然寄生电容并联。并联电容相加,所以当手指接近焊盘时总电容将变大. 而电容的变化,导致振荡器的RC 时间常数改变,这就是我们检测的依据. 稍后将看到,RC时间常数增加,振荡器频率将减小,在单片机中将检测这一频率变化。

2.振荡器工作原理

松弛振荡器是一个自激RC 振荡器,它使用2个带SR锁存的比较器来改变感应电容器电压的充电方向,进行充电或者放电。电容器充放电的速率由RC 时间常数来确定,通过比较器的正输入端来设置充电的上下限。从下限充电到上限,然后放电重新回到下限的时间,就是振荡器的周期。

3.频频测量

一旦振荡器构建好了,就可以监控它的频率.既把振荡器的输出同时接到一个记数器的输入口,每次当振荡器由0变到1时,记数器也将增加1。如果不加控制,记数器将一直增加,最后溢出。为了这个记数器有用,我们要用一个固定的时基在一个确定的时间内测量频率。检测是否有手指触压导致的频率下降。

二、硬件设计

PIC16F72X器件内部集成了(Capacitive Sensing Modeule,CSM),CSM充许用户在无外部振荡的电路情况下设计电容触摸传感系统,其内部有软件控制的振荡器,它可用来检测多16路输入,PIC16F72X提内部RC时钟,UART IIC接口,内部WDT和三个定时器,因此,PIC16F72X简化了系统所需的硬件,只需在PCB中增加16个触键传感焊盘和少量的阻容器件。

在PCB设计时要注意以下几点:

(1)按键焊盘大小,据电电容公式可知,其外形不是并不重要,而其大小是关键。焊盘尽可能的大以便提高其灵敏度,以便检测。同时注意按键焊盘之间的隔,通常在5MM以上。

(2)按键焊盘尽可能远离地线,且走线尽可能短,以减小寄生电容。

三、软件设计

检测是否有键按下的原理为将测量值与频率计数的滑动平均值进行比较,频率计数值下降就表明有按钮按下。按钮检测算法一般有三种:

• 方法1:直接判断,固定滞后量

• 方法2:百分比判断

• 方法3:一次计算一个百分数,不断求平均

本设计采用的方法1。

软件基本流程序,TIMER0 作为测量频率的时基,每毫秒中断一次。中断服务程序完成对TIMR1值的读取,并与保存的平均值比较,若小于指定的阈值,则得到一个按键动作,否则更新平均值,完成一个键的扫描,设置下一个扫描通道,重置TIMERO,TIMER1,退出中断。

为达到合适的触键手感,可使用Microchip提供的mTouch诊断工具来直观的挑选恰当的数值。但在本设计时由于没有PICkit™工具,作者利用PIC16F724的串口来打印出每一个按键按下时与按下时的频值。通过多次实现确定恰当的值。

软件主要模块有:CSM、定时器、系统初始化,按键检测,平均值计算,通信模块。

四、结语

提出了利用PIC16F724 构成的触摸按键系统,对其进行一系列产品化,已应用到智能楼宇对讲系统的按键部分,电路简单、可靠,触感效果良好。

参考文献:

[1]PIC16F72X/PIC16LF72XData Sheet.

pic单片机 篇7

5.PIC单片机C语言程序SIM软件仿真技巧

在《PIC单片机C语言程序设计 (10) 》中, 我们以C语言程序pic07.C为例, 介绍了SIM软件仿真调试的基本手段和方法, 下面介绍SIM软件仿真的技巧, 包括用跑表直接测试C程序运行的耗时 (包括秒值) 、快速观察C程序的运行路径、显示C程序中的变量值和修改程序中的错误等等。

⑴用跑表测试程序的延时量和秒计时值

这里, 我们仍以pic07.C为例, 介绍利用MPLAB IDE提供的跑表 (又称停表—stop watch命令) , 测试C程序中所要求的各种计时值的操作步骤。该操作十分简单, 同时也是实际程序调试中经常要用到的。

pic07.C是一个0~99秒的脉冲发生器程序。其秒个位在LED显示 (电路见《PIC单片机C语言程序设计 (4) 》中的图3) 时, 从0到1、从1到2、……, 每隔1秒显示数字加1, 而秒值是由pic07.C程序显示函数中的d值 (d=100) 决定的。如果用MPLAB IDE提供的跑表测试该时间若未达到1秒的要求, 可直接改变d值 (增加或减少) , 来达到所规定的递增1秒的要求。

用跑表测试pic07.C程序中各代码功能的时间, 其操作方法如下:

1) 例行操作

按照《PIC单片机C语言程序设计 (9) 》一文介绍的方法, 在MPLAB IDE7.40集成开发环境中, 对源程序pic07.C进行编译, 只要编译成功 (此为进行软件仿真的必要和充分条件) , 便可进行下面的SIM软件仿真操作了。

点击图37 (见《PIC单片机C语言程序设计 (9) 》) 中的pic07.C, 把该程序调到MPLAB IDE7.40的桌面上。再按照《PIC单片机C语言程序设计 (10) 》中介绍的方法, 在MPLAB IDE7.40的窗口上设置软件仿真调试状态窗口, 如图49所示。注意:接下来将使用图49中的7个模拟调试快捷图标 (Debug) 。

2) 调用stop Watch (跑表)

点击图49中的Debugger命令, 并在弹出的下拉菜单中点击setting, 即可生成图50所示的Simulator Settings界面。在该界面中, 频率为20MHz, 我们将其改成实际电路 (即《PIC单片机C语言程序设计 (4) 》中的图3) ) 所用的晶振频率4MHz, 然后点击图50中的“确定”, 回到图49所示界面。在该界面中点击“Debugger”命令, 并在弹出的下拉菜单中点击“Stop watch, 即可生成图51所示的对话框。

3) 定量测试

下面我们来验证程序运行时, 各代码运行的具体时间是否如《PIC单片机C语言程序设计 (10) 》中的表6所示。具体操作如下:

a.点击图49快捷图标中的命令Animate, 之后立即点击快捷图标中的Halt (停止) , 便会出现图52所示界面。其中, 主程序TRISA=0X10赋值语句左边有一个绿色箭头, 指向的是模拟调试时程序运行的起始语句;而语句X++; (自增量) 左边有一个断点标志, 即红色的“B” (若语句X++;左边无断点标志“B”, 可通过双击X++旁的位置, 来进行断点“B”的设置) 。接下来, 便可验证《PIC单片机C语言程序设计 (10) 》中表6列出的程序各语句的耗时量了, 其操作方法如下:

b.图52“Stop watch”界面右下角的程序频率为4 (MHz) , 说明设置频率是正确的。点击图52中的命令“Zero”清0, 使Zero右边的time为0 (说明:该行最右侧显示的是执行多条语句的累积时间, 此处可不管) , 随后点击MPLAB IDE菜单行中的模拟调试快捷图标Step Into (单步) , 使程序按照《PIC单片机C语言程序设计 (10) 》表6所列, 从绿色起始箭头所指语句TRIA=0X10;开始, 只运行一步就停下来, 此时, 图52中Zero右侧time旁显示该语句运行耗时数是2μs, 与表6所列数值完全相符, 而绿色起始箭头则指向了下一条语句“PORTB=0X40”;处。

接着运行语句“PORTB=0X40”;, 方法同语句“TRIA=0X10”;。即先点击Zero, 清0, 使Zero右边的time为0, 再点击Step Into (单步) , 执行语句“PORTB=0X40”;, 可以看到绿色起始箭头又指向了其下一条语句INTCON=0X00;, 此时, 图52中Zero右侧time旁边给出的该语句运行耗时数是3μs, 与表6所列数值完全相符。

用同样的方法, 依次执行表6所列的语句, 从而确认各语句运行的时间是否与表6所列数值相同。需要注意的是, 在点击Step Into (单步) 命令运行一条语句前, 必须先点击Zero, 对time清0一次 (即不观察累计时间) 。

此外, 运行位赋值定义语句unit_bit=X%10;ten_bit=X10%10;时, 应将点击Step into命令换成点击“Step over”命令, 其余操作不变, 程序又可快速单步运行。遇到delay (200) ;延时语句时, 也用“Step over”命令, 才能顺利验证表6中的耗时量。

4) LED显示增量时间的测定

类似上述方法, 当程序运行到display (x) ;语句处时, 先点击Zero (清time的0) , 然后点击MPLAB IDE模拟调试的快捷命令“Run” (全速运行) , 使程序从display (x) ;全速运行到预先设置的断点X++;处, 此时, 图52中time的显示值为1.036104S (秒) , 说明pic07.c程序中的d=100值大了一点。

此时, 我们可将程序中的d值改为99 (或98、97) , 然后在用前述增量时间测定方法对其进行运行时间测定, 来找到最准确的0~99递增为1秒的d值。

pic单片机 篇8

关键词:PIC单片机,漏电流,智能漏电保护器,A/D 转换

0 引言

漏电保护是低压用电保护中的一项重要保护技术,在工业现场和民用建筑领域获得越来越多的应用。[1,2]

在建筑施工现场临时用电安全技术规范(JGJ46-2005)中强制规定,配电系统应尽量使用TN-S系统,实行三级配电,采用二级漏电保护。二级漏电保护系统中第一级漏电保护器主要目的是防止漏电火灾;在第二级漏电保护失效时,起二次保护的重要作用。通用型漏电保护器功能简单,性能往往难以满足要求。提出了一种基于PIC单片机的智能漏电保护器的设计方法。该智能漏电保护器具有漏电流显示、报警阀值设定、动作时间设定、报警指示和读取历史报警漏电流数据等功能;该智能漏电保护器还具有参数设定范围宽,参数调整方便等特点。

1 智能漏电保护器的工作原理

智能漏电保护器的工作原理如图1所示。该电路主要由漏电检测装置,整流、滤波和放大电路组成的信号调理电路,带A/D转换、E2PROM存储器的单片机最小系统,4位数码管显示电路,报警指示电路,按键电路和断路器控制电路等组成。

智能漏电保护器面板布置如图2所示。智能漏电保护器正常工作时,数码管显示漏电流的测量值,“正常”指示灯亮。当测量值超过设定阀值时,“正常”指示灯灭,“报警”指示灯亮,延时设定时间后测量值不再超限,则恢复“正常”指示灯亮,“报警”指示灯灭,漏电脱扣器不动作,该功能主要是防止出现大面积停电;延时设定时间后测量值仍超限,“正常”指示灯灭,“报警”指示灯亮,单片机控制漏电脱扣器动作,停止电路的供电,实现第一级漏电保护,数码管显示超限测量值。在排除故障后,可按复位按钮,漏电保护器恢复正常工作状态。

按下“设置”按键,“正常”指示灯灭,“设置”指示灯亮,数码管显示漏电流设定阀值,通过“↓”键和“→”键可以进行漏电流报警阀值重新设置,按“GO”键设定值存入单片机内部的E2PROM,此时,再按“GO”键则回到正常工作状态,如果是按下“设置”键,则进入报警时间阀值设置状态,同理,可进行报警时间阀值的修改;在正常工作状态,如果按下“GO”键,“正常”指示灯灭,漏电流报警历史数据“查询”指示灯亮,通过“↓”键可查看最近的10次数据,按“GO”键回到正常状态。

另外,保护器还配有一只漏电模拟试验按钮,方便检查保护器是否能正常工作。

1.1 漏电检测及信号调理电路

漏电检测装置及信号调理电路如图3所示。该电路有一只漏电检测传感器,漏电检测传感器的核心部件是零序电流互感器,互感器等效于一只环形变压器,它是利用电磁感应原理工作的,将用电设备的相线和零线一起穿过互感器的环形磁芯,在高导磁率的磁环上绕制合适匝数的线圈作为次级输出。当用电设备正常工作无漏电现象发生时,流过相线和零线的电流大小相等方向相反,两根电源线中的电流在互感器中产生的磁场大小相等方向相反而互相抵消,互感器次级线圈中不会产生感应电动势,无输出信号;当电器出现漏电或人体接触相线时,将有电流通过人体流入大地,此时,在互感器中就产生了磁场,次级线圈中就有感应电压输出。

次级线圈中的感应电压经信号调理电路后,输入单片机的A/D端进行转换。感应的交流电压信号通过由LM324、R11~R15、D13、D14、C10组成的精密整流电路整流后输出到由LM324、R16~R18组成的反相放大器放大,再通过R19、D15、C11滤波,I0端输出直流电压信号。R19和C11作为滤波元件,需要选择适当的值,以保证较小时延,同时获取纹波较小的直流信号。D11、D12限幅对放大器起保护作用,Dz11限制放大器输出直流信号的幅值,以保护单片机的A/D输入端。R10和SB10构成漏电模拟试验按钮。

1.2 单片机系统及其接口电路

单片机系统及其接口电路如图4所示。该电路由PIC16F876单片机、复位电路、按键电路、4MHz晶振电路、RA0端的模拟量输入、RC1~RC3端输出的发光二极管指示、RC0端输出的漏电断路器线圈控制电路和与RB0~RB1端接口的数码管驱动及显示电路等组成。数码管驱动采用MAX7219,它是一个采用3线串行接口的8位共阴极7段LED显示驱动器,可同时驱动8位共阴极LED。单片机采用PIC16F876,该单片机内部自带8路10位A/D转换器、E2PROM和看门狗,具有运行速度快、功耗低、功能强、性价比高、抗干扰能力突出等优点。

单片机把经过整流、放大和滤波后的电压信号采集到内部数据存储器保存,采集到的数据经过数字滤波后再与设定的漏电流阀值比较,程序根据比较结果和设定时间要求,去驱动相应的显示、报警和脱扣器线圈控制电路工作。按键SB0是复位按钮,SB1~SB4为参数设定按钮。

为了提高可靠性,使用了二个独立的直流电源;脱扣器线圈驱动电路和单片机系统之间,采用了TLP521光电耦合器进行隔离。

2 软件设计

主程序流程如图5所示。主程序主要由系统初始化模块、显示模块、参数设置模块、A/D转换模块、数据处理模块和报警漏电流历史数据查询模块等组成。

2.1 系统初始化模块

系统初始化模块主要完成以下任务:数码管显示缓冲区清零;报警历史数据存储区清零;“正常”发光二极管点亮,“报警”、“设置”和“查询”指示灯灭;禁止漏电脱扣器线圈带电;A/D转换参考电压选择,A/D转换时钟及频率选择,A/D转换结果格式选择,A/D转换为查询方式或中断方式选择,AO通道A/D转换次数设置等。

2.2 显示模块

数码管初次显示漏电流为零,正常显示的是当前测量的漏电流值。通过操作按键,可以显示设定的漏电流阀值、动作时间设定阀值,还可以显示报警的历史漏电流数据;4个发光二极管,分别对应的是“正常”、“设定”、“报警”和“查询”状态,配合数码管使用,另外二个发光二极管是电流值或时间值显示的状态指示灯。

2.3 参数设置模块

通过操作按键和对应数码管显示值的配合,可以设定漏电流报警阀值和动作时间阀值,这些数据都存放在单片机内部的E2PROM中,以防止系统失电时数据丢失。

2.4 A/D转换模块

A/D转换采用查询方式进行,程序如图6所示,每次A/D转换完成后,都把转换的数据送指定存储单元,连续转换16次后结束,程序进入数据处理模块。

2.5 数据处理模块

数据处理模块主要完成以下任务:把采集到的16次A/D转换值,取平均值滤波,然后进行标度变换,得出一段时间内的漏电平均值,分别与对应的设定值比较,确定是否报警和驱动漏电脱扣器动作,同时把报警漏电流值存入E2PROM中,以便用户查询。

2.6 历史数据查询模块

每次报警漏电流值程序都自动依次存入E2PROM指定存储单元,最多10次,自动溢出,通过查询键,可查看相关数据。

3 智能漏电保护器的主要性能指标

在西南石油大学电子信息实验中心对该智能漏电保护器进行了测试,性能指标达到设计要求。该智能漏电保护器主要性能指标:漏电流显示范围0~700mA;报警漏电流阀值设定范围10~700mA;断路器动作时间设定范围0.1~999.9s;“正常”、“设置”、“报警”和“查询”状态指示功能;10次报警漏电流历史数据查询功能;复位功能;模拟试验功能;动作电流允许范围60%~100%。

4 结语

智能漏电保护器采用了高性能的PIC单片机,充分利用了PIC单片机丰富的软硬件资源,具有硬件电路简单、可靠性高、抗干扰能力强、功能完善等特点。该智能漏电保护器可广泛应用于需要二级或多级漏电保护的工业现场和民用建筑等领域。

参考文献

[1]杨学昭,任业生,薛立.智能漏电保护报警系统的设计与实现[J].微计算机信息,2007,23(11-2):141-143

[2]李开成,刘建锋,黄海煜,等.基于MSP430单片机的数字式漏电保护器的研制[J].继电器,2008,36(8):64-67

[3]张冠英,杨晓光,王尧,等.一种智能剩余电流检测装置的开发[J].低压电器,2011(2):28-31

上一篇:银行主管年终个人总结下一篇:记叙文作文题