Tải bản đầy đủ (.docx) (45 trang)

Thiết kế mô hình đo và điều khiển nhiệt độ phòng sử dụng cổng nối tiếp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (583.23 KB, 45 trang )

Đồ án môn: Đo lường và điều khiển bằng máy tính
Trường Đại học Công Nghiệp Hà Nội
Khoa Điện

Đồ án môn :
Đề tài :

Đo Lường Và Điều Khiển Bằng Máy Tính

Đo Và Điều Khiển Nhiệt Độ Phòng

Giáo viên hướng dẫn

: Hùng

Nhóm sinh viên thực hiện : Nguyễn Văn Khoa
Ngô Tấn Phát
Hoàng Đăng Chiến
Nguyễn Thanh Ngọc
Trần Văn Thảnh
Dương Văn Tùng
Lớp

: ĐH Điện CLC1-K7

Hà Nội 12/2015
Đo và điều khiển nhiệt độ phòng

Page 1



Đồ án môn: Đo lường và điều khiển bằng máy tính

LỜI MỞ ĐẦU
.
Ngày nay, khi công nghiệp tự động hóa ngày càng phát triển thì việc sử dụng
máy tính để điều khiển các hệ thống tự động đã trở nên rất phổ biến. Với một
chiếc máy tính và một số thao tác chúng ta có thể điều khiển được cả một dây
truyền sản xuất tự động, các hệ thống đèn điện…
Máy tính có thể giao tiếp với các thiết bị ngoài thông qua cổng RS232 ( cổng
nối tiếp), cổng LPT ( cổng song song ), qua các khe cắm mở rộng ISA … Trong
công nghiệp thông dụng nhất hiện nay là sử dụng RS232 và LPT để máy tính
giao tiếp với mạch ngoài. Ngôn ngữ lập trình được sử dụng có thể là Visual
Basic, Turbo Pascan, hay ngôn ngữ lập trình C…
Với kiến thức được học trên lớp và qua quá trình tìm tòi học hỏi chúng em đã
thực hiện đồ án “Thiết kế mô hình đo và điều khiển nhiệt độ phòng sử dụng
cổng nối tiếp ”Trong quá trình thiết kế chắc không thể tránh được những thiếu
sót, vì vậy chúng em rất mong nhận được sự nhận xét và đóng góp của thầy cô
giáo.

Chúng em xin chân thành cảm ơn!
NHÓM SINH VIÊN
Nguyễn Văn Khoa
Ngô Tấn Phát
Nguyễn Thanh Ngọc
Trần Văn Thảnh
Hoàng Đăng Chiến
Dương Văn Tùng
Đo và điều khiển nhiệt độ phòng

Page 2



Đồ án môn: Đo lường và điều khiển bằng máy tính

Mục lục
CHƯƠNG I:GIỚI THIỆU
I.Đề tài.
II.Sơ đồ khối
III.Chức năng các khối.
CHƯƠNG II: CƠ SỞ LÝ THUYẾT
I. Giao tiếp cổng nối tiếp của máy tính.
1.Giới thiêu cổng nối tiếp của máy tính
2.Giới thiệu vi mạch Max232
II. Giao tiếp cổng nối tiếp của vi điều khiển AT89S52.
1.Sơ đồ và chức năng chip AT89S52
2.Chíp ADC0804
3.Cảm biến nhiệt độ LM35
III Phần mềm lập trình Visual basic 6.0.
1.Truyền thông nối tiếp của Visual basic.
2. Sự kiện OnComm.
CHƯƠNG III: THIẾT KẾ HỆ THỐNG
I Sơ đồ nguyên lí của hệ thống
1.Mạch in
2.Mạch nguyên lý
II. Chương trình điều khiển.
1.Lưu đồ thuật toán
2.Chương trình VB trên máy tính.
3.Chương trình trong vi điều khiển AT89S52.
CHƯƠNGIV : KẾT LUẬN
*Ưu điểm:

*Nhược điểm:

Đo và điều khiển nhiệt độ phòng

Đồ án môn: Đo lường và điều khiển bằng máy tính

Page 3


CHƯƠNG I:GIỚI THIỆU
I. Đề tài.
-. Thiết kế mô hình đo và điều khiển nhiệt độ phòng
Chức năng của hệ thống:
+ Hệ thống thực hiện đo và điều khiển giám sát nhiệt độ phòng.
+ Máy tính cho phép đặt và hiển thị nhiệt độ trong phòng.
II. Sơ đồ khối

KHỐI
CHYỂN ĐỔI
(ADC0804)
KHỐI XỬ LÍ TRUNG TÂM
(IC 89S52 )

KHỐI
CHUYỂN
ĐỔI:
MAX232

MÁYTÍNH


KHỐI CẢM
BIẾN (LM35)

KHỐI THIẾT BỊ ỨNG DỤNG

NHIỆT ĐỘ
MÔI
TRƯỜNG

Đo và điều khiển nhiệt độ phòng

( ĐIỀU HÒA, QUẠT…)

Page 4

Đồ án môn: Đo lường và điều khiển bằng máy tính
III. Chức năng các khối.
- Máy tính: Phần mềm điều khiển và giám sát được thiết kế trên máy tính có
chức năng gửi các tín hiệu điều khiển qua cổng nối tiếp của máy tính đến mạch
điều khiển, đồng thời nhận các tín hiệu về trạng thái hoạt động của các thiết bị
và hiển thị trên giao diện của phần mềm.
- Khối xử lí trung tâm: Có nhiệm vụ đọc tín hiệu điều khiển từ máy tính rồi điều
khiển các thiết bị ứng dụng(điều hòa, quạt…), đồng thời gửi các tín hiệu về trạng
thái hoạt động của thiết bị lên máy tính.
- Các thiết bị ứng dụng: được hoạt động dựa trên việc điều khiển các khối
trên.
- Khối cảm biến(LM35): Sử dụng để biến đổi đại lượng vật lí (nhiệt độ) thành tín
điện để đưa tới bộ xử lí trung tâm.



- Khối chuyển đổi ADC0804: dùng để chuyển đổi tín hiệu tương tự lấy ra từ khối
cảm biến thành tín hiệu số để đưa vào bộ vi điều khiển.
- Khối chuyển đổi Max232: Dùng để chuyển đối dữ liệu song song sang dữ liệu
nối tiếp và ngược lại, để tương thích với dữ liệu trên máy tính và vi điều khiển

Đo và điều khiển nhiệt độ phòng

Page 5

Đồ án môn: Đo lường và điều khiển bằng máy tính

CHƯƠNG II: CƠ SỞ LÝ THUYẾT
I. Giao tiếp cổng nối tiếp của máy tính
1. Giới thiệu cổng nối tiếp của máy tính
Cổng nối tiếp RS-232 của máy tính là một giao diện phổ biến rộng rãi.
Cổng này còn được gọi là cổng COM (COM1,COM2…) hoặc cổng RS232.
Chuẩn RS232 chỉ cho phép sử dụng đường truyền ngắn với tốc độ bít thấp.
Các tiêu chuẩn truyền thông ra đời sau như RS-422, RS-449 hay RS-485 cho
phép truyền với khoảng cách dài và tốc độ bít rất cao. Giống như cổng máy in
cổng nối tiếp được sử dụng khá rộng rãi và thuận tiện cho việc ghép nối máy
tính với các thiết bị ngoại vi khác. Khoảng cách truyền ở cổng nối tiếp được cải
thiện hơn so với cổng song song vì điện áp chênh lệch


Đồ án môn: Đo lường và điều khiển bằng máy tính
Bảng 1: Chức năng các chân tín hiệu ở cổng nối tiếp
Chân

Kí hiệu


Ý nghĩa

1
2
3
4
5
6
7
8
9

DCD
RXD
TXD
DTR
GND
DSR
RTS
CTS
RI

Data carrier detect- Phát hiện tín hiệu mang dữ liệu
Receive data- Nhận dữ liệu
Transmit data – Truyền dữ liệu
Data terminal- Dữ liệu đầu cuôi sẵn sang
Signal ground- Nối đất
Data set ready- Dữ liệu sẵn sang được nhận
Request to send – Tín hiệu yêu cầu gửi
Clear to send- Tín hiệu yêu cầu xóa để gửi tiếp

Ring indicator- Báo chuông

RS232 sử dụng phương thức truyền thông không đối xứng, tức là sử dụng
tín hiệu điện áp chênh lệch giữa một dây dẫn và đất. Do đó ngay từ đầu tiên
ra đời nó đã mang vẻ lỗi thời của chuẩn TTL, nó vấn sử dụng các mức điện áp
tương thích TTL để mô tả các mức logic 0 và 1. Ngoài mức điện áp tiêu chuẩn
cũng cố định các giá trị trở kháng tải được đấu vào bus của bộ phận và các trở
kháng ra của bộ phát.
Mức điện áp của tiêu chuẩn RS232C ( chuẩn thường dùng bây giờ) được mô tả
như sau:
+ Mức logic 0 : +3V , +12V
+ Mức logic 1 : -12V, -3V

T ham số chính đặc trưng cho quá trình truyền dữ liệu qua cổng nối tiếp
RS232 là tốc độ truyền nhận dữ liệu hay còn gọi là tốc độ bit. Tốc độ bit được
định nghĩa là số bit truyền được trong thời gian 1 giây hay số bit truyền được trong
thời gian 1 giây. Tốc độ bit này phải được thiết lập ở bên phát và bên nhận đều phải
có tốc độ như nhau ( Tốc độ giữa vi điều khiển và máy tính phải chung nhau 1 tốc độ
truyền bit). Ngoài tốc độ bit còn một tham số để mô tả tốc độ truyền là tốc độ Baud.
Tốc độ Baud liên quan đến tốc độ mà phần tử mã hóa dữ liệu được sử dụng để diễn
tả bit được truyền còn tôc độ bit thì phản ánh tốc độ thực tế mà các bit được truyền
Vì một phần tử báo hiệu sự mã hóa một bit nên khi đó hai tốc độ bit và tốc độ baud
là phải đồng nhất. Một số tốc độ Baud thường dùng: 50, 75, 110, 150, 300, 600, 1200,
2400, 4800, 9600, 19200, 28800, 38400, 56000, 115200 … Trong thiết bị Đây là một
tham số đặc trưng của RS232. Tham số này chính là đặc trưng cho quá trình truyền dữ
liệu qua cổng nối họ thường dùng tốc độ là 19200 Khi sử dụng chuẩn nối tiếp RS232
thì yêu cầu khi sử dụng chuẩn là thời gian chuyển mức logic không vượt quá 4% thời
gian truyền 1 bit. Do vậy, nếu tốc độ bit càng cao thì thời gian truyền 1 bit càng nhỏ thì
thời gian chuyển mức logic càng phải nhỏ. Điều này làm giới hạn tốc Baud và khoảng
cách truyền.



Truyền dữ liệu qua cổng nối tiếp RS232 được thực hiện theo kiểu không
Đồng bộ.Do vậy nên tại một thời điểm chỉ có một bit được truyền (1 kí tự) Bộ
truyềngửi một bit bắt đầu (bit start) để thông báo cho bộ nhận biết một kí tự
sẽ được gửi đến trong lần truyền bit tiếp theo . Bit này luôn bắt đầu bằng mức 0..
Tiếp theo đó là các bit dữ liệu (bits data) được gửi dưới dạng mã ASCII( có thể là 5,6,7
hay8 bit dữ liệu) Sau đó là một Parity bit ( Kiểm tra bit chẵn, lẻ hay không) và cuối
cùng là bit stop có thể là 1, 1,5 hay 2 bit dừng.

4) Các mức điện áp đường truyền

2.
Vi mạch
MAXIM là một vi mạch
giao diện nối
Chúng có nhiệm vụ
ở lối
vào thành
10V ở phía truyền và các mức +3 => +15V hoặc
-3=>-15V thành mức TTL ở phía nhận.

Giới thiệu vi
mạch Max 232

MAX 232 của hãng
chuyên dùng trong
tiếp với máy tính.
chuyển đổi mức TTL
mức +10V hoặc –


Vi mạch MAX 232 có hai bộ đệm và hai bộ nhận. Đường dẫn điều khiển lối
vào CTS, điều khiển việc xuất ra dữ liệu ở cổng nối tiếp khi cần thiết, được nối
với chân 9 của vi mạch MAX 232. Còn chân RST (chân 10 của vi mạch MAX )
nối với đường dẫn bắt
tay để điều khiển quá trình nhận.
Thường thì các đường dẫn
bắt tay được nối với cổng
nối tiếp qua các cầu nối, để khi
không dùng đến nữa có
thể hở mạch các cầu này.
Cách truyền dữ liệu đơn giản nhất là
chỉ dùng ba đường
dẫn TxD, RxD và GND
(mass).


Sơ đồ chân của vi mach Max232


II. Giao tiếp cổng nối tiếp của vi điều khiển AT89S52.
1. Tổng quan về IC AT89S52
1.1 Giới thiệu
Họ vi điều khiển 8051(còn gọi là họ C51) là một trong những họ vi điều khiển
thông dụng nhất hiện nay. Đây là bộ vi điều khiển 8bits sản xuất theo công nghệ CMOS,
một số loại vi điều khiển thuộc họ 8051 thông dụng có thể kể như: AT989S52(40 chân),
AT89S51(40 chân) , AT89C51(40 chân), AT89C52(40 chân)...
Trong chương trình môn học này chúng ta tập chung nghiên cứu về bộ vi điều khiển
AT89S52.Đây là bộ vi điều khiển thông dụng, giá rẻ có nhiều chức năng hay đặc biệt
là tích hợp sẵn bộ nạp trên chíp giúp sinh viên có thể dễ dàng thực hiện các bài thí nghiệm

với chi phí thấp. Cũng trong chương trình môn học này ngôn ngữ được sử dụng để lập trình
là ngôn ngữ C.
Họ vi điều khiển AT89S52 bao gồm :
- 8 kbyte ROM kiểu Flash(được lập trình bởi nhà sản xuất chỉ có ở 8051)
- 256 byte RAM
- 4 port I/0 8 bit
- 3 bộ định thời 16 bít
- 1 cổng nối tiếp


- 6 nguồn ngắt

1.2 Kiến trúc phần cứng của họ vi điều khiển 8051(AT89S52)
Bộ vi điều khiển AT89S52 gồm các khối chức năng chính sau.
Bộ xử lí trung tâm ( CPU:central processing unit) bao gồm:


-

Thanh ghi tich lũy A

-

Thanh ghi tích lũy phụ B,dùng cho phép nhân và phép chia;

-

Đơn vị số học (ALU: arithmetic logical unit)

-


Thanh ghi trạng thái chương trình (PSW: Program status word)

-

Bốn băng thanh ghi

-

Con trỏ ngăn xếp



Bộ nhớ chương trình (bộ nhớ Rom ) gồm 8 kbyte Flash



Bộ nhớ dữ liệu (bộ nhớ Ram) gồm 256 byte



Bộ UART có chức năng truyền nhận nối tiếp , AT89S52 có thể giao
tiếp với cổng máy tính thông qua bộ UART.



3 bộ timer/counter 16 bit thực hiện các chức năng định thời và đếm sự kiện




WDM(Watch dog time): WDM được dùng để phục hồi lại hoạt động của CPU
khi nó bị treo bởi một nguyên nhân nào đó.



Khối điều khiển ngắt với 2 nguồn ngắt ngoài và 4 nguồn ngắt trong



Bộ lập trình



Bộ chia tần với hệ số chia là 12



4 cổng xuất nhập với 32 chân


1.3 Sơ đồ và chức năng chân của họ vi điều khiển 8051

Hình 1.2 Sơ đồ kiểu DIP 40 chân của vi điều khiển 8051
1. Port 0
Port 0 gồm 8 chân từ P0.1- P0.7 ngoài chức năng xuất nhập, Port 0 còn là Bus đa
hợp dữ liệu và địa chỉ(AD0-AD7), chức năng này sẽ được sử dụng khi AT89S52 giao
tiếp với các thiết bị ngoài có kiến trúc BUS như mạch nhớ, mạch PIO.
2. Port 1
Đối với 8051 chức năng duy nhất của Port 1 là chức năng xuất nhập Port 1 có thể
xuất nhập theo byte hoặc theo bit. Riêng dòng 89xx , 3 chân P1.5, P1.6, P1.7 được dùng

để nạp Rom theo chuẩn ISP, hai chân P1.0 và P1.1 được dùng cho bộ timer 2.
3. Port 2
Port 2 có tác dụng làm nhiệm vụ xuất nhập dữ liệu ngoài ra còn là byte cao của bus


địa chỉ khi sử dụng bộ nhớ ngoài.

4. Port 3
Mỗi chân trên Port 3 ngoài chức năng xuất nhập còn có chức năng riêng cụ thể như sau:
Bit

Chân

Chức năng

P3.0

RXD

Dữ liệu nhận cho port nối tiếp

P3.1

TXD

Dữ liệu truyền cho Port nối tiếp

P3.2

INT0


Ngắt bên ngoài 0

P3.3

INT1

Ngắt bên ngoài 1

P3.4

T0

Ngõ vào của timer/counter0

P3.5

T1

Ngõ vào của timer/counter1

P3.6

WR

P3.7

RD

Xung ghi bộ nhớ dữ liệu ngoài

Xung đọc bộ nhớ dữ liệu ngoài

5. PSEN (Program Store Enable ).
PSEN là chân điều khiển đọc chương trình ở bộ nhớ ngoài nó được nối


với chân /OE để cho phép đọc các byte mã lệnh trên Rom ngoài. PSEN sẽ ở
mức thấp trong thời gian đọc mã lệnh. Mã lệnh được đọc từ bộ nhớ ngoài qua
bus dữ liệu thanh ghi lệnh để được giải mã.Khi thực hiện chương trình trong
Rom nội thì /PSEN ở mức cao
6. ALE (Address Latch Enable ).
Là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 tần số dao động của
vi điều khiển .Tín hiệu ALE được dùng để cho phép vi mạch chốt bên ngoài

như 74374, 74573 chốt byte địa chỉ thấp ra khỏi bus đa hợp địa chỉ/dữ liệu.
7. EA (External Access) .
Tín hiệu /EA cho phép chọn bộ nhớ chương trinh flash bộ nhớ trong hay bộ
nhớ ngoài của vi điều khiển. Nếu /EA ở mức cao (nối với Vcc) thì vi điều khiển
thi hành chương trình trong Rom nội. Nếu /EA ở mức thấp(nối với GND) thì vi điều
khiển thi hành chương trình từ bộ nhớ ngoài.
8. RST(Reset).
Dùng để thiết lập trạng thái ban đầu của hệ thống hay còn gọi là reset hệ thống.
Khi tín hiệu này được đưa lên mức cao, các thanh ghi trong bộ vi điều khiển được tải
những giá trị thích hợp để khởi động hệ thống.


9. XTAL1, XTAL2.
Mạch dao động bên trong chip 8051 được ghép với thạch anh bên ngoài thông
qua 2 chân XTAL1 và XTAL2. Thường là tần số 12Mhz và các tụ ổn định 33pF
10. VCC, GND :

AT89S52 dùng nguồn một chiều có dải điện áp từ 4v-5v được cung cấp qua
2 chân 40 và 20.
1.4 Hoạt động định thời
1.4.1. Giới thiệu
Các bộ định thời được sử dụng rộng rãi trong các ứng dụng đo lường
và điều khiển. Có thể coi một bộ định thời là 1 bộ đếm n bit được tạo ra bởi n

flip-flop mắc nối tiếp với nhau. Đầu vào của bộ định thời là đầu vào của
flip- flop đầu tiên, đầu ra báo tràn phản ánh trạng thái tràn của nó. AT89s52
có 3 bộ định thời 16 bit trong đó 2 bộ timer 0 và timer 1 có 4 chế độ hoạt động,
timer 2 có 3 chế độ hoạt động. Các bộ định thời dùng để định khoảng thời gian,
đếm sự kiện xảy ra bên ngoài hoặc tạo tôc độ baud cho cổng nối tiếp.
1.4.2 Các thanh ghi định thời


1. Thanh ghi của Timer 0 và Timer 1


Thanh ghi chế độ định thời TMOD



Thanh ghi điều khiển TCON

Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho Timer 0 và Timer 1.
Bit

Kí hiệu Địa chỉ

Mô tả



TCON.7 TF1

8FH

Cờ báo tràn cho timer 1 được đặt bởi
phần cứng, được xóa bởi phần mềm

TCON.6 TR1

8EH

Bít điều khiển cho timer 1 hoạt động.
Được cài đặt và xóa bằng phần mềm

TCON.5 TF0

8DH

Cờ báo tràn cho timer 0

TCON.4 TR0

8CH

Bít điều khiển timer 1 hoaatj động.

TCON.3 IT1


8BH

Cờ ngắt do timer 1

TCON.2 IT1

8AH

Cờ ngắt ngoài 1

TCON.1 IT0

89H

Cờ ngắt do timer 0

TCON.0 IE0

88H

Cờ ngắt ngoài 0

2. Thanh ghi của Timer 2



Thanh ghi T2CON


Bit


Kí hiệu

T2CON.7 TF2

Địa
chi

Mô tả

CFH Cờ báo tràn TIMER 2. TF2 được đặt khi timer tràn và
được xóa bằng phần mềm TF2 không được thiết lập khi
TCLK hoặc RCLK bằng 1.

T2CON.6 EXF.2

CEH Cờ ngắt ngoài của timer 2, TXF2=1 khi xảy ra sự nạp
lại EXF.2= 1 cũng gây ra ngắt do timer 2 nếu như ngắt
này được lập trình, EXF.2 được lập trinhg bằng phần
mềm

T2CON.5 RCLK

CDH Bít chọn timer cung cấp xung nhịp cho đường nhận của
cổng nối tiếp .

Các
của

RCLK=1 timer 2 cung cấp tốc độ baud cho cổng nối

tiếp.

thời

RCKL=0 timer 1 cung cấp tốc độ baud cho cổng nối
tiếp.
T2CON.4 TCLK

CCH Bít chọn timer cung cấp xung nhịp cho đường truyền
của cổng nối tiếp .
TCLK=1 timer 2 cung cấp tốc độ baud cho cổng nối
tiếp.

chế
của

TCKL=0 timer 1 cung cấp tốc độ baud cho cổng nối
tiếp.


T2CON.3 EXEN2
0

0 là

T2CON.2 TR2

CBH Bít điều khiển hoạt động của timer 2. Khi EXEN2=1
việc nạp lại hoặc thu nhận diễn ra khi có sự chuyển
trạng thái từ 1 sang 0 ở chân T2EX nếu T2 không sử

dụng để cung cấp tốc độ baud cho cổng nối tiếp.
CAH Bít điều khiển hoạt động của timer 2

13 bit
của

chế độ
bộ định

1.Các
độ ngắt
timer 0
timer 1
Chế độ

Chế độ
chế độ
(8bit

T2CON.1 C/#T2

C9H

Bít chọn chế độ đếm hoặc định thời của timer 2

bit
TL)

1.4.3


TH và 5
cao của

T2CON.0 CP/#RL2

C8H

Bit chọn chế độ thu nhận hay nạp lại của timer 2

chứa giá trị
đếm, 3 bit thấp của TL không được sử dụng. Nguồn xung clock đưa tới timer phụ
thuộc vào bit C/#T trong thanh ghi TMOD

dùng để


-

Nếu C/#T=1 xung clock sẽ được lấy từ bên ngoài qua chân Tx.

-

Nếu C/#T=0 xung clock được lấy từ bộ chia tần trong chip tần số xung ở
đây là 1/12 tần số của thạch anh.

Nguồn xung clock sẽ được điều khiển để đưa tới các Timer bằng các bít TR, GATE
Và mức logic trên chân INTx
Nếu TRx=0 các timer sẽ bị cấm không cần quan tâm tới GATE và mức logic

-


trên chân INTx.
Nếu TRx=1 các timer sẽ hoạt động khi hoặc là bít GATE=0 hay bít GATE=0 và

-

chân / ITNx có mức logic 1
Chế độ 1
Trong chế độ 1 bộ timer dùng cả 2 thanh ghi TH và TL để chứa giá trị đếm vì vậy chế
độ này được gọi là chế độ 16 bit. Nguồn xung clock đưa tới timer phụ thuộc vào bit C/#T
trong thanh ghi TMOD
-

Nếu C/#T=1 xung clock sẽ được lấy từ bên ngoài qua chân Tx.

-

Nếu C/#T=0 xung clock được lấy từ bộ chia tần trong chip tần số xung ở đây là 1/12
tần số của thạch anh.

Nguồn xung clock sẽ được điều khiển để đưa tới các timer bằng các bít TR,GATE và
mức logic trên chân INTx
-

Nếu TRx=0 các timer sẽ bị cấm không cần quan tâm tới GATE và mức logic trên
chân INTx.

-

Nếu TRx=1 các timer sẽ hoạt động khi hoặc là bít GATE=0 hay bít GATE=0 và

chân / ITNx có mức logic 1

Với chế độ này giá trị lớn nhất mà các timer đếm chứa được là 65635 khi đếm quá
giá trị này sẽ xảy ra tràn cờ tràn TF được đặt bằng 1. Sau khi xảy ra tràn muốn timer tiếp
tục đếm chương trình phải có câu lệnh nạp giá trị khởi tạo bằng cách xóa bit TR.


Chế độ 2
Trong chế độ 2 bộ timer dùng TL để chứa giá trị đếm và TH để chứa giá trị nạp lại
vì vậy chế độ này gọi là chế độ tự nạp lại. Sau khi đếm quá 255 sẽ xảy ra tràn khi đó TF
được đặt bằng 1 đồng thời giá trị của timer tự động nạp lại bằng nội dung của TH.
Chế độ 3
Trong chế độ 3 timer được tách làm 2 bộ timer hoạt động độc lập, chế độ này cung
cấp cho timer một chế độ nữa
-

Bộ timer thứ nhất với nguồn xung được lấy từ bộ chia tần hay bên ngoài phụ thuộc
vào C/#T giá trị đếm của timer được chứa trong TL0 khi xảy ra tràn cờ TF0 được
đặt bằng 1 và gây ra ngắt do timer

-

Bộ timer thứ 2 với nguồn xung clock được lấy từ bộ chia tần. Giá trị đếm được
chứa trong TL0 cờ tràn TF1 được đặt bằng 1 và gây ngắt do timer 1

2. Các chế độ ngắt của timer 2
Chế độ tự thu nhận:
Khi CP/#RL2=1 chế độ thu nhận của timer 2 được chọn bởi bit EXEN2.
Xung clock cũng được lấy phụ thuộc vào C/#T2. Điều khiển hoạt động của timer 2 là
bit TR2. Giá trị đếm được chứa trong TH2 và TL2. khi xảy ra tràn TF2 được đặt bằng 1

Giá trị hiện thời của timer 2 nằm trong TH và TL sẽ được chuyển tương ứng vào RCAP2H
và RCAP2L
Chế độ nạp lại :
Chế độ này khi bit DCEN=0 timer 2 hoạt động như một timer 16 bit tự nạp lại.
Giá trị nạp lại được chứa trong RCAP2Hvaf RCAP2L. Sự kiện nạp lại khi
-

Xảy ra tràn khi có sự chuyển số đếm tư FFFFH đên 0

-

Có sự chuyển từ mức 1 xuống mức 0


Chế độ tạo tốc độ baud cho cổng nối tiếp:
Timer 2 có thể dùng để tạo tốc độ baud cho cổng nối tiếp trong thanh T2CON.
1.5 Cổng nối tiếp
1.5.1. Giới thiệu
AT89S52 có một cổng nối tiếp có thể hoạt động ở nhiều chế độ khác nhau. Chức năng
chủ yếu của cổng nối tiếp là thực hiện chuyển đổi song song sang nối tiếp và ngược lại.
1.5.2 Các thanh ghi của cổng nối tiếp



Thanh ghi điều khiển cổng nối tiếp

Bit

Kí hiệu


Địa chỉ

Mô tả

SCON.7

SM0

9FH

Bit 0 c họn chế độ cho port nối tiếp

SCON.6

SM1

9EH

Bit 1 chọn chế độ cho port nối tiếp
SM0SM1=00 chế độ 0
SM0SM1=01 chế độ 1
SM0SM1=10 chế độ 2
SM0SM1=11 chế độ 3

SCON.5

SM2

9DH


Bit 2 chọn chế độ cho cổng nối tiếp
Bít này cho phép truyền thông đa xử lý

SCON.4

REN

9CH

Bit cho phep thu REN phải được đặt bằng 1 để
cho phép nhận kí tự


SCON.3

TB8

9BH

Bit truyền thông thứ 9 sử dụng trong chế độ
UART 9bit

SCON.2

RB8

9AH

Biet nhận thứ 9 sử dụng trong chế độ UART
9bit


SCON.1

TI

99H

Cờ ngắt truyền TI được đặt bằng 1 bởi phần
cứng khi kết thúc việc truyền 1 kí tự TI được
xóa bằng phần mềm

SCON.0

RI

98H

Cờ ngắt truyền RI được đặt bằng 1 bởi phần
cứng khi kết thúc việc nhận 1 kí tự RI được
xóa bằng phần mềm

Thanh ghi đệm truyền nhận ở cổng nối tiếp
Thanh ghi này có chức năng đệm các kí tự khi chúng được nhận về từ cổng nối tiếp
hoặc truyền đi từ cổng nối tiếp việc truyền nhận qua cổng nối tiếp thực chất là việc truy
xuất thanh ghi này
1.5.3 . Các chế độ hoạt động


Chế độ 0


Chế độ 0 là chế độ mà cổng nối tiếp được dùng như 1 thanh ghi 8 bit. Dữ liệu được
truyền/ nhận nối tiếp trên chân RXD, chân TXD được dùng để phát xung clock dịch bit.
Bít có giá trị thấp nhất được truyền, nhận trước.


Chế độ 1

Trong chế độ 1 cổng nối tiếp hoạt động như bộ UART 8 bit cố tốc độ thay đổi. Dữ liệu


được truyền trên chân TXD và nhận trên chân RXD Với chế độ này, 1 khung truyền sẽ
gồm 10 bit, 8 bit dữ liệu, 1 bit start và 1 bit stop. Bít có giá trị thấp được truyền trước bít có
giá trị cao được truyền sau. Tốc độ baud có thể dùng timer 1 hoặc timer2 hoặc dung cả 2
timer nếu muốn nhận tốc độ khác nhau.
Chế độ 2



Ở chế độ 2, cổng nối tiếp được dùng như 1 bộ UART 9 bit, 1 khung truyền sẽ gồm 11 bit,
8 bit dữ liệu, 1 bit start, 1 bit stop và bit dữ liệu thứ 9 . chế độ này thường dùng khi cần
chèn thêm bit kiểm tra chẵn lẻ vào trong khung truyền để giảm bit lỗi đường truyền.
Chế độ 3



Chế độ 3 là sự kết hợp giữa chế độ 1 và chế độ 2. Nghĩa là cổng nối tiếp hoạt động
như bộ UART 9 bit và tốc độ baud UART la giống như chế độ 1.

1.6 Hoạt động ngắt
1.6.1. Tổ chức ngắt AT89S52

At89S52 gồm 6 nguồn ngắt:
 Ngắt ngoài INT0;
 Ngắt ngoài INT1;
 Ngắt do bộ timer 0;
 Ngắt do bộ timer 1;
 Ngắt do bộ timer 2;
 Ngắt do port nối tiếp;

Thanh ghi cho phép ngắt IE(interrupt enable)



EA

-

ET2

ES

ET1

EX1

ET0

EX0


Bit


Kí hiệu

Địa chỉ bit

Mô tả (1:cho phép, 0: cấm

IE.7

EA

AFH

Cho phép hoặc cấm toàn bộ

IE.6

-

AEH

Không được định nghĩa

IE.5

ET5

ADH

Cho phép ngắt từ timer 2


IE.4

ES

ACH

Cho phép ngắt trên port nối tiếp

IE.3

ET1

ABH

Cho phép ngắt từ timer 1

IE.2

EX1

AAH

Cho phép ngắt ngoài 1

IE.1

ET0

A9H


Cho phép ngắt từ timer 0

IE.0

EX0

A8H

Cho phép ngắt ngoài 0



Thanh ghi ưu tiên ngắt IP

Bit

Kí hiệu

Địa chỉ

IP.7

-

Không được định nghĩa

IP.6

-


Không được định nghĩa

IP.5

PT2

BDH

Mô tả

Ưu tiên ngắt từ timer 2


IP.4

PS

BCH

Ưu tiên ngắt từ port nối tiếp

IP.3

PT1

BBH

Ưu tiên cho ngắt từ timer 1


IP.2

PX1

BAH

Ưu tiên ngắt ngoài 1

IP.1

PT0

B9H

Ưu tiên ngắt từ timer 0

IP.0

PX0

B8H

Ưu tiên ngắt ngoài 0



Các vector ngắt

Khi một ngắt nào đó được thực hiện giá trị nạp vào PC được gọi là vector ngắt:
Ngắt


Cờ

Địa chỉ vector

Số hiệu

Ngắt ngoài 0

IE0

0003H

0

Timer 0

TF0

000BH

1

Ngắt ngoài 1

IE1

0013H

2


Timer1

TF1

001BH

3

Port nối tiếp

TI hoặc RI

0023H

4

Timer 2

TX2 hoặc EXF2

002BH

5

2.

ADC 0804



Sơ đồ chân của ADC0804
ADC0804 là bộ chuyển đổi tương tự sang số. Chíp có điện áp nuôi +5V và độ phân
giải 8bit gồm 20 chân:


CS (Chip select): Chân số 1, là chân chọn Chip, đầu vào tích cực mức thấp

được sử dụng để kích hoạt Chip ADC0804. Để truy cập ADC0804 thì chân
này phải ở mức thấp.



RD (Read): Chân số 2, là một tín hiệu vào, tích cực ở mức thấp.Các bộ chuyển

đổi đầu vào tương tự thành số nhị phân và giữ nó ở một thanhghi trong. RD được sử
dụng để có dữ liệu đã được chyển đổi tới đầu ra của



ADC0804. Khi CS = 0 nếu có một xung cao xuống thấp áp đến chân RD thì

dữ liệu ra dạng số 8 bit được đưa tới các chân dữ liệu (DB0 – DB7).


×