1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng môn vi xử lý chương 5

43 9 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 43
Dung lượng 1,07 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

CHƯƠNG 5 BỘ ĐỊNH THÌ TIMERS Giáo trình Vi Xử Lý Lưu Phú 1...  TCON88H : truy xuất bit được, điều khiển Timer chạy/dừng và chứa cờ báo tràn  4 bit cao quản lý Timer,4 bit thấp quản

Trang 1

CHƯƠNG 5

BỘ ĐỊNH THÌ (TIMERS)

Giáo trình Vi Xử Lý Lưu Phú 1

Trang 2

5.1 Giới thiệu

5.2 Thanh chi TMOD

5.3 Thanh ghi TCON

5.4 Các mode timer và cờ báo tràn

5.5 Nguồn tạo xung Timer CK

5.6 Chạy,dừng và điều khiển timer

5.7 Khởi động và truy xuất các thanh ghi timer

5.8 Định thì 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 chính xac thời gian định thì

5.11 Timer2 của MCU8052

5.12 Tạo baurate Giáo trình Vi Xử Lý Lưu Phú

2

Trang 3

Bộ định thì 3 bit gồm 3 TFF ghép

nối tiếp≡ bộ đếm/chia 23=8

 Khi có xung CK các ngõ ra lần lượt

Trang 4

 MCU8051 có 2 bộ định thì 16 bit,MCU8052 có 3 bộ định thì 16 bit

 Bộ định thì 16 bit đếm tối đa 216=65536 xung CK,giá trị đếm từ 0000H đến FFFFH

(c)tạo baudrate cho cổng nối tiếp onchip(xem chương cổng nối tiếp)

 6 SFR quản lý hoạt động 2 bộ định thì 8051 và thêm 5 SFR quản lý bộ định thì thứ 3 của 8052

Giáo trình Vi Xử Lý Lưu Phú 4

Trang 5

TMOD Đặt mode 89H Không

T2CON* Điều khiển Timer2 C8H Có

RCAP2L* Bắt byte thấp Timer2 CAH Không

RCAP2H* Bắt byte cao Timer2 CBH Không

TL2* Byte thấp Timer2 CCH Không

TH2* Byte cao Timer2 CDH Không

Trang 6

 TMOD(địa chỉ byte 89H):

không truy xuất bit được,đặt mode

làm việc cho Timer1 và Timer0

 4 bit cao quản lý Timer1,4 bit thấp

quản lý Timer0(Bảng B4.2 và B4.3)

 Thường TMOD được nạp data bằng

phần mềm ở đầu chương trình khởi

động mode làm việc cho Timer

Giáo trình Vi Xử Lý Lưu Phú 6

Bit Tên Timer Mô tả

7 GATE 1 Bit Gate.Khi Gate=1,Timer chỉ

chạy khi ngõ vào 𝐼𝑁𝑇1 = 1

6 𝐶/𝑇 1 Bit chọn Đếm/Định thì

1= đếm sự kiện 0=định thì thời đoạn

5 M1 1 Mode bit 1(xem Bảng B4.3)

4 M0 1 Mode bit 0(xem Bảng B4.3)

3 GATE 0 Bit Gate.Khi Gate=1,Timer chỉ

chạy khi ngõ vào 𝐼𝑁𝑇0 = 1

2 𝐶/𝑇 0 Bit chọn Đếm/Định thì

1= đếm sự kiện 0=định thì thời đoạn

1 M1 0 Mode bit 1(xem Bảng B4.3)

0 M0 0 Mode bit 0(xem Bảng B4.3)

Trang 7

Bảng B4.3: Các mode Timer

Ví dụ 5.1: Khởi động các Timer làm việc như sau:

a) Timer0 định thì 8 bit,Timer1 định thì 16 bit

b) Timer0 định thì 16 bit,Timer1 đếm sự kiện 16 bit

Giáo trình Vi Xử Lý Lưu Phú 7

Timer0: TL0 là Timer 8 bit điều khiển bằng các bit mode Timer0;TH0 là Timer 8 bit điều khiển bằng các bit mode Timer1

a) Viết lệnh nạp data vào TMOD như sau:

MOV MOD,#01010001B Hay MOV TMOD,#51H

Trang 8

 TCON(88H) : truy xuất bit được,

điều khiển Timer chạy/dừng và chứa

cờ báo tràn

 4 bit cao quản lý Timer,4 bit thấp

quản lý ngắt(xem chương ngắt)

TCON.7 TF1 8FH Cờ báo tràn Timer1.Đặt bằng cứng khi tràn; xóa bằng

mềm hoặc bằng cứng khi bộ xử lý chuyển đến trình phục vụ ngắt (ISR)Timer1

TCON.6 TR1 8EH Bit điều khiển chạy Timer1.Đặt/xóa bằng mềm để

chạy/dừng Timer1

TCON.5 TF0 8DH Cờ báo tràn Timer0.Đặt bằng cứng khi tràn; xóa bằng

mềm hoặc bằng cứng khi CPU chuyển đến trình phục

vụ ngắt (ISR)Timer0

TCON.4 TR0 8CH Bit điều khiển chạy Timer0.Đặt/xóa bằng mềm để

chạy/dừng Timer0

TCON.3 IE1 8BH Cờ báo ngắt ngoài 𝐼𝑁𝑇1.Đặt bằng cứng khi nhận dạng

có cạnh xuống trên ngõ 𝐼𝑁𝑇1;xóa bằng cứng hoặc bằng mềm khi CPU chuyển đến trình phục vụ ngắt ngoài 𝐼𝑁𝑇1

TCON.2 IT1 8AH Cờ báo loại ngắt ngoài 𝐼𝑁𝑇1.Đặt/xóa bằng mềm

khai báo ngắt ngoài 𝐼𝑁𝑇1 tác động cạnh xuống /mức thấp

TCON.1 IE0 89H Cờ báo ngắt ngoài 𝐼𝑁𝑇0.Đặt bằng cứng khi nhận dạng

có cạnh xuống trên ngõ 𝐼𝑁𝑇0;xóa bằng cứng hoặc bằng mềm khi CPU chuyển đến trình phục vụ ngắt ngoài 𝐼𝑁𝑇0

TCON.0 IT0 88H Cờ báo loại ngắt ngoài 𝐼𝑁𝑇0.Đặt/xóa bằng mềm

khai báo ngắt ngoài 𝐼𝑁𝑇0 tác động cạnh xuống /mức thấp

Trang 9

 Ký hiệu x thay cho ký hiệu 0/1 của Timer0/Timer1

 Tmerx có 4 mode làm việc: mode 0,mode 1,mode 2,mode 3

5.4.1 Mode 0- Mode Timer 13 bit

Hình 5.2a: Timerx mode 0

 Mode 0 là mode timer 13 bit tương hợp với họ MCU8048 version

trước,rất ít sử dụng hiện nay

 8 bit THx nối cascade với 5 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ú 9

Trang 10

5.4.2 Mode 1- Mode Timer 16 bit

Hình 5.2b: Timer mode 1

=216=65536

→Timer tràn→phần cứng sẽ đặt cờ báo tràn TFx=1,timer vẫn tiếp tục đếm

Giáo trình Vi Xử Lý Lưu Phú 10

Trang 11

5.4.2 Mode 1- Mode Timer 16 bit

Ví dụ 5.3: Phân tích các dòng lệnh sau đây:

MOV TMOD,#01H MOV TH0,#0FCH MOV TL0,#18H SETB TR0

JNB TF0,$

CLR TR0

Giải:

 Dòng 1 khởi động Timer0 mode 1 chức năng Timer 16 bit

 Dòng 2 và 3 đặt giá trị đếm cho timer =FC18H,timer đếm từ giá trị này cho đến

FFFFH.Suy ra số xung đếm được cho đến khi timer tràn=0000-FC18=03E8H#1000 xung

 Dòng 4 cho Timer0 chạy

 Dòng 5 chờ cờ TF0=1 Timer0 báo tràn

 Dòng 6 Ngừng chạy Timer0

Giáo trình Vi Xử Lý Lưu Phú 11

Trang 12

5.4.3 Mode 2- Mode Timer 8 bit tự động nạp lại(auto-reload)

Hình 5.2c: Timer mode 2

 Mode 2 là mode timer 8 bit tự động nạp lại giá trị đặt trước

 TLx là bộ timer 8 bit,THx chứa giá trị đặt trước

 Khi timer tràn TLx=FFH→00H,cờ báo tràn TFx=1,đồng thời phần cứng nạp giá trị đặt trước từ THx sang TLx,TLx sẽ đếm từ giá trị này lên FFH và cứ thế tiếp tục…

 Mode 2 tiện lợi hơn mode 1 ở chỗ Timer tự động nạp giá trị đặt trước khi tràn mà vẫn tiếp tục đếm nên đáp ứng thời gian chính xác hơn!

Giáo trình Vi Xử Lý Lưu Phú 12

Trang 13

5.4.3 Mode 2- Mode Timer 8 bit tự động nạp lại(auto-reload)

Ví dụ 5.4: Phân tích các dòng lệnh sau:

MOV TMOD,#20H MOV TH1,#9CH MOV TL1,TH1 SETB TR1

JNB TR1,$

CPL P1.0

Giải:

 Dòng 1 khởi động Timer1 mode 1 chức năng Timer 8 bit tự động nạp lại

 Dòng 2 nạp giá trị đặt trước=9CH cho TH1

 Dòng 3 nạp giá trị đặt trước vào TL0 để Timer đếm từ giá trị đặt trước ngay vòng đầu tiên!

 Cho chạy Timer1

 Trong ví dụ 5.4 Timer mode 2,sau khi tràn Timer tự động nạp giá trị đặt trước chứa trong THx vào

TLx,trong lúc Timer vẫn đếm nên không mất thời gian ngừng Timer để nạp lại giá trị đặt trước,do đó thời gian định thì của Timer sẽ chính xác hơn!

Trang 14

5.4.4 Mode 3- Mode Timer tách biệt(Split Timer)

 Mode 3 là mode Timer tách biệt xem như có

3 bộ Timer làm việc cùng một lúc

 Timer0 trong mode 3 được tách thành 2 bộ

timer 8 bit độc lập TL0 và TH0 với lưu ý:

- Bộ timer 8 bit TL0 có cờ báo tràn là TF0,xung

Timer CK chọn từ bit 𝐶/𝑇 cho Timer0 trong TMOD,

chạy/dừng điều khiển bằng bit TR0,điều khiển ngoài

bằng bit GATE Timer0

- Bộ timer 8 bit TH0 có cờ báo tràn là TF1,xung

Timer CK cố định từ FOSC/12(FOSC=tần số dao động

CK của MCU),chạy/dừng điều khiển bằng bit TR1

 Timer1 dừng khi khai báo mode 3,hoặc chạy khi

khai báo một trong 3 mode 0,1,2;không có cờ báo tràn(vì TF1 đã sử dụng cho bộ timer TH0),vẫn

sử dụng bit GATE và 𝐶/𝑇 cho Timer1

 Có thể sử dụng Timer1 ở mode 3 như là bộ timer thứ 3 không cần tín hiệu báo tràn như tạo

baudrate cho cổng nối tiếp,bộ đếm/định thì không bị tràn quá 255(8 bit) hay 15635(16 bit) xung đếm!

Giáo trình Vi Xử Lý Lưu Phú 14

Hình 5.2d: Timer mode 3

Trang 15

5.4.4 Mode 3- Mode Timer tách biệt(Split Timer)

 Dòng 2 nạp TH1 giá trị đặt trước(chuẩn bị cho Timer1 chạy mode 2)

 Dòng 3 nạp giá trị đặt trước vào TL1 để đếm

Trang 16

 Nguồn tạo xung Timer CK được khai

báo qua bit 𝐶/𝑇 trong thanh ghi TMOD

 Xung Timer CK lấy từ nguồn tạo xung bên ngoài

 Chân T0=P3.4 là ngõ vào xung đếm cho Timer0

 Chân T1=P3.5 là ngõ vào xung đếm cho Timer1

 Giá trị tối đa bộ đếm =65536(khai báo Timer mode 1 16 bit)

 Timer tăng 1 giá trị khi phát hiện có cạnh xuống ở ngõ vào tương ứng

 Thời gian đếm 1 xung mất tổng cộng 2MC→tần số xung đếm ngoài max=500Khz(Fosc=12Mhz)

Giáo trình Vi Xử Lý Lưu Phú 16

Hình 5.3: Sơ đồ minh họa nguồn tạo xung Timer CK

Trang 17

 Cách đơn giản nhất điều khiển

chạy/dừng timer là đặt/xóa bit TRx

bằng mềm:

 Điều khiển bằng bit GATE(bit 7 và bit 3 trong thanh ghi TMOD)

Đặt GATE=1→Timerx chỉ chạy khi TRx=1 và 𝐼𝑁𝑇𝑥 = 1

Trang 18

Giáo trình Vi Xử Lý Lưu Phú 18

Hình 5.5: Mô hình điều khiển tổng quát cho Timer1 mode 1

Trang 19

 Tóm tắt mô hình điều khiển chạy/dừng và nguồn xung timer CK cho Timer1 như hình 5.5(tương tự cho Timer0 với các bit điều khiển tương ứng)

𝐶/𝑇 = 0: định thì,timer CK=Fosc/12(Fosc=12Mhz,TtimerCK=1µs) 𝐶/𝑇 = 1: đếm sự kiện,timer CK= xung ngõ vào T1=P3.5(fmax=500Khz,

GATE=0: TR1=1: chạy; TR1=0 : dừng(đặt/xóa TR1 bằng mềm) GATE=1: TR1=1,𝐼𝑁𝑇1 = 𝑃3.3 = 1: chạy; TR1=0 hoặc 𝐼𝑁𝑇1 = 0 :

(Timer0 TR0 và 𝐼𝑁𝑇0 = 𝑃3.2)

Giáo trình Vi Xử Lý Lưu Phú 19

Trang 20

Ví dụ 5.6: Thiết kế mạch đo độ rộng xung,cho độ rộng xung max=10ms

Giải:

Ta sử dụng Timer0 làm bộ timer đo độ rộng xung.(Hình vd5.6)

Cho Fosc=12Mhz→1 xung Timer CK=1µs→Độ rộng xung đo max

=10ms=10000µs

Cho xung cần đo vào ngõ 𝐼𝑁𝑇0 = 𝑃3.2 làm tín hiệu điều khiển

chạy /dừng Timer0 bên ngoài

Khai báo Timer0 có điều khiển ngoài GATE=1 và mode 1 16 bit

để đếm >10000 xung

Đoạn chương trình như sau:

… MOV TMOD,#09H ;Time0 mode 1 điều khiển ngoài qua P3.2 SETB TR0 ; Timer0 sẵn sàng chạy(chờ P3.2=1)

JNB P3.2,$ ;chờ mức 1 chạy Timer0

JB P3.2,$ ;chờ mức 0 dừng Timer0 MOV B,TH0 ;cất byte cao giá trị đo MOV A,TL0 ;cất byte thấp giá trị đo MOV TH0,#0 ;xóa byte cao bộ đếm MOV TL0,#0 ;xóa byte thấp bộ đếm

Giáo trình Vi Xử Lý Lưu Phú 20

Hình vd5.6

Trang 21

5.7.1 Khởi động các thanh ghi Timer

 Khởi động Timer: nạp giá trị data thích hợp vào thanh ghi TMOD để khai báo:

 Điều khiển chạy /dừng : ngoài (ngõ 𝐼𝑁𝑇𝑥 )GATE=1 hay trong GATE=0

 Chức năng : đếmsự kiện(Timer CK ngoài ngõ Tx) 𝐶/𝑇 = 1

định thì(Timer CK trong=Fosc/12): 𝐶/𝑇 = 0

 Mode 0,1,2,3 tùy theo yêu cầu sử dụng M1M0=00→11

Ví dụ 5.7: Khởi động các Timer làm việc theo các yêu cầu sau,cho Fosc=12Mhz

1 Đếm sản phẩm: cảm biến đếm sản phẩm phát xung đếm đưa vào ngõ P3.4,số lượng sản phẩm max=200

2 Đo độ rộng xung từ 10µs đến 50ms,tín hiệu đo đưa vào ngõ P3.3

Giải:

 Theo yêu cầu 1,xung đếm đưa vào ngõ P3.4=T0→khai báo Timer0 điều khiển trong(GATE=0), đếm sự kiện(𝐶/𝑇 = 1), mode 2(M1M0=10) do số lần đếm max=FFH#256>200

 Theo yêu cầu 2,xung đo đưa vào ngõ P3.3=𝐼𝑁𝑇1→khai báo Timer1 điều khiển ngoài

(GATE=1),định thì(𝐶/𝑇 = 0),mode 1(M1M0=01) do số xung đếm

max=65535>50000#50000µs

 Lệnh khai báo: MOV TMOD,#10010110B

Hay MOV TMOD,#96H

Giáo trình Vi Xử Lý Lưu Phú 21

Trang 22

5.7.2 Truy xuất các thanh ghi Timer

và TLx

- Mode 2 Timer 8 bit tự động nạp lại ,nạp byte giá trị đặt trước vào THx

Khi các thanh ghi timer từ FFH→00H(8 bit) hoặc FFFFH→0000H,cờ báo tràn TFx=1(phần cứng đặt)

 Giả sử muốn timer đếm N=1000 xung sẽ tràn,cách tính giá trị đặt trước như sau:

Chuyển N sang số HEX: 1000=03E8H

Giá trị đặt trước=0000H-03E8H=FC18H

Hay nói cách khác timer phải đếm lên từ giá trị -1000 đến 0

→Giá trị đặt trước bằng bù-2 số nhị phân N

Giáo trình Vi Xử Lý Lưu Phú 22

Trang 23

5.7.2 Truy xuất các thanh ghi Timer

Phân tích đoạn chương trình sau:

-Dòng thứ 4 chờ Timer0 tràn bằng cách kiểm tra cờ TF0=1 là báo tràn

-Dòng 5 dừng Timer0 lại để nạp lại giá trị đặt trước nếu cần,vì khi đó (TH0TL0)=0000H và Timer0 sẽ đếm từ giá trị này(trường hợp 8 bit không cần dừng vì Timer tự động nạp lại!)

-Dòng 6 phải xóa cờ TF0 bằng mềm để nhận dạng lần báo tràn kế tiếp,vì phần cứng chỉ đặt cờ TF0 chứ không xóa

Giáo trình Vi Xử Lý Lưu Phú 23

Trang 24

5.7.2 Truy xuất các thanh ghi Timer

 Thay vì tính số bù-2 cho giá trị đặt trước để đếm tràn,assembler cho phép khai báo giá

trị thập phân âm biểu diễn 2 byte bằng toán tử HIGH(byte cao) và LOW(byte thấp),

ví dụ như sau:

Khi biên dịch assembler sẽ gán (TH0)=FCH và (TL0)=18H

Trường hợp cần đọc timer đang hoạt động,cần lưu ý có khả năng sẽ bị sai khi nội

dung TLx tràn làm tăng THx một xung đếm,do tần số Timer CK bằng 1MC và lệnh đọc tối thiểu 1MC

Thực hiện các lệnh đọc timer như sau để đảm bảo chính xác:

Giáo trình Vi Xử Lý Lưu Phú 24

Trang 25

 Một xung Timer CK=1MC=1µs(Fosc=12Mhz)

 Thời gian thực hiện 1 lệnh min=1MC

 Định thì ngắn vài µs→tính chu kỳ máy các lệnh

 Định thì trung bình từ 10µs đến vài chục ms→Timer

 Định thì dài hơn 65.5ms→kết hợp Timer và vòng lặp bằng mềm

 Ưu điểm định thì dùng timer là phần cứng làm việc định thì,CPU không phải thực hiện lệnh nên có thể làm việc khác(sẽ thấy rõ trong chương ngắt)

Bảng B5.5: Tóm tắt phương pháp định thì

Giáo trình Vi Xử Lý Lưu Phú 25

Thời đoạn max(µs) Phương pháp ≈10 Các lệnh tính MC

65536 Timer mode 1 16 bit

Không giới hạn Timer mode 1 và vòng lặp

Trang 26

Trong các ví dụ ứng dụng sau ,cho Fosc=12Mhz,SV có thể mô phỏng trên Proteus

Ví dụ 5.8: Viết một chương trình tạo xung xuất ra P1.0 với tần số càng cao càng tốt.

Trang 27

Ví dụ 5.9: Viết một chương trình tạo chuỗi xung vuông đối xứng f=10Khz trên P1.0 Giải:

Hình vd5.9: Dạng sóng trên P1.0 f=10Khz

Xung vuông đối xứng f=10Khz,thời gian mức 1=thời gian mức 0=50µs

Sử dụng Timer0 mode 2 giá trị đặt trước là -50→timer báo tràn sau 50 xung đếm=50µs

ORG 8100 MOV TMOD,#02H ; Timer0 mode 2 tự động nạp lại MOV TH0,#-50 ;giá trị đặt trước

MOV TL0,TH0 ;đếm đúng từ vòng đầu SETB TR0 ;chạy Timer0

LOOP: JNB TF0,LOOP ;chờ báo tràn

CLR TF0 ;xóa cờ báo tràn CPL P1.0 ;đảo bit sau 50µs SJMP LOOP ;lập vòng lại

END

Giáo trình Vi Xử Lý Lưu Phú 27

Trang 28

 Sử dụng Timer0 mode 2 tự động nạp lại nên không cần dừng timer để nạp lại giá trị đặt trước

Nhưng ở chương ngắt ta sẽ thấy không cần phải chờ như vậy,CPU có thể làm

công việc khác!

xung ra rất chính xác!

Giáo trình Vi Xử Lý Lưu Phú 28

Trang 29

Ví dụ 5.10: Viết một chương trình tạo chuỗi xung vuông đối xứng f=1Khz trên 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 1 giá trị đặt trước là -500→timer báo tràn sau 500

xung đếm=500µs

Trang 30

 Dòng 3 và 4 nạp giá trị đặt trước cho các thanh ghi Timer0 bằng toán tử

HIGH,LOW khỏi phải tính giá trị bù-2 của (-500)

trị đặt trước

trước và chạy timer lại

số(sẽ bàn ở phần sau)

Giáo trình Vi Xử Lý Lưu Phú 30

Trang 31

Ví dụ 5.12: Viết một chương trình tạo chuỗi xung vuông đối xứng trên P1.0 f1=10Khz và trên P2.0 f2=1Khz Giải:

Chọn Timer0 chạy mode 2 giá trị nạp lại=-50,Timer1 mode 1 giá trị nạp lại=-500

MOV TMOD,#12H ; Timer0 mode 2,Timer 1 mode 1MOV TH0,#-50 ;giá trị nạp lại Timer0

MOV TL0,TH0 ;nạp ban đầu cho TL0

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

CLR TF0 ;Timer0 tràn,xóa cờ báo tràn

Trang 32

Ví dụ 5.13: Hình vd5.13 gồm một mạch còi nối với P1.7 và mạch nút nhấn có chống rung nối với P1.6.

Viết một chương trình đọc trạng thái nút nhấn và kích còi kêu trong 1s khi phát hiện có chuyển trạng thái

từ 1 xuống 0 trên P1.6.Đặt P1.7 =1 kích còi kêu

Trang 33

; -

;DELAY tạo thời gian trễ 1s bằng cách cho Timer0

;đếm COUNT xung và lặp vòng HUNDRED lần

; -

RET END

Giáo trình Vi Xử Lý Lưu Phú 33

Trang 34

nhị phân nhập từ P2(data in)

 Liên tục xuất giá trị mạch đếm từ 0 đến giá trị sau 60s

với mode đếm tự do,hoặc từ 0 đến giá trị đặt trước với

mode đếm có đặt trước ra P1(data out)

 Kết thúc mode đếm xuất mức 1 ra ngõ Alarm và quay về 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 sự kiện(Timer CK ngoài)

 Mode đếm tự do 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 2

 Tạo thời gian delay 60s trong mode đếm tự do→kết hợp Timer1 mode 1 và các 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

Hình vd5.14

Ngày đăng: 02/11/2022, 09:56