intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Chương 4: Hoạt động của bộ định thời

Chia sẻ: Nguyễn Nguyễn | Ngày: | Loại File: PDF | Số trang:35

208
lượt xem
21
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Chương 4: Hoạt động của bộ định thời giúp các bạn biết được bộ định thời Timero; bộ định thời Timer 1; bộ định thời Timer 2. Mời các bạn tham khảo bài giảng để bổ sung thêm kiến thức về lĩnh vực này, với các bạn chuyên ngành Công nghệ thông tin thì đây là tài liệu hữu ích.

 

Chủ đề:
Lưu

Nội dung Text: Bài giảng Chương 4: Hoạt động của bộ định thời

  1. CHƯƠNG 4 I
  2. CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI 1. Bô định thời TIMER0 - Bộ định thời TIMER0 là bô định thời / bô đếm 8 bit. - Bao gồm 1 bô tiền định ti% lê 8 bit lập trình được (Prescaler). - Có Bit chọn xung Clock nội hay bên ngoài. - Có Bit lựa chọn cạnh tác động của xung Clock.
  3. CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI a. Bô tiền định ti
  4. lê (Prescaler) Là bô đếm 8 bit được dùng làm bô tiền định ti% lê cho Timer0 hoặc hậu định ti% lê cho bô WDT. - Bit PSA là bit chọn dùng cho Timer hay WDT. - 3 bit PS2 : PS0 sẽ xác định gia; trị ti% lê.
  5. CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI b. Hoạt động bô định thời TIMER0 Timer0 có 2 chê; đô hoạt động được lựa chọn bởi bit T0CS ( OPTION ). - Ở chê đô định thời: thanh ghi TMR0 sẽ tăng lên sau mỗi chu kyB máy ( với điều kiện Prescaler không có tác dụng hoặc có ti lê là 1:1 ) - Ở chê đô đếm xung: TMR0 sẽ tăng lên khi có sườn cạnh lên hay sườn cạnh xuống (qui định bởi bit T0SE) xuất hiện tại chân T0CLK.
  6. CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI - Khi Timer0 dùng xung Clock ngoài, ta phải đảm bảo xung Clock ngoài đồng bô với xung Clock nội. - Với ti% lê bô Prescaler là 1:1. Nguồn xung Clock ngoài sẽ đồng bô với xung Clock nội bằng cách lấy mẫu tại chu kyB Q2 vaB Q4 của xung Clock nội. - Do đo;, trong 1 chu kyB của xung Clock ngoại, thời gian trạng thái cao (Ton) hoặc trạng thái thấp (Toff) phải ít nhất là 2 Tosc
  7. I DATA BUS Fosc/4 8 synchronize T0CKI scaled clock TMR0 pin TMR0 prescaler PS2 PS1 PS0 RATE 0 0 0 1:2 Watchdog Timer WDT out 0 0 1 1:4 0 1 0 1:8 0 1 1 1:16 RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0 1 0 0 1:32 OPTION Prescaler Assignment 1 0 1 1:64 1= prescaler assigned to WDT 0= prescaler assigned to Timer 0 1 1 0 1:128 TMR0 Clock Source Edge Select 1 1 1 1:256 Source Select 1 = High-to-Low 1 = T0CKI, 0 = Fosc/4 0 = Low-to-High Hình 1: Cấu trúc Bộ định thời TIMER0
  8. CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI c. Ngắt TIMER0 -Ngắt Timer0 xảy ra khi tràn bô đếm TMR0: FF – 00h -Khi tràn T0IF = 1. CơB này được xóa bằng phần mềm. -Ngắt Timer0 không làm PIC thoát khỏi chê đô ngủ.
  9. CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI d. Khởi tạo TIMER0 -Chương trình khởi tạo TIMER0 ở chê; đô Clock nội CLRF TMR0 ; Xóa thanh ghi TMR0 CLRF INTCON ; Không cho phép ngắt BSF STATUS, RP0 ; Chọn Bank1 MOVLW 0xC3 ; Không cho phép Port B có trơ treo OPTION RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0 MOVWF OPTION_REG ; Ngắt khi có 1 cạnh lên ở chân RB0. ;Timer0 tăng khi có xung. (RUN) ;Tỉ lê bô tiền định là 1:16.
  10. CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI BCF STATUS, RP0 ; Chọn Bank0 ; BSF INTCON, T0IE ;Nếu cho phép Ngắt TIMER0 ; BSF INTCON, GIE ;Cho phép ngắt toàn cục. ; Ngắt Timer0 bị cấm nên dùng vòng lặp kiểm tra TMR0 tràn. T0_OVFL_WAIT BTFSS INTCON, T0IF GOTO T0_OVFL_WAIT
  11. CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI - Chương trình khởi tạo TIMER0 ở chê; đô Clock ngoại CLRF TMR0 ; Xóa thanh ghi TMR0 CLRF INTCON ; Không cho phép ngắt BSF STATUS, RP0 ; Chọn Bank1 MOVLW 0x37 ; Cho phép Port B có trơ treo MOVWF OPTION_REG OPTION RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0 ; Ngắt khi có 1 cạnh xuống ở chân RB0. ;Timer0 tăng khi có xung. (Timer RUN) ;Tỉ lê bô tiền định là 1:256.
  12. CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI BCF STATUS, RP0 ; Chọn Bank0 ; BSF INTCON, T0IE ;Nếu cho phép Ngắt TIMER0 ; BSF INTCON, GIE ;Cho phép ngắt toàn cục. ; Ngắt Timer0 bị cấm nên dùng vòng lặp kiểm tra TMR0 tràn. T0_OVFL_WAIT BTFSS INTCON, T0IF GOTO T0_OVFL_WAIT
  13. CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI 2. Bô định thời TIMER1 - Bô định thời TIMER1 là bô định thời / bô đếm 16 bit. - Bao gồm 2 thanh ghi 8 bit TMR1H vaB TMR1L. - CơB TMR1IF =1 khi xảy ra tràn TMR1 tưB FFFF ->0000 a. Thanh ghi điều khiển T1CON - Hai bit 7, 6 chưa được cấu hình.
  14. CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI - Bit 5:4 - T1CKPS1:T1CKPS0 :Chọn ti% lê xung vào 11 = 1:8 (gia; trị ti% lê) 10 = 1:4 01 = 1:2 00 = 1:1 - Bit 3-T1OSCEN :cho phép bô dao động Timer1 OSC 1: dao động được cho phép. 0: không cho phép
  15. CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI - Bit 2 - T1SYNC :Bit lựa chọn đồng bô hóa xung Clock ngoài. (bit này có tác dụng khi TMR1CS=1) 1= Không đồng bô với xung Clock ngoài. 0= Đồng bô - Bit 1 - TMR1CS :Bit lựa chọn nguồn xung Clock ngoài cho Timer1. 1= chọn xung Clock ngoài qua chân T1OSC/T1CKI 0= chọn xung Clock nội ( Fosc /4 )
  16. CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI - Bit 0 - TMR1ON :Bit cho phép hoặc dừng Timer1 1= Cho phép Timer1 hoạt động. 0= Không cho phép.
  17. I T1OSI T1 OSC T1OS0 synchronize prescaler Fosc/4 T1CKI pin TMR1H TMR1L Enable Timer1 Gate Enable 1 = Không cho phép Timer1 Gate Invert 0 = Cho phép đồng bộ TMR1ON T1GINV TMR1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON T1CON T1CKPS1 T1CKPS0 scale Timer1 On 1 1 1:8 LP Oscillator Enable 1 = Enable Timer1 1 0 1:4 1 = T1OSC selected Clock Source Select 0 = T1CKI can be used 1 = External (T1CKI) 0 1 1:2 0 = Internal (FOSC/4) 0 0 1:1 nh 2: u c Bô nh i TIMER1
  18. CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI b. Các chê đô hoạt động của TIMER1  Chê đô định thời đồng bô: được chọn bởi bit TMR1CS =0 - Trong chê; đô này xung cấp cho Timer1 là Fosc/4. - Bit T1SYNC không có tác dụng vì xung cấp là xung clock bên trong. - Hoạt động đồng bô được thực hiện ngay saf u bô Prescaler. - Trong chê; đô Sleep, bô đếm sẽ ngưng hoạt động
  19. CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI  Chê đô đếm đồng bô: được chọn bởi bit TMR1CS =1 vaB T1SYNC =0. - Gia; trị bô đếm Timer1 tăng khi có xung cạnh lên tại chân T1OSI/RC1 (nếu bit T1OSCEN =1) hoặc tại chân T1OSO/RC0 (nếu bit T1OSCEN =0). - Xung ngoài sẽ được đồng bô với xung nội. - Hoạt động đồng bô được thực hiện ngay sau bô Prescaler. - Trong chê; đô Sleep, bô đếm sẽ ngưng hoạt động
  20. CHƯƠNG 4: HOẠT ĐỘNG BỘ ĐỊNH THỜI  Chê đô đếm không đồng bô - Nếu bit T1SYNC =1, xung ngoài sẽ không được đồng bô. Bô định thời sẽ tiếp tục đếm trong chê; đô SLEEP, vaB tạo ra Ngắt khi bô đếm tràn làm PIC thoát khỏi trạng thái SLEEP. - Khi ghi hay đọc vào Timer cần chu ý: * Việc đọc thanh ghi TMR1H hay TMR1L trong khi Timer đang chạy sẽ cho ta gia; trị tức thời. * Khi ghi vào Timer ta nên dừng Timer lại đê% Ghi.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2