Cơ sở dữ liệu - Chương 5: Các bộ định thì

pdf 25 trang vanle 1820
Bạn đang xem 20 trang mẫu của tài liệu "Cơ sở dữ liệu - Chương 5: Các bộ định thì", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfco_so_du_lieu_chuong_5_cac_bo_dinh_thi.pdf

Nội dung text: Cơ sở dữ liệu - Chương 5: Các bộ định thì

  1. dce 2009 Chương 5 - Các bộ định thì 1. Đặc điểm các bộ định thì timer0, timer1, timer2 và timer3. 2. Các chế độ hoạt động. BK TP.HCM ©2009, CE Department
  2. dcedce 20092009 Đặc điểm Timer0 Đếm tăng 8 / 16 bit tùy chọn bằng lập trình. Cho phép đọc / ghi nội dung (TMR0H, TMR0L). Chọn đếm nhảy bước 8 bit. Chọn nguồn xung clock trong hay ngoài. Báo hiệu đếm tràn bằng ngắt quãng. Chọn cạnh tác động đối với xung ngoài. ©2009, CE Department 2
  3. dcedce 20092009 Thanh ghi điều khiển T0CON TMR0ON T08BIT T0CS T0SE PSA TOPS2 TOPS1 TOPS0 TMR0ON: bật / tắt bộ đếm 0. 1= cho phép đếm 0= cấm đếm. T08BIT: chọn đếm 8 bit hoặc 16 bit. 1= đếm 8 bit 0= đếm 16 bit. T0CS: chọn nguồn clock. 1= clock ngoài (chế độ đếm) 0= Fosc/4 (chế độ định thì) ©2009, CE Department 3
  4. dcedce 20092009 Thanh ghi điều khiển T0CON (2) TMR0ON T08BIT T0CS T0SE PSA TOPS2 TOPS1 TOPS0 T0SE: chọn cạnh tác động cho clock ngoài. 1= cạnh xuống. 0= cạnh lên. PSA: chọn đếm theo bước. 1= không chọn. 0= chọn. T0PS2 - T0PS0: chọn bước đếm. 111= bước đếm 1:256 011= bước đếm 1:16 110= bước đếm 1:128 010= bước đếm 1:8 101= bước đếm 1:64 001= bước đếm 1:4 100= bước đếm 1:32 000= bước đếm 1:2 ©2009, CE Department 4
  5. dcedce 20092009 Chế độ đếm 8 bit của timer0 Lập cờ ngắt quãng TMR0IF khi đếm tràn từ FFh sang 00h. Cờ này phải được xóa khi xử lý ngắt. ©2009, CE Department 5
  6. dcedce 20092009 Chế độ đếm 16 bit của timer0 TMR0H là thanh ghi đệm cho 8 bit cao dùng cơ chế đồng bộ khi đọc ghi 16 bit. Lập cờ ngắt quãng khi đếm tràn từ FFFFh sang 0000h. ©2009, CE Department 6
  7. dcedce 20092009 Đặc điểm Timer1 Đếm tăng 16 bit. Cho phép đọc / ghi nội dung (TMR1H, TMR1L). Chọn đếm nhảy bước 8 bit. Chọn nguồn xung clock giữa xung clock chung và xung clock từ bộ dao động riêng. Ngắt quãng khi đếm tràn từ FFFFh sang 0000h. Nhận tín hiệu Reset từ khối CCP (dưới hình thức Special Event Trigger). Báo trạng thái sử dụng clock. ©2009, CE Department 7
  8. dcedce 20092009 Thanh ghi điều khiển T1CON RD16 T1RUN T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON RD16: chọn cách đọc/ghi bộ đếm. 1= đọc/ghi 16 bit. 0= đọc/ghi 8 bit. T1RUN: bit trạng thái sử dụng xung clock. 1= đang sử dụng xung dao động của timer1. 0= đang sử dụng nguồn xung dao động khác. T1CKPS1, T1CKPS0: chọn bước đếm. 11= bước đếm 1:8 10= bước đếm 1:4 01= bước đếm 1:2 00= bước đếm 1:1 ©2009, CE Department 8
  9. dcedce 20092009 Thanh ghi điều khiển T1CON (2) RD16 T1RUN T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON T1OSCEN: cho phép bộ dao động timer1. 1= cho phép. 0= tắt. T1SYNC: chọn đếm đồng bộ nếu TMR1CS=1. 1= không đồng bộ. 0= đồng bộ. TMR1CS: chọn xung clock trong hay ngoài. 1= clock ngoài từ chân RC0/T1OSO/T1CKI. 0= clock trong Fosc/4. TMR1ON: cho phép / cấm đếm 1= cho phép 0= cấm ©2009, CE Department 9
  10. dcedce 20092009 Chế độ đếm của timer1 Bộ dao động timer1 là bộ dao động LP (low-power). ©2009, CE Department 10
  11. dcedce 20092009 Đọc/ghi 16 bit timer1 Sơ đồ minh họa việc đọc timer1 theo dạng 16 bit. Chỉ cần đọc TMR1L, TMR1H sẽ được chốt vào thanh ghi đệm TMR1H ©2009, CE Department 11
  12. dcedce 20092009 Bộ dao động timer1 Sơ đồ minh họa việc dao động trên timer1. Bộ đếm timer1 nhận tín hiệu reset từ khối CCP trong hoạt động chuyển đổi A-D. Tín hiệu này dùng tốt khi chọn chế độ định thì (timer) hoặc đếm đồng bộ (synchronous counter). ©2009, CE Department 12
  13. dcedce 20092009 Chức năng Real Time Clock Bộ đếm 1 có thể được sử dụng như một bộ tạo xung thời gian thực (RTC) độc lập nhờ có bộ dao động riêng. Ứng dụng đơn giản và thiết thực nhất của RTC là đếm giờ cho hệ thống. Ví dụ minh họa sau đây dùng RTCisr duy trì giờ, phút, giây cho hệ thống. Xung clock sử dụng từ bộ dao động timer1 có tần số 32768 Hz nên khi đếm tràn bộ đếm 1 sẽ được 2s. Vì vậy trị ban đầu khởi động cho bộ đếm là 32768 (8000h). ©2009, CE Department 13
  14. dcedce 20092009 Minh họa RTCisr RTCinit MOVLW 0x80 ;Preload TMR1 register pair MOVWF TMR1H ;for 1 second overflow CLRF TMR1L MOVLW b'00001111' ;Configure for external clock, MOVWF T1OSC ;Asynchronous operation, external ;oscillator CLRF secs ; Initialize timekeeping registers CLRF mins ; MOVLW .12 MOVWF hours BSF PIE1, TMR1IE ; Enable Timer1 interrupt RETURN ©2009, CE Department 14
  15. dcedce 20092009 Minh họa RTCisr (2) RTCisr BSF TMR1H,7 ; Preload for 1 sec overflow BCF PIR1,TMR1IF ; Clear interrupt flag INCF secs,F ; Increment seconds MOVLW .59 ; 60 seconds elapsed? CPFSGT secs RETURN ; No, done CLRF secs ; Clear seconds INCF mins,F ; Increment minutes MOVLW .59 ; 60 minutes elapsed? CPFSGT mins RETURN ; No, done ©2009, CE Department 15
  16. dcedce 20092009 Minh họa RTCisr (3) CLRF mins ; clear minutes INCF hours,F ; Increment hours MOVLW .23 ; 24 hours elapsed? CPFSGT hours RETURN ; No, done MOVLW .01 ; Reset hours to 1 MOVWF hours RETURN ; Done ©2009, CE Department 16
  17. dcedce 20092009 Đặc điểm Timer2 Gồm 2 thanh ghi 8 bit : định thì (timer) và chu kỳ (period). Cho phép đọc / ghi nội dung (TMR2, PR2). Chọn đếm nhảy bước 8 bit. Chọn đếm bước trước (prescaler) hay bước sau (postscaler). Ngắt quãng khi TMR2 trùng với PR2. Dùng tạo xung truyền nhận cho khối MSSP (Master Synchronous Serial Port). ©2009, CE Department 17
  18. dcedce 20092009 Thanh ghi điều khiển T2CON TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 TOUTPS3 - TOUTPS0: timer2 postscale 0000= 1:1 postscale. 0001= 1:2 postscale. . . . 1111= 1:16 postscale 0000= 1:1 postscale. ©2009, CE Department 18
  19. dcedce 20092009 Thanh ghi điều khiển T2CON (2) TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 TMR2ON: cho phép / cấm đếm. 1= cho phép. 0= cấm. T2CKPS1, T2CKPS0: chọn bước đếm trước. 1x= bước đếm 1:16 01= bước đếm 1:4 00= bước đếm 1:1 ©2009, CE Department 19
  20. dcedce 20092009 Chế độ đếm của timer2 Tạo xung clock truyền nhận dùng trong giao tiếp nối tiếp. ©2009, CE Department 20
  21. dcedce 20092009 Đặc điểm Timer3 Đếm tăng 16 bit. Cho phép đọc / ghi nội dung (TMR3H, TMR3L). Chọn nguồn xung clock trong và ngoài. Ngắt quãng khi đếm tràn từ FFFFh sang 0000h. Nhận tín hiệu Reset từ khối CCP. ©2009, CE Department 21
  22. dcedce 20092009 Thanh ghi điều khiển T3CON RD16 T3CCP2 T3CKPS1 T3CKPS0 T3CCP1 T3SYNC TMR3CS TMR3ON RD16: chọn cách đọc/ghi bộ đếm. 1= đọc/ghi 16 bit. 0= đọc/ghi 8 bit. T3CCP2, T3CCP1:chọn làm việc với khối CCP. 1x= dùng timer3 cấp xung clock cho cả 2 khối CCP. 01= dùng timer3 cấp xung clock cho cả khối CCP2. dùng timer1 cấp xung clock cho cả khối CCP1. 00= dùng timer1 cấp xung clock cho cả 2 khối CCP. T1CKPS1, T1CKPS0: chọn bước đếm. 11= bước đếm 1:8 10= bước đếm 1:4 01= bước đếm 1:2 00= bước đếm 1:1 ©2009, CE Department 22
  23. dcedce 20092009 Thanh ghi điều khiển T3CON (2) RD16 T3CCP2 T3CKPS1 T3CKPS0 T3CCP1 T3SYNC TMR3CS TMR3ON T3SYNC: chọn đếm đồng bộ nếu TMR3CS=1. 1= không đồng bộ. 0= đồng bộ. TMR3CS: chọn xung clock trong hay ngoài. 1= clock ngoài từ chân T1CKI. 0= clock trong Fosc/4. TMR3ON: cho phép / cấm đếm 1= cho phép 0= cấm ©2009, CE Department 23
  24. dcedce 20092009 Chế độ đếm của timer3 Dùng chung bộ dao động timer1. ©2009, CE Department 24
  25. dcedce 20092009 Đọc/ghi 16 bit timer3 Sơ đồ minh họa việc đọc timer3 theo dạng 16 bit. Chỉ cần đọc TMR3L, 8 bit cao của bộ đếm 3 sẽ được chốt vào thanh ghi đệm TMR3H. Phục vụ chế độ so sánh của khối CCP. ©2009, CE Department 25