vi xu ly bui minh thanh vxl ch03 8051 3 5 timer v02 cuuduongthancong com

45 2 0
vi xu ly bui minh thanh vxl ch03 8051 3 5 timer v02   cuuduongthancong com

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN KỸ THUẬT ĐIỆN TỬ CHƯƠNG HỌ VI ĐIỀU KHIỂN 8051 3.4 Timer (Mạch định thời) CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung 1) 2) 3) 4) 5) 6) 7) 8) Giới thiệu Các ghi có chức đặc biệt (SFR) Các chế độ hoạt động timer Các nguồn tạo xung nhịp Điều khiển timer Khởi tạo trị truy cập ghi timer Các ví dụ Lập trình counter Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt 1) Giới thiệu timer • Timer chuỗi flip-flop chia đôi tần số mắc nối tiếp với nhau, chúng nhận tín hiệu vào làm nguồn xung nhịp Xung nhịp đưa vào flip-flop thứ để chia đôi tần số xung nhịp Ngõ flip-flop thứ làm xung nhịp cho flip-flop thứ hai (cũng làm việc chia đơi tần số),và v.v • Vì tầng chia đơi timer có n tầng cho xung có tần số tần số xung nhịp chia cho 2n Ngõ tầng cuối làm xung nhịp cho flip-flop báo tràn timer (cịn gọi cờ timer TF [Timer Flag]) • Giá trị nhị phân flip-flop timer xem số đếm số xung nhịp (hoặc kiện) từ timer bắt đầu chạy Thí dụ timer 16 bit đếm lên từ 0000H đến FFFFH Cờ báo tràn lên số đếm tràn từ FFFFH đến 0000H Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt TD: Timer bit Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt Timer 8051 • 8051/8031 có hai timer 16 bit (T0 T1), timer có bốn chế độ hoạt động • Người ta sử dụng timer để: a) định khoảng thời gian, b) đếm kiện c) tạo tốc độ baud cho cổng nối tiếp có sẵn 8051/8031 • Mỗi timer 16 bit có 16 tầng hay tầng cuối chia tần số xung nhịp cho 216=65536 Nguồn xung nhịp cho timer xung vng có tần số 1/12 tần số xung nhịp cung cấp cho 8051 Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt • Trong ứng dụng định khoảng thời gian, người ta lập trình cho timer tràn khoảng đặn đặt cờ tràn timer lên Cờ dùng để đồng hóa đo thời gian trơi qua hai kiện (ví dụ: đo độ rộng xung) • Đếm kiện dùng để xác định số lần xảy kiện đo khoảng thời gian trôi qua kiện Một “sự kiện” tác động bên ngồi cung cấp chuyển tiếp sang từ chân T0, T1(ở P3) 8051/8031 • Các timer cung cấp xung nhịp tốc độ baud cho cổng nối tiếp có sẵn 8051/8031 Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt 2) Các SFR timer Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt 2) Các ghi timer • Timer (T0/T1) 8051 tạo ghi bit • Timer (T0) tạo – TL0 vàTH0 (L=Low H=High) – Truy cập chúng ghi khác, TD: MOV TL0, #55H MOV R1, TH0 • Timer (T1) tạo – TL1 and TH1 Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt a) Thanh ghi điều khiển timer (TCON) Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt b) Thanh ghi chế độ timer (TMOD) Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt 10 Ví dụ 3: Tạo sóng vng KHz chân P1.0 Tạo sóng vng KHz Tần số = 1KHz  chu kz T =1/1000 = 1000 us TON = 500 us, TOFF= 500us Dùng mode ( 16 bit mode ), khoảng thời gian > 256 us LOOP: WAIT: ORG MOV MOV MOV SETB JNB CLR CLR CPL SJMP END 8000H TMOD, #01H TH0, #0FEH TL0, #0CH TR0 TF0, WAIT TR0 TF0 P1.0 LOOP Chú ý: Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com ; chế độ (16 bit) ; -500 (-01F4H) ; cho timer T0 chạy ; đợi timer tràn ; dừng timer ; xóa cờ báo tràn ; đảo bit cổng ; lặp lại MOV TH0, #0FEH  MOV TH0, #HIGH(-500) MOV TL0, #0CH  MOV TL0, #LOW(-500) https://fb.com/tailieudientucntt 31 TD: Giao tiếp buzzer (1/2) Một buzzer nối vào chân P1.7 công tắc không nảy (debounce switch) nối vào chân P1.6 Viết chương trình đọc mức logic công tắc cấp tạo âm buzzer giây sau lần phát chuyển trạng thái từ xuống Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt 32 TD: Giao tiếp buzzer (2/2) Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt 33 Lập trình counter • Ở chế độ counter: TMOD, TH, TL giống với timer Các chế độ timer giống • Tuy nhiên thay dùng tần số thạch anh, counter đếm xung từ bên ngồi đưa vào 8051 thơng qua P3.4, P3.5 • Bit C/T TMOD định nguồn xung nhịp • Khi C/T = 1, counter đếm lên có xung đưa vào chân T1 T0 (ở P3) Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt 34 Hoạt động Counter Internal clock fCLK = fCrystal / 12 to Timer External clock C/T Clock Function Internal Timer (interval timing, delay) External Counter (event counting) Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt 35 Counter chế độ • C/T = • 16-bit counter (TH0 and TL0) • TH0-TL0 tăng lên TR0 = có xung xuất T0 Timer external clock input (P3.4/T0) C/T = Overflow flag TH0 TR0 Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com TL0 TF0 TF0 goes high when FFFF  https://fb.com/tailieudientucntt 36 Ví dụ 1: Counter BarLed • Một nút nhấn kết nối vào chân P3.4 (T0) Bỏ qua tượng rung ấn nút nhấn, viết chương trình đếm số lần nhấn nút nhấn hiển thị kết lên bar led kết nối vào port Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt 37 Ví dụ 1: Counter BarLed ORG 0000H MAIN: LOOP: MOV TMOD,#00000101B;Timer 0, 16 bit, external clock ;(counter operation) ;Gate=0, C/T=1, M1 M0 = 01 MOV TH0,#0 MOV TL0,#0 SETB TR0 ;Start Timer MOV A,TL0 ;Read Timer MOV P1,A ;Display on Bar-LED SJMP LOOP END Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt 38 Ví dụ 2: Counter_7segLED • Một nút nhấn kết nối vào chân P3.4 (T0) Bỏ qua tượng rung nút nhấn, viết chương trình đếm số lần nhấn nút nhấn hiển thị kết lên led đoạn anode chung kết nối vào port Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt 39 Ví dụ 2: Counter_7segLED ORG 0000H MAIN: MOV TMOD,#00000101B MOV TH0,#0 MOV TL0,#0 SETB TR0 LOOP: MOV A,TL0 CJNE A,#10,NEXT CLR A MOV TL0,#0 NEXT: ACALL DISPLAY SJMP LOOP BCDTO7SEG: MOV DPTR,#TABLE MOVC A,@A+DPTR RET TABLE: DB 40h,79h,24h,30h,19h DB 12h,02h,78h,00h,10h DONE: NOP END DISPLAY: ACALL BCDTO7SEG MOV P1,A RET Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt 40 Chú ý có dùng ngắt (TD: chế độ 1) - Khi GATE = 1, timer điều khiển /INTx - Hữu ích để đo độ rộng xung Bộ môn Kỹ Thuật Điện Tử - ĐHBK CuuDuongThanCong.com https://fb.com/tailieudientucntt 41 GATE=1 • GATE=0 • Internal control • The start and stop of the timer are controlled by the software Ex: SETB TR1 ; Run Timer CLR TR1 ; Stop Timer • GATE=1 • External control • The hardware way of starting and stopping Timer Timer the timer by software stops runs and an external source • When GATE is set and TRx is set (SETB TRx), Timer runs only while the INTx pin is high Lê Chí Thơng CuuDuongThanCong.com 42 https://fb.com/tailieudientucntt Ví dụ 3: Pulse_width_7segLED Một nguồn xung kết nối vào chân P3.2 (/INT0) Viết chương trình hiển thị độ rộng xung theo đơn vị us led đoạn anode chung kết nối vào port Lê Chí Thơng CuuDuongThanCong.com 43 https://fb.com/tailieudientucntt Ví dụ 3: Pulse_width_7segLED ORG 0000H MOV TMOD,#00001001B ;Timer 0,16 bit,internal clock,GATE=1 MOV TH0,#0 MOV TL0,#0 SETB TR0 AGAIN: MOV A,TH0 CJNE A,TH0,AGAIN MOV B,#4 DIV AB ;A=Pulse width in us/256/4 ;approximate /1000 ACALL DISPLAY SJMP AGAIN DISPLAY: ACALL BCDTO7SEG MOV P1,A RET BCDTO7SEG: MOV DPTR,#TABLE MOVC A,@A+DPTR RET TABLE: DB 40h,79h,24h,30h,19h DB 12h,02h,78h,00h,10h DONE: NOP END Lê Chí Thơng CuuDuongThanCong.com 44 https://fb.com/tailieudientucntt Tài liệu tham khảo • Hồ Trung Mỹ, Vi xử l{, Nhà xuất Đại học Quốc Gia Tp HCM - 2003 • I Scott MacKenzie , The 8051 Microcontroller, 2nd Edition, Prentice-Hall, 1995 • Slide giảng thầy Hồ Trung Mỹ • Slide giảng thầy Lê Chí Thơng Lê Chí Thơng CuuDuongThanCong.com 45 https://fb.com/tailieudientucntt ... https://fb.com/tailieudientucntt 11 Bốn chế độ hoạt động Mode : 13-bit counter (4048 mode) Mode : 16-bit counter Mode : 8-bit auto reload counter Mode : two 8-bit counter the other counter will not output overflow... Tử - ĐHBK CuuDuongThanCong.com ; chế độ (16 bit) ; -5 00 (-0 1F4H) ; cho timer T0 chạy ; đợi timer tràn ; dừng timer ; xóa cờ báo tràn ; đảo bit cổng ; lặp lại MOV TH0, #0FEH  MOV TH0, #HIGH (-5 00)... nhận tín hiệu vào làm nguồn xung nhịp Xung nhịp đưa vào flip-flop thứ để chia đôi tần số xung nhịp Ngõ flip-flop thứ làm xung nhịp cho flip-flop thứ hai (cũng làm việc chia đôi tần số),và v.v •

Ngày đăng: 27/12/2022, 13:47

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan