Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
1,07 MB
Nội dung
CHƯƠNG BỘ ĐỊNH THÌ (TIMERS) Giáo trình Vi Xử Lý Lưu Phú Tóm tắt: 5.1 Giới thiệu 5.2 Thanh chi TMOD 5.3 Thanh ghi TCON 5.4 Các mode timer cờ báo tràn 5.5 Nguồn tạo xung Timer CK 5.6 Chạy,dừng điều khiển timer 5.7 Khởi động truy xuất ghi timer 5.8 Định thời đoạn ngắn,trung bình,dài 5.9 Các ví dụ ứng dụng timer 5.10 Tính xac thời gian định 5.11 Timer2 MCU8052 5.12 Tạo baurate Giáo trình Vi Xử Lý Lưu Phú 5.1 Giới thiệu Bộ định bit gồm TFF ghép nối tiếp≡ đếm/chia 23=8 Khi có xung CK ngõ thay đổi 𝑄2 𝑄1 𝑄0 = 000 → 111 Tần số xung ngõ Q FF thứ 1/8 fCK FF sau đóng vai trị cờ báo tràn, Q=1 mạch đếm đến xung CK thứ 𝑄2 𝑄1 𝑄0 = 111 → 000 Hình 5.1: Sơ đồ nguyên lý định bit giản đồ xung Giáo trình Vi Xử Lý Lưu Phú 5.1 Giới thiệu MCU8051 có định 16 bit,MCU8052 có định 16 bit Bộ định 16 bit đếm tối đa 216=65536 xung CK,giá trị đếm từ 0000H đến FFFFH Ứng dụng định thì: (a)định thời đoạn(interval timing):đo độ rộng xung,đồng hoạt động kiểm tra trạng thái input/output (b)đếm kiện(event counting):đếm số xung,trạng thái chuyển mức logic (c)tạo baudrate cho cổng nối tiếp onchip(xem chương cổng nối tiếp) SFR quản lý hoạt động định 8051 thêm SFR quản lý định thứ 8052 Giáo trình Vi Xử Lý Lưu Phú 5.1 Giới thiệu Bảng B4.1: Các SFR cho Timer Timer SFR TCON TMOD TL0 TL1 TH0 TH1 T2CON* RCAP2L* RCAP2H* TL2* TH2* Mục đích Điều khiển Đặt mode Byte thấp Timer0 Byte thấp Timer1 Byte cao Timer0 Byte cao Timer1 Điều khiển Timer2 Bắt byte thấp Timer2 Bắt byte cao Timer2 Byte thấp Timer2 Byte cao Timer2 *Chỉ có 8032/8052 Đia byte 88H 89H 8AH 8BH 8CH 8DH C8H CAH CBH CCH CDH Giáo trình Vi Xử Lý Lưu Phú Định vị bit Có Khơng Khơng Khơng Khơng Khơng Có Khơng Khơng Khơng Khơng Bảng B4.2: Tóm tắt ghi TMOD 5.2 Thanh ghi TMOD TMOD(địa byte 89H): không truy xuất bit được,đặt mode làm việc cho Timer1 Timer0 bit cao quản lý Timer1,4 bit thấp quản lý Timer0(Bảng B4.2 B4.3) Thường TMOD nạp data phần mềm đầu chương trình khởi động mode làm việc cho Timer Bit Tên GATE Giáo trình Vi Xử Lý 𝐶/𝑇 M1 M0 GATE 𝐶/𝑇 M1 M0 Lưu Phú Timer 1 1 0 0 Mô tả Bit Gate.Khi Gate=1,Timer chạy ngõ vào 𝐼𝑁𝑇1 = Bit chọn Đếm/Định 1= đếm kiện 0=định thời đoạn Mode bit 1(xem Bảng B4.3) Mode bit 0(xem Bảng B4.3) Bit Gate.Khi Gate=1,Timer chạy ngõ vào 𝐼𝑁𝑇0 = Bit chọn Đếm/Định 1= đếm kiện 0=định thời đoạn Mode bit 1(xem Bảng B4.3) Mode bit 0(xem Bảng B4.3) 5.2 Thanh ghi TMOD Bảng B4.3: Các mode Timer M1 0 1 M0 1 Mode Mô tả Mode Timer 13 bit(mode 8048) Mode Timer 16 bit Mode Timer bit tự động nạp lại Mode Timer tách biệt: Timer0: TL0 Timer bit điều khiển bit mode Timer0;TH0 Timer bit điều khiển bit mode Timer1 Timer1: dừng Ví dụ 5.1: Khởi động Timer làm việc sau: a) Timer0 định bit,Timer1 định 16 bit b) Timer0 định 16 bit,Timer1 đếm kiện 16 bit Giáo trình Vi Xử Lý Lưu Phú Giải: a) Viết lệnh nạp data vào TMOD sau: MOV TMOD,#00010010B Hay MOV TMOD,#12H a) Viết lệnh nạp data vào TMOD sau: MOV MOD,#01010001B Hay MOV TMOD,#51H 5.3 Thanh ghi TCON TCON(88H) : truy xuất bit được, điều khiển Timer chạy/dừng chứa cờ báo tràn bit cao quản lý Timer,4 bit thấp quản lý ngắt(xem chương ngắt) Bảng B4.4: Tóm tắt ghi TCON Bit TCON.7 Ký hiệu TF1 Địa bit 8FH TCON.6 TR1 8EH TCON.5 TF0 8DH Ví dụ 5.2: Viết lệnh chạy /dừng TCON.4 TR0 Timer1 Time0 TCON.3 IE1 Giải: Chạy /dừng Timer1: TCON.2 IT1 SETB TR1 … TCON.1 IE0 CLR TR1 Chạy/dừng Timer0: SETB TR0 TCON.0 IT0 … CLR TR0 Giáo trình Vi Xử Lý 8CH 8BH 8AH 89H 88H Lưu Phú Mô tả Cờ báo tràn Timer1.Đặt cứng tràn; xóa mềm cứng xử lý chuyển đến trình phục vụ ngắt (ISR)Timer1 Bit điều khiển chạy Timer1.Đặt/xóa mềm để chạy/dừng Timer1 Cờ báo tràn Timer0.Đặt cứng tràn; xóa mềm cứng CPU chuyển đến trình phục vụ ngắt (ISR)Timer0 Bit điều khiển chạy Timer0.Đặt/xóa mềm để chạy/dừng Timer0 Cờ báo ngắt ngồi 𝐼𝑁𝑇1.Đặt cứng nhận dạng có cạnh xuống ngõ 𝐼𝑁𝑇1;xóa cứng mềm CPU chuyển đến trình phục vụ ngắt ngồi 𝐼𝑁𝑇1 Cờ báo loại ngắt ngồi 𝐼𝑁𝑇1.Đặt/xóa mềm khai báo ngắt ngồi 𝐼𝑁𝑇1 tác động cạnh xuống /mức thấp Cờ báo ngắt 𝐼𝑁𝑇0.Đặt cứng nhận dạng có cạnh xuống ngõ 𝐼𝑁𝑇0;xóa cứng mềm CPU chuyển đến trình phục vụ ngắt ngồi 𝐼𝑁𝑇0 Cờ báo loại ngắt ngồi 𝐼𝑁𝑇0.Đặt/xóa mềm khai báo ngắt ngồi 𝐼𝑁𝑇0 tác động cạnh xuống /mức thấp 5.4 Các mode Timer cờ báo tràn Ký hiệu x thay cho ký hiệu 0/1 Timer0/Timer1 Tmerx có mode làm việc: mode 0,mode 1,mode 2,mode 5.4.1 Mode 0- Mode Timer 13 bit Hình 5.2a: Timerx mode Mode mode timer 13 bit tương hợp với họ MCU8048 version trước,rất sử dụng bit THx nối cascade với bit thấp TLx tạo thành timer 13 bit(3 bit cao TLx không sử dụng) Giáo trình Vi Xử Lý Lưu Phú 5.4 Các mode Timer cờ báo tràn 5.4.2 Mode 1- Mode Timer 16 bit Hình 5.2b: Timer mode Mode mode timer 16 bit kết nối TLx với THx tạo thành timer 16 bit Byte thấp TLx với LSB=bit TLx,byte cao THx với MSB=bit Mỗi xung nhịp Timer CK đưa vào,bộ timer đếm lên→giá trị đếm/chia tối đa =216=65536 Khi (THxTLx)=FFFFH đếm thêm xung timer CK chuyển sang 0000 →Timer tràn→phần cứng đặt cờ báo tràn TFx=1,timer tiếp tục đếm TFx đặt/xóa phần mềm Có thể đọc/ghi THx,TLx thời điểm Giáo trình Vi Xử Lý Lưu Phú 10 5.9 Các ví dụ ứng dụng timer Ví dụ 5.10: Viết chương trình tạo chuỗi xung vng đối xứng f=1Khz P1.0 Giải: Xung vuông đối xứng f=1Khz,thời gian mức 1=thới gian mức 0=500µs Sử dụng Timer0 mode giá trị đặt trước -500→timer báo tràn sau 500 xung đếm=500µs ORG 8100 MOV TMOD,#01H ;Timer0 mode LOOP: MOV TH0,#HIGH(-500) ;byte cao giá trị đặt trước MOV TL0,#LOW(-500) ;byte thấp giá trị đặt trước SETB TR0 ;chạy Timer0 WAIT: JNB TF0,WAIT ;chờ báo tràn CLR TR0 ;dừng Timer0 CLR TF0 ;xóa cờ báo tràn CPL P1.0 ;đảo bit sau 500µs SJMP LOOP ;lặp vịng lại END Giáo trình Vi Xử Lý Lưu Phú 29 5.9 Các ví dụ ứng dụng timer Dịng nạp giá trị đặt trước cho ghi Timer0 tốn tử HIGH,LOW khỏi phải tính giá trị bù-2 (-500) Ngay sau TF0=1 Timer0 tràn,phải dừng Timer0 để chuẩn bị nạp lại giá trị đặt trước Lệnh lặp vịng SJMP LOOP đưa chương trình quay tiếp tục nạp lại giá trị đặt trước chạy timer lại Do phải dừng timer thời gian nạp lại giá trị đặt trước nên phát sinh sai số(sẽ bàn phần sau) Giáo trình Vi Xử Lý Lưu Phú 30 5.9 Các ví dụ ứng dụng timer Ví dụ 5.12: Viết chương trình tạo chuỗi xung vng đối xứng P1.0 f1=10Khz P2.0 f2=1Khz Giải: Chọn Timer0 chạy mode giá trị nạp lại=-50,Timer1 mode giá trị nạp lại=-500 ORG 8100 MOV TMOD,#12H ; Timer0 mode 2,Timer mode MOV TH0,#-50 ;giá trị nạp lại Timer0 MOV TL0,TH0 ;nạp ban đầu cho TL0 SETB TR0 ;chạy Timer0 LOOP: MOV TH1,#HIGH(-500) ;giá trị nạp lại Timer1 byte cao MOV TL1,#LOW(-500) ;giá trị nạp lại Timer1 byte thấp SETB TR1 ;chạy Timer1 WAIT: JNB TF0,NEXT ; Timer0 chưa tràn,nhảy đến NEXT CLR TF0 ;Timer0 tràn,xóa cờ báo tràn CPL P1.0 ;đảo bit P1.0 NEXT: JNB TF1,WAIT ;Timer1 chưa tràn,quay WAIT CLR TR1 ;dừng Timer1 CLR TF1 ;xóa cờ báo tràn Timer1 CPL P2.0 ;đảo bit P2.0 SJMP LOOP ;quay nạp lại Timer1 END Trong chương trình xét cờ báo tràn TF0 TF1,ưu tiên Timer0 trước thời gian đếm ngắn hơn! Giáo trình Vi Xử Lý Lưu Phú 31 5.9 Các ví dụ ứng dụng timer Ví dụ 5.13: Hình vd5.13 gồm mạch cịi nối với P1.7 mạch nút nhấn có chống rung nối với P1.6 Viết chương trình đọc trạng thái nút nhấn kích cịi kêu 1s phát có chuyển trạng thái từ xuống P1.6.Đặt P1.7 =1 kích cịi kêu Giải: Vấn đề tạo thời gian delay 1s kích cịi, dùng Timer kết hợp lặp vòng đếm số lần timer tràn: Giá trị đặt trước=10000,lặp vịng đếm=100 →thời gian delay=10000x100=1000000µs=1s HUNDRED EQU 100 ;số lần lặp vịng Hình vd5.13 COUNT EQU -10000 ;thời gian đếm Timer ORG 8100 MOV TMOD ,#01H ;Timer0 mode LOOP: JNB P1.6,LOOP ;chờ mức WAIT: JB P1.6,WAIT ;chờ mức SETB P1.7 ;kích còi CALL DELAY ;chờ 1s CLR P1.7 ;tắt còi SJMP LOOP ;quay kiểm tra nút nhấn Giáo trình Vi Xử Lý Lưu Phú 32 5.9 Các ví dụ ứng dụng timer ; ;DELAY tạo thời gian trễ 1s cách cho Timer0 ;đếm COUNT xung lặp vòng HUNDRED lần ; -DELAY: MOV R7,#HUNDRED ;R7 chứa số lần lặp vòng AGAIN: MOV TH0,#HIGH(COUNT) ; byte cao giá trị đặt trước MOV TL0,#LOW(COUNT) ;byte thấp giá trị đặt trước SETB TR0 ;chạy Timer0 WAIT2: JNB TF0,WAIT2 ;chờ Timer0 tràn CLR TR0 ;dừng Timer0 CLR TF0 ;xóa cờ báo tràn Timer0 DJNZ R7,AGAIN ;lặp vịng chạy Timer0 RET END Giáo trình Vi Xử Lý Lưu Phú 33 5.9 Các ví dụ ứng dụng timer Ví dụ 5.14: Thiết kế mạch đếm sản phẩm hình vd5.14: Cảm biến đếm xuất xung có sản phẩm qua, tốc độ max sản phẩm 0,3s/sp Mạch làm việc mode tùy theo mức logic phím nhấn SW: - SW=0: mạch đếm lên tự từ 60s - SW=1: mạch đếm có đặt trước,giá trị đặt trước số nhị phân nhập từ P2(data in) Liên tục xuất giá trị mạch đếm từ đến giá trị sau 60s với mode đếm tự do,hoặc từ đến giá trị đặt trước với Hình vd5.14 mode đếm có đặt trước P1(data out) Kết thúc mode đếm xuất mức ngõ Alarm quay làm lại từ đầu Giải: Xung đếm từ cảm biến đưa vào ngõ T0=P3.4 →sử dụng Timer0 mode đếm kiện(Timer CK ngoài) Mode đếm tự số sản phẩm max=60s/0.3s=200,mode đếm đặt trước data in=8 bit→số đếm max=255→Chọn Timer0 mode Tạo thời gian delay 60s mode đếm tự do→kết hợp Timer1 mode vòng lặp: Cho Timer1 đếm 60000 xung(Fosc=12Mhz),phải lặp số vịng=60s/60ms=1000 lần Giáo trình Vi Xử Lý Lưu Phú 34 5.9 Các ví dụ ứng dụng timer DAT_IN EQU P2 DAT_OUTEQU P1 COUNT EQU -60000 SW BIT P3.0 ALARM BIT P3.1 ORG MOV TMOD,#16H START: CLR ALARM MOV TL0,#0 JNB SW,CT_FREE MOV A,DAT_IN MOV R0,A CPL A ADD A,#1 MOV TL0,A SETB TR0 WAIT1: JNB TF0,DISPLAY1 CLR TR0 DISPLAY1: MOV B,TL0 MOV A,R0 CLR SUBB MOV JNB CLR SETB JMP C A,B DAT_OUT,A TF0,WAIT1 TF0 ALARM START ;xóa cờ C để trừ ;trả số đếm thực ;xuất số đếm ;chờ Timer0 tràn ;xóa cờ báo tràn ;set cờ báo kết thúc ;Timer1 mode 1CK trong,Timer0 mode2 CK ngồi ;xóa Alarm ;xóa đếm ;SW=0 nhảy đến mode đếm tự ;mode đếm đặt trước,nhập giá trị đặt trước ;cất giá trị đặt vào R0 ;bù-2 số đặt trước ; ;nạp số đặt trước vào TL0 ;bắt đầu đếm ; chưa tràn nhảy đến xuất giá trị đếm ;dừng đếm ;nạp số đếm vào B ;phục hồi giá trị đặt trước Giáo trình Vi Xử Lý Lưu Phú 35 5.9 Các ví dụ ứng dụng timer CT_FREE: SETB MOV AGAIN: MOV NEXT: MOV MOV SETB WAIT0: JNB CLR DISPLAY0: MOV MOV JNB CLR DJNZ DJNZ CLR SETB JMP END TR0 ;bắt đầu đếm R7,#5 ;hệ số nhân R6,#200 ;số lần lặp vòng TH1,#HIGH(COUNT);Timer1 đếm 60ms TL1,#LOW(COUNT) ; TR1 ;chạy Timer1 TF1,DISPLAY0 ;chờ báo tràn TR1 ;dừng Timer1 A,TL0 ;nạp số đếm vào A DAT_OUT,A ;xuất số đếm TF1,WAIT0 ;chờ báo tràn Timer1 TF1 ;xóa cờ báo trán R6,NEXT ;lặp vòng 200 lần R7,AGAIN ;lặp vòng 5x200=1000 lần TR0 ;dừng đếm ALARM ;set cờ báo kết thúc START Giáo trình Vi Xử Lý Lưu Phú 36 5.10 Tính xác thời gian định Khảo sát lại ví dụ 5.10,ta tính sai số thời gian dừng để nạp lại timer: ORG 8100 MOV TMOD,#01H ;Timer0 mode LOOP: MOV TH0,#HIGH(-500) ;2MC MOV TL0,#LOW(-500) ;2MC SETB TR0 ;1MC WAIT: JNB TF0,WAIT ;2MC CLR TR0 ;1MC CLR TF0 ;1MC CPL P1.0 ;1MC SJMP LOOP ;2MC END Sau lần dừng Timer0 phải 12MC để nạp lại giá trị đặt trước chạy Timer trở lại Để độ rộng xung xác 500µs ta phải trừ bớt 12µs,như phải khởi nạp: MOV TH0,#HIGH(-488) ; MOV TL0,#LOW(-488) ; Giáo trình Vi Xử Lý Lưu Phú 37 5.10 Tính xác thời gian định Ví dụ 5.15: Viết chương trình tạo chuỗi xung vng đối xứng f=600Hz xác P1.0, cho Fosc=12Khz Giải: Thời đoạn xung=T/2=1/(2x600)=833.33µs Giá trị đếm=833 xung→f=600.24Hz#sai số= |600-600.24|/600=0.04%, Chọn giá trị đặt trước =833-12=821→Tổng cộng thời đoạn đếm Timer 833µs ORG 8100 MOV TMOD,#01H ;Timer0 mode LOOP: MOV TH0,#HIGH(-821) ;2MC MOV TL0,#LOW(-821) ;2MC SETB TR0 ;1MC WAIT: JNB TF0,WAIT ;2MC CLR TR0 ;1MC CLR TF0 ;1MC CPL P1.0 ;1MC SJMP LOOP ;2MC END Giáo trình Vi Xử Lý Lưu Phú 38 Bảng B5.6: Tóm tắt SFR T2CON 5.11 Timer MCU8052 MCU8052 có thêm timer thứ Timer2 SFR quản lý hoạt động Timer2 - T2CON(C8H) :truy xuất bit được,điều khiển Timer2 - RCAP2L(CAH):bắt(capture) byte thấp Timer2 - RCAP2H(CBH): bắt byte cao Timer2 - TL2(CCH): byte thấp Timer2 - TH2(CDH): byte cao Timer2 Timer2 làm việc mode 16 bit Điều khiển(đk) ngồi Timer2 có ngõ: - T2=P1.0: xung Timer CK cho mode đếm kiện (C/T2 =1) - T2EX=P1.1: ngõ điều khiển bắt/nạp lại (capture/reload) Timer2 với điều kiện bit EXEN2=1 Giáo trình Vi Xử Lý Bit T2CON.7 Ký hiệu TF2 Địa bit CFH T2CON.6 EXF2 CEH T2CON.5 RCLK CDH T2CON.4 TCLK CCH T2CON.3 EXEN2 CBH T2CON.2 T2CON.1 TR2 C/T2 CAH C9H T2CON.0 CP/RL2C C8H Lưu Phú Mô tả Cờ báo tràn Timer2(không đặt=1 TCLK=1 RCLK=1) Cờ báo đk Timer2.Đặt=1 bắt/nạp lại(capture/reload) xảy chuyển biến từ 1→0 ngõ T2EX EXEN2=1;khi ngắt Timer2 phép,EXF2=1 làm CPU chuyển đến trình phục vụ ngắt Timer2;xóa mềm Xung CK thu Timer2.Khi đặt=1 Timer2 tạo baurate thu cổng nối tiếp,Timer1 tạo baurate phát cổng nối tiếp Xung CK phát Timer2.Khi đặt=1 Timer2 tạo baurate phát cổng nối tiếp,Timer1 tạo baurate thu cổng nối tiếp Cho phép đk ngồi.Khi đặt=1 bắt/nạp lại xảy có chuyển biến từ 1→0 ngõ T2EX Đk chạy/dừng Timer2,đặt/xóa mềm Chọn đếm kiện/định Timer2: 1=đếm kiện,0=định Cờ chọn bắt/nạp lại Timer2.Khi đặt=1 bắt xảy T2EX=1→0 EXEN2=1;khi xóa=0 nạp lại xảy T2EX=1→0 EXEN2=1,hoặc tự động nạp lại Timer2 tràn;nếu RCLK=1 TCLK=1 bit không tác dụng 39 5.11 Timer MCU8052 5.11.1 Mode tự động nạp lại(auto-reload) Chọn CP/RL2C=0 →Timer2 chạy mode tự động nạp lại TH2 TL2 timer 16 bit, RCAP2H RCAP2L chứa giá trị đặt trước(nạp lại) Tự động nạp lại có kiểu tùy thuộc bit EXEN2 EXEN2=0: tự động nạp lại Timer2 tràn TH2TL2=FFFFH→0000H, đồng thời cờ báo tràn TF2=1,tương tự Hình 5.6: Timer2 mode tự động nạp lại Time0 Timer1,xóa TF2 mềm để nhận dạng lần báo tràn EXEN2=1: tự động nạp lại ngõ T2EX=P1.1=1→0,đồng thời cờ báo điều khiển ngồi EXF2=1, xóa EXF2 mềm để nhận dạng điều khiển nạp lại lần Giáo trình Vi Xử Lý Lưu Phú 40 5.11 Timer MCU8052 5.11.2 Mode bắt(capture) Chọn CP/RL2C = 1→Timer2 chạy mode bắt Timer2 timer 16 bit tràn TF2=1 Đặt EXEN2=1,khi ngõ T2EX=P1.1=1→0: bắt giá trị đếm Timer2,nạp nội dung TH2 TL2 vào RCA2H RCAP2L,cờ EXF2=1 Mode tương tự đọc timer hoạt động mơ tả mục 5.7.2 xác sử dụng tín hiệu điều khiển truy xuất ngồi thời điểm chương trình! Hình 5.7: Timer2 mode bắt Giáo trình Vi Xử Lý Lưu Phú 41 5.11 Timer MCU8052 Ví dụ 5.16: Viết chương trình đo độ rộng xung từ 100µs đến 10ms sử dụng Timer2 Giải: Trong ví dụ 5.6 tá có chương trình đo độ rộng xung sử dụng Timer0 điều khiển qua bit GATE ngõ 𝐼𝑁𝑇0 Timer2 khơng có điều khiển ngồi qua bit GATE Timer0 Timer1,nhưng ta sử dụng mode bắt để thiết kế,bằng cách cho tín hiệu xung cần đo vào ngõ T2EX=P1.1: - Nhận dạng cạnh lên xung mềm→chạy Timer2 - Cạnh xuống xung →bắt giá trị đếm Timer2 giá trị đo độ rộng xung CP_R BIT 0C8H START: MOV TL2,#0 ;xóa đếm TR2 BIT 0CAH MOV TH2,#0 EXEN2 BIT 0CBH JB T2EX,$ ;chờ cạnh lên xung JNB T2EX,$ EXF2 BIT 0CEH SETB TR2 ;chạy Timer2 T2EX BIT P1.1 SETB EXEN2 ;cho phép đk qua T2EX RCAP2L EQU 0CAH JNB EXF2,$ ;chờ bắt hay cạnh xuống xung RCAP2H EQU 0CBH CLR TR2 ;dừng Timer2 TL2 EQU 0CCH CLR EXF2 ;xóa cờ báo bắt MOV A,RCAP2L ;lưu giá trị đo TH2 EQU 0CDH MOV B,RCAP2H ORG SJMP START SETB CP_RL ;mode capture END CLR EXEN2 ;cấm đk ngồi qua T2EX Giáo trình Vi Xử Lý Lưu Phú 42 5.12 Tạo baudrate Sử dụng Timer1 và/hoặc Timer2 làm nguồn tạo baurate cho hoạt động cổng nối tiếp Phần trình bày chương cổng nối tiếp Giáo trình Vi Xử Lý Lưu Phú 43 ... khơng bị tràn q 255 (8 bit) hay 156 35( 16 bit) xung đếm! Giáo trình Vi Xử Lý Lưu Phú 14 5. 4 Các mode Timer cờ báo tràn 5. 4.4 Mode 3- Mode Timer tách biệt(Split Timer) Ví dụ 5. 5: Phân tích dịng... động mô tả mục 5. 7.2 xác sử dụng tín hiệu điều khiển truy xuất thời điểm chương trình! Hình 5. 7: Timer2 mode bắt Giáo trình Vi Xử Lý Lưu Phú 41 5. 11 Timer MCU8 052 Ví dụ 5. 16: Vi? ??t chương trình... → 000 Hình 5. 1: Sơ đồ nguyên lý định bit giản đồ xung Giáo trình Vi Xử Lý Lưu Phú 5. 1 Giới thiệu MCU8 051 có định 16 bit,MCU8 052 có định 16 bit Bộ định 16 bit đếm tối đa 216= 655 36 xung CK,giá