BÀI 5  GIỚI THIỆU  KHẢO SÁT TIMER/COUNTER  KHẢO SÁT TIMER/COUNTER T0  KHẢO SÁT TIMER/COUNTER T1  KHẢO SÁT TIMER T2

Please download to get full document.

View again

All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
 43
 
 

Food

  BÀI 5  GIỚI THIỆU  KHẢO SÁT TIMER/COUNTER  KHẢO SÁT TIMER/COUNTER T0  KHẢO SÁT TIMER/COUNTER T1  KHẢO SÁT TIMER T2
Share
Transcript
    BÀI 5    GIỚI THIỆU      KHẢO SÁT TIMER/COUNTER       KH Ả O SÁT TIMER/COUNTER T0    KH Ả O SÁT TIMER/COUNTER T1    KH Ả O SÁT TIMER T2    TẬP LỆNH C CHO CÁC  TIMER    L ệ nh SETUP_TIMER_X()    L ệ nh SET_TIMER_X()    L ệ nh SETUP_COUNTERS()    L ệ nh SETUP_WDT()    L ệ nh RESTART_WDT()    L ệ nh GET_TIMER_X()    CÁC CHƯƠNG TRÌNH ỨNG DỤNG  TIMER /COUNTER    Ứ   NG D ỤNG ĐẾ M XUNG NGO Ạ I HI Ể  N TH Ị   TRÊN LED 7 ĐOẠ  N TR  Ự  C TI Ế P    Ứ   NG D Ụ  NG ĐẾ M XUNG NGO Ạ I HI Ể  N TH Ị   TRÊN LED 7 ĐOẠ  N QUÉT    Ứ   NG D Ụ  NG ĐẾ M XUNG N Ộ I - ĐỊ  NH TH Ờ I    CÁC TOÁN TỬ    FILE DEVICE  Ñaïi hoïc sö phaïm kyõ thuaät tp HCM Khoa ñieän –  ñieän töû Nguyeãn Ñình Phuù 44 Baøi 5: Timer/counter cuûa PIC vaø laäp trình C. I.   GI Ớ  I THI Ệ U Vi điều khiển   PIC họ 16F877A có 3 timer T0,  T1 và T2. T0 là timer/counter 8 bit, T1 là timer/counter 16 bit, cả 2 đều có bộ chia trƣớc. T2 chỉ là timer 8 bit có bộ chia trƣớc và chia sau phục vụ cho các ứng dụng đặc biệt.   Phần tiếp sẽ khảo sát chi tiết từng timer/counter. II.   KH Ả O SÁT CÁC TIMER/COUNTER 1.   KH Ả O SÁT TIMER0 Bộ timer0/counter0 có những đặc điểm sau:   o   Là timer/counter 8 bit. o   Có thể đọc và ghi   giá trị đếm của timer/counter  . o   Có bộ chia trƣớc 8 bit cho phép lập trình bằng phần mềm.   o   Cho phép lựa chọn nguồn xung clock bên trong hoặc bên ngoài.   o   Phát s inh ngắt khi bị tràn từ FFH đến 00H.   o   Cho phép lựa chọn tác động cạnh lên hoặc cạnh xuống . Sơ đồ khối của timer0 và bộ chia trƣớc với WDT nhƣ hình 5-1:  Hình 5-1:   Sơ đồ khối của timer0.   Để sử dụng timer0 thì phải khảo sát chức năng của thanh ghi điều khiể n timer là OPTION_REG. Cấu hình thanh ghi và chức năng các bit nhƣ sau:    Ñaïi hoïc sö phaïm kyõ thuaät tp HCM Khoa ñieän –  ñieän töû Nguyeãn Ñình Phuù Baøi 5: Timer/counter cuûa PIC vaø laäp trình C. 45 Bit 7 : bit điều khiển điện trở treo của portb.  Bit 6 INTEDG  Bit 5 T0CS : bi t lựa chọn nguồn xung cho TMR0 - TMR0 Clock Source Select bit. 1= sẽ đếm xung ngoại đƣa đến chân T0CKI.  0= sẽ đếm xung clock nội  bên trong. Bit 4 T0SE : bit lựa chọn cạnh tích cực T0SE  - TMR0 Source Edge Select bit. 1= tích cực cạnh lên ở chân T0CKI.   0= tích cực cạnh xuống ở chân T0CKI.  Bit 3 PSA : bit gán bộ chia trƣớc  - prescaler assigment. 1= gán b ộ chia cho WDT. 0= gán bộ chia Timer0.  Bit 2-0 PS2:PS0 : các bit lựa chọn tỉ lệ bộ chia trƣớc  - prescaler rate select bits: Bit lựa chọn   Tỉ lệ TMR0   Tỉ lệ WDT  000 1:2 1:1 001 1:4 1:2 010 1:8 1:4 011 1:16 1:8 100 1:32 1:16 101 1:64 1:32 110 1:128 1:64 111 1:256 1:128  Nếu bit T 0 CS (OPTION_REG<5>) bằng 1 thì chọn chế độ đếm xung ngoài Counter. Trong chế độ đếm xung ngoại thì  bộ đếm sẽ tăng giá trị mỗi khi có xung tác động cạnh lên hoặc cạnh xuống ở chân RA4/T0 CKI. Cạnh tác động của xung đƣợc chọn lựa bởi bit T0SE (OPTION_REG<4>): T0SE = 0 thì chọn cạnh lên, ngƣợc lại thì chọn cạnh xuống.   Bộ chia trƣớc không thể đọc/ghi và có mối quan hệ với Timer0 và Watchdog Timer. a.   Ngắt của Timer0:   Khi giá trị đếm trong thanh ghi TMR0 tràn từ FFh về 00h  thì phá t sinh ngắt, cờ báo ngắt TMR0IF (INTCON<2>) đổi trạng thái từ 0 lên 1. Ngắt có thể ngăn bằng cách xóa bit cho phép ngắt TMR0IE (INTCON<5>). Trong chƣơng trình con phục vụ ngắt Timer0 phải xóa   cờ báo ngắt TMR0IF . Ngắt của TMR0 không thể kích CPU thoát khỏi   chế độ ngủ vì bộ định thời sẽ ngừng khi CPU ở chế độ ngủ . b.   Timer0 với nguồn xung đếm từ bên ngoài:   Khi không sử dụng bộ chia trƣớc thì ngõ vào xung clock bên ngoài giống nhƣ ngõ ra bộ chia trƣớc. Việc đồng bộ hóa của T0CKI với các xung clock bên trong đƣợc   thực hiện bằng cách lấy mẫu ngõ ra bộ chia  RBPU   Ñaïi hoïc sö phaïm kyõ thuaät tp HCM Khoa ñieän –  ñieän töû Nguyeãn Ñình Phuù 46 Baøi 5: Timer/counter cuûa PIC vaø laäp trình C. ở những chu kì Q2 và Q4 của xung clock bên trong. Do đó, nó rất cần thiết cho T0CKI ở trạng thái mức cao ít nhất 2 T OSC và ở trạng thái mức thấp ít nhất 2 T OSC . c.   Bộ chia trước:   Bộ chia trƣớc có thể gán cho Timer0   hoặc gán cho Watchdog Timer. Bộ chia trƣớc thì không thể đọc hoặc ghi. Các bit PSA và PS2:PS0 (OPTION_REG<3:0>) quyết định đối tƣợng gán và tỉ lệ chia. Khi đƣợc gán cho Timer0 thì tất cả các lệnh ghi cho thanh ghi TMR0 (ví dụ CLRF 1, MOVWF 1, BSF 1, …) sẽ xoá bộ chia trƣớc. Khi đƣợc gán cho WDT thì lệnh CLRWDT sẽ xoá bộ chia trƣớc cùng với Watchdog Timer.  Hình 5-2:    Bộ chia trước được gán cho timer  .  Hình 5-3:    Bộ chia trước được gán cho WDT  . 2.   BỘ ĐỊNH THỜI TIMER1:   Là  bộ định thời/đếm 16 bit gồm 2 thanh ghi 8 bit (TMR1H và TMR1L)  –    có thể đọc và ghi. Hai thanh ghi này tăng từ 0000h đến FFFFh và quay trở lại 0000h. Khi  bị tràn thì Timer1 sẽ phát sinh ngắt, cờ báo   ngắt TMR1IF (PIR1<0>) lên mức 1. Timer1 có bit cho phép/cấm là TMRIE (PIE1<1>).  Ñaïi hoïc sö phaïm kyõ thuaät tp HCM Khoa ñieän –  ñieän töû Nguyeãn Ñình Phuù Baøi 5: Timer/counter cuûa PIC vaø laäp trình C. 47 Cấu trúc của Timer1:    Hình 5-4:   Cấu trúc timer T1 . Khảo sát thanh ghi điều khiển Timer1:  Bit 7-6 Chƣa sử dụng nếu đọc sẽ có giá trị „0‟.  Bit 5-4 T1CKPS1:T1CKPS0: các    bit lựa chọn bộ chia  - Timer1 input Clock Prescale Select bits 11=1:8 giá trị chia.  10=1:4 gi á trị chia.   01=1:2 giá trị chia.   00=1:1 giá trị chia.  Bit 3 T1OSCEN : bit ĐK cho phép bộ dao động Timer1  - Timer1 Oscillator Enable Control bit 1= bộ dao động đƣợc phép.   0= Tắt bộ dao động.  Bit 2 T1SYNC : bit ĐK đồng bộ ngõ vào xung clock bên ngoài của timer1  Khi TMR1CS = 1   1= không thể đồng bộ ngõ vào clock ở từ bên ngoài.  
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks
SAVE OUR EARTH

We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

More details...

Sign Now!

We are very appreciated for your Prompt Action!

x