• Webdien.com - Cầu nối dân điện


    1. [HOT] - Webdien đang tuyển các vị trí quản lý cao cấp


  • Kết quả 1 đến 9 của 9

    Chủ đề: timer của AT89C51

    1. #1
      Tham gia
      28-02-2010
      Bài viết
      15
      Cảm ơn
      17
      Thanked 1 Time in 1 Post

      Mặc định timer của AT89C51

      Code:
      Chương trình tạo xung vuông tần số 1kHz sử dụng timer mode1:
      
                              mov tmod,#01h   ; chọn mode 1 timer 0 đếm 16 bit
      	loop1:	        mov th0,#0feh    ; độ rộng xung 500µs
      			mov tl0,#0ch 	 ; 
      			setb tr0	  ; cho timer bắt đầu đếm
      	loop:		jnb tf0,loop	 ; chờ báo ngắt
      			clr tf0		 ; xóa cờ ngắt
      			cpl p1.0	   ; nghịch đảo bit p1.0
      			sjmp loop1	   ; quay trở lại làm tiếp
      mấy bạn chỉ giúp tớ là tại sao lại biết được có độ rộng xung là 500µs hay ko. cách tính thế nào? :). Thân

      --------------------------------------------------------------------------------
      Xem bài viết cùng chuyên mục:


    2. #2
      Tham gia
      22-09-2009
      Địa chỉ
      GÓC CHÉM GIÓ
      Bài viết
      1,272
      Cảm ơn
      158
      Được cảm ơn 857 lần, trong 401 bài

      Mặc định Ðề: timer của AT89C51

      Cái này sao giống môn vi xử lý thế nhỉ @@~, nếu nó là một ví dụ trong sách vi xử lý thì bạn đọc kỹ giải thích của nó đi, hỉu liền à. Mình nhớ mang máng hùi trước học có ví dụ này mà

      PS: Sách đem cho bà ve chai rồi nên không có để đọc và giải thích ^_^
      CÓ LẼ ĐÃ ĐẾN LÚC PHẢI DỪNG ...!

    3. #3
      Tham gia
      25-10-2010
      Bài viết
      64
      Cảm ơn
      0
      Được cảm ơn 36 lần, trong 15 bài

      Mặc định Ðề: timer của AT89C51

      Điều bạn quan tâm nằm ở đây
      Code:
                       mov tmod,#01h   ; chọn mode 1 timer 0 đếm 16 bit
      loop1:	        mov th0,#0feh    ; độ rộng xung 500µs
      			mov tl0,#0ch 	 ;
      bạn xem trong SGK là hiểu
      Chỉ cần biết nó ở chế độ nào (16bit=65536)
      đổi các hệ số TH0=FEH và TL0=0CH sang hệ 10 rồi nghĩ xem sao được 500µs
      chúc bạn học tốt
      [FLASH]http://fc03.deviantart.net/fs10/f/2006/127/5/e/Dragon.swf[/FLASH]

    4. #4
      Tham gia
      26-11-2009
      Bài viết
      6
      Cảm ơn
      5
      Được cảm ơn 0 lần, trong 0 bài

      Mặc định Ðề: timer của AT89C51

      Theo tớ thì cậu lấy [(TH0-TL0)+1]*1,085*2=[(254-12)+1]*1,085*2=527,31
      Theo tớ nhớ là như vậy.
      Số đếm = TH0 - TL0 (thập phân)
      +1 là nhịp đồng hồ quay về 0
      *2 là cả chu kỳ.
      Không biết chính xác không. Anh em chỉ giáo thêm :d

    5. #5
      Tham gia
      15-09-2009
      Bài viết
      99
      Cảm ơn
      71
      Được cảm ơn 53 lần, trong 33 bài

      Mặc định Ðề: timer của AT89C51

      Trích dẫn Gửi bởi hasumu Xem bài viết
      Theo tớ thì cậu lấy [(TH0-TL0)+1]*1,085*2=[(254-12)+1]*1,085*2=527,31
      Theo tớ nhớ là như vậy.
      Số đếm = TH0 - TL0 (thập phân)
      +1 là nhịp đồng hồ quay về 0
      *2 là cả chu kỳ.
      Không biết chính xác không. Anh em chỉ giáo thêm :d
      Ko phải đâu bạn. Lý giải như bạn gì đó ở trên là đúng rồi đó. TH0 và TL0 ghép lại với nhau thành bộ đếm 16 bit chứ ko phải dùng để cộng trừ như thế đc.

    6. #6
      Tham gia
      26-11-2009
      Bài viết
      6
      Cảm ơn
      5
      Được cảm ơn 0 lần, trong 0 bài

      Mặc định Ðề: timer của AT89C51

      Trích dẫn Gửi bởi matden_304 Xem bài viết
      Ko phải đâu bạn. Lý giải như bạn gì đó ở trên là đúng rồi đó. TH0 và TL0 ghép lại với nhau thành bộ đếm 16 bit chứ ko phải dùng để cộng trừ như thế đc.
      Thế theo bạn làm sao được 500us hả bạn :d

    7. #7
      Tham gia
      25-10-2010
      Bài viết
      64
      Cảm ơn
      0
      Được cảm ơn 36 lần, trong 15 bài

      Mặc định Ðề: timer của AT89C51

      Trích dẫn Gửi bởi hasumu Xem bài viết
      Thế theo bạn làm sao được 500us hả bạn :d
      nản TH0 là byte cao của timer 0 VÀ TL0 là byte thấp của timer 0
      ghép lại ta được FE0C Hệ HEX =65036 hệ 10
      tùy thuộc vào tần số thạc anh ta dùng để xá định chu kỳ cả nó
      ở bài trên chu kỳ của nó là 12MHz nên chy kỳ máy của nó là 1µs
      (cách tính đọc SGk)
      số 16bit =65535 trạng thái từ 0 đến 65535
      vậy ta có chu kỳ tràn của timer 0 là: 65535 - 65036 +1=500
      có hỏi gì thêm nữa không
      [FLASH]http://fc03.deviantart.net/fs10/f/2006/127/5/e/Dragon.swf[/FLASH]

    8. Những thành viên đã cảm ơn haprohaui vì bài viết hữu ích:


    9. #8
      Tham gia
      26-11-2009
      Bài viết
      6
      Cảm ơn
      5
      Được cảm ơn 0 lần, trong 0 bài

      Mặc định Ðề: timer của AT89C51

      Trích dẫn Gửi bởi haprohaui Xem bài viết
      nản TH0 là byte cao của timer 0 VÀ TL0 là byte thấp của timer 0
      ghép lại ta được FE0C Hệ HEX =65036 hệ 10
      tùy thuộc vào tần số thạc anh ta dùng để xá định chu kỳ cả nó
      ở bài trên chu kỳ của nó là 12MHz nên chy kỳ máy của nó là 1µs
      (cách tính đọc SGk)
      số 16bit =65535 trạng thái từ 0 đến 65535
      vậy ta có chu kỳ tràn của timer 0 là: 65535 - 65036 +1=500
      có hỏi gì thêm nữa không
      Hì. Có hỏi thêm tí nữa. Thế bạn có nhớ là cái mà trừ như tớ làm thì dùng trong trường hợp nào ko.? Bởi vì cách đây 1 năm thì tớ cũng nhớ là thầy cho trừ kiểu đó. :d

    10. #9
      Tham gia
      25-10-2010
      Bài viết
      64
      Cảm ơn
      0
      Được cảm ơn 36 lần, trong 15 bài

      Mặc định Ðề: timer của AT89C51

      Trích dẫn Gửi bởi hasumu Xem bài viết
      Hì. Có hỏi thêm tí nữa. Thế bạn có nhớ là cái mà trừ như tớ làm thì dùng trong trường hợp nào ko.? Bởi vì cách đây 1 năm thì tớ cũng nhớ là thầy cho trừ kiểu đó. :d
      Mình không biết
      Chắc cậu nhớ nhầm hoặc mình không biết thui
      [FLASH]http://fc03.deviantart.net/fs10/f/2006/127/5/e/Dragon.swf[/FLASH]

    11. Những thành viên đã cảm ơn haprohaui vì bài viết hữu ích:


    Trả lời với tài khoản Facebook

    Các Chủ đề tương tự

    1. Trợ giúp - dùng AT89C51 tạo chữ chạy led ma trân
      Bởi karaboy trong diễn đàn Vi xử lý - Vi điều khiển
      Trả lời: 8
      Bài cuối: 18-05-2015, 16:13
    2. Trợ giúp - timer dh48s -2z có phải timer đôi ko điều khiển timer mở máy và tắt máy lặp lại đc ko?
      Bởi jennyboy_dhtv trong diễn đàn Thiết bị đóng cắt và đo lường
      Trả lời: 1
      Bài cuối: 18-09-2013, 11:38
    3. Đồ án VB6 + RS232 + AT89c51 điều khiển 8 thiếc bị 220v
      Bởi thanhvu_tv87 trong diễn đàn Vi xử lý - Vi điều khiển
      Trả lời: 18
      Bài cuối: 08-04-2013, 01:19
    4. giúp mình làm cái code Mạch điều khiển động cơ DC dùng AT89C51 + IC L298, thank nhiều
      Bởi Hung_NguyenKhac trong diễn đàn Vi xử lý - Vi điều khiển
      Trả lời: 6
      Bài cuối: 09-01-2013, 20:51
    5. Trợ giúp - vdk dùng AT89c51
      Bởi faibac trong diễn đàn Vi xử lý - Vi điều khiển
      Trả lời: 3
      Bài cuối: 08-10-2011, 03:45
    Văn Võ Trạng Nguyên
    Hắc Hiệp Đại Chiến Thánh Bài 2
    Đặc Cảnh Diệt Ma
    Khử Ma Đạo Trưởng
    Cương Thi Diệt Tà
    Sự Hình Thành Của Đế Chế Mông Cổ
    NHỮNG KHOẢNH KHẮC ĐÁNG NHỚ CỦA GIẢI GOLF PHÚ MỸ HƯNG 2016