SlideShare a Scribd company logo
1 of 6
Download to read offline
Chương 4: Hoạt động của bộ định thời                             Chương 4: Hoạt động của bộ định thời
              (TIMER/COUNTER)
                                                                  Quá trình điều khiển hoạt động của Timer / Counter
 • AT89C51 có 2 bộ định thời 16 bit (Timer 0 và Timer 1) có
                                                                  được thực hiện thông qua các thanh ghi sau:
   thể hoạt động ở các chế độ khác nhau và có khả năng
   định thời hay đếm sự kiện.                                            Thanh ghi       Địa chỉ byte    Địa chỉ bit
                                                                           TCON              88h         88h - 8Fh
 • Khi hoạt động định thời (timer), bộ Timer / Counter sẽ
                                                                          TMOD               89h           Không
   phát ra các xung định thời gian.
                                                                              TL0            90h           Không
 • khi đếm sự kiện (counter), bộ Timer / Counter nhận xung                    TL1            91h           Không

   đếm từ bên ngoài.                                                          TH0            92h           Không
                                                                              TH1            93h           Không




   Chương 4: Hoạt động của bộ định thời                          4.1. Thanh ghi chế độ định thời (TMOD)
4.1. Thanh ghi chế độ định thời (TMOD)                            Hai bit M0 và M1 trong trong thanh ghi TMOD sẽ quyết
                                                                  định chế độ định thời làm việc.
  TMOD (Timer Mode Register) 8 bit bao gồm: 4 bit thấp dùng
  để thiết lập chế độ hoạt động cho Timer 0, 4 bit cao dùng để     M1    M0         Kiểu                    Chức năng
  thiết lập chế độ hoạt động cho Timer 1.                           0     0          0      Chế độ định thời 13 bit
                                                                    0     1          1      Chế độ định thời 16 bit
                                                                    1     0          2      Chế độ tự động nạp lại 8 bit
                                                                                            Chế độ định chia sẻ:
                                                                                            Timer 0: được tách ra làm 2 timer 8 bit
                                                                                            • Timer 8 bit TL0 được điều khiển bởi các
                                                                    1     1          3      bit của Mode Timer 0.
                                                                                            • Timer 8 bit TH0 được điều khiển bởi các
                                                                                            bit của Mode Timer 1.
                                                                                            Timer 1: không hoạt động ở Mode 3.
Chương 4: Hoạt động của bộ định thời                                    4.2. Thanh ghi điều khiển định thời (4 bit thấp)
4.2. Thanh ghi điều khiển định thời (TCON)
 TCON (Timer Control Register) chứa các bit trạng thái và các
 bit điều khiển cho Timer 0 và Timer 1.                                      Bit   Ký hiệu Địa chỉ                        Chức năng

  Bit    Ký hiệu   Địa chỉ                        Chức năng                   3      IE1    8BH
                              Cờ báo tràn timer 1. Được Set khi Timer 1                                  Dùng cho các ngắt ngoài 0 và 1
                                                                              2      IT1    8AH
                              tràn. Được xoá bởi phần mềm hoặc phần
   7       TF1      8FH
                              cứng khi chuyển đến chương trình con xử         1      IE0    89H          (Nghiên cứu trong chương sau)
                              lý ngắt.
                              Cho phép Timer 1 hoạt động (= 1) hay
                                                                              0      IT0    88H
   6       TR1      8EH       ngừng (= 0). Được Set và xóa bằng phần
                              mềm.
   5       TF0      8DH       Cờ báo tràn timer 0.
   4       TR0      8CH       Điều khiển hoạt động của Timer 0.




4.3. Các chế độ định thời và cờ tràn                                      4.3. Các chế độ định thời và cờ tràn
4.3.1. Chế độ 0 (chế độ định thời 13 bit)                                 4.3.1. Chế độ 1 (chế độ định thời 16 bit)
  Bao gồm 8 bit của thanh ghi THx và 5 bit của thanh ghi                   Chế độ 1 giống như chế độ 0 nhưng sử dụng 16 bit bao gồm
  TLx còn 3 bit cao của thanh ghi TLx không sử dụng.                       8 bit của THx và 8 bit của TLx.

        Timer              TLx          THx                                  Timer             TLx             THx
                                                               TFx                                                                     TFx
        clock             (5 bits)     (8 bits)                              clock            (8 bits)         (8 bits)
                                                              Cờ tràn                                                                 Cờ tràn

 Mỗi lần có xung đếm, giá trị trong thanh ghi 13 bit tăng                  Mỗi lần có xung, giá trị trong thanh ghi 16 bit tăng lên 1.
 lên 1. Khi giá trị này thay đổi từ 1 1111 1111 1111b đến 0                Khi giá trị này thay đổi từ 1111 1111 1111 1111b đến 0 thì
 thì bộ đếm tràn làm cho TFx được đặt lên mức 1.                           bộ đếm tràn làm cho TFx được đặt lên mức 1.
4.3. Các chế độ định thời và cờ tràn
                                                                             Timer            TLx                  TFx
4.3.3. Chế độ 2 (chế độ tự nạp lại 8 bit)                                    clock           (8 bits)
                                                                                                                  Cờ tràn
                                                                                                        Nạp lại
Chế độ này sử dụng thanh ghi TLx để chứa giá trị đếm
                                                                                             THx
còn thanh ghi THx chứa giá trị nạp lại cho thanh ghi TLx.                                    (8 bits)


        Timer
                                                                         Khi giá trị trong thanh ghi TLx thay đổi từ
                            TLx                              TFx
        clock              (8 bits)                                      1111 1111b đến 0 thì cờ TFx được set lên mức 1, đồng
                                                          Cờ tràn
                                           Nạp lại                       thời giá trị trong thanh ghi THx được chuyển vào
                            THx                                          thanh ghi TLx. Giá trị đếm trong TLx và THx chỉ
                           (8 bits)
                                                                         được nạp một lần khi khởi động timer.




4.3. Các chế độ định thời và cờ tràn                                4.3. Các chế độ định thời và cờ tràn
4.3.1. Chế độ 3 (chế độ định thời chia sẻ)                          4.3.1. Chế độ 3 (chế độ định thời chia sẻ)

      Timer                                                          Chế độ này sử dụng các thanh ghi TL0 và TH0 như
                      TLx                   THx
      clock          (8 bits)              (8 bits)                  các bộ định thời độc lập trong đó:
                                                                     •     TL0 điều khiển bằng các thanh ghi của timer 0.
     Timer                       TL0                                       Khi TL0 chuyển từ giá trị 1111 1111b đến 0 thì
     clock                                             TF0
                                (8 bits)                                   TF0 được đặt lên mức1.
                                                      Cờ tràn
                                                                     •     TH0 điều khiển bằng các thanh ghi của timer 1.
                                TH0
     Timer                                             TF1                 Khi TH0 chuyển từ 1111 1111b đến 0 thì TF1
                                (8 bits)
     clock                                                                 được đặt lên mức 1.
                                                      Cờ tràn
4.4. Nguồn xung clock định thời                          4.5. Khởi động, dừng và điều khiển các bộ định thời

                                                          Bit TRx trong thanh ghi TCON được điều khiển bởi
                                                          phần mềm để cho phép khởi động hoặc dừng làm việc.

                                                          •   Khởi động bộ định thời được thực hiện bằng lệnh:
                                                               SETB      TR0
                                                               SETB      TR1
                                                          •   Ngừng định thời được thực hiện bằng lệnh:
                                                               CLR      TR0
                                                               CLR      TR1




4.6. Khoảng thời gian ngắn và dài                        4.7. Các ứng dụng của bộ định thời
                                                         Các bước thực hiện để điều khiển hoạt động của timer:
 Khoảng thời gian               Kỹ thuật                 • Nạp giá trị cho thanh ghi TMOD để xác định chế độ hoạt động.
       10 µs        Điều chỉnh phần mềm
                                                         • Nạp giá trị đếm trong các thanh ghi THx, TLx.
                                                         • Đặt các bit TR0, TR1 = 1 (cho phép timer hoạt động) hay xoá
      256 µs        Chế độ định thời 8 bit (chế độ 2)    các bit này về 0 (Timer dừng hoạt động).
                                                         • Trong quá trình timer chạy, thực hiện kiểm tra các bit TF0, TF1
     65536 µs       Chế độ định thời 16 bit (chế độ 1)   để xác định timer đã tràn hay chưa.
                                                         • Sau khi timer tràn, nếu thực hiện kiểm tra tràn bằng phần mềm
  Không giới hạn    Chế độ định thời + vòng lặp
                                                         thì phải thực hiện xoá TF0 hay TF1 để có thể tiếp tục hoạt động.
4.7. Các ứng dụng của bộ định thời                             4.7. Các ứng dụng của bộ định thời
Ví dụ 1: Viết chương trình tạo sóng vuông tần số 10 KHz             Do giá trị đếm là 50 (ứng với 50 chu kỳ máy) nên chỉ
tại chân P1.0 dùng timer 0 (tần số thạch anh là 12MHz).        cần dùng chế độ 8 bit (có thể đếm từ 1 đến 256) cho timer
Giải: Do fOSC = 12MHz nên chu kỳ máy = 1 µs.                   0 (chế độ 2).
      f = 10 KHz ⇒ T = 1/f = 0.1 ms = 100 µs                        Nội dung thanh ghi TMOD = 0000 0010b (02h)
      ⇒ một chu kỳ sóng vuông chiếm khoảng thời gian
      100 chu kỳ máy.
       ⇒ thời gian tồn tại mức cao là 50 chu kỳ máy.
                                                                    Giá trị đếm là 50 và do timer 0 đếm lên nên giá trị
                                                               cần nạp cho TH0 là -50.




                                                               4.7. Các ứng dụng của bộ định thời
     Chương trình thực hiện như sau:
                                                               Ví dụ 2: Viết chương trình tạo sóng vuông tần số 1 KHz tại
      ORG       0000H       ; Địa chỉ bắt đầu
      MOV       TMOD, #02h ; Thiết lập chế độ định thời
                                                               chân P1.0 dùng timer 1.
      MOV TH0, #(-50) ; Nạp giá trị cho TH0
      MOV TL0, #(-50) ; Nạp giá trị cho TL0                         Giải:      f = 1KHz ⇒ T = 1/f = 1 ms = 1000 µs
Loop1:SETB      TR0         ; Cho phép timer 0 hoạt động
                                                                    Giá trị đếm là 500 (ứng với 500 chu kỳ máy)
Loop: JNB       TF0, Loop ; Nếu Timer chưa tràn thì chờ
      CLR       TF0         ; Xóa cờ tràn                      ⇒ dùng chế độ 13 (chế độ 0) bit hoặc 16 bit (chế độ 1).
      CLR       TR0
      CPL       P1.0        ; Đảo bit P1.0 để tạo xung vuông
      SJMP      Loop1
      END
Chương trình thực hiện như sau:                               4.7. Các ứng dụng của bộ định thời
                                                              Ví dụ 1: Viết chương điều khiển 8 đèn LED sáng/tắt
      ORG       0000H     ; Địa chỉ bắt đầu
                                                              trong 1 giây.
      MOV       TMOD, #10h ; Thiết lập chế độ 1 của Timer 1
Loop: MOV TH1, #HIGH (-500) ; Nạp byte cao của -500
      MOV TL1, #LOW (-500) ; Nạp byte thấp của -500
      SETB      TR1       ; Cho phép timer 0 hoạt động
Wait: JNB       TF1, Wait ; Nếu Timer chưa tràn thì chờ
      CLR       TF1       ; Xóa cờ tràn
      CPL       P1.0      ; Đảo bit P1.0 để tạo xung vuông
      CLR       TR1
      SJMP      Loop
      END




     Chương trình thực hiện như sau:                              Chương trình Delay 1 giây:
                                                                  Delay1s:
                ORG         0000H
                                                                             MOV        R7,#50 ; Lặp 20 lần
                MOV         TMOD, #01H ;Timer0 chế độ
                                                                  Loop1:     MOV        TH0, #HIGH(-20000)
     Loop:      MOV         P0, #00H                                         MOV        TL0, #LOW(-20000)
                CALL        Delay1s                                          SETB       TR0
                MOV         P0, #0FFH                             Wait:      JNB        TF0, Wait
                CALL        Delay1s                                          CLR        TF0
                SJMP        Loop                                             CLR        TR0
                                                                             DJNZ       R7, Loop1
                                                                             RET

More Related Content

What's hot

Công thức Máy điện 1 - Chương 2 - Máy biến áp
Công thức Máy điện 1 - Chương 2 - Máy biến ápCông thức Máy điện 1 - Chương 2 - Máy biến áp
Công thức Máy điện 1 - Chương 2 - Máy biến ápMan_Ebook
 
đồ áN phân loại sản phâm dùng plc s71200
đồ áN phân loại sản phâm dùng plc s71200đồ áN phân loại sản phâm dùng plc s71200
đồ áN phân loại sản phâm dùng plc s71200Lê Gia
 
Bộ điều khiển lập trình PLC - Điện tử đo lường
Bộ điều khiển lập trình PLC - Điện tử đo lườngBộ điều khiển lập trình PLC - Điện tử đo lường
Bộ điều khiển lập trình PLC - Điện tử đo lườngChia sẻ tài liệu học tập
 
Ứng Dụng PLC Điều Khiển Và Ổn Định Lò Nhiệt (Kèm Bản Vẽ, Datasheet, Plc)
Ứng Dụng PLC Điều Khiển Và Ổn Định Lò Nhiệt (Kèm Bản Vẽ, Datasheet, Plc) Ứng Dụng PLC Điều Khiển Và Ổn Định Lò Nhiệt (Kèm Bản Vẽ, Datasheet, Plc)
Ứng Dụng PLC Điều Khiển Và Ổn Định Lò Nhiệt (Kèm Bản Vẽ, Datasheet, Plc) nataliej4
 
Tai lieu lap trinh plc s7 200 full-01_2011_v1
Tai lieu lap trinh plc s7 200 full-01_2011_v1Tai lieu lap trinh plc s7 200 full-01_2011_v1
Tai lieu lap trinh plc s7 200 full-01_2011_v1cuongcungdfdfdf
 
Vi Điều Khiển Ứng Dụng AT89s52
Vi Điều Khiển Ứng Dụng AT89s52Vi Điều Khiển Ứng Dụng AT89s52
Vi Điều Khiển Ứng Dụng AT89s52Mr Giap
 
Cong nghe vi mach dien tu
Cong nghe vi mach dien tuCong nghe vi mach dien tu
Cong nghe vi mach dien tutiểu minh
 
Cau truc phan cung pic16 f8xx
Cau truc phan cung pic16 f8xxCau truc phan cung pic16 f8xx
Cau truc phan cung pic16 f8xxBùi Ngọc Bảo
 
[BTL] Kiểm tra tính ổn định của hệ thống liên tục
[BTL] Kiểm tra tính ổn định của hệ thống liên tục[BTL] Kiểm tra tính ổn định của hệ thống liên tục
[BTL] Kiểm tra tính ổn định của hệ thống liên tụcPham Hoang
 

What's hot (20)

Đề tài: Thiết kế hệ thống đo nhiệt độ, HAY, 9đ
Đề tài: Thiết kế hệ thống đo nhiệt độ, HAY, 9đĐề tài: Thiết kế hệ thống đo nhiệt độ, HAY, 9đ
Đề tài: Thiết kế hệ thống đo nhiệt độ, HAY, 9đ
 
Điều khiển thiết bị điện tử bằng Android thông qua Bluetooth, 9đ
Điều khiển thiết bị điện tử bằng Android thông qua Bluetooth, 9đĐiều khiển thiết bị điện tử bằng Android thông qua Bluetooth, 9đ
Điều khiển thiết bị điện tử bằng Android thông qua Bluetooth, 9đ
 
Khí cụ điện
Khí cụ điệnKhí cụ điện
Khí cụ điện
 
Công thức Máy điện 1 - Chương 2 - Máy biến áp
Công thức Máy điện 1 - Chương 2 - Máy biến ápCông thức Máy điện 1 - Chương 2 - Máy biến áp
Công thức Máy điện 1 - Chương 2 - Máy biến áp
 
đồ áN phân loại sản phâm dùng plc s71200
đồ áN phân loại sản phâm dùng plc s71200đồ áN phân loại sản phâm dùng plc s71200
đồ áN phân loại sản phâm dùng plc s71200
 
Đề tài: Thiết bị khóa cửa bằng bảo mật và thẻ chip RFID, HAY
Đề tài: Thiết bị khóa cửa bằng bảo mật và thẻ chip RFID, HAYĐề tài: Thiết bị khóa cửa bằng bảo mật và thẻ chip RFID, HAY
Đề tài: Thiết bị khóa cửa bằng bảo mật và thẻ chip RFID, HAY
 
Kỹ thuật số
Kỹ thuật sốKỹ thuật số
Kỹ thuật số
 
Bộ điều khiển lập trình PLC - Điện tử đo lường
Bộ điều khiển lập trình PLC - Điện tử đo lườngBộ điều khiển lập trình PLC - Điện tử đo lường
Bộ điều khiển lập trình PLC - Điện tử đo lường
 
Thiết kế mạng cảm biến không dây cho giám sát sức khỏe, HAY
Thiết kế mạng cảm biến không dây cho giám sát sức khỏe, HAYThiết kế mạng cảm biến không dây cho giám sát sức khỏe, HAY
Thiết kế mạng cảm biến không dây cho giám sát sức khỏe, HAY
 
Đề tài: Thiết kế hệ thống đo độ ẩm, HAY, 9đ
Đề tài: Thiết kế hệ thống đo độ ẩm, HAY, 9đĐề tài: Thiết kế hệ thống đo độ ẩm, HAY, 9đ
Đề tài: Thiết kế hệ thống đo độ ẩm, HAY, 9đ
 
Giao tiếp TTL-CMOS
Giao tiếp TTL-CMOSGiao tiếp TTL-CMOS
Giao tiếp TTL-CMOS
 
Ứng dụng PLC S7 200 đo, điều khiển và cảnh báo nhiệt độ trong lò
Ứng dụng PLC S7 200 đo, điều khiển và cảnh báo nhiệt độ trong lòỨng dụng PLC S7 200 đo, điều khiển và cảnh báo nhiệt độ trong lò
Ứng dụng PLC S7 200 đo, điều khiển và cảnh báo nhiệt độ trong lò
 
Ứng Dụng PLC Điều Khiển Và Ổn Định Lò Nhiệt (Kèm Bản Vẽ, Datasheet, Plc)
Ứng Dụng PLC Điều Khiển Và Ổn Định Lò Nhiệt (Kèm Bản Vẽ, Datasheet, Plc) Ứng Dụng PLC Điều Khiển Và Ổn Định Lò Nhiệt (Kèm Bản Vẽ, Datasheet, Plc)
Ứng Dụng PLC Điều Khiển Và Ổn Định Lò Nhiệt (Kèm Bản Vẽ, Datasheet, Plc)
 
Tai lieu lap trinh plc s7 200 full-01_2011_v1
Tai lieu lap trinh plc s7 200 full-01_2011_v1Tai lieu lap trinh plc s7 200 full-01_2011_v1
Tai lieu lap trinh plc s7 200 full-01_2011_v1
 
Vi Điều Khiển Ứng Dụng AT89s52
Vi Điều Khiển Ứng Dụng AT89s52Vi Điều Khiển Ứng Dụng AT89s52
Vi Điều Khiển Ứng Dụng AT89s52
 
Đề tài: Điều khiển giám sát hệ thống lạnh tại Nhà máy bia, 9đ
Đề tài: Điều khiển giám sát hệ thống lạnh tại Nhà máy bia, 9đĐề tài: Điều khiển giám sát hệ thống lạnh tại Nhà máy bia, 9đ
Đề tài: Điều khiển giám sát hệ thống lạnh tại Nhà máy bia, 9đ
 
Đề tài: Hệ thống Iot phục vụ cho nông nghiệp ứng dụng Gateway
Đề tài: Hệ thống Iot phục vụ cho nông nghiệp ứng dụng GatewayĐề tài: Hệ thống Iot phục vụ cho nông nghiệp ứng dụng Gateway
Đề tài: Hệ thống Iot phục vụ cho nông nghiệp ứng dụng Gateway
 
Cong nghe vi mach dien tu
Cong nghe vi mach dien tuCong nghe vi mach dien tu
Cong nghe vi mach dien tu
 
Cau truc phan cung pic16 f8xx
Cau truc phan cung pic16 f8xxCau truc phan cung pic16 f8xx
Cau truc phan cung pic16 f8xx
 
[BTL] Kiểm tra tính ổn định của hệ thống liên tục
[BTL] Kiểm tra tính ổn định của hệ thống liên tục[BTL] Kiểm tra tính ổn định của hệ thống liên tục
[BTL] Kiểm tra tính ổn định của hệ thống liên tục
 

Similar to Chuong 4 hoat dong dinh thoi

Similar to Chuong 4 hoat dong dinh thoi (11)

Chuong4 hoạt động định thời
Chuong4 hoạt động định thờiChuong4 hoạt động định thời
Chuong4 hoạt động định thời
 
Ktvxl 7a timer
Ktvxl 7a timerKtvxl 7a timer
Ktvxl 7a timer
 
Msptieuluan
MsptieuluanMsptieuluan
Msptieuluan
 
GUI C5- Timer.pdf
GUI C5- Timer.pdfGUI C5- Timer.pdf
GUI C5- Timer.pdf
 
Chuong 5 hoat dong ngat
Chuong 5  hoat dong ngatChuong 5  hoat dong ngat
Chuong 5 hoat dong ngat
 
C6. Timer Module.pdfdsdsd dsdd sdsd sdds sd
C6. Timer Module.pdfdsdsd dsdd sdsd sdds sdC6. Timer Module.pdfdsdsd dsdd sdsd sdds sd
C6. Timer Module.pdfdsdsd dsdd sdsd sdds sd
 
Chuong6 hoạt động ngắt
Chuong6 hoạt động ngắtChuong6 hoạt động ngắt
Chuong6 hoạt động ngắt
 
Chuong5 hoạt động port nối tiếp
Chuong5 hoạt động port nối tiếpChuong5 hoạt động port nối tiếp
Chuong5 hoạt động port nối tiếp
 
Chuong2 cấu trúc phần cứng 8051
Chuong2 cấu trúc phần cứng 8051Chuong2 cấu trúc phần cứng 8051
Chuong2 cấu trúc phần cứng 8051
 
Chuong2
Chuong2Chuong2
Chuong2
 
Atmel avr
Atmel avrAtmel avr
Atmel avr
 

More from Bút Chì

Chuong 6 truyen thong noi tiep
Chuong 6 truyen thong noi tiepChuong 6 truyen thong noi tiep
Chuong 6 truyen thong noi tiepBút Chì
 
Chuong 3 khao sat tap lenh va ltrinh vdk
Chuong 3 khao sat tap lenh va ltrinh vdkChuong 3 khao sat tap lenh va ltrinh vdk
Chuong 3 khao sat tap lenh va ltrinh vdkBút Chì
 
Chuong 2 gioi thieu ve cau truc ho vdk 8051
Chuong 2 gioi thieu ve cau truc ho vdk 8051Chuong 2 gioi thieu ve cau truc ho vdk 8051
Chuong 2 gioi thieu ve cau truc ho vdk 8051Bút Chì
 
Chuong 1 gioi thieu ve vi xu ly
Chuong 1 gioi thieu ve vi xu lyChuong 1 gioi thieu ve vi xu ly
Chuong 1 gioi thieu ve vi xu lyBút Chì
 
Chuong 0 kien thuc co ban ve he thong dien va dien tu tren oto
Chuong 0 kien thuc co ban ve he thong dien va dien tu tren otoChuong 0 kien thuc co ban ve he thong dien va dien tu tren oto
Chuong 0 kien thuc co ban ve he thong dien va dien tu tren otoBút Chì
 
Chuong 7 thiet ke giao tiep
Chuong 7 thiet ke giao tiepChuong 7 thiet ke giao tiep
Chuong 7 thiet ke giao tiepBút Chì
 

More from Bút Chì (6)

Chuong 6 truyen thong noi tiep
Chuong 6 truyen thong noi tiepChuong 6 truyen thong noi tiep
Chuong 6 truyen thong noi tiep
 
Chuong 3 khao sat tap lenh va ltrinh vdk
Chuong 3 khao sat tap lenh va ltrinh vdkChuong 3 khao sat tap lenh va ltrinh vdk
Chuong 3 khao sat tap lenh va ltrinh vdk
 
Chuong 2 gioi thieu ve cau truc ho vdk 8051
Chuong 2 gioi thieu ve cau truc ho vdk 8051Chuong 2 gioi thieu ve cau truc ho vdk 8051
Chuong 2 gioi thieu ve cau truc ho vdk 8051
 
Chuong 1 gioi thieu ve vi xu ly
Chuong 1 gioi thieu ve vi xu lyChuong 1 gioi thieu ve vi xu ly
Chuong 1 gioi thieu ve vi xu ly
 
Chuong 0 kien thuc co ban ve he thong dien va dien tu tren oto
Chuong 0 kien thuc co ban ve he thong dien va dien tu tren otoChuong 0 kien thuc co ban ve he thong dien va dien tu tren oto
Chuong 0 kien thuc co ban ve he thong dien va dien tu tren oto
 
Chuong 7 thiet ke giao tiep
Chuong 7 thiet ke giao tiepChuong 7 thiet ke giao tiep
Chuong 7 thiet ke giao tiep
 

Chuong 4 hoat dong dinh thoi

  • 1. Chương 4: Hoạt động của bộ định thời Chương 4: Hoạt động của bộ định thời (TIMER/COUNTER) Quá trình điều khiển hoạt động của Timer / Counter • AT89C51 có 2 bộ định thời 16 bit (Timer 0 và Timer 1) có được thực hiện thông qua các thanh ghi sau: thể hoạt động ở các chế độ khác nhau và có khả năng định thời hay đếm sự kiện. Thanh ghi Địa chỉ byte Địa chỉ bit TCON 88h 88h - 8Fh • Khi hoạt động định thời (timer), bộ Timer / Counter sẽ TMOD 89h Không phát ra các xung định thời gian. TL0 90h Không • khi đếm sự kiện (counter), bộ Timer / Counter nhận xung TL1 91h Không đếm từ bên ngoài. TH0 92h Không TH1 93h Không Chương 4: Hoạt động của bộ định thời 4.1. Thanh ghi chế độ định thời (TMOD) 4.1. Thanh ghi chế độ định thời (TMOD) Hai bit M0 và M1 trong trong thanh ghi TMOD sẽ quyết định chế độ định thời làm việc. TMOD (Timer Mode Register) 8 bit bao gồm: 4 bit thấp dùng để thiết lập chế độ hoạt động cho Timer 0, 4 bit cao dùng để M1 M0 Kiểu Chức năng thiết lập chế độ hoạt động cho Timer 1. 0 0 0 Chế độ định thời 13 bit 0 1 1 Chế độ định thời 16 bit 1 0 2 Chế độ tự động nạp lại 8 bit Chế độ định chia sẻ: Timer 0: được tách ra làm 2 timer 8 bit • Timer 8 bit TL0 được điều khiển bởi các 1 1 3 bit của Mode Timer 0. • Timer 8 bit TH0 được điều khiển bởi các bit của Mode Timer 1. Timer 1: không hoạt động ở Mode 3.
  • 2. Chương 4: Hoạt động của bộ định thời 4.2. Thanh ghi điều khiển định thời (4 bit thấp) 4.2. Thanh ghi điều khiển định thời (TCON) TCON (Timer Control Register) chứa các bit trạng thái và các bit điều khiển cho Timer 0 và Timer 1. Bit Ký hiệu Địa chỉ Chức năng Bit Ký hiệu Địa chỉ Chức năng 3 IE1 8BH Cờ báo tràn timer 1. Được Set khi Timer 1 Dùng cho các ngắt ngoài 0 và 1 2 IT1 8AH tràn. Được xoá bởi phần mềm hoặc phần 7 TF1 8FH cứng khi chuyển đến chương trình con xử 1 IE0 89H (Nghiên cứu trong chương sau) lý ngắt. Cho phép Timer 1 hoạt động (= 1) hay 0 IT0 88H 6 TR1 8EH ngừng (= 0). Được Set và xóa bằng phần mềm. 5 TF0 8DH Cờ báo tràn timer 0. 4 TR0 8CH Điều khiển hoạt động của Timer 0. 4.3. Các chế độ định thời và cờ tràn 4.3. Các chế độ định thời và cờ tràn 4.3.1. Chế độ 0 (chế độ định thời 13 bit) 4.3.1. Chế độ 1 (chế độ định thời 16 bit) Bao gồm 8 bit của thanh ghi THx và 5 bit của thanh ghi Chế độ 1 giống như chế độ 0 nhưng sử dụng 16 bit bao gồm TLx còn 3 bit cao của thanh ghi TLx không sử dụng. 8 bit của THx và 8 bit của TLx. Timer TLx THx Timer TLx THx TFx TFx clock (5 bits) (8 bits) clock (8 bits) (8 bits) Cờ tràn Cờ tràn Mỗi lần có xung đếm, giá trị trong thanh ghi 13 bit tăng Mỗi lần có xung, giá trị trong thanh ghi 16 bit tăng lên 1. lên 1. Khi giá trị này thay đổi từ 1 1111 1111 1111b đến 0 Khi giá trị này thay đổi từ 1111 1111 1111 1111b đến 0 thì thì bộ đếm tràn làm cho TFx được đặt lên mức 1. bộ đếm tràn làm cho TFx được đặt lên mức 1.
  • 3. 4.3. Các chế độ định thời và cờ tràn Timer TLx TFx 4.3.3. Chế độ 2 (chế độ tự nạp lại 8 bit) clock (8 bits) Cờ tràn Nạp lại Chế độ này sử dụng thanh ghi TLx để chứa giá trị đếm THx còn thanh ghi THx chứa giá trị nạp lại cho thanh ghi TLx. (8 bits) Timer Khi giá trị trong thanh ghi TLx thay đổi từ TLx TFx clock (8 bits) 1111 1111b đến 0 thì cờ TFx được set lên mức 1, đồng Cờ tràn Nạp lại thời giá trị trong thanh ghi THx được chuyển vào THx thanh ghi TLx. Giá trị đếm trong TLx và THx chỉ (8 bits) được nạp một lần khi khởi động timer. 4.3. Các chế độ định thời và cờ tràn 4.3. Các chế độ định thời và cờ tràn 4.3.1. Chế độ 3 (chế độ định thời chia sẻ) 4.3.1. Chế độ 3 (chế độ định thời chia sẻ) Timer Chế độ này sử dụng các thanh ghi TL0 và TH0 như TLx THx clock (8 bits) (8 bits) các bộ định thời độc lập trong đó: • TL0 điều khiển bằng các thanh ghi của timer 0. Timer TL0 Khi TL0 chuyển từ giá trị 1111 1111b đến 0 thì clock TF0 (8 bits) TF0 được đặt lên mức1. Cờ tràn • TH0 điều khiển bằng các thanh ghi của timer 1. TH0 Timer TF1 Khi TH0 chuyển từ 1111 1111b đến 0 thì TF1 (8 bits) clock được đặt lên mức 1. Cờ tràn
  • 4. 4.4. Nguồn xung clock định thời 4.5. Khởi động, dừng và điều khiển các bộ định thời Bit TRx trong thanh ghi TCON được điều khiển bởi phần mềm để cho phép khởi động hoặc dừng làm việc. • Khởi động bộ định thời được thực hiện bằng lệnh: SETB TR0 SETB TR1 • Ngừng định thời được thực hiện bằng lệnh: CLR TR0 CLR TR1 4.6. Khoảng thời gian ngắn và dài 4.7. Các ứng dụng của bộ định thời Các bước thực hiện để điều khiển hoạt động của timer: Khoảng thời gian Kỹ thuật • Nạp giá trị cho thanh ghi TMOD để xác định chế độ hoạt động. 10 µs Điều chỉnh phần mềm • Nạp giá trị đếm trong các thanh ghi THx, TLx. • Đặt các bit TR0, TR1 = 1 (cho phép timer hoạt động) hay xoá 256 µs Chế độ định thời 8 bit (chế độ 2) các bit này về 0 (Timer dừng hoạt động). • Trong quá trình timer chạy, thực hiện kiểm tra các bit TF0, TF1 65536 µs Chế độ định thời 16 bit (chế độ 1) để xác định timer đã tràn hay chưa. • Sau khi timer tràn, nếu thực hiện kiểm tra tràn bằng phần mềm Không giới hạn Chế độ định thời + vòng lặp thì phải thực hiện xoá TF0 hay TF1 để có thể tiếp tục hoạt động.
  • 5. 4.7. Các ứng dụng của bộ định thời 4.7. Các ứng dụng của bộ định thời Ví dụ 1: Viết chương trình tạo sóng vuông tần số 10 KHz Do giá trị đếm là 50 (ứng với 50 chu kỳ máy) nên chỉ tại chân P1.0 dùng timer 0 (tần số thạch anh là 12MHz). cần dùng chế độ 8 bit (có thể đếm từ 1 đến 256) cho timer Giải: Do fOSC = 12MHz nên chu kỳ máy = 1 µs. 0 (chế độ 2). f = 10 KHz ⇒ T = 1/f = 0.1 ms = 100 µs Nội dung thanh ghi TMOD = 0000 0010b (02h) ⇒ một chu kỳ sóng vuông chiếm khoảng thời gian 100 chu kỳ máy. ⇒ thời gian tồn tại mức cao là 50 chu kỳ máy. Giá trị đếm là 50 và do timer 0 đếm lên nên giá trị cần nạp cho TH0 là -50. 4.7. Các ứng dụng của bộ định thời Chương trình thực hiện như sau: Ví dụ 2: Viết chương trình tạo sóng vuông tần số 1 KHz tại ORG 0000H ; Địa chỉ bắt đầu MOV TMOD, #02h ; Thiết lập chế độ định thời chân P1.0 dùng timer 1. MOV TH0, #(-50) ; Nạp giá trị cho TH0 MOV TL0, #(-50) ; Nạp giá trị cho TL0 Giải: f = 1KHz ⇒ T = 1/f = 1 ms = 1000 µs Loop1:SETB TR0 ; Cho phép timer 0 hoạt động Giá trị đếm là 500 (ứng với 500 chu kỳ máy) Loop: JNB TF0, Loop ; Nếu Timer chưa tràn thì chờ CLR TF0 ; Xóa cờ tràn ⇒ dùng chế độ 13 (chế độ 0) bit hoặc 16 bit (chế độ 1). CLR TR0 CPL P1.0 ; Đảo bit P1.0 để tạo xung vuông SJMP Loop1 END
  • 6. Chương trình thực hiện như sau: 4.7. Các ứng dụng của bộ định thời Ví dụ 1: Viết chương điều khiển 8 đèn LED sáng/tắt ORG 0000H ; Địa chỉ bắt đầu trong 1 giây. MOV TMOD, #10h ; Thiết lập chế độ 1 của Timer 1 Loop: MOV TH1, #HIGH (-500) ; Nạp byte cao của -500 MOV TL1, #LOW (-500) ; Nạp byte thấp của -500 SETB TR1 ; Cho phép timer 0 hoạt động Wait: JNB TF1, Wait ; Nếu Timer chưa tràn thì chờ CLR TF1 ; Xóa cờ tràn CPL P1.0 ; Đảo bit P1.0 để tạo xung vuông CLR TR1 SJMP Loop END Chương trình thực hiện như sau: Chương trình Delay 1 giây: Delay1s: ORG 0000H MOV R7,#50 ; Lặp 20 lần MOV TMOD, #01H ;Timer0 chế độ Loop1: MOV TH0, #HIGH(-20000) Loop: MOV P0, #00H MOV TL0, #LOW(-20000) CALL Delay1s SETB TR0 MOV P0, #0FFH Wait: JNB TF0, Wait CALL Delay1s CLR TF0 SJMP Loop CLR TR0 DJNZ R7, Loop1 RET