1. Trang chủ
  2. » Giáo án - Bài giảng

Vi xử lý chapter 2

15 11 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 775,85 KB

Nội dung

10/11/2021 Bộ định thời họ VXL 8051 Giảng viên: TS Đoàn Thị Hương Giang ĐT: 037 263 0593 Email: giangdth@epu.edu.vn TS Đoàn Thị Hương Giang TS Đoàn Thị Hương Giang 10/11/2021 Timers /Counters 8051 8051 có timers/counters: – – Timer/counter Timer/counter Chúng sử dụng sau: Timer sử dụng định thời – Đếm kiện với chức counter – – Nguồn tạo xung đồng hồ The clock source is the internal crystal frequency of the 8051 Tín hiệu ngồi từ chân vào để đếm số lượng kiện Có thể dùng để đến số người vào cửa, số vòng quay, … tạo tốc độ baud cho cổng nối tiếp có sẵn 8051/8031 VD với timer 16 bit có 16 tầng, tầng cuối chia tần số xung nhịp cho 216=65536 Nguồn xung nhịp cho timer xung vuông có tần số 1/12 tần số xung nhịp cung cấp cho 8051 TS Đoàn Thị Hương Giang Nguyên lý hoạt động định thời • Tần số định thời 1/12 tần số thạch anh gắn với 8051 • Bộ đếm/Bộ định thời: Đây ngoại vi thiết kế để thực nhiệm vụ đơn giản: đếm xung nhịp Mỗi có thêm xung nhịp đầu vào đếm giá trị đếm tăng lên 01 đơn vị (trong chế độ đếm tiến/đếm lên) hay giảm 01 đơn vị (trong chế độ đếm lùi/đếm xuống) Tràn (overflow): kiện đếm đếm vượt giá trị tối đa mà biểu diễn quay trở giá trị Với đếm bit, giá trị tối đa 255 (tương đương với FF hệ Hexa) 65535 (FFFFH) với đếm 16 bit TS Đoàn Thị Hương Giang 10/11/2021 Các định thời (Timers) • Chế độ định thời - Timer – Tăng sau chu kỳ máy (tương đương với 12 chu kỳ thạch anh) • Chế độ đếm - Counter – Tăng chân T0/T1 chuyển từ - (tín hiệu ngồi) • Có thể truy cập giá trị định thời cách trực tiếp • Các định thời tạo ngắt • Hoạt động Timer/Counter: – Thanh ghi điều khiển chế độ - Mode control register (TMOD) – Thanh ghi điều khiển - Control register (TCON) TS Đoàn Thị Hương Giang Chế độ định thời - Timer • • • • Khởi tạo định thời thông qua ghi Bắt đầu định thời sau 8051 đếm tiến Đầu vào từ nguồn xung đồng hồ hệ thống nội (machine cycle) Khi ghi 8051 đặt bit báo đếm xong 8051 P2 P1 ĐK LCD,… TH0 TL0 Đặt định thời TS Đoàn Thị Hương Giang 10/11/2021 Chế độ đếm - Counter • Đếm số lượng kiện – Lưu số lượng kiện đếm ghi – Nguồn xung đếm từ chân T0(P3.4) đếm – Nguồn xung đếm từ chân T1(P3.5) đếm – Đầu vào từ chân Tx 8051 – Tx (T0 T1) TH0 TL0 P3.4 Xung T0 Đếm số lần chuyển thái từ Giang xuống tới chân P3.4 TS.trạng Đoàn Thị Hương Chế độ đếm - Counter overflow flag Timer external input Pin 3.4 C/T = TH0 TL0 TF0 TF0 goes high when FFFF TR0 TS Đoàn Thị Hương Giang 10/11/2021 Các ghi đặc biệt dùng chế độ đinh thời SFR định thời Mục đích Địa Định địa bit TCON TMOD TL0 Điều khiển Chọn chế độ Byte thấp định thời 88H 89H 8AH TL1 Byte thấp định thời 8BH Không TH0 Byte cao định thời 8CH Không TH1 Byte cao định thời 8DH Không T2CON Điều khiển định thời C8H RCAP2L Nhặn byte thấp định thời CAH Không RCAP2H Nhận byte cao định thời CBH Không TL2 Byte thấp định thời CCH Không TH2 Byte cao định thời CDH Không Có Khơng Khơng Có TS Đồn Thị Hương Giang Thanh ghi TMOD • Thanh ghi chế độ timer: TMOD MOV TMOD,#21H – 8-bit, địa 89H RAM nội – Thiết lập chế độ sử dụng cho 02 timer • bit thấp cho Timer (đặt 0000 khơng sử dụng) • bit cao cho Timer (đặt 0000 không sử dụng) – Khơng truy cập theo bit • C/T – Chỉ định chế độ Timer/counter: =  Chế độ Timer =  Chế độ Counter (MSB) GATE (LSB) C/T M1 Timer M0 GATE TS Đoàn Thị Hương Giang C/T M1 Timer M0 10 10/11/2021 Thanh ghi TMOD • GATE – cho phép khởi động/dừng timer phần cứng hay phần mềm: – GATE=0: Khởi động/dừng timer phần mềm • Chân INT(P3.2, P3.3) khơng sử dụng chế độ định thời sử dụng chức cổng vào/ra thông thường – GATE=1: Khởi động/dừng timer phần cứng • Chân INT(P3.2, P3.3) sử dụng chế độ counter C/T (MSB) GATE (LSB) C/T M1 M0 GATE C/T Timer M1 M0 Timer TS Đồn Thị Hương Giang • 11 M1, M0 M0 M1 - Lựa chọn chế độ cho timer & M1 M0 Chế độ Ý nghĩa hoạt động 0 13-bit timer – chế độ định thời 13 bit  8191 8-bit THx + 5-bit TLx (x= 1) 1 16-bit timer chế độ định thời 16 bit  65535 8-bit THx + 8-bit TLx 8-bit tự động nạp lại  255 8-bit timer/counter tự động nạp lại; THx giữ giá trị để nạp lại cho TLx timer đếm tràn 1 8- bit: Chế độ định thời chia tách; Timer0 dùng cờ tràn, timer1 không dùng chế độ tràn (MSB) GATE (LSB) C/T M1 M0 GATE Timer C/T M1 M0 Timer TS Đoàn Thị Hương Giang 12 10/11/2021 Các chế độ định thời TS Đồn Thị Hương Giang 13 Ví dụ • Tìm giá trị nạp cho TMOD muốn lập trình timer chế độ Sử dụng XTAL 8051 làm nguồn xung clock sử dụng lệnh để khởi động cho định thời Giải: timer timer TMOD= 0000 0010 Timer 0, Chế độ (SM0 = 0; SM1 =1) C/T = => Chế độ timer GATE = =>ĐK timer khởi động dừng phần mềm TS Đoàn Thị Hương Giang 14 10/11/2021 Thanh ghi điều khiển định thời (TCON ) • Thanh ghi TCON chứa bit điều khiển trạng thái định thời định thời • Bốn bit cao TCON (TCON.4 - TCON.7 ) dùng để điều khiển định thời hoạt động ngừng (TR0, TR1) để báo định thời tràn (TF0, TF1) • Bốn bit thấp TCON ( TCON.0 - TCON.3 ) không dùng để điều khiến định thời, chúng dùng để phát khởi động ngắt (MSB) TF1 TR1 Timer TF0 TR0 Timer0 IE1 IT1 IE0 for Interrupt TS Đoàn Thị Hương Giang (LSB) IT0 15 Thanh ghi điều khiển định thời (TCON ) Bit Ký hiệu TCON.7 TF1 TCON.6 TR1 TCON.5 TF0 TCON.4 TR0 TCON.3 IE1 TCON.2 IT1 TCON.1 IE0 TCON.0 IT0 Mô tả Cờ báo tràn định thời Được set phần cứng có tràn, xóa phần mềm, phần cứng vi xử lý trỏ đến trình phục vụ ngắt Bit diều khiển hoạt động định thời Bit set xóa phần mềm để điều khiển định thời hoạt động hay ngưng hoạt động Cờ báo tràn định thời bit điều khiển hoạt động định thời Cờ ngắt bên ngồi (kích khởi cạnh) Cờ set phần cứng có cạnh âm (xuống) xuất chân /INT1, Được xóa phần mềm phần cứng CPU trỏ đến trình phục vụ ngắt Cờ ngắt bên ngồi ( kích khởi cạnh mức ) Cờ set xóa phần mềm xảy cạnh âm (xuống ) mức thấp chân ngắt ngồi Cờ ngắt bên ngồi (kích khởi cạnh) TS Đoàn Hương Giangcạnh mức) 16 Cờ ngắt bên ngồi 0Thị (kích khởi 10/11/2021 Các bước lập trình chế độ Để tạo độ trễ thời gian dùng chế độ (16 bit) định thời cần phải thực bước đây: Nạp giá trị TMOD cho ghi báo độ định thời (Timer0 hay Timer1) sử dụng chế độ chọn Nạp ghi TL TH với giá trị đếm ban đầu Khởi động định thời Duy trì kiểm tra cờ định thời TF vịng lặp để xem bật lên khơng Thốt vịng lặp TF lên cao Dừng định thời Xố cờ TF cho vịng Quay trở lại bước để nạp lại TL TH TS Đoàn Thị Hương Giang 17 Cách tính tốn độ trễ (1) • Sử dụng chế độ (16 bit) định thời tần số thạch anh XTAL = f (MHz): TS Đoàn Thị Hương Giang 18 10/11/2021 Các bước để tìm giá trị ghi TH TL Tính t cần trễ cho chu kỳ lệnh T=1.085 s Thực (65535 – n +1)T = t => n Chuyển đổi kết bước sang số Hex: ta có YYXX giá trị Hexa ban đầu cần phải nạp vào ghi Timer Đặt TL = XX TH = YY TS Đoàn Thị Hương Giang 19 Bảng tính giá trị THTL theo chế độ Chế độ Cơng thức tính Chế độ bit t = (256 –n)*T Chế độ 13 bit t = (8192 –n)*T Chế độ 16 bit t = (65536 –n)*T TS Đoàn Thị Hương Giang 20 10 10/11/2021 Ví dụ • Với trường hợp sử dụng thạch anh 12MHz để tạo trễ 6ms nên dùng timer0 chế độ nào? Chế độ Cơng thức tính Chế độ bit t = (256)*10-6=0.256ms Chế độ 13 bit t = (8192)*10-6 = 8.192ms Chế độ 16 bit t = (65536)*10-6=65,536ms TS Đoàn Thị Hương Giang 21 Bảng thời gian trễ tối đa định thời Tần số thạch anh 6MHz 12MHz 18MHz 24MHz 36MHz Chế độ bit 0.512ms 0.256ms 0.17ms 0.128ms 0.085ms Chế độ 13 bit 16.384ms 8.192ms 5.461ms 4.096ms 2.73ms Chế độ 16 bit 131.072ms 65.536ms 43.69ms 32.768ms 21.845ms TS Đoàn Thị Hương Giang 22 11 10/11/2021 Các bước lập trình chế độ Để tạo độ trễ thời gian dùng chế độ (16 bit) định thời cần phải thực bước đây: Nạp giá trị TMOD cho ghi báo độ định thời (Timer0 hay Timer1) sử dụng chế độ chọn Nạp ghi TLx THx với giá trị đếm ban đầu Khởi động định thời (TRx) Duy trì kiểm tra cờ định thời TFx vòng lặp để xem bật lên khơng Thốt vịng lặp TF lên cao Dừng định thời Xố cờ TFx cho vịng Quay trở lại bước để nạp lại TL TH TS Đồn Thị Hương Giang 23 Ví dụ tính TH, TL Viết chơng trình tạo xung f = 2KHz trªn P1.5? Giải: 1  0.5.10 3  0.5ms  500s • Chu kú xung P1.5 : Txung   f 2.103 • Thêi gian cao thÊp/cao cđa xung hay thời gian trễ: ”t”= Txung/2 = 250s • Tn s thch anh: fta=12MHz=> T=12/fta=1s ã Giá trị cần nạp vào TH TL là: (65.535 THTL+1)T = t THTL=65286 THTL=FF06=> TH=0FFh, TL=06h P1.5 TS Đoàn Thị Hương Giang 250s 24 12 10/11/2021 Chương trình CLR MOV TF0 TMOD,#01h ; Xóa cờ tràn T0 ;DùngT0 chế độ1 MOV MOV SETB TL0,#06h TH0,#0FFh TR0 ; Khởi động T0 JNB CLR CPL CLR JMP TF0,BACK TR0 P1.5 TF0 AGAIN ; Nhảy chỗ cờ tràn chưa báo ; Dừng T0 ; Đảo giá trị cuả cổng P1.5 ; Xóa cờ tràn T0 ; Lặp lại q trình chạy T0 AGAIN: BACK: TS Đoàn Thị Hương Giang 25 Main: cpl lcall sjmp P1.5 Timer1 Main CLR MOV TF1 TMOD,#10h MOV MOV SETB TL1,#BFH TH1,#63H TR1 JNB CLR CLR ret TF1,BACK TR1 TF1 Timer1: Main: CLR MOV TF1 TMOD,#10h MOV MOV SETB TL1,#06h TH1,#0FFh TR1 JNB CLR CPL CLR JMP end TF1,BACK TR1 P1.5 TF1 AGAIN AGAIN: AGAIN: BACK: BACK: end TS Đoàn Thị Hương Giang 26 13 10/11/2021 Ví dụ: Tạo xung có độ rộng 50% chân P1.0 ;Tạo xung dung timer CLR TF0 MOV TMOD,#01h MAIN: MOV TL0,#0F2h MOV TH0,#0FFh CPL P0.1 CALL Delay_Timer0 AJMP MAIN ;Tạo trễ dùng timer Delay_Timer0: setb AGAIN: JNB CLR CLR RET ;Xóa TF0 ;Dùng T0 chế độ ;TL0 = F2h ;TF0 = FFh ;Đảo giá trị cổng P0.1 ;Gọi chương trinh trễ ;Lặp lại trình TR0 ;Khởi động T0 TF0,AGAIN TR0 TF0 ; TF0 = nhảy chỗ chờ timer0 đếm xong ; Tắt T0 ; Xóa cờ TF0 TS Đồn Thị Hương Giang 27 ViÕt chơng trình tạo trễ 8s dùng T1 8s = 200 x 0.04s = 200 x 40,000s 40,000 nhịp đếm, nhịp 1s - Giá trị nạp vào T1 : 65,536 – 40,000 = 25,536 = 63BFH ( hc : FFFFh 9C40H = 63BFH) - Lặp 200 lần Chơng trình : = Sai Wait8s: CLR TF1 ;Xóa cê trµn T1 MOV TMOD,#10h ; Dïng T1 ë chÕ độ MOV R3,#200 ; Lặp 200 lần AGAIN: MOV TL1,#0BFH MOV TH1,#63H SETB TR1 BACK: JNB TF1,BACK ; Nh¶y chỗ c tràn CLR TR1 ; Tắt T1 CLR TF1 ; Xóa cờ tràn DJNZ R3,AGAIN ; Nếu R3 khác lặp lại RET 14 10/11/2021 Viết chơng trình tạo trễ 8s dùng T1 Thi gian trễ t=8s => số thời gian qu¸ lín t= 8s = 200*0.04s Thực lặp 200 lần thời gian tạo trễ timer=> coi nh tính toán cho timer víi thêi gian trƠ lµ t1=0.04s Chu kỳ lệnh: T= 1s Giá trị nạp vào T1 là: (65535-THTL+1)*T=t1 65,536 – 40,000 = 25,536 = 63BF H (hc : FFFFh 9C40 = 63BF) Lặp 200 lần: CLR MOV MOV TF1 TMOD,#10h R3,#200 MOV MOV SETB TL1,#BF TH1,#63 TR1 JNB CLR CLR DJNZ TF1,BACK TR1 TF1 R3,AGAIN ;Xãa cê tràn T1 ; Dùng T1 chế độ ; Lặp 200 lần AGAIN: BACK: ; Nhảy chỗ cò tràn ;Tắt T1 ;Xóa cờ tràn ;Nếu R3 khác lặp lại To Chapter TS Đoàn Thị Hương Giang 30 15 ... 12MHz 18MHz 24 MHz 36MHz Chế độ bit 0.512ms 0 .25 6ms 0.17ms 0. 128 ms 0.085ms Chế độ 13 bit 16.384ms 8.192ms 5.461ms 4.096ms 2. 73ms Chế độ 16 bit 131.072ms 65.536ms 43.69ms 32. 768ms 21 .845ms TS Đoàn... Txung /2 = 25 0s • Tần số thạch anh: fta=12MHz=> T= 12/ fta=1s ã Giá trị cần nạp vào TH vµ TL lµ: (65.535 – THTL+1)T = t THTL=6 528 6 THTL=FF06=> TH=0FFh, TL=06h P1.5 TS Đoàn Thị Hương Giang 25 0s 24 12. .. tính Chế độ bit t = (25 6 –n)*T Chế độ 13 bit t = (81 92 –n)*T Chế độ 16 bit t = (65536 –n)*T TS Đồn Thị Hương Giang 20 10 10/11 /20 21 Ví dụ • Với trường hợp sử dụng thạch anh 12MHz để tạo trễ 6ms

Ngày đăng: 12/10/2022, 01:21

HÌNH ẢNH LIÊN QUAN

Bảng tớnh giỏ trị THTL theo cỏc chế độ - Vi xử lý chapter 2
Bảng t ớnh giỏ trị THTL theo cỏc chế độ (Trang 10)
Chế độ 8 bit t= (256)*10-6=0.256ms - Vi xử lý chapter 2
h ế độ 8 bit t= (256)*10-6=0.256ms (Trang 11)
w