0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于PIC12XX的精确延时技术方案设计

电子设计 来源:网络整理 2018-05-03 05:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1 PIC12XX的结构

Microchip公司的单片机率先采用RISC(精简指令集计算机)结构的高性能价格比的嵌入式控制器

PIC单片机具有高速度、低工作电压、低功耗、较大的输入输出直接驱动能力、在线串行编程、芯片的低价位和小体积等特点。为此,Microchip开发了高档、中档、低档不同层次系列多种型号的产品,PIC12XX是一款基于EEPROM的8位微控制器的中档PIC单片机,具有高性能的RISC CPU、特殊单片机功能、低功耗功能、增强型Timer 1外设功能,为单片机的精确延时技术提供可靠保障。其内部结构如图1所示。

1.1 外部结构特点

该单片机共8个引脚,其中6个引脚具有独立方向控制功能的I/O引脚,其引脚结构如图2所示。

其引脚具有高灌/拉电流能力,可直接驱动LED模拟比较器模块带有一个模拟比较器、片上可编程比较器参考电压(CVREF)模块、来自器件输入引脚的可编程输入复用、可外部访问比较器输出。Timer 0带有8位可编程预分频器的8位定时器/计数器;增强的Timer 1带有预分频器的16位定时器/计数器,外部选通输入模式,通过两个引脚可实现在线串行编程。

1.2 内部结构特点

高性能的RISC-CPU仅35条指令,除跳转指令外,所有指令都是单周期,其时钟频率为DC-20 MHz,指令周期为0-200 ns;有较强的中断功能,8级深度硬件堆栈,采用直接、间接和相对寻址方式;可选择内部和外部振荡器,内部为4 MHz高精度振荡器,其出厂时精度已校准为±1% ;能将CPU从休眠模式唤醒和进入省电休眠模式,带低功耗上电复位(POR)、上电延时定时器(PWRT)和振荡器起振定时器(OST)、欠压检测(BOD)和独立振荡器的看门狗定时器;可复用MCLR输入引脚,引脚电平变化可触发中断,具有独立的可编程弱上拉功能、可编程代码保护、高耐久性的闪存/EEPROM存储单元,闪存耐写次数达10 次,EEPROM耐写次数达10 次,闪存/数据EEPROM的数据保持期》40年。

1.3 Timer 1工作特点

Timer 1模块是由两个可读写的8位寄存器(TMR1H和TMR1L)组成的16位定时器/计数器。TMR1寄存器对(TMR1H、TMR1L)从0000h递增到FFFFh后,计满回零到0000h。如果允许Timer 1中断,则溢出时会产生Timer 1中断。该中断可通过置位/清零TMR1IE位来允许/禁止。Timer 1有3种工作模式:同步定时器模式、同步计数器模式、异步计数器模式。其模式由时钟选择位TMR1CS(T1CON)和同步控制位T1SYNC决定,如图3所示。

在定时器模式下,Timer 1在每个指令周期递增。而在计数器模式下,Timer 1在T1CKI引脚上外部时钟的每个上升沿递增。Timer 1可以通过TMR1ON(T1CON)控制位来打开和关闭。Timer 1还有一个内部“复位输入”,可由一个CCP模块产生。Timer 1可以外接晶体振荡器,当Timer 1的振荡器被使能(T1OSCEN位置1)时,T1OSI和T1OSO引脚设定为输入引脚。也就是说,其相应的TRIS值被忽略。

2 精确延时技术

2.1 理论分析

PIC12XX单片机内置晶振的频率为4 MHz,其精度为±1% ,则时钟周期为0.25 us,单指令运行时间为1 us,其误差均为1%us,导致较大的累积误差,故不能直接利用其内部晶振进行精确延时。为此需要采用高精度的外部时钟信号,又由于Timer 1为16位,计满次数为2 次,为便于计算采用频率为32768Hz,即215Hz,精度为5×10-6,以此作为时钟,计满Timer 1为2 s,如果用该晶振作为时钟,半年的最大误差不会超过1 min。图4为外接晶振信号发生电路原理图。

由于PIC12XX指令运行是按内部晶振进行的,为提高单片的延时精度,采用外接晶振信号作为时钟信号,利用单片机的Timer 1进行中断延时,即可实现高精度的任意时间延时。

2.2 延时方法

经过理论分析,采用图5所示的基本电路进行精确延时。由于采用的是32786 Hz时钟,Timer 1为16位,因此采用中断延时,当Timer 1初值置为0000H时,中断一次延时时间为2 s;当Timer 1初值置为8000H时,中断一次延时时间为1 s。对于大于或等于2 s的长延时,采用Timer1置0000H初值;对于大于1 s的长延时,采用Timer1置8000H初值;对于小于1 s的短延时,采用Timer 1置预算初值,中断一次完成所有短延时,这样可大大提高延时的精度。

2.3 延时关键子程序

由于精确延时采用的是外部晶振,则Timer 1接外部晶振的初始化程序采用如下精简程序:

CLRF T1 CON ;Stop Timer1,Internal Clock Source

;T1 oscillator disabled,prescaler = 1:1

CLRF TMR1H ;Clear Timer1 High byte register

CLRF TMR1L ;Clear Timer1 Low byte register

CLRF INTCON ;Disable interrupts

BSF STATUS,RP0 ;Bank1

CLRF PIE1;Disable peripheral interrupts

BCF STATUS,RP0 ;BankO

CLRF PIR1;Clear pe ripheral interrupts Flags

MOVLW 0x32 ;External Clock source with 1:8 prescaler

MOVWF T1CON ;Clock source is synchronized to device

;Timerl is stopped and T1 OSC is disabled

BSF T1CON,TMR1ON ;Timerl starts to increment

;The Timerl interrupt is disabled,do poling on the overflow bit

T1_OVFL_WAIT

BTFSS PIR1,TMR1IF

GOTO T1_OVFL_WAIT

;Timer has overflowed

BCF PIR1,TMR1IF

根据延时方法分析,中断置初值采用如下程序:

load_initial_s

bcf T1CON,TMR1ON

CLRF TMR1H; Clear Low byte,Ensures no rolover into

TMR1H,Value to load into TMR1H

MOVLW 0X80 ;Value to load into TMR1H,Write High byte

MOVWF TMR1H ;

MOVLW 0X00 ;Value to load into TMR1L,Write Low byte

ADDWF TMR1L;one second intrupt one time run 262162 Tcy,i.e.0.262162s。soset tmr1

BSF T1CON,TMR1ON

load_initial_ms

bcf T1CON,TMR1ON

CLRF TMR1L;Clear Low byte,Ensures no rolover into

TMR1H,Value to load into TMR1H

MOVLW 0Xxx;the value is preparative worked out

MOVWF TMR1H;

MOVLW 0Xxx ;the value is preparative worked out

MOVWF TMR1L;

BSF T1CON,TMR1ON

程序初始化后,通过预置初值,加上程序的其他结构。就可以实现PIC的精确延时。

3 结束语

鉴于PIC12XX单片机的功能特点和优点,采用外接晶振和Timer 1中断技术,可实现较精确的任意延时。另外。Microchip公司的PIC系列单片机具有实用、低价、易学、省电、高速和体积小等特点,还具有低功耗睡眠、掉电复位锁定、上电复位电路、看门狗电路等功能,而且外围器件少、占用空间小、成本低,保密技术也十分可靠,可最大限度地保护开发者的利益。因此,在工业控制仪器仪表、计算机、家电等诸多领域具有极其广泛的应用前景。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6078

    文章

    45589

    浏览量

    673900
  • RISC
    +关注

    关注

    6

    文章

    485

    浏览量

    86866
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    PIC32MX1XX/2XX/5XX 64/100 - PIN 32位微控制器:功能特性与引脚详解

    PIC32MX1XX/2XX/5XX 64/100 - PIN 32位微控制器:功能特性与引脚详解 一、引言 在电子设计领域,选择一款合适的微控制器对于项目的成功至关重要。PIC32MX1XX
    的头像 发表于 04-22 17:35 335次阅读

    PIC32MX5XX/6XX/7XX 32位微控制器:特性、应用与引脚分析

    PIC32MX5XX/6XX/7XX 32位微控制器:特性、应用与引脚分析 一、引言 在当今电子设计领域,32位微控制器扮演着至关重要的角色。PIC32MX5XX/6
    的头像 发表于 04-22 17:00 339次阅读

    探索Microchip PIC16(L)F153XX微控制器:高性能与低功耗的完美结合

    探索Microchip PIC16(L)F153XX微控制器:高性能与低功耗的完美结合 在电子工程师的日常工作中,选择一款合适的微控制器至关重要。Microchip的PIC16(L)F153X
    的头像 发表于 04-16 17:30 464次阅读

    PIC16(L)F153XX:高性价比微控制器的卓越之选

    PIC16(L)F153XX:高性价比微控制器的卓越之选 在电子工程师的设计工具箱中,微控制器是不可或缺的核心组件。PIC16(L)F153XX系列微控制器凭借其丰富的功能和高性价比,
    的头像 发表于 04-09 16:50 273次阅读

    PIC32MX1XX/2XX 28/36/44 - PIN 32 位微控制器:功能与应用深度解析

    PIC32MX1XX/2XX 28/36/44 - PIN 32 位微控制器:功能与应用深度解析 在电子设计领域,微控制器如同大脑一般,掌控着各种设备的运行。PIC32MX1XX/2XX
    的头像 发表于 04-08 12:50 293次阅读

    PIC18FXX80/XX85 Flash微控制器编程规范解析

    PIC18FXX80/XX85 Flash微控制器编程规范解析 在电子工程师的日常工作中,微控制器的编程是一项至关重要的任务。今天我们就来深入探讨一下Microchip公司的PIC
    的头像 发表于 04-08 10:35 156次阅读

    PIC16(L)F183XX:全功能、低引脚数微控制器的技术剖析

    PIC16(L)F183XX:全功能、低引脚数微控制器的技术剖析 在电子设计领域,微控制器是众多项目的核心组件。PIC16(L)F183XX
    的头像 发表于 04-08 09:05 455次阅读

    探索PIC12C5XX:8位CMOS微控制器的卓越性能与应用潜力

    探索PIC12C5XX:8位CMOS微控制器的卓越性能与应用潜力 在电子工程师的工具箱中,高性能、低成本且功能丰富的微控制器始终是设计的关键要素。今天,我们将深入探讨Microchip
    的头像 发表于 04-07 16:45 453次阅读

    探索PIC12C67X:低成本高性能8位微控制器的卓越之选

    探索PIC12C67X:低成本高性能8位微控制器的卓越之选 在电子设计的领域中,微控制器是不可或缺的核心组件。Microchip的PIC12C67X系列微控制器以其低成本、高性能的特点,成为众多
    的头像 发表于 04-07 16:40 174次阅读

    探索PIC16(L)F183XX微控制器:低功耗与高性能的完美结合

    探索PIC16(L)F183XX微控制器:低功耗与高性能的完美结合 在电子工程师的日常工作中,选择一款合适的微控制器对于项目的成功至关重要。Microchip的PIC16(L)F183XX
    的头像 发表于 04-07 15:40 186次阅读

    深入解析Microchip PIC12C5XX系列8位CMOS微控制器

    深入解析Microchip PIC12C5XX系列8位CMOS微控制器 在电子工程师的工具箱中,微控制器就像是一把万能钥匙,能开启各种应用的大门。今天,我们要深入探讨Microchip
    的头像 发表于 04-07 15:00 150次阅读

    探索PIC16(L)F183XX微控制器:特性、应用与设计要点

    探索PIC16(L)F183XX微控制器:特性、应用与设计要点 在电子工程师的日常工作中,选择一款合适的微控制器对于项目的成功至关重要。今天,我们就来深入了解一下Microchip的PIC16(L
    的头像 发表于 03-25 11:35 231次阅读

    3.7V升12V太阳能供电升压恒压IC方案设计

    3.7V升12V太阳能供电升压恒压IC方案设计一、方案介绍:惠海半导体H6442 是一款电流模式 BOOST 异步升压恒压控制驱动芯片,适用于 2.7V~27V 输入电压范围的升压恒压电源应用,启动
    发表于 02-25 14:28

    12A高结温SCR:SJxx12xx系列晶闸管的深度解析

    12A高结温SCR:SJxx12xx系列晶闸管的深度解析 作为电子工程师,在日常设计中,晶闸管的选择至关重要。今天,我们就来深入了解一下Littelfuse的SJxx12xx系列12A
    的头像 发表于 12-16 15:30 677次阅读

    Cortex-M内核中的精确延时的方法

    。很多裸机教程使用延时函数又是基于SysTick的,这样一来又难免产生冲突。 很多人会说,不是还有定时器吗,定时器的计时是超级精确的。这点我不否认,但是假设,如果一个系统,总是进入定时器中断(10us
    发表于 11-21 07:51