欢迎访问ic37.com |
会员登录 免费注册
发布采购

PIC18F8621-I/PT 参数 Datasheet PDF下载

PIC18F8621-I/PT图片预览
型号: PIC18F8621-I/PT
PDF下载: 下载PDF文件 查看货源
内容描述: 八十〇分之六十四引脚高性能, 64 KB的增强型闪存微控制器与A / D [64/80-Pin High-Performance, 64-Kbyte Enhanced Flash Microcontrollers with A/D]
分类和应用: 闪存微控制器和处理器外围集成电路装置时钟
文件页数/大小: 396 页 / 6639 K
品牌: MICROCHIP [ MICROCHIP ]
 浏览型号PIC18F8621-I/PT的Datasheet PDF文件第136页浏览型号PIC18F8621-I/PT的Datasheet PDF文件第137页浏览型号PIC18F8621-I/PT的Datasheet PDF文件第138页浏览型号PIC18F8621-I/PT的Datasheet PDF文件第139页浏览型号PIC18F8621-I/PT的Datasheet PDF文件第141页浏览型号PIC18F8621-I/PT的Datasheet PDF文件第142页浏览型号PIC18F8621-I/PT的Datasheet PDF文件第143页浏览型号PIC18F8621-I/PT的Datasheet PDF文件第144页  
PIC18F6525/6621/8525/8621  
the routine which increments the seconds counter by  
one; additional counters for minutes and hours are  
incremented as the previous counter overflow.  
12.6 Using Timer1 as a  
Real-Time Clock  
Adding an external LP oscillator to Timer1 (such as the  
one described in Section 12.2 “Timer1 Oscillator”)  
gives users the option to include RTC functionality to  
their applications. This is accomplished with an  
inexpensive watch crystal to provide an accurate time  
base and several lines of application code to calculate  
the time. When operating in Sleep mode and using a  
battery or supercapacitor as a power source, it can  
completely eliminate the need for a separate RTC  
device and battery backup.  
Since the register pair is 16 bits wide, counting up to  
overflow the register directly from a 32.768 kHz clock  
would take 2 seconds. To force the overflow at the  
required one-second intervals, it is necessary to pre-  
load it. The simplest method is to set the Most Signifi-  
cant bit of TMR1H with a BSFinstruction. Note that the  
TMR1L register is never preloaded or altered; doing so  
may introduce cumulative error over many cycles.  
For this method to be accurate, Timer1 must operate in  
Asynchronous mode and the Timer1 overflow interrupt  
must be enabled (PIE1<0> = 1), as shown in the  
routine, RTCinit. The Timer1 oscillator must also be  
enabled and running at all times.  
The application code routine, RTCisr, shown in  
Example 12-1, demonstrates a simple method to  
increment a counter at one-second intervals using an  
Interrupt Service Routine. Incrementing the TMR1  
register pair to overflow, triggers the interrupt and calls  
EXAMPLE 12-1:  
IMPLEMENTING A REAL-TIME CLOCK USING A TIMER1 INTERRUPT SERVICE  
RTCinit  
MOVLW  
MOVWF  
CLRF  
0x80  
TMR1H  
TMR1L  
; Preload TMR1 register pair  
; for 1 second overflow  
MOVLW  
MOVWF  
CLRF  
b’00001111’  
T1CON  
secs  
; Configure for external clock,  
; Asynchronous operation, external oscillator  
; Initialize timekeeping registers  
;
CLRF  
mins  
MOVLW  
MOVWF  
BSF  
.12  
hours  
PIE1, TMR1IE  
; Enable Timer1 interrupt  
RETURN  
RTCisr  
BSF  
BCF  
INCF  
MOVLW  
TMR1H, 7  
PIR1, TMR1IF  
secs, F  
.59  
; Preload for 1 sec overflow  
; Clear interrupt flag  
; Increment seconds  
; 60 seconds elapsed?  
CPFSGT secs  
RETURN  
; No, done  
CLRF  
INCF  
MOVLW  
secs  
mins, F  
.59  
; Clear seconds  
; Increment minutes  
; 60 minutes elapsed?  
CPFSGT mins  
RETURN  
; No, done  
CLRF  
INCF  
MOVLW  
mins  
hours, F  
.23  
; clear minutes  
; Increment hours  
; 24 hours elapsed?  
CPFSGT hours  
RETURN  
; No, done  
MOVLW  
MOVWF  
RETURN  
.01  
hours  
; Reset hours to 1  
; Done  
DS39612B-page 138  
2005 Microchip Technology Inc.  
 复制成功!