1. Trang chủ
  2. » Luận Văn - Báo Cáo

ĐỒ ÁN VI ĐIỀU KHIỂN: MẠCH BÁO GIỜ DÙNG TRONG MÔN CHƠI TỐC ĐỘ

112 1,5K 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Mạch Báo Giờ Dùng Trong Môn Chơi Cờ Tốc Độ
Tác giả Nguyễn Bá Nghĩa, Đỗ Xuân Linh
Người hướng dẫn Nguyễn Văn Cường
Trường học Trường Đại học Công nghiệp Thành phố Hồ Chí Minh
Chuyên ngành Điện tử
Thể loại Đồ án Vi Điều Khiển
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 112
Dung lượng 3,44 MB

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

Nội dung

TrangLời mở đầu2Lời cảm ơn4Nhận xét của giáo viên hướng dẫn6Nhận xét của giáo viên phản biện8Chương I: CƠ SỞ LÝ THUYẾT101. Họ Vi điều khiển 8051 và IC 89V51RB2/RC2/RD2101.1 Giới thiệu khái quát họ vi điều khiển MSC – 51101.2. Vi điều khiển 89V51RB2/RC2/RD2 101.3. Ngôn ngữ lập trình hợp ngữ 8051422.Điện trở482.1.Khái nệm482.2.Cách đọc điện trở483. Tụ điện493.1.Khái niệm493.2.Phân loại494.Điot534.1.Khái niệm534.1 .Thể loại đai ốt545.Tranzitor556.Led 7 đoạn577.IC.7805:IC ổn áp 5v58

Trang 1

Mục lục

 Trang

 Lời mở đầu 2

 Lời cảm ơn 4

 Nhận xét của giáo viên hướng dẫn 6

 Nhận xét của giáo viên phản biện 8

 Chương I: CƠ SỞ LÝ THUYẾT 10

Trang 2

Chương II:Thiết kế hệ thống mạch 60

2 Lưu đồ giải thuật và chương trình cho vi điều khiển 61

2.2 Chương trình cho vi điều khiển 65

4 Khắc phục và hướng phát triển của đề tài 70

Trang 3

Lời mở đầu

 Hiện nay, máy vi tính đã và đang được sử dụng rộng rãi và phổ biến trong

xã hội cũng như trong công nghiệp Với lợi thế là tốc độ xử lý nhanh, có thể

xử lý hàng tỷ phép tính trong một giây, nó đã và đang mang đến những thay đổi to lớn trong khoa học và công nghệ cũng như trong đời sống hàng ngày

Từ việc giúp soạn thảo văn bản, tính toán các bảng biểu, chơi game… đến việc dùng để điều khiển các dây chuyển công nghiệp hiện đại Ngày nay, các thiết bị máy móc ngày càng trở nên thông minh, tự động hóa cao, các công việc được thực hiện với hiệu quả cao… thì máy tính trở thành bộ phận không thể thiếu

 Đối với sinh viên chuyên ngành điện tử, đây là một lĩnh vực mới, hứa hẹn

và mở ra nhiều triển vọng Để góp phần tạo nền tảng ban đầu cho việc học tập, tìm hiểu về ứng dụng máy tính trong điều khiển, chúng tôi xin đề nghị

thực hiện đề tài: “Mạch báo giờ dùng trong môn chơi cờ tốc độ”.

 Trong quá trình thực hiện đề tài này, mặc dù chúng tôi đã rất cố gắng, xong chắc chắn không tránh khỏi những thiếu sót Rất mong nhận sự góp ý, phê bình và chỉ dẫn của quí thầy cô và bạn đọc

 Sinh viên thực hiện

 Nguyễn Bá Nghĩa

Trang 4

 Em xin chân thành cám ơn:

 – Trường Đại học Công nghiệp Thành phố Hồ Chí Minh, đặc biệt là Khoa điện tử đã tạo điều kiện thuận lợi cho chúng tôi thực hiện và hoàn thành đồ

Trang 5

Nhận xét của giáo viên hướng dẫn

 Sinh viên thực hiện : Nguyễn Bá Nghĩa

Trang 6

Nhận xét của giáo viên phản biện

 Sinh viên thực hiện : Nguyễn Bá Nghĩa

Trang 7

Chương I

CƠ SỞ LÝ THUYẾT

1 Họ Vi điều khiển 8051 và IC 89V51RB2/RC2/RD2

1.1 Giới thiệu khái quát họ vi điều khiển MSC – 51

 MCS – 51 là một họ vi điều khiển do Intel phát triển và sản xuất Một số nhà sản xuất được phép cung cấp các IC tương thích với các sản phẩm MCS –

51 của Intel là Siemens, Advanced Micro Devices, Fujitsu, Philips, Atmel…

Vi mạch tổng quát của họ MSC – 51 là chip 8051

 Chip 8051 có một số đặt trưng cơ bản sau:

 – Bộ nhớ chương trình bên trong: 4KB (ROM)

 – Bộ nhớ dữ liệu bên trong: 128 byte (RAM)

 –Bộ nhớ chương trình bên ngoài: 64KB (ROM)

 – Bộ nhớ dữ liệu bên ngoài: 64KB (RAM)

 – 4 port xuất nhập (I/O port) 8 bit

 – 2 bộ định thời 16 bit

 – Mạch giao tiếp nối tiếp

 – Bộ xử lý bit (thao tác trên các bit riêng lẻ)

 – 210 vị trí nhớ được định địa chỉ, mỗi vị trí 1 bit

 – Nhân / chia trong 4s

 Ngoài ra, tùy theo số hiệu sản xuất mà chúng có những khác biệt về bộ nhớ

và bộ định thời/bộ đếm như trong bảng so sánh dưới đây:

Trang 9

1.2 Vi điều khiển 89V51RB2/RC2/RD2

1.2.1 Khái quát chung

 89V51RB2/RC2/RD2 là vi điều khiển 80C51 có 64kB Flash và 1024bytes

(1kB) bộ nhớ dữ liệu RAM

 Tính năng đặc biệt của 89V51RB2/RC2/RD2 là ở chế độ hoạt động mode X2 Người thiết kế có thể qui ước chạy ứng dụng của mình ở chế độ 12 chu kỳ xung nhịp trên 1 chu kỳ máy hoặc chọn chế độ X2 với 6 chu kỳ xung nhịp trên

 – Hoạt động ở 5VDC trong tầm tần số dao động đến 40MHz

 – 16/32/64 kB bộ nhớ chương trình trên chip với tính năng ISP (In-System Programming) và IAP (In-Application Programming)

 – Sử dụng chế độ 12 chu kì xung nhịp (mặc định) hoặc 6 chu kỳ xung nhịp được chọn bằng phần mềm hoặc ISP

Trang 10

 – SPI (Serial Peripheral Interface) và tăng cường UART

 – 5 PCA (Programmable Counter Array) với chức năng PWM / capture/ compare 16bits.

 – 4 Port I/O (xuất nhập) 8 bit 3 Port có dòng lớn (16mA trên mỗi chân)

 – 3 Timers/Couters 16 bit

 – Watchdog Timer có thể lập trình được

 – 8 nguồn ngắt với 4 mức độ ưu tiên.

 – 2 thanh ghi DPTR

 – Chế độ IEM mức thấp

 – Thích hợp mức Logic của TTL và CMOS

 – Phát hiện nguồn yếu

 – Chế độ nguồn yếu

Trang 11

– Chế độ nguồn yếu

Hình1.1 – Sơ đồ khối của CPU 80C51

Trang 12

Hình 1.2 – Sơ đồ khối của 89V51RB2/RC2/RD2

Trang 13

Hình 1.3 – Sơ đồ chân của 89V51RB2/RC2/RD2 như sau:

Trang 14

1.2.2 Chức năng của các chân

– Port 0: (P0.0 đến P0.7) có số chân từ 39 đến 32, Port xuất / nhập.

 Port 0 là một port xuất/nhập song hướng cực máng hở 8 bit Nếu được sử dụng như là một ngõ xuất thì mỗi chân có thể kéo 8 ngõ vào TTL Khi mức

1 được viết vào các chân của port 0, các chân này có thể được dùng như là các ngõ nhập tổng trở cao

 Port 0 có thể được định cấu hình để hợp kênh giữa bus địa chỉ và bus dữ liệu (phần byte thấp) khi truy cập đến bộ nhớ dữ liệu và bộ nhớ chương

trình ngoài Ở chế độ này, P0 có các điện trở pullup bên trong

 Port 0 cũng nhận các byte code (byte mã chương trình) khi lập trình Flash,

và xuất ra các byte code khi kiểm tra chương trình Cần có các điện trở

pullup bên ngoài khi thực hiện việc kiểm tra chương trình

– Port 1: (P1.0 đến P1.7) có số chân từ 1 đến 8, Port xuất / nhập.

 Port 1 là một port xuất/nhập song hướng 8 bit có các điện trở pullup bên trong Các bộ đệm ngõ ra của port 1 có thể kéo hoặc cung cấp 4 ngõ nhập TTL Khi mức 1 được viết vào các chân của port 1, chúng được kéo lên cao bởi các điện trở pullup nội và có thể được dùng như là các ngõ nhập Nếu đóng vai trò là các ngõ nhập, các chân của port 1 (được kéo xuống thấp qua các điện trở bên ngoài) sẽ cấp dòng IIL do các điện trở pullup bên

trong P1.5, P1.6, P1.7 có dòng điều khiển ra cao 16mA

 Port 1 cũng đóng vai trò là ngõ vào của địa chỉ byte thấp ở chế độ lập trình cho ROM và kiểm tra

Trang 15

– P1.0 – T2 (Chân xuất / nhập): Ngõ vào đếm của Timer/ Counter 2 hoặc ngõ ra xung

(Clock out) từ Timer/ Counter 2.

– P1.1 – T2EX (Chân nhập): Điều khiển hướng và khởi động timer/ Counter 2 ở chế

độ Capture/reload.

– P1.2 – ECI (Chân nhập): Ngõ vào xung nhịp Tín hiệu này là nguồn xung nhịp ngoài

cho chức năng PCA.

– P1.3 – CEX0 (Chân xuất / nhập): Ngõ xuất nhập (I/O) bên ngoài của

Capture/compare cho PCA Module 0.

– P1.4 (Chân xuất / nhập):

 + : Chọn cổng phụ vào cho SPI.

+ CEX1: Ngõ xuất nhập (I/O) bên ngoài của Capture/compare cho PCA Module 1.

– P1.5 (Chân xuất / nhập):

+ MOSI: Ngõ ra chính, ngõ vào phụ cho SPI.

+ CEX2: Ngõ xuất nhập (I/O) bên ngoài của Capture/compare cho PCA Module 2.

– P1.6 (Chân xuất / nhập):

+ MISO: Ngõ vào chính, ngõ ra phụ cho SPI.

+ CEX3: Ngõ xuất nhập (I/O) bên ngoài của Capture/compare cho PCA Module 3.

– P1.7 (Chân xuất / nhập):

+ SCK: Ngõ ra chính, ngõ vào phụ cho SPI.

+ CEX4: Ngõ xuất nhập (I/O) bên ngoài của Capture/compare cho PCA Module 4.

– Port 2 (P2.0 đến P2.7) có số chân từ 21 đến 28, Port xuất / nhập.

Port 2 la một port xuất/nhập song hướng 8 bit có các điện trở pullup bên trong Các

bộ đệm ngõ ra của port 2 có thể kéo hoặc cung cấp 4 ngõ vào TTL Khi các mức 1 được viết vào các chân của port 2 thì chúng được kéo lên cao bởi các điện trở pullup nội và có thể được dùng

Trang 16

 như các ngõ vào Khi được dùng như các ngõ vào, các chân của port 2 (được kéo xuống qua các điện trở bên ngoài) sẽ cấp dòng IIL do có các điện trở pullup bên trong.

 Port 2 là địa chỉ byte cao của khi đọc từ bộ nhớ chương trình ngoài và khi truy cập bộ nhớ dữ liệu ngoài dùng các địa chỉ 16 bit (MOVX @DPTR) Ở chế độ này, nó dùng các điện trở pullup nội "mạnh" khi phát ra các mức 1

 Port 2 cũng nhận các bit cao của địa chỉ và một vài tín hiệu điều khiển khi lập trình và kiểm tra bộ nhớ ROM

– Port 3 (P3.0 đến P3.7) có số chân từ 10 đến 17, Port xuất / nhập

 Port 3 là một port xuất-nhập song hướng 8 bit có điện trở pullup nội bên trong Các bộ đệm ngõ ra của port 3 có thể kéo hoặc cung cấp 4 ngõ vào TTL Khi các mức 1 được viết vào các chân của port 3 thì chúng được kéo lên cao bởi các điện trở pullup nội và có thể được dùng như các ngõ vào Khi được dùng như các ngõ vào, các chân của port 3 (được kéo xuống qua các điện trở bên ngoài) sẽ cấp dòng IIL do có các điện trở pullup bên trong

 Port 3 cũng nhận một số tín hiệu điều khiển và một phần bit địa chỉ cao

trong quá trình lập trình và kiểm tra

– P3.0 – RXD (Chân nhập): Ngõ vào của Port nối tiếp.

– P3.1 – TXD (Chân xuất): Ngõ ra của Port nối tiếp.

– P3.2 – (Chân nhập): Ngõ vào ngắt ngoài 0.

Trang 17

– P3.3 – (Chân nhập): Ngõ vào ngắt ngoài 1.

– P3.4 – T0 (Chân nhập): Ngõ vào đếm của Timer/Counter 0.

– P3.5 – T1 (Chân nhập): Ngõ vào đếm của Timer/Counter 1.

– P3.6 – (Chân xuất): Điều khiển ghi vào bộ nhớ dữ liệu ngoài.

– P3.7 – (Chân xuất): Điều khiển đọc từ bộ nhớ dữ liệu ngoài.

– (Program Store Enable): Chân 29, chân xuất / nhập.

 Khi sử dụng bộ nhớ chương trình trong chip, không hoạt động

(mức cao) Khi sử dụng bộ nhớ chương trình ngoài, được tích cực

2 lần trong mỗi chu kì máy, ngoại trừ sự khích hoạt được bỏ qua trong khi kết nối bộ nhớ chương trình ngoài Sự thay đổi cưỡng

bức mức cao sang thấp trên trong khi ngõ vào RST đang ở mức cao trong hơn 10 chu kì máy sẽ đưa vi điều khiển vào chế độ lập trình host từ bên ngoài.

– RST (Reset): Chân 9, chân nhập.

 Trong khi bộ dao động đang chạy, vi điều khiển sẽ được Reset khi đặt mức cao vào chân này trong 2 chu kỳ máy Nếu chân được

điều khiển bằng cách chuyển tiếp mức cao sang thấp trong khi chân RST giữ ở mức cao thì Vi điều khiển sẽ vào chế độ host từ bên

ngoài, còn không thì Vi điều khiển sẽ vào chế độ hoạt động bình

thường.

– (External Access Enable): Chân 31, chân nhập

Trang 18

 Chân phải được kết nối với điện áp VSS khi cho phép vi điều khiển truy cập mã từ bộ nhớ chương trình bên ngoài phải được đưa lên điện áp VDD khi thực thi chương trình bên trong Tuy nhiên, khóa bảo vệ level 4 sẽ vô hiệu hóa , chương trình thực thi chỉ chương thực hiện từ bộ nhớ chương trình bên trong Chân có thể chịu đựng điện áp đến 12V.

– (Address Latch Enable): Chân 30, chân xuất / nhập.

 ALE là tín hiệu ngõ ra để chốt byte thấp của địa chỉ trong khi truy cập bộ nhớ ngoài Chân này cũng là ngõ nhập xung lập trình () khi lập trình Flash.

 Khi hoạt động bình thường, ALE được phát với một tỷ lệ không đổi là 1/6 tần số bộ dao động và có thể được dùng cho các mụch đích timing và clocking bên ngoài Một xung ALE

sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ liệu ngoài Tuy nhiên, nếu AO được đưa lên mức

1 sẽ vô hiệu hóa chân

– XTAL1 và XTAL2: chân 18 và 19

 XTAL1 và XTAL2 là hai ngõ vào và ra của một bộ khuếch đại dao động nghịch được cấu hình để dùng như một bộ dao động trên chip.

– VDD và VSS: Chân nguồn và chân Gound của Vi điều khiển.

1.2.3 Tổ chức bộ nhớ

 89V51RB2/RC2/RD2 có bộ nhớ theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt cho chương trình và dữ liệu Như đã nói ở trên, cả chương trình và dữ liệu có thể ở bên trong, dù vậy chúng có thể được mở rộng bằng các thành phần ngoài lên đến tối đa 64 Kbytes bộ nhớ chương trình và 64 Kbytes bộ nhớ dữ liệu.

1.2.3.1 Bộ nhớ chương trình

 89V51RB2/RC2/RD2 gồm có 2 khối bộ nhớ chương trình bên trong Block 0 có 16/32/64

kB và được phân chia thành 128/256/512 sectors, mỗi sector gồm có 128 Bytes Block 1 bao gồm chương trình IAP/ISP và có thể cho phép nó trở thành 8kB đầu tiên trong bộ nhớ user code Block 0 này được kích hoạt bằng cách kết hợp Software Reset Bit (SWR) tại FCF.1 và Bank Select Bit (BSEL) tại FCF.0 (địa chỉ RAM B1H).

Trang 20

 Quá trình tuần tự sau khi nguồn được bật, chương trình boot sẽ tự động thực thi và cố gắng lấy tín hiệu autobaud từ máy chủ Nếu không có quá trình này xảy ra trong vòng 400ms và bit cờ SoftICE không được bật, chương trình boot sẽ tự động vào đoạn chương trình user code.

1.2.3.2 Bộ nhớ dữ liệu

 P89V51RB2/RC2/RD2 có 1 kB bộ nhớ RAM được chia thành 3 phần:

 –128 Byte thấp (00H to 7FH) là địa chỉ truy xuất trực tiếp và gián tiếp Được chia làm 3 vùng: RAM đa chức năng, RAM định địa chỉ từng bit

và các dãy thanh ghi.

+ Vùng RAM đa chức năng: gồm có 80 Byte RAM Địa chỉ truy xuất từ

30H đến 7FH Mọi địa chỉ trên vùng RAM đa chức năng đều có thể truy xuất theo kiểu trực tiếp hoặc gián tiếp.

+ Vùng RAM định địa chỉ bit: gồm 128 bit được định địa chỉ Địa chỉ truy

xuất từ 20H đến 2FH Kiểu truy xuất dữ liệu là trực tiếp, hoặc gián tiếp hoặc theo từng bit Vùng RAM này cho phép xử lý từng bit dữ liệu riêng

lẻ mà không ảnh hưởng đến các bit khác trong Byte.

+ Các dãy thanh ghi: gồm 4 dãy thanh ghi, mỗi thanh ghi chứa 8 thanh

ghi Địa chỉ truy xuất từ 00H đến 1FH Kiểu truy xuất dữ liệu là trực tiếp, gián tiếp và thanh ghi Vùng này cho phép truy xuất dữ liệu nhanh, lệnh truy xuất đơn giản và ngắn gọn Ở chế độ mặc định thì dãy thanh ghi tích cực là dãy thanh ghi 0 Có thể thay đổi dãy tích cực bằng cách thay đổi các bit chọn dãy thanh ghi RS1 và RS0 trong thanh ghi PSW Nếu chương trình chỉ sử dụng dãy thanh ghi 0 thì ta có thể sử dụng vùng

nhớ từ 08H đến 1FH cho các mục đích khác Nhưng nếu trong chương trình có sử dụng các dãy thanh ghi khác thì phải cẩn thận khi sử dụng vùng nhớ này làm vùng nhớ dữ liệu.

Trang 21

này làm vùng nhớ dữ liệu.

Trang 23

– Thanh ghi chức năng đặc biệt (special function registers) là địa chỉ chỉ truy cập trực tiếp,

có địa chỉ từ 80H đến FFH (địa chỉ các thanh ghi được trình bày trong phụ lục)

– 768 Byte RAM mở rộng (000H to 2FFH) là địa chỉ truy cập gián tiếp bằng cách dùng lệnh MOVX và xóa bằng bit EXTRAM Vùng RAM này sử dụng giống như 1 vùng RAM ngoài Chúng ta có thể kết hợp với RAM ngoài theo 2 trường hợp bằng cách sử dụng bit EXTRAM trong thanh ghi AUXR

1.2.4 Một số thanh ghi cơ bản

1.2.4.1 Thanh ghi A

Chứa dữ liệu của các phép toán mà vi điều khiển xử lý

1.2.4.2 Thanh ghi B

Sử dụng kết hợp với thanh ghi A trong phép nhân và chia hai số 8 bit

– Phép nhân 2 số 8 bit không dấu, kết quả là số 16 bit 8 bit cao chứa trong thanh

ghi B, 8 bit thấp chứa trong thanh ghi A

– Phép chia 2 số 8 bit không dấu, kết quả là thương số và số dư Thương số chứa

trong thanh ghi A, số dư chứa trong thanh ghi B

Trang 24

1.2.4.3 Thanh ghi AUXR

1.2.4.4 Thanh ghi AUXR1

DPS (Data pointer select):

– Mức 0: DPTR0 được chọn

– Mức 1: DPTR1 được chọn

Trang 25

Hình 1.5 – Sử dụng thanh ghi DPTR

1.2.4.5 Thanh ghi PSW (program status word)

– Cờ CY (Carry flag): Cờ nhớ, báo có nhớ hoặc mượn từ bit 7 CY = 0 nếu không có

nhớ từ bit 7 hoặc mượn tại bit 7 CY = 1 nếu có nhớ từ bit 7 hoặc mượn từ bit 7

– Cờ AC (Auxiliary Carry Flag): cờ nhớ phụ, báo có nhớ hoặc mượn tại bit 3 AC =

0 nếu không có nhớ từ bit 3 hoặc mượn tại bit 3 CY = 1 nếu có nhớ từ bit 3hoặc mượn

từ bit 3

– RS0, RS1 (Register Select): Bit chọn dãy thanh ghi, cho phép xác định dãy thanh

ghi tích cực

Trang 26

RS1 RS0 Dãy thanh ghi R0 – R7

1.2.4.6 Thanh ghi SP (Stack Pointer)

Thanh ghi con trỏ ngăn xếp (địa chỉ 81H), chứa địa chỉ của dữ liệu hiện đang ở đỉnh của ngăn xếp Vùng nhớ được dùng để làm ngăn xếp là RAM nội Để sử dụng ngăn xếp thì

ta phải khởi động thanh ghi SP bằng cách nạp giá trị cho thanh ghi SP Vùng nhớ ngăn xếp bắt đầu từ địa chỉ SP + 1 đến 7FH Nếu không khởi động SP thì địa chỉ bắt đầu của ngăn xếp là 08H

1.2.4.7 Thanh ghi DPTR (Data pointer Register)

Thanh ghi con trỏ dữ liệu 16 bit (địa chỉ Byte cao DPH 83H, Byte thấp DPL 82H), chứa địa chỉ ô nhớ cấn truy xuất thuộc ROM (trong / ngoài) và RAM ngoài IC 89V51RB2/RC2/RD2 hỗ trợ 2 thanh ghi DPTR đó là DPTR0 và DPTR1 Bit DPS dùng để chọn 1 trong 2 thanh ghi này

Trang 27

1.2.4.8 Thanh ghi Port xuất nhập: Chứa dữ liệu hiện tại trên các Port xuất nhập

Por t

Địa chỉ

P0

80H 87H 86H 85H 84H 83H 82H 81H 80HP1

90H 97H 96H 95H 94H 93H 92H 91H 90HP2

A0H A7H A6H A5H A4H A3H A2H A1H A0HP3

B0 B7H B6H B5H B4H B3H B2H B1H B0H

1.2.5 Các thanh ghi và hoạt động của Bộ Timer/Counters 0 và 1

Hai thanh ghi bộ Timer/Counters 16 bit, Timer 0 và Timer 1 có thể cấu hình cho nó là bộ định thời hay bộ đếm.

Hình 2.6 – Lựa chọn Timer/Counters là Timer hoặc Counter

Trang 28

– Với chức năng là bộ Timer, tần số xung clock cung cấp cho bộ định thời là 1/12 tần số của mạch dao động trên chip Thời gian định thời là khoảng thời gian tính từ lúc bộ định thời bắt đầu đếm lên (giá trị chứa trong thanh ghi THx/TLx) cho đến khi bộ định thời bắt đầu tràn.

– Với chức năng là bộ Counter, nguồn xung clock định thời được lấy từ xung kích thích bên ngoài tại chân Tx trên chip Tần số kich thich tối đa tại chân Tx là 1/2 tần số xung clockcuar bộ định thời Số lượng sự kiện mà bộ định thời đếm được chứa trong thanh ghi THx/TLx, giá trị trong thanh ghi náy sẽ tăng theo mỗi xung kích bên ngoài tại chân Tx Xung kích được gọi là một xung khi có sự chuyển trạng thái từ 1 xuống 0 tại chân Tx

Chức năng Timer hoặc Counter được chọn bằng bit

T C/

trong thanh ghi TMOD

88H 89H 8AH 8BH 8CH 8DH

Có Không Không Không Không Không

Trang 29

1.2.5.1.1 Thanh ghi chế độ định thời TMOD: chứa các bit thiết lập chế độ hoạt động

của bộ định thời

Cấu trúc của thanh ghi TMOD

1.2.5.1.2 Thanh ghi điều khiển định thời TCON: chứa câc bit dùng để điều khiển và báo trạng thái

của bộ định thời

Trang 30

Cấu trúc của thanh ghi TCON.

1.2.5.2 Các chế độ của bộ định thời

Trang 31

Hai bộ Timer/Counter 1 và 2 có 4 chế độ hoạt động và được chọn bởi bit

M0 và M1 trong thanh ghi TMOD.

(Timer 1): Không hoạt động

Timer 0 và Timer 1 hoạt động giống nhau ở 3 chế độ đầu tiên (chế độ 0, 1, 2) và khác nhau ở chế độ 3.

– Khởi động bằng phần mềm: bit TxGATE ở mức 0 Khi đó, Timer/Counter hoạt động khi bit

TRx ở mức 1, ngưng hoạt động khi bit TRx ở mức 0 Bit TRx được cài đặt bằng phần mềm.

Trang 32

ITNx

– Khởi động bằng phần cứng: Bit TRx phải ở mức 1, bit TxGATE phải ở mức 1 Khi đó,

Timer/Counter hoạt động khi chân

(chân 12 và 13) ở mức 1, ngưng hoạt động khi chân

Trang 33

Hình 1.7 – Timer 0 và 1 ở chế độ 1

Cờ tràn TFx xảy ra (TFx = 1) khi số đếm chuyển từ FFFFH sang 0000H và việc đếm sẽ bắt đầu đếm

lên từ giá trị 0000H

1.2.5.2.3 Chế độ 2: Chế độ Timer/Counter 8 bit tự nạp lại.

Sử dụng thanh ghi TLx để tạo bộ định thời Thanh ghi TLx chứa giá trị của bộ định thời, thanh ghi

THx chứa giá trị dùng để nạp lại cho TLx.

Khi Timer/Counter được khởi động, bộ định thời bắt đầu đếm từ giá trị chứa trong TLx Thanh ghi

THx không thay đổi.

Trang 34

+ Khi Timer/Counter được khởi động, bộ định thời bắt đầu đếm từ giá trị chứa trong TL0.

+ Cờ tràn TF0 xảy ra (TF0 = 1) khi số đếm chuyển từ FFH sang 00H, và việc đếm sẽ tiếp tục từ giá trị 00H.

+ Bộ định thời sử dụng các bit điều khiển của Timer 0: , T0GATE, TR0,

và TF0.

– Bộ định thời 8 bit thứ hai Bộ định thời này chỉ có chức năng là Timer.

+ Sử dụng thanh ghi TH0 để tạo ra bộ định thời

Trang 35

2 T C/

Chế độ 3 cung cấp thêm 1 Timer cho Vi điều khiển, cung cấp cho những ứng dụng chỉ đòi hỏi bộ Timer/Counter 8 bit

1.2.6 Các thanh ghi và hoạt động của Bộ Timer/Counters 2

Timer 2 là bộ Timer/Counter 16 bit, có thể hoạt động ở 2 trường hợp hoặc là Timer hoặc là Counter Hai trường hợp này được thiết lập bằng bit

trong thanh ghi T2CON Timer 2 có 4 chế độ hoạt động: Capture, tự động nạp lại

(Auto-reload) (đếm lên hoặc đếm xuống), Clock-out, và tạo tốc độ Baud Các chế độ hoạt động của Timer 2 được chọn theo bảng sau sử dung thanh ghi T2CON và T2MOD

Trang 36

Mô tả bit của thanh ghi điều khiển Timer/Counter 2 T2CON Bit Ký hiệu Mô tả

7 TF2 Cờ tràn của Timer 2 được set khi Timer 2 tràn và phải được xóa bằng phần mềm TF2 sẽ không được set khi bit RCLK hoặc TCLK ở mức 1 hoặc Timer 2 ở chế độ Clock-out.

6 EXF2

Cờ ngắt ngoài Timer 2 được thiết lập khi Timer 2 ở chế độ Reload, capture, hoặc baud-rate, cờ cho phép ngắt ngoài EXEN2 = 1 và có một sự chuyển tiếp xảy ra trên chân T2EX Nếu ngắt Timer 2 được phép, EXF2 = 1 gây ra cho CPU một ngắt Timer 2 EXF2 phải được xóa bằng phần mềm

5 RCLK Cờ xung thu Khi RCLK = 1, UART dùng Timer 2 tạo xung thu trong chế độ 1 và 3 Khi RCLK = 0, Timer 1 được sử dụng tạo xung thu.

4 TCLK Cờ xung truyền Khi RCLK = 1, UART dùng Timer 2 tạo xung truyền trong chế độ 1 và 3 Khi RCLK = 0, Timer 1 được sử dụng tạo xung truyền.

3 EXEN2 Cờ cho phép ngoài của Timer 2 Khi EXEN2 = 1, nếu Timer 2 không dùng làm tốc độ Baud cho Port nối tiếp thì nó cho phép lấy kết quả tức thời ở chế độ capture hoặc nạp lại thanh ghi

tức thời trong chế độ reload EXEN2 = 0 sẽ bỏ qua sự kiện trên chân T2EX.

2 TR2 Điều khiển bắt đầu/ dừng cho Timer 2 Mức 1 cho phép Timer 2 chạy.

1 Bit chọn chức năng đếm hoặc định thời cho Timer 2.0 = bộ định thời.

1 = đếm sự kiện bên ngoài.

0

Cờ Capture/Reload Khi thiết lập, capture sẽ xuất hiện khi có sự chuyển tiếp trên chân T2EX nếu EXEN2 = 1 Khi xóa, auto-reloads sẽ xuất hiện hoặc Timer 2 tràn hoặc có sự chuyển tiếp trên chân T2EX khi EXEN2 = 1 Khi RCLK = 1 hoặc TCLK = 1, bit này được bỏ qua, Timer

tự động nạp lại khi Timer 2 tràn.

Trang 37

2 RL CP/

1.2.6.1.2 Thanh ghi T2MOD

Mô tả bit của thanh ghi điều khiển chế độ Timer/Counter 2 T2MOD Bit Ký hiệu Mô tả

1 T2OE Cho phép ngõ ra Timer 2 Chỉ dùng trong chế độ Clock-out có thể lập trình

0 DCEN Cho phép đếm xuống Khi thiết lập, bit này cho phép Timer 2 cấu hình như một bộ đếm xuống.

Trang 38

1.2.6.2.1 Chế độ Capture (Chế độ chụp ảnh)

Chế độ Capture có 2 chế độ được chọn bằng bit EXEN2 Nếu EXEN2 = 0 thì Timer 2 là một Timer hoặc một Counter 16 bit Và khi tràn Timer 2 thì cờ TF2 = 1 Bit này có thể được dùng để phát ra một ngắt Nếu EXEN2 = 1, Timer 2 hoạt động như trên nhưng có thêm một chức năng đó là khi có sự chuyển tiếp từ 1 sang 0 tại chân T2EX gây ra, giá trị tức thời trong thanh ghi Timer 2 (TL2 và TH2) được chụp vào thanh ghi RCAP2L và RCAP2H tương ứng Trong chức năng bổ xung này, sự chuyển tiếp trên chân T2EX làm cho bit EXF2 = 1, và bit EXF2 này giống như bit TF2 có thể phát ra một ngắt Chương trình phục vụ ngắt Timer 2 có thể quyết định ngắt TF2 và EXF2 là sự kiện gây ra ngắt Chế độ này không nạp lại giá trị cho TL2 và TH2 Khi sự kiện

Capture xảy ra từ chân T2EX, bộ đếm tiếp tục đếm sự thay đổi trên chân T2 hoặc định thời gian Nội dung của thanh ghi RCAP2L và RCAP2H sau sự kiện Capture sẽ không được bảo vệ, nó cần phải lưu trữ lại trong sự kiện ngắt này trước khi có sự kiện capture mới.

Hình 1.10 – Chế độ Capture của Timer/counter 2

Trang 39

2 T C/

RCAP2L)(RCAP2H,

65536

-uencySupplyFreq

frequency reload

1.2.6.2.2 Chế độ Auto-reload (đếm lên hoặc đếm xuống) (Chế độ tự động nạp lại 16

bit)

Trong chế độ này, Timer 2 có thể cấu hình là Timer hoặc Counter (sử dụng bit

) và có thể lập trình để đếm lên hoặc đếm xuống (sử dụng bit DCEN) Khi Reset, DCEN = 0 và Timer 2 mặc định là đếm lên Nếu bit DCEN được thiết lập, Timer 2 có thể đếm lên hoặc đếm xuống phụ thuộc vào trạng thái của chân T2EX.

Trong chế độ này, có 2 chế độ được chọn bằng bit EXEN2 Nếu EXEN2 = 0 thì Timer 2 đếm lên đến FFFFH và thiết lập cờ tràn (overflow flag) Đồng thời thanh ghi của Timer 2 được nạp lại với giá trị 16 bit trong RCAP2L và RCAP2H Giá trị RCAP2L và RCAP2H bởi phần mềm.

Hình 1.11 – Timer 2 trong chế độ Auto-reload (DCEN = 0)

Tần số Auto-reload khi Timer 2 đếm lên được tính như sau:

Trang 40

Trong hình 2.11, DCEN = 1 và Timer 2 cho phép đếm lên hoặc đếm xuống Chế độ này chân T2EX điều khiển hướng đếm T2EX = 1 sẽ đếm lên Timer 2 sẽ tràn tại FFFFH và thiết lập cờ tràn Hoạt động ngắt sẽ xảy ra nếu cho phép ngắt Timer tràn sẽ nạp lại giá trị 16 bit trong

RCAP2L và RCAP2H vào thanh ghi TH2 và TL2 T2EX = 1 sẽ đếm xuống Timer sẽ tràn dưới (underflow) khi TH2 và TL2 bằng giá trị của RCAP2L và RCAP2H Timer 2 underflow thiết lập

cờ TF2 và nạp giá trị FFFFH vào thanh ghi TH2 và TL2 Cờ ngắt ngoài EXF2 được chốt khi Timer 2 underdlow hoặc overflow Bit EXF2 có thể được dùng như là bit thứ 17 nếu cần.

Hình 1.12 – Timer 2 trong chế độ Auto-reload (DCEN = 1)

Ngày đăng: 08/01/2014, 16:18

HÌNH ẢNH LIÊN QUAN

Hình 1.2 – Sơ đồ khối của 89V51RB2/RC2/RD2 - ĐỒ ÁN VI ĐIỀU KHIỂN: MẠCH BÁO GIỜ DÙNG TRONG MÔN CHƠI TỐC ĐỘ
Hình 1.2 – Sơ đồ khối của 89V51RB2/RC2/RD2 (Trang 12)
Hình 1.3 – Sơ đồ chân của  89V51RB2/RC2/RD2 như sau: - ĐỒ ÁN VI ĐIỀU KHIỂN: MẠCH BÁO GIỜ DÙNG TRONG MÔN CHƠI TỐC ĐỘ
Hình 1.3 – Sơ đồ chân của 89V51RB2/RC2/RD2 như sau: (Trang 13)
Hình 1.4 – Tổ chức bộ nhớ - ĐỒ ÁN VI ĐIỀU KHIỂN: MẠCH BÁO GIỜ DÙNG TRONG MÔN CHƠI TỐC ĐỘ
Hình 1.4 – Tổ chức bộ nhớ (Trang 22)
Hình 2.6 – Lựa chọn Timer/Counters là Timer hoặc Counter - ĐỒ ÁN VI ĐIỀU KHIỂN: MẠCH BÁO GIỜ DÙNG TRONG MÔN CHƠI TỐC ĐỘ
Hình 2.6 – Lựa chọn Timer/Counters là Timer hoặc Counter (Trang 27)
Hình 1.12 – Timer 2 trong chế độ Auto-reload (DCEN = 1) - ĐỒ ÁN VI ĐIỀU KHIỂN: MẠCH BÁO GIỜ DÙNG TRONG MÔN CHƠI TỐC ĐỘ
Hình 1.12 – Timer 2 trong chế độ Auto-reload (DCEN = 1) (Trang 40)
Hình 1.13 – Timer 2 hoạt động ở chế độ Baud rate generator - ĐỒ ÁN VI ĐIỀU KHIỂN: MẠCH BÁO GIỜ DÙNG TRONG MÔN CHƠI TỐC ĐỘ
Hình 1.13 – Timer 2 hoạt động ở chế độ Baud rate generator (Trang 41)
Hình 1.14 – Cấu trúc thanh ghi SBUF - ĐỒ ÁN VI ĐIỀU KHIỂN: MẠCH BÁO GIỜ DÙNG TRONG MÔN CHƠI TỐC ĐỘ
Hình 1.14 – Cấu trúc thanh ghi SBUF (Trang 44)
Hình 1.15 – Giản đồ thời gian thu và phát dữ liệu ở chế độ 0 - ĐỒ ÁN VI ĐIỀU KHIỂN: MẠCH BÁO GIỜ DÙNG TRONG MÔN CHƠI TỐC ĐỘ
Hình 1.15 – Giản đồ thời gian thu và phát dữ liệu ở chế độ 0 (Trang 47)
Hình 1.17 – Giản đồ thời gian thu và phát dữ liệu ở chế độ 2 - ĐỒ ÁN VI ĐIỀU KHIỂN: MẠCH BÁO GIỜ DÙNG TRONG MÔN CHƠI TỐC ĐỘ
Hình 1.17 – Giản đồ thời gian thu và phát dữ liệu ở chế độ 2 (Trang 48)
Hình 1.19 – Hoạt động ngắt của PCA - ĐỒ ÁN VI ĐIỀU KHIỂN: MẠCH BÁO GIỜ DÙNG TRONG MÔN CHƠI TỐC ĐỘ
Hình 1.19 – Hoạt động ngắt của PCA (Trang 52)
Hình 1.20 – PCA ở chế độ capture - ĐỒ ÁN VI ĐIỀU KHIỂN: MẠCH BÁO GIỜ DÙNG TRONG MÔN CHƠI TỐC ĐỘ
Hình 1.20 – PCA ở chế độ capture (Trang 55)
Hình 1.21 – PCA ở chế độ 16-bit software timer - ĐỒ ÁN VI ĐIỀU KHIỂN: MẠCH BÁO GIỜ DÙNG TRONG MÔN CHƠI TỐC ĐỘ
Hình 1.21 – PCA ở chế độ 16-bit software timer (Trang 56)
Hình 1.22 – PCA ở chế độ High speed output - ĐỒ ÁN VI ĐIỀU KHIỂN: MẠCH BÁO GIỜ DÙNG TRONG MÔN CHƠI TỐC ĐỘ
Hình 1.22 – PCA ở chế độ High speed output (Trang 57)
Hình 1.23 – PCA ở chế độ Pulse width modulator (PWM) - ĐỒ ÁN VI ĐIỀU KHIỂN: MẠCH BÁO GIỜ DÙNG TRONG MÔN CHƠI TỐC ĐỘ
Hình 1.23 – PCA ở chế độ Pulse width modulator (PWM) (Trang 58)
Hình 1.24 – Cấu trúc ngắt của 89V51RB2/RC2/RD2 - ĐỒ ÁN VI ĐIỀU KHIỂN: MẠCH BÁO GIỜ DÙNG TRONG MÔN CHƠI TỐC ĐỘ
Hình 1.24 – Cấu trúc ngắt của 89V51RB2/RC2/RD2 (Trang 60)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w