Ngày nay, với sự phát triển của khoa học kỹ thuật, trong cuộc sống hằng ngày
việc đo và đặt nhiệt độ theo mong muốn trong một không gian giới hạn nào đó như:
trong nhà máy, xí nghiệp, trong bệnh viện, trong công ty, nhà ở, là rất cần thiết theo
nhu cầu của con người. Điều đó chứng tỏ con người ngày càng muốn giao tiếp nhiều
hơn với môi trường.
Vì vậy, với những kiến thức đã học của ngành điện tử em xin chọn đề tài:
“Điều khiển nhiệt độ lò điện”. Với mục đích giữ nhiệt độ lò theo ý muốn. Bên cạnh
đó tìm hiểu về kỹ thuật tương tự, kỹ thuật số và vi xử lý.
Do kiến thức còn hạn hẹp nên trong quá trình thực hiên đề tài không thể tránh
những sai sót rất mong quý thầy cô bỏ qua và có hướng giúp đỡ để em có hướng đi cao
hơn sau này trong lĩnh vực nghiên cứu khoa học.
Em xin chân thành cám ơn:
Cô Đào Thị Thu Thủy đã tận tình hướng dẫn em trong suốt quá trình
thực hiện đề tài này.
Quý Thầy Cô trong Khoa Công Nghệ Điện Tử đã giúp cho em có nhiều
kiến thức để thực hiện đề tài.
GVHD: Đào Thị Thu Thủy
MỤC LỤC
Nội dung
Trang
LỜI NÓI ĐẦU---------------------------------------------------------------------------- 1
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ----------------------------------- 2
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ------------------------------------- 3
MỤC LỤC -------------------------------------------------------------------------------- 4
CHƯƠNG 1: LÝ THUYẾT ----------------------------------------------------------- 6
1. IC cảm biến nhiệt độ ---------------------------------------------------------------- 6
1.1. LM335, LM334 --------------------------------------------------------------- 6
1.2. Đặc tính của một số IC cảm biến nhiệt thông dụng ---------------------- 7
2. Bộ biến đổi ADC ---------------------------------------------------------------------- 7
2.1. Sơ đồ chân ADC0804 ----------------- --------------------------------------- 8
2.2. Chức năng các chân ADC0804 --------------------------------------------- 8
3. Tìm hiểu về P89V51RB2 ----------------------------------------------------------- 11
3.1. Sơ đồ khối P89V51RB2 ------------------------------------------------------ 11
3.2. Sơ đồ chân và chức năng các chân P89V51RB2 -------------------------- 12
3.2.1. Các Port --------------------------------------- -------------------------- 12
3.2.2. Các chân tín hiệu điều khiển---------------- -------------------------- 14
3.3. Tổ chức bộ nhớ ---------------------------------------------------------------- 15
3.3.1. Bộ nhớ trong ------------------------------------------------------------- 15
3.3.1.1. Bộ nhớ ROM ------------------------------------------------------ 16
3.3.1.2. Bộ nhớ RAM ----------------------------------------------------- 16
3.3.1.3. Các thang ghi chức năng đặc biệt ------------------------------ 17
3.3.2. Bộ nhớ ngoài------------------------------------------------------------- 20
3.4. Hoạt động Reset --------------------------------------------------------------- 22
3.5. Các tập lệnh -------------------------------------------------------------------- 23
3.6. Hoạt động của các port nối tiếp --------------------------------------------- 25
3.6.1. Thanh ghi đệm port nối tiếp (SBUF) --------------------------------- 25
3.6.2. Thanh ghi điều khiển Port nối tiếp SCON -------------------------- 25
3.6.3. Khởi động và truy xuất các thanh ghi Port nối tiếp ---------------- 27
CHƯƠNG 2: THIẾT KẾ VÀ THI CÔNG ----------------------------------------- 29
1. Tìm hiểu về đề tài -------------------------------------------------------------------- 29
1.1. Nhiệm vụ đặt ra ---------------------------------------------------------------- 29
1.2. Hướng giải quyết ------------------------------------------------------------- 29
2. Thiết kế phần cứng và nguyên lý hoạt động của các khối - ------------------ 29
2.1. Khối cảm biến nhiệt và khối ADC ------------------------------------------ 29
2.2. Khối xử lý và nút nhấn ------------------------------------------------------- 31
2.3. Khối điều khiển quạt, đèn --------------------------------------------------- 32
2.4. Khối hiển thị ------------------------------------------------------------------- 33
2.5. Khối nguồn --------------------------------------------------------------------- 33
2.6. Sơ đồ nguyên lý điều khiển nhiệt độ lò điện ------------------------------ 34
2.7. Sơ đồ mạch in điều khiển nhiệt độ lò điện -------------------------------- 34
3. Phần mềm và giải thuật ------------------------------------------------------------- 35
3.1. Phần mềm ---------------------------------------------------------------------- 35
3.2. Lưu đồ giải thuật- ------------------------------------------------------------- 35
CHƯƠNG 3: ĐÁNH GIÁ – KẾT LUẬN ------------------------------------------- 37
1. Kết quả thực hiện -------------------------------------------------------------------- 37
2. Khuyết điểm -------------------------------------------------------------------------- 37
3. Hướng khắc phục và phát triển --------------------------------------------------- 37
PHỤC LỤC ------------------------------------------------------------------------------- 39
TÀI LIỆU THAM KHẢO ------------------------------------------------------------- 46
45 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3340 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Điều khiển nhiệt độ lò điện, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
uyển về dòng điện hoặc điện áp qua một thiết
bị được gọi là các bộ biến đổi. Các bộ biến đổi cũng có thể coi như là các bộ cảm biến.
Mặc dù chỉ có các bộ cảm biến nhiệt, tốc độ, áp suất, ánh sáng và nhiều đại lượng tự
nhiên khác nhưng chúng đều cho ra các tín hiệu dạng dòng điện hoặc điện áp ở dạng
liên tục. Do vậy, ta cần một bộ chuyển đổi tương tự số sao cho bộ vi điều khiển có thể
đọc được chúng. Có hai loại được sử dụng rộng rãi nhất là ADC0809 và ADC0804.
2.1. Sơ đồ chân ADC0804:
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 8
Chíp ADC0804 là bộ chuyển đổi tương tự số trong họ các loạt ADC800 từ hãng
National Semiconductor. Nó cũng được nhiều hãng khác sản xuất, nó làm việc với
+5V và có độ phân giải 8 bit. Ngoài độ phân giải thì thời gian chuyển đổi cũng là một
yếu tố quan trọng khác khi đánh giá một bộ ADC. Thời gian chuyển đổi được định
nghĩa như là thời gian mà bộ ADC cần để chuyển một đầu vào tương tự thành một số
nhị phân. Trong ADC0804 thời gian chuyển đổi thay đổi phụ thuộc vào tần số đồng hồ
được cấp tới chân CLK R và CLK IN nhưng không thể nhanh hơn 110 sμ . Các chân
của ADC0804 được mô tả như sau:
Hình 1.3: Sơ đồ chân ADC0804
2.2. Chức năng các chân ADC0804:
Chân CS (chân số 1) – chọn chíp: Là một đầu vào tích cực mức thấp
được sử dụng để kích hoạt chíp ADC0804. Để truy cập ADC0804 thì chân này phải ở
mức thấp.
Chân RD (chân số 2): Đây là một tín hiệu đầu vào được tích cực mức
thấp. Các bộ ADC chuyển đổi đầu vào tương tự thành số nhị phân tương đương với nó
và giữ nó trong một thanh ghi trong. RD được sử dụng để nhận dữ liệu được chuyển
đổi ở đầu ra của ADC0804. Khi 0CS = nếu một xung cao – xuống – thấp được áp đến
chân RD thì đầu ra số 8 bit được hiển diện ở các chân dữ liệu D0 – D7. Chân RD cũng
được coi như cho phép đầu ra.
Chân ghi WR (chân số 3. Thực ra tên chính xác là “Bắt đầu chuyển
đổi”): Đây là chân đầu vào tích cực mức thấp được dùng để báo cho ADC0804 bắt đầu
quá trình chuyển đổi. Nếu CS = 0 khi WR tạo ra xung cao – xuống – thấp thì bộ
ADC0804 bắt đầu chuyển đổi giá trị đầu vào tương tự Vin về số nhị phấn 8 bit. Lượng
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 9
thời gian cần thiết để chuyển đổi thay đổi phụ thuộc vào tần số đưa đến chân CLK IN
và CLK R. Khi việc chuyển đổi dữ liệu được hoàn tất thì chân INTR được ép xuống
thấp bởi ADC0804.
Chân CLK IN (chân số 4) và CLK R (chân số 19): Chân CLK IN là một
chân đầu vào được nối tới một nguồn đồng hồ ngoài khi đồng hồ ngoài được sử dụng
để tạo ra thời gian. Tuy nhiên ADC0804 cũng có một máy tạo xung đồng hồ. Để sử
dụng máy tạo xung đồng hồ trong của ADC0804 thì các chân CLK IN và CLK R được
nối tới một tụ điện và một điện trở (hình 1.4). Trong trường hợp này tần số đồng hồ
được xác định bằng biểu thức:
1
1,1
f
RC
=
Hình 1.4: Kiểm tra ADC0804 ở chế độ chạy tự do
Giá trị tiêu biểu của các đại lượng trên là R = 10k Ω và C = 150pF và tần số
nhận được là f = 606kHz và thời gian chuyển đổi sẽ mất là 110 sμ .
Chân ngắt INTR (chân số 5): Đây là chân đầu ra tích cực mức thấp. Bình
thường nó ở trạng thái cao và khi việc chuyển đổi hoàn tất thì nó xuống thấp để báo
cho CPU biết là dữ liệu được chuyển đổi sẵn sàng để lấy đi. Sau khi INTR xuống thấp,
ta đặt CS = 0 và gửi một xung cao xuống – thấp tới chân RD lấy dữ liệu ra của
ADC0804.
Chân Vin (+) và Vin (-):
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 10
Đây là các đầu vào tương tự vi sai mà Vin = Vin(+) – Vin(-). Thông thường Vin(-)
được nối xuống đất và Vin (+) được dùng như đầu vào tương tự chuyển đổi về dạng số.
Chân VCC (chân số 20): Đây là chân nguồn nối +5V, nó cũng được dùng
như điện áp tham chiếu khi đầu vào /2REFV (chân số 9) để hở.
Chân /2REFV (chân số 9): Là một điện áp đầu vào được dùng cho điện áp
tham chiếu. Nếu chân này hở (không được nối) thì điện áp đầu vào tương tự cho
ADC0804 nằm trong dãy 0 5V→ (giống như chân VCC). Tuy nhiên, có nhiều ứng dụng
mà đầu vào tương tự áp đến Vin cần phải khác ngoài dãy 0 → 5V. Chân /2REFV được
dùng để thực thi các điện áp đầu vào khác ngoài dãy 0 →5V. Ví dụ: Nếu dãy đầu vào
tương tự cần phải là 0 →4V thì /2REFV được nối với +2V.
Hình 1.5 : Biểu diễn dãy điện áp Vin đối với các đầu vào /2REFV khác nhau.
Các chân dữ liệu D0 – D7 (Từ chân 11 đến chân 18):
Các chân dữ liệu D0 – D7 (D7 là các bit cao nhất MSB và D0 là bit thấp
LSB) là các chân đầu ra dữ liệu số. Đây là những chân được đệm ba trạng thái và dữ
liệu được chuyển đổi chỉ được truy cập khi chân CS = 0 và chân RD bị đưa xuống
thấp.
Để tính điện áp đầu ra ta có thể sử dụng công thức sau:
Với Dout là đầu ra dữ liệu số (dạng thập phân). Vin là điện áp đầu vào tương tự và độ
phân dãy là sự thay đổi nhỏ nhất được tính như là (2x /2REFV ) chia cho 256 đối với ADC
8 bit.
Chân GND (chân số 10):
Đây là những chân đầu vào cấp đất chung cho cả tín hiệu số và tương tự. Đất
tương tự được nối tới đất của chân Vin tương tự, còn đất số được nối tới đất của chân
VCC. Lý do mà ta phải có hai đất là để cách ly tín hiệu tương tự Vin từ các điện áp ký
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 11
sinh tạo ra việc chuyển mạch số được chính xác. Trong phần trình bày thì các chân
được nối chung với một đất. Tuy nhiên, trong thực tế thu đo dữ liệu các chân đất này
được nối tách biệt.
Từ những điều trên ta kết luận rằng các bước cần phải thực hiện khi chuyển đổi
dữ liệu bởi ADC0804 là:
9 Bật CS = 0 và gửi một xung thấp lên cao tới chân WR để bắt đầu chuyển
đổi.
9 Duy trì hiển thị chân INTR . Nếu INTR xuống thấp thì việc chuyển đổi
được hoàn tất và ta có thể sang bước kế tiếp. Nếu INTR cao tiếp tục thăm dò cho đến
khi nó xuống thấp.
9 Sau khi chân INTR xuống thấp, ta bật CS = 0 và gửi một xung cao
xuống thấp đến chân RD để lấy dữ liệu ra khỏi chip ADC0804. Phân chia thời gian
cho quá trình này được trình bày như hình 1.6.
Hình 1.6: Phân chia thời gian đọc và ghi của ADC0804
3. Tìm hiểu về P89V51RB2:
Là bộ vi điều khiển của Philips Corporation. Đây là một phiên bản cải tiến sử
dụng CPU là bộ vi điều khiển 80C51 với nhiều tính năng vượt trội: Dung lượng
ROM/RAM trên chip rất lớn, 3 Timer 16 bit + 1 Watch-dog Timer, 2 thanh ghi DPTR,
8 nguồn ngắt, PWM (Pulse Width Modulator), SPI (Serial Peripheral Interface) và đặc
biệt là bộ nhớ chương trình trên chip có tính năng ISP (In-System Programming) và
IAP (In-Application Programming),…
3.1. Sơ đồ khối:
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 12
3.2. Sơ đồ chân và chức năng các chân P89V51RB2:
P89V51RB2 có 40 chân trong đó 32 chân có công dụng xuất/nhập. Trong 32
chân đó có 24 chân có tác dụng kép (Nghĩa là 1 chân có 2 chức năng), mỗi một đường
có thể hoạt động xuất/nhập, hoạt động như một đường điều khiển hoặc hoạt động như
một đường địa chỉ/dữ liệu của bus địa chỉ/dữ liệu đa hợp.
Hình 1.8: Sơ đồ chân P89V51RB2
3.2.1. Các Port:
Hình 1.7: Sơ đồ khối của 89V51RB2
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 13
Port 0:
- Port 0 (P0.0 – P0.7) có số chân từ 32 – 39.
- Port 0 có chức năng xuất nhập dữ liệu (P0.0 – P0.7) trong các thiết kế cỡ
nhỏ không sử dụng bộ nhớ ngoài.
- Port 0 có chức năng là bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 –
AD7) trong các thiết kế cỡ lớn có sử dụng bộ nhớ ngoài.
Port 1:
- Port 1 (P1.0 – P1.7) có số chân từ 1 – 8.
- Port 1 là port xuất nhập dữ liệu (P1.0 – P1.7) khi sử dụng hoặc không sử
dụng bộ nhớ ngoài.
Port 2:
- Port 2 (P2.0 – P2.7) có số chân từ 21 – 28.
- Port 2 có chức năng là port xuất nhập dữ liệu (P2.0 – P2.7) khi không sử
dụng bộ nhớ ngoài.
- Port 2 có chức năng là bus địa chỉ byte cao (A8 - A15) khi sử dụng bộ nhớ
ngoài.
Port 3:
- Port 3 (P3.0 – P3.7) có số chân từ 10 – 17.
- Port 3 có chức năng xuất nhập dữ liệu (P3.0 – P3.7) khi không sử dụng bộ
nhớ ngoài hoặc các chức năng đặc biệt.
- Port 3 có chức năng là các tín hiệu điều khiển khi sử dụng bộ nhớ ngoài
hoặc các chức năng đặc biệt.
- Chức năng của các chân port 3:
Bit Tên Địa chỉ bit Chức năng
P3.0 RxD B0H Chân nhận dữ liệu của port nối tiếp.
P3.1 TxD B1H Chân phát dữ liệu của port nối tiếp.
P3.2 INT0\ B2H Ngõ vào ngắt ngoài 0.
P3.3 INT1\ B3H Ngõ vào ngắt ngoài 1.
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 14
P3.4 T0 B4H Ngõ vào của bộ định thời/ đếm 0.
P3.5 T1 B5H Ngõ vào của bộ định thời/ đếm 1.
P3.6 WR\ B6H Điều khiển ghi vào RAM ngoài.
P3.7 RD\ B7H Điều khiển đọc từ RAM ngoài.
Bảng 1.9: Bảng tóm tắt chức năng các chân của Port 3
3.2.2. Các chân tín hiệu điều khiển:
Chân PSEN\:
- PSEN (Program Store Enable): Cho phép bộ nhớ chương trình, chân số 29.
- Chân PSEN\: Có chức năng là tín hiệu cho phép truy xuất (đọc) bộ nhớ
chương trình (ROM) ngoài hoặc là tín hiệu truy xuất, tích cực mức thấp.
- PSEN ở mức thấp trong thời gian CPU tìm - nạp lệnh từ ROM ngoài. Khi
CPU sử dụng ROM trong, PSEN sẽ ở mức cao.
- Khi sử dụng bộ nhớ chương trình bên ngoài, chân PSEN\ thường được nối
với chân OE\ của ROM ngoài để cho phép CPU đọc mã lệnh từ ROM ngoài.
Chân ALE:
- ALE (Address Latch Enable): Cho phép chốt địa chỉ, chân số 30.
- Chân ALE có chức năng là tín hiệu cho phép chốt địa chỉ để thực hiện việc
giải đa hợp cho bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7). Ngoài ra
chân ALE còn là tín hiệu xuất, tích cực mức cao.
- Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chíp và
có thể được dùng làm tín hiệu clock cho các phần khác của hệ thống. Chân ALE được
dùng làm ngõ vào xung lập trình (PGM\).
Chân EA\:
- EA ( External Access): Truy xuất ngoài, chân số 31.
- Tín hiệu vào EA\ thường được mắc lên mức 1 hoặc mức 0. Nếu ở mức 1,
89V51RB2 thi hành chương trình từ ROM nội. Nếu ở mức 0, 89V51RB2 thi hành
chương trình từ ROM ngoài.
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 15
- Khi lập trình cho ROM trong chip thì chân EA đóng vai trò là ngõ vào của
điện áp lập trình (Vpp = 12V – 12,5V cho 89V51RB2).
Chân Reset:
- RST (Reset): Thiết lập lại, chân số 9.
- Khi ngõ vào RST đưa lên cao ít nhất 2 chu kỳ máy, 89V51RB2 thiết lập lại
trạng thái ban đầu. Khi ngõ vào RST ở mức thấp IC hoạt động bình thuờng.
Chân XTAL1, XTAL2:
- XTAL (Crystal): Tinh thể thạch anh, chân số 18 – 19.
- XTAL1: Ngõ vào mạch tạo xung clock trong chip.
- XTAL2: Ngõ ra mạch tạo xung clock trong chip.
- Bộ dao động được tích hợp bên trong 89V51RB2, khi sử dụng 89V51RB2
người thiết kế chỉ cần nối thêm thạch anh (Tần số thạch anh thường sử dụng là
12MHZ) và tụ.
Chân VCC, GND:
- VCC, GND: Nguồn cung cấp điện, chân số 40 và 20.
- VCC = +5V ± 10% và GND = 0V.
3.3. Tổ chức bộ nhớ:
SFR
80H
7FH
00H
Bộ nhớ
chương
trình
(mã)
FFFH
000H
Bộ nhớ trong chip
PSEN\
ª
WR\ RD\
ª ª
Bộ nhớ
chương
trình
(mã)
FFFFH
0000H
Bộ nhớ
dữ liệu
Bộ nhớ ngoài chip
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 16
Hình 1.10: Tóm tắt các vùng nhớ của 89V51RB2
3.3.1. Bộ nhớ trong:
Bộ nhớ trong 89V51RB2 bao gồm ROM và RAM. RAM trong 89V51RB2 bao
gồm nhiều thành phần: RAM đa chức năng, RAM định địa chỉ bit và các dãy thanh
ghi.
3.3.1.1. Bộ nhớ ROM (Bộ nhớ chương trình):
Bộ nhớ chương trình dùng để lưu trữ chương trình điều khiển cho chip hoạt
động.
3.3.1.2. Bộ nhớ RAM (Bộ nhớ dữ liệu):
Bộ nhớ dữ liệu dùng để lưu trữ các dữ liệu và tham số.
RAM đa chức năng:
- Trên hình vẽ cho thấy 80 byte RAM đa chức năng chiếm địa chỉ từ 30H
đến 7FH.
- Mọi địa chỉ trong vùng RAM đa chức năng đều có thể truy xuất tự do
dùng kiểu định địa chỉ trực tiếp hoặc gián tiếp.
RAM định địa chỉ bit:
- RAM định địa chỉ bit gồm 128 bit được định địa chỉ chứa các byte có địa
chỉ từ 20H đến 2FH.
- RAM định địa chỉ bit có 3 kiểu truy xuất dữ liệu: trực tiếp, gián tiếp hoặc
theo từng bit.
Các dãy thanh ghi:
- 32 vị trí thấp của bộ nhớ nội chứa các dãy thanh ghi. Các lệnh của
89V51RB2 hỗ trợ 8 thanh ghi từ R0 – R7 thuộc dãy 0 và theo mặc định sau khi Reset
hệ thống các thanh ghi này ở các địa chỉ từ 00H đến 07H.
- Các lệnh dùng các thanh ghi R0 đến R7 sẽ ngắn hơn và nhanh hơn so với
các lệnh có chức năng tương ứng dùng kiểu địa chỉ trực tiếp. Các dữ liệu được dùng
thường xuyên nên dùng một trong các thanh ghi này.
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 17
- Do có 4 dãy thanh ghi nên tại một thời điểm chỉ có một dãy thanh ghi
tích cực. Dãy thanh ghi tích cực có thể được thay đổi bằng cách thay đổi bit chọn dãy
trong từ trạng thái chương trình PSW.
3.3.1.3. Các thang ghi chức năng đặc biệt:
- Các thanh ghi nội của hầu hết các bộ vi xử lý đều được truy xuất rõ ràng
bởi một tập lệnh.
- Các thanh ghi nội của 89V51RB2 được cấu hình thành một phần của RAM
trên chip, vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi bộ đếm chương
trình và thanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp). Cũng như
các thanh ghi từ R0 đến R7, ta có 21 thanh ghi chức năng đặc biệt (SFR: Special
Function Register) chiếm phần trên của RAM nội từ địa chỉ 80H đến FFH.
- Ngoại trừ thanh ghi A có thể được truy xuất rõ ràng còn lại hầu hết các
thanh ghi chức năng đặc biệt được truy xuất bằng kiểu định địa chỉ trực tiếp.
Thanh ghi từ PSW (Program Status Word):
Bit Ký hiệu Địa chỉ Mô tả bit
PSW.7 CY D7H Cờ nhớ
PSW.6 AC D6H Cờ nhớ phụ
PSW.5 F0 D5H Cờ 0
PSW.4 RS1 D4H Chọn dãy thanh ghi (bit 1)
PSW.3 RS0 D3H Chọn dãy thanh ghi (bit 0):
00 = dãy 0: địa chỉ từ 00H đến 07H
01 = dãy 1: địa chỉ từ 08H đến 0FH
10 = dãy 2: địa chỉ từ 10H đến 17H
11 = dãy 2: địa chỉ từ 18H đến 1FH
PSW.2 OV D2H Cờ tràn
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 18
PSW.1 - D1H Dự trữ
PSW.0 P D0H Cờ kiểm tra chẵn lẻ
Bảng1.11: Thanh ghi PSW
Thanh ghi A:
- Thanh ghi A là thanh ghi tích lũy có công dụng chứa dữ liệu của các
phép toán mà vi điều khiển xử lý. Ví dụ lệnh MUL AB sẽ nhân những giá trị không
dấu 8 bit có trong hai thanh ghi A và B, rồi trả về kết quả 16 bit trong A (byte thấp) và
B (byte cao). Lệnh DIV AB sẽ lấy A chia B, kết quả số nguyên đặt vào A, số dư đặt
vào B.
- Thanh ghi A có địa chỉ byte là E0H và địa chỉ bit từ E0H – E7H.
Thanh ghi B:
- Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi A cho các phép
toán nhân chia.
- Thanh ghi B có thể được dùng như một thanh ghi đệm trung gian đa mục
đích. Nó là những bit định vị thông qua những địa chỉ từ F0H – F7H.
Thanh ghi SP:
- Con trỏ ngăn xếp (SP: Stack Pointer) là một thanh ghi 8 bit ở địa chỉ byte
là 81H, dùng để lưu trữ tạm thời các dữ liệu. Đây là thanh ghi không định địa chỉ bit.
Thanh ghi này chứa địa chỉ của byte dữ liệu hiện hành trên đỉnh ngăn xếp. Các lệnh
trên ngăn xếp bao gồm lệnh cất dữ liệu vào ngăn xếp (PUSH) và lệnh lấy dữ liệu ra
khỏi ngăn xếp (POP). Lệnh cất dữ liệu vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ
liệu và lệnh lấy ra khỏi ngăn xếp sẽ làm giảm SP. Đối với chip 8051 thì vùng nhớ
được dùng để làm ngăn xếp được lưu giữ trong RAM nội.
- Để sử dụng ngăn xếp thì ta phải khởi động thanh ghi SP (nghĩa là nạp giá
trị cho thanh ghi SP) → vùng nhớ của ngăn xếp có địa chỉ bắt đầu là (SP) +1 và địa
chỉ kết thúc là 7FH.
- Sau khi reset IC, SP sẽ mang giá trị mặc định là 07H và dữ liệu đầu tiên
sẽ được cất vào ô nhớ ngăn xếp có địa chỉ 08H. Nếu phần mềm ứng dụng không khởi
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 19
động SP một giá trị mới thì dãy thanh ghi 1, có thể cả 2 và 3 sẽ không dùng được vì
vùng RAM này đã được dùng làm ngăn xếp. Ngăn xếp được truy xuất trực tiếp bằng
các lệnh PUSH và POP để lưu trữ tạm thời và lấy lại dữ liệu, hoặc truy xuất ngầm
bằng lệnh gọi chương trình con (ACALL, LCALL) và các lệnh trở về (RET, RETI) để
lưu trữ giá trị của bộ đếm chương trình khi bắt đầu thực hiện chương trình con và lấy
lại khi kết thúc chương trình con.
Thanh ghi DPTR:
- Con trỏ dữ liệu (DPTR: Data Pointer Register) là thanh ghi 16 bit chứa
địa chỉ của ô nhớ cần truy xuất thuộc ROM trong hoặc ngoài và RAM ngoài.
- Thanh ghi DPTR có địa chỉ byte là 82H (DPL: byte thấp) và 83H (DPH:
byte cao). Thanh ghi này không định địa chỉ bit.
Thanh ghi port xuất nhập:
Các Port của P89V51RB2 bao gồm Port 0 ở địa chỉ 80H, Port 1 ở địa chỉ
90H, Port 2 ở địa chỉ A0H, Port 3 ở địa chỉ B0H. Tất cả các Port này đều có thể truy
xuất từng bit nên rất thuận tiện trong khả năng giao tiếp.
Thanh ghi port nối tiếp:
P89V51RB2 chứa một port nối tiếp cho việc trao đổi thông tin với các
thiết bị nối tiếp như máy tính hoặc giao tiếp nối tiếp với các IC khác. Một thanh ghi
đệm dữ liệu nối tiếp (SBUF: Serial Buffer) ở địa chỉ 99H sẽ giữ cả dữ liệu truyền và
dữ liệu nhận. Khi truyền dữ liệu thì ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF.
Ngoài ra còn có thanh ghi điều khiển port nối tiếp (SCON: Serial Control) có địa chỉ
byte 98H dùng để báo trạng thái và điều khiển quá trình hoạt động của port nối tiếp.
Thanh ghi định thời:
89V51RB2 có chứa hai bộ định thời/bộ đếm 16 bit được dùng cho việc
định thời hoặc đếm sự kiện. Timer 0 ở địa chỉ 8AH (TL0: byte thấp) và 8CH (TH0:
byte cao). Timer 1 ở địa chỉ 8BH (TL1: byte thấp) và 8DH (TH1: byte cao). Việc khởi
động Timer được SET bởi Timer Mode (TMOD) ở địa chỉ 89H và thanh ghi điều
khiển Timer (TCON) ở địa chỉ 88H. Chỉ có TCON được địa chỉ hoá từng bit.
Thanh ghi ngắt:
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 20
- Thanh ghi IE (Interrupt Enable: Cho phép ngắt) có địa chỉ byte A8H và
địa chỉ bit A8H – AFH có công dụng cho phép hoặc không cho phép các ngắt hoạt
động (có thể từng ngắt riêng rẽ hoặc tất cả các ngắt).
- Thanh ghi IP (Interrup Priority: Ưu tiên ngắt) có địa chỉ byte B8H và địa
chỉ bit B8H – BCH có công dụng thiết lập mức ưu tiên cho các ngắt (ưu tiên thấp hoặc
ưu tiên cao).
Thanh ghi điều khiển nguồn:
Thanh ghi PCON (Power Control: Điều khiển nguồn) không có bit định
vị. Nó ở địa chỉ 87H chứa nhiều bit điều khiển. Thanh ghi PCON được tóm tắt như
sau:
• Bit 7 (SMOD) → cho phép tăng gấp đôi tốc độ truyền dữ liệu nối tiếp
(tốc độ baud) khi SMOD = 1.
• Bit 6, 5, 4 → không có địa chỉ.
• Bit 3, 2 (GF1, GF0) → cho phép người lập trình dùng với mục đích
riêng.
• Bit 1 (PD) → dùng để quy định chế độ nguồn giảm.
• Bit 0 (IDL) → dùng để quy định chế độ nghỉ.
Các bit điều khiển Power Down và Idle có tác dụng chính trong tất cả các
IC họ MCS – 51 nhưng chỉ được thi hành trong sự biên dịch của CMOD.
3.3.2. Bộ nhớ ngoài:
- 89V51RB2 có khả năng mở rộng không gian bộ nhớ chương trình lên đến
64KB và không gian bộ nhớ dữ liệu lên đến 64KB.
- Khi dùng bộ nhớ ngoài, Port 0 không còn chức năng I/O nữa mà đó là bus
địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7). Port 2 là bus địa chỉ byte cao
(A8 - A15). Port 3 là các tín hiệu điều khiển (WR\, RD\).
Kết nối và truy xuất bộ nhớ dữ liệu ngoài:
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 21
Hình 1.12: Sơ đồ kết nối và truy xuất bộ nhớ dữ liệu ngoài
Bộ nhớ dữ liệu ngoài là bộ nhớ đọc/ghi được cho phép bởi các tín hiệu RD\ và
WR\ ở các chân P3.7 và P3.6. Lệnh dùng để truy xuất bộ nhớ dữ liệu ngoài là MOVX,
sử dụng con trỏ dữ liệu 16 bit DPTR hoặc R0, R1 làm thanh ghi chứa địa chỉ.
Giải mã địa chỉ:
Nếu trường hợp ROM và RAM được kết hợp từ nhiều bộ nhớ có dung
lượng nhỏ hoặc cả hai giao tiếp với chip 89V51 thì cần phải giải mã địa chỉ. Việc giải
mã này cần cho hầu hết các bộ vi xử lý.
Ví dụ nếu các ROM và RAM có dung lượng 8KB được sử dụng thì tầm
địa chỉ mà chip 89V51 quản lý (0000H – FFFFH) cần phải được giải mã thành từng
đoạn 8KB để chip có thể chọn từng IC nhớ trên các giới hạn 8KB tương ứng: IC1:
0000H – 1FFFH, IC2: 2000H – 3FFFH,…
IC chuyên dùng cho việc tạo tín hiệu giải mã là 74HC138, các ngõ ra của
IC này lần lượt nối với các ngõ vào chọn chip CS\ tương ứng của các IC nhớ để cho
các IC nhớ hoạt động (tại một thời điểm chỉ có một IC nhớ được phép hoạt động). Cần
lưu ý là do các đường cho phép IC nhớ hoạt động riêng lẻ cho từng loại (PSEN\ cho bộ
D0 – D7
A0 – A7
CS\
A8– A15
OE\
RAM 64KB
WR\
D Q
G
74373
AD0 – AD7
EA\
ALE
A8 – A15
RD\
8951
WR\
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 22
R2
8K2
VCC
RESET
0
R1
100 C3
10uF
nhớ chương trình, RD\ và WR\ cho bộ nhớ dữ liệu) nên 89V51 có thể quản lý không
gian nhớ lên đến 64KB cho ROM và 64KB cho RAM.
Các không gian nhớ chương trình và dữ liệu gối nhau:
Vì bộ nhớ chương trình là bộ nhớ chỉ đọc, một tình huống khó xử được
phát sinh trong quá trình phát triển phần mềm cho 8951. Làm thế nào phần mềm được
viết cho một hệ thống đích để gỡ rối nếu phần mềm chỉ có thể được thực thi từ không
gian bộ nhớ chương trình chỉ đọc.
Giải pháp tổng quát là cho các bộ nhớ chương trình và dữ liệu ngoài gối
lên nhau. Vì PSEN\ được dùng để đọc chương trình và RD\ được dùng để đọc bộ nhớ
dữ liệu, một RAM có thể chiếm không gian nhớ chương trình và dữ liệu bằng cách nối
chân OE\ tới ngõ ra cổng AND có các ngõ vào là PSEN\ và RD\.
3.4. Hoạt động Reset:
Hình 1.13: Hoạt động Reset
89V51RB2 có ngõ vào Reset tác động ở mức cao trong khoảng thời gian 2 chu
kỳ xung máy, sau đó xuống mức thấp để 89V51RB2 bắt đầu làm việc. RST có thể kích
bằng tay bởi một nút nhấn thường hở hoặc RST khi cấp nguồn.
Trạng thái của các thanh ghi sau khi Reset hệ thống:
Bộ đếm chương trình (PC) 0000H
Thanh ghi A 00H
Thanh ghi B 00H
Thanh ghi PSW 00H
Thanh ghi SP 07H
Thanh ghi DPTR 0000H
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 23
Port 0 – Port3 FFH
Thanh ghi IP xxx00000B
Thanh ghi IE 0xx00000B
Các thanh ghi định thời 00H
Thanh ghi SCON 00H
Thanh ghi SBUF 00H
Thanh ghi PCON (HMOS) 0xxxxxxxB
Thanh ghi PCON (CMOS) 0xxx0000B
3.5. Các tập lệnh:
Các lệnh số hoc:
ADD A,
SUBB A,
INC
DEC
MUL AB : (A) ← LOW [(A) x (B)]; có ảnh hưởng cờ OV
: (B) ← HIGH [(A) x (B)]; cờ Carry được xoá
DIV AB : (A) ← Integer result of [(A) / (B)]; cờ OV
: (B) ← Remainder of [(A) / (B)]; cờ Carry xoá.
Các lệnh logic:
Tất cả các lệnh logic sử dụng thanh ghi A như là một trong những toán hạng
thực thi một chu kì máy, ngoài A mất 2 chu kì máy. Những hoạt động logic có thể
được thực hiện trên bất kì byte nào trong vị trí nhớ dữ liệu nội mà không thông qua
thanh ghi A.
Các hoạt động logic được tóm tắt như sau:
ANL ,
ORL ,
XRL ,
RL A : Quay thanh ghi A qua trái 1 bit
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 24
RLC A : Quay vòng thanh ghi A qua trái 1 bit có cờ Carry
RR A : Quay thanh A ghi sang phải 1 bit
Các lệnh rẽ nhánh:
JC Rel : Nhảy đến “Rel” nếu cờ carry C = 1.
JNC Rel : Nhảy đến “Rel” nếu cờ Carry C = 0
JB bit, rel : Nhảy đến “Rel” nếu (bit) = 1
JNB bit, rel : Nhảy đến “rel” nếu (bit) = 0
JBC bit, rel : Nhảy đến “rel” nếu (bit) = 1 và xoá bit.
ACALL addr 11 : Lệnh gọi tuyệt đối trong Page 2K
LCAL Addr 16 : Lệnh gọi dài chương trình con trong 64 K
RET : Kết thúc chương trình con trở về chương trình chính.
RETI : Kết thúc thủ tục phục vụ ngắt quay về chương trình chính
AJMP addr11 : Nhảy tuyệt đối không điều kiện trong 2 K
LJMP addr16 : Nhảy dài không điều kiện trong 64 K
SJMP rel : Nhảy ngắn không điều kiện trong (-128 ÷ 127) byte.
CJNE A, direct, rel : so sánh và nhảy đến A nếu A ≠ direct
DJNE Rn, rel : Giảm Rn và nhảy nếu Rn ≠ 0
DJNZ direct, rel : Giảm và nhảy nếu direct ≠ 0
Các lệnh dịch chuyển dữ liệu:
Các lệnh dịch chuyển dữ liệu trong những vùng nhớ nội thực thi 1 hoặc 2 chu
kỳ máy. Mẫu lệnh MOV , cho phép di chuyển dữ liệu bất kỳ 2
vùng nhớ nào của RAM nội hoặc các vùng nhớ của các thanh ghi chức năng đặc biệt
mà không thông qua thanh ghi A. Vùng Stack của 8051 chỉ chứa 128 byte RAM nội,
nếu con trỏ Stack SP được tăng quá địa chỉ 7FH thì các byte được PUSH vào sẽ mất đi
vào các byte POP ra thì không biết rõ.
Các lệnh dịch chuyển bộ nhớ nội và bộ nhớ ngoại dùng sự định vị gián tiếp.
Địa chỉ gián tiếp có thể dùng địa chỉ 1 byte (@ Ri) hoặc địa chỉ 2 byte (@ DPTR). Tất
cả các lệnh dịch chuyển hoạt động trên toàn bộ nhớ ngoài thực thi trong 2 chu kỳ máy
và dùng thanh ghi A làm toán hạng DESTINATION.
Việc đọc và ghi RAM ngoài (RD và WR) chỉ tích cực trong suốt quá trình
thực thi của lệnh MOVX, còn bình thường RD và WR không tích cực (mức 1).
Các lệnh luận lý:
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 25
CLR C : Xoá cờ Carry xuống 0. Có ảnh hưởng cờ Carry.
CLR BIT : Xoá bit xuống 0. Không ảnh hưởng cờ Carry.
SET C : Set cờ Carry lên 1. Có ảnh hưởng cờ Carry.
SET BIT : Set bit lên 1. Không ảnh hưởng cờ Carry.
CPL C : Đảo bit cờ Carry. Có ảnh hưởng cờ Carry.
CPL BIT : Đảo bit. Không ảnh hưởng cờ Carry.
ANL C, BIT : Có ảnh hưởng cờ Carry.
ANL C, BIT : Không ảnh hưởng cờ Carry.
ORL C, BIT : Tác động cờ Carry.
ORL C, : Tác động cờ Carry.
MOV C, BIT : Cờ Carry bị tác động.
MOV BIT, C : Không ảnh hưởng cờ Carry.
3.6. Hoạt động của các port nối tiếp:
Port nối tiếp tham dự hoạt động đầy đủ (sự phát và thu cùng lúc), và thu vào bộ
đệm mà nó cho phép 1 ký tự nhận vào và được cất ở bộ đệm trong khi ký tự thứ hai
được nhận vào. Nếu CPU đọc ký tự thứ nhất trước khi ký tự thứ hai được nhận vào
hoàn toàn thì dữ liệu không bị mất.
3.6.1. Thanh ghi đệm port nối tiếp (SBUF):
Thanh ghi SBUF (Serial Buffer Register): Được dùng để lưu giữ dữ liệu cần
phát đi và dữ liệu đã nhận được. Việc ghi dữ liệu lên thanh ghi SBUF sẽ nạp dữ liệu để
phát đi và việc đọc dữ liệu từ thanh ghi SBUF sẽ truy xuất dữ liệu đã thu được.
Thanh ghi SBUF bao gồm 2 thanh ghi:
- Thanh ghi phát (Bộ đệm phát): Dùng để lưu giữ dữ liệu cần phát đi.
- Thanh ghi thu (Bộ đệm thu): Dùng để lưu giữ dữ liệu đã được nhận.
3.6.2. Thanh ghi điều khiển Port nối tiếp SCON:
Mode hoạt động của Port nối tiếp được set bởi việc ghi lên thanh ghi mode
của Port nối tiếp SCON ở địa chỉ 99H. Bảng tóm tắt thanh ghi điều khiển Port nối tiếp
SCON như sau:
Bit Ký
hiệu
Địa
chỉ
Mô tả hoạt động
SCON.7 SM0 9FH Bit 0 của mode Port nối tiếp
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 26
Hình 1.14: Chức năng thanh ghi SCON
SM0 SM1 MODE MÔ TẢ TỐC ĐỘ BAUD
0 0 0 Thanh ghi dịch Cố định (tần số dao động/12)
0 1 1 UART 8 bit Thay đổi (thiết lập bởi bộ định thời)
1 0 2 UART 9 bit Cố định (tần số dao động /12 hoặc
/64)
1 1 3 UART 9 bit Thay đổi (thiết lập bởi bộ định thời)
Hình 1.15: Các chế độ hoạt động của Port nối tiếp
Trước khi dùng Port nối tiếp, SCON phải được định đúng chế độ. VD: Để khởi
tạo Port nối tiếp chế độ 1 (SM0/SM1 = 0/1), cho phép thu (REN = 1), và set cờ ngắt
của việc phát sẵn sàng hoạt động (TI = 1), ta dùng lệnh sau :
MOV SCON, #01010010H.
Port nối tiếp của 89V51RB2 có 4 mode hoạt động tùy thuộc theo trạng thái của
SM0/SM1.
Ba trong 4 mode cho phép truyền động bộ với mỗi ký tự thu hoặc phát sẽ được
bố trí bởi bit Start hoặc bit Stop.
3.6.3. Khởi động và truy xuất các thanh ghi Port nối tiếp:
SCON.6 SM1 9EH Bit 1 của mode Port nối tiếp
SCON.5 SM2 9DH Bit 2 của mode Port nối tiếp. cho phép sự
truyền của bộ xử lý đa kênh ở mode 2 và 3; RI
sẽ không tích cực nếu bit thứ 9 đã thu vào là 0.
SCON.4 REN 9CH REN = 1 sẽ cho phép thu ký tự
SCON.3 TB8 9BH Phát bit 8. Bit 9 phát trong mode 2 và 3, được
set và xóa bởi phần mềm
SCON.2 RB8 9AH Thu bit 8. Bit thứ 9 nhận được
SCON.1 TI 99H Cờ ngắt phát. Cờ này được set ngay khi kết
thúc việc phát một ký tự; được xóa bởi phần
mềm
SCON.0 RI 98H Cờ ngắt thu. Cờ này được set ngay khi kết thúc
việc thu một ký tự; được xóa bởi phần mềm
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 27
Bit cho phép thu dữ liệu (REN: Receive Enable):
Bit cho phép thu REN trong thanh ghi SCON phải được set bởi phần mềm
để cho phép sự thu các ký tự. Điều này thường được dùng làm ở đầu chương trình khi
các Port nối tiếp và các timer được khởi động.
Ta có thể tác động bằng lệnh:
SETB REN
hoặc:
MOV SCON, # xxx1xxxxB
Dùng Timer tạo tốc độ Baud cho Port nối tiếp:
Muốn tạo ra tốc độ Baud, ta khởi tạo TMOD ở chế độ tự nạp lại 8 bit (mode
2 của timer) và đặt trước giá trị nạp lại đúng vào byte cao của thanh ghi timer 1 (TH1)
để tạo ra tốc độ tràn chính xác. Có những tốc độ Baud rất chậm ta dùng chế độ 16 bit
là chế độ 1 của timer, nhưng ta phải khởi tạo lại sau mỗi lần tràn cho TL1/TH1.
Hoạt động khác được đếm giờ bởi việc dùng timer 1 ngoài là T1 (P3.5).
Công thức chung để xác định tốc độ Baud trong mode 1 và mode 3 là:
Ví dụ một hoạt động 1200 Baud đòi hỏi một tốc độ tràn là 1200/32 = 38,4
KHz. Nếu thạch anh 12MHz lái dao động trên Chip, thì timer 1 được đếm giờ ở tốc độ
của tần số 1 MHz. Bởi vì timer phải tràn ở tốc độ tần số 38,4 KHz và Timer đếm giờ ở
tốc độ của tần số 1 MHz, nên một sự tràn được yêu cầu với 1000/38,4 = 26,04 clock
(làm tròn 26). Bởi vì các timer đếm lên và tràn khi có sự chuyển đổi từ FFH Æ 00H
của bộ đếm, nên 26 là giá trị cần nạp cho TH1 (giá trị đúng là -26). Ta dùng lệnh:
MOV TH1, #26
Ví dụ sau khi khởi động Port nối tiếp hoạt động giống như một UART 8 bit
ở tốc độ 2400 Baud, dùng timer 1 để cung cấp tốc độ Baud:
MOV SCON, #01010010B ; Port nối tiêp mode 1
MOV TMOD, #20 ; Timer 1 mode 2
MOV TH1, #-13 ; Nạp vào bộ đếm tốc độ
2400Baud
SETB TR1 ;Start timer 1
BAUD RATE = TIMER 1 OVERFLOW RATE ÷ 32
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 28
Trong SCON có SM0/SM1 để vào mode UART 8 bit, REN = 1 cho phép
Port nối tiếp thu các ký tự và TI = 1 cho phép phát ký tự đầu tiên bởi việc cho biết
thanh ghi đếm rỗng. TMOD có M1/M0 = 1/0 để đặt timer 1 vào mode tự động nạp lại
8 bit. Việc set bit TR1 để mở máy chạy timer. Tốc độ Baud 2400 sẽ cho ta tốc độ tràn
timer 1 là 2400/32 = 76,8 KHz (ứng với thạch anh 12 MHz) sẽ cho số xung clock sau
mỗi sự tràn là 1000/76,8 = 13,02 (lấy tròn là 13). Vậy -13 là giá trị cần nạp vào TH1
để có tốc độ Baud là 2400 Baud.
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 29
CHƯƠNG 2: THIẾT KẾ VÀ THI CÔNG
1. Tìm hiểu về đề tài:
1.1. Nhiệm vụ đặt ra:
- Điều khiển quạt DC và lò điện (được thay thế bằng đèn AC). Nếu nhiệt độ đặt
lớn hơn nhiệt độ đo (lò điện) thì mở lò và tắt quạt. Ngược lại, nếu nhiệt độ đặt nhỏ hơn
nhiệt độ đo thì vi điều khiển kích Relay tắt lò và mở quạt làm mát.
Hình 2.1: Sơ đồ khối
- Hiển thị lần lượt nhiệt độ đặt và nhiệt độ đo trên led 7 đoạn. Hiển thị led đèn
AC, led quạt DC và quá trình hoạt động của quạt DC, đèn AC.
- Các cơ cấu thi hành phải hoạt động ổn định khi nhiệt độ lò dao động quanh
nhiệt độ chuẩn (nhiệt độ đặt).
1.2. Hướng giải quyết:
- Dùng đèn AC thay thế cho lò điện. Hiển thị nhiệt độ bằng led 7 đoạn và các
đèn báo tương ứng cho quạt, đèn.
- Dùng 3 nút nhấn để nhập nhiệt độ chuẩn (nhiệt độ đặt) và bắt đầu xử lý.
- Dùng ngôn ngữ lập trình Assembler để lập trình.
2. Thiết kế phần cứng và nguyên lý hoạt động của các khối:
2.1. Khối cảm biến nhiệt và khối ADC:
Thông qua cảm biến nhiệt LM335 đọc nhiệt độ từ môi trường đưa ra tín hiệu
điện áp. Dùng 3 IC OP07 để khuếch đại và trừ điện áp. Sau đó đưa tín hiệu điện áp vào
bộ chuyển đổi ADC (chân số 6) của ADC0804.
Khối xử lý
trung tâm
Khối nút nhấn
Khối hiển thị
nhiệt độ
Điều khiển
quạt DC
Điều khiển đèn
AC
Cảm biến nhiệt
độ
Bộ chuyển đổi
ADC
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 30
0
P2.6
-
+
U2
OP07
2
3
6
4 8
7 1
R9
10K
0
VCC
C2
10U
P2.0
R13
39K
R12
10K
- VCC
P2.5
0
R11
2K2
0
0 0
D6
LM335
1
3
2
C1
30p
P2.3
R3
10K
R10 39K
-
+
U3
OP07
2
3
6
4 8
7 1
0
VCC
- VCC
R1
47K
P2.2
VCC - VCC
0
C4
10U
P1.5
R2
10K
R7
20K
0
P2.4
P2.1
P1.4
C5
10U
0
P1.6
VCC
U4
ADC0804
6
7 8
9
10
11
12
13
14
15
16
17
18
19
20
4
5
1
2
3
+IN -I
N
A
G
N
D
V
R
E
F
/2
G
N
D
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
CLKR
VCC/VREF
CLKIN
INTR
C
S
RD
WR
-
+
U1
OP07
2
3
6
4 8
7 1
VCC
P2.7
R8
20K
Sơ đồ nguyên lý:
Hình 2.2: Khối cảm biến và ADC0804.
Nguyên lý hoạt động:
- Tần số xung Clock ở chân CLK IN và CLK R:
3 12
1 1 644.7
1.1 1.1 47 10 30 10
f KHz
RC −
= = =
× × × ×
- Điện áp tham chiếu:
/ 2
10 2.5
10 10REF CC
KV V V
K K
= × =
+
→Đầu vào tương tự cần từ 0 5V→
- LM335 là cảm biến nhiệt độ có thể hoạt động đến 0150 C . Tương ứng với
nhiệt độ 00 K thì LM335 cho ra điện áp 0V. Cứ tăng 01 C thì điện áp ra tăng 10mV.
Tín hiệu điện áp từ LM335 đưa qua bộ khuếch đại đệm đảo U3 (Opamp OP07) đưa
vào mạch trừ U2 để trừ đi 2,73V từ U1. Sau khi qua mạch trừ thì đưa vào ADC0804
để chuyển đổi sang số. Dùng mạch trừ đo LM335 khi ở 0oC điện áp ra là 2,73V. Vì
vậy, để dễ dàng cho việc xử lý chương trình với 0oC thì áp ra nên là 0V thì phải trừ đi
2,73V. ADC có nhiệm vụ đổi tín hiệu tương tự này ra số nhị phân để vi xử lý đọc
được. ADC hoạt động được nhờ vào hai bộ dao động (một cho bộ chuyển đổi và một
cho bộ đọc ghi ).
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 31
J3
CON4
Q1
Q2
Q3
Q4
SW3
GIAM
VCC
R3
4K7
R9
220
DK QUAT
VCC
R8
220
R1
4K7
1
23456789 J1
D
A
T
A
LE
D
7D
O
A
N
1
2
3
4
5
6
7
8
VCC
0
WR/
VCC
R4
4K7
Y1
CRYSTAL
SW1
RESET
0
R2
4K7
C2
33p
U1
P89V51RB2
9
18
19
20
29
30
31
40
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
39
38
37
36
35
34
33
32
RST
XTAL2
XTAL1
G
N
D
PSEN
ALE/PROG
EA/VPP
V
C
C
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
R5
4K7
0
0
SW4
ENTER
VCC
INTR/
SW2
TANG
0
D2
LED
J2
D
A
T
A
A
D
C
08
04
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
VCC
D1
LED C1
33p
0
VCC
RD/
DK DEN
2.2. Khối xử lý và nút nhấn:
Sơ đồ nguyên lý:
Hình 2.3: Khối xử lý và nút nhấn.
- Port 2 được nối với ADC0804 để nhận dữ liệu dưới dạng nhị phân.
- Port 0 dùng để truyền dữ liệu cho khối hiển thị.
- Các bit P3.0, P3.1 và P3.2 được nối với 3 nút nhấn SW2, SW3 và SW4.
- Kết nối 2 led đơn (1 led hiển thị cho quạt và 1 led hiển thị cho đèn với
P3.3, P3.4). Kết nối chân điều khiển quạt là P3.6 và cho đèn là P3.5.
- Giá trị đọc về từ ADC phải được chuyển sang số BCD để dễ lập trình. Giá
trị này sẽ được so sánh với các thang nhiệt độ từ 0oC đến 100 oC để hiển thị ra 4 led 7
đọan (2 led hiển thị nhiệt độ, 2 led hiển thị chữ “oC”).
Nguyên lý hoạt động:
- Bộ cảm biến nhiệt LM335 sẽ thay đổi trở kháng theo nhiệt độ, sự thay đổi
này được chuyển thành điện áp để có thể được sử dụng cho ADC0804 có độ phân giải
8 bit và LM335 tạo điện áp 10mV cho mỗi sự thay đổi 1 oC (Khi ta hiệu chỉnh tương
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 32
P3.3
0
VCC
P3.4
R1
22K
LS1
RELAY SPDT
3
5
4
1
2
P3.5
R5
220
R4
22K
J4
DEN AC
12
VCC
R2
10K
R3
10K
VCC
P3.6
J3
NGUON AC 220V
1 2
D2
DIODE
D1
DIODE
0
J2
QUAT DC
12
LS2
RELAY SPDT
3
5
4
1
2
0
R6
220
D3
LED
D4
LED
Q2
C1815
J1
NGUON DC 12V
1 2 3
Q1
C1815
thích oC và oK). Vi xử lý sẽ lưu giữ giá trị đọc về từ ADC của khối cảm biến nhiệt và
chuyển đổi ADC.
- Ba nút nhấn (SW2, SW3, SW4) dùng để tăng, giảm và nhập nhiệt độ
chuẩn. Khi bật nguồn khối hiển thị sẽ hiển thị 025 C (mặc định). Nếu nhấn SW2 nhiệt
độ chuẩn sẽ tăng từng độ, nhấn SW3 sẽ giảm nhiệt độ chuẩn và nếu nhấn SW3 sẽ nhập
nhiệt độ chuẩn và bắt đầu xử lý quạt, đèn.
- Khi nhiệt độ đặt cao hơn nhiệt độ lò thì bit điều khiển đèn ( P3.5) được tích
cực mức cao, đồng thời bit P3.4 tích cực mức thấp làm led đơn đèn tương ứng sáng.
- Khi nhiệt độ đặt thấp hơn nhiệt độ lò thì bit điều khiển quạt ( P3.6) được
tích cực mức cao, đồng thời bit P3.3 tích cực mức thấp làm led đơn quạt tương ứng
sáng.
2.3. Khối điều khiển quạt, đèn:
Sơ đồ nguyên lý:
Hình 2.4: Khối điều khiển quạt, đèn.
Nguyên lý hoạt động:
- Nếu nhiệt độ đặt (nhiệt độ chuẩn) lớn hơn hoặc bằng nhiệt độ lò thì bit
P3.5 tích cực mức cao (SETB P3.5), kích C1815 dẫn. Lúc này C1815 đóng vai trò là
một khóa K. Khi C1815 dẫn sẽ tạo ra một điện áp tại chân số 2 của Relay 2 làm cho
Relay 2 hoạt động. Khi đó chân số 3 được nối với chân số 4 làm cho đèn AC sáng.
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 33
F B
F
C
P1.0
C
VCC
G
D
Q3
PNP BCE
U12 LED?
7 6 4 2 1 9 10 5
38
A B C D E F G D
P
C
A
C
A
DP D EE A
P1.1
R5
2K2
FC BD
0
R4
2K2
Q4
PNP BCE
DP
U10 LED?
7 6 4 2 1 9 10 5
38
A B C D E F G D
P
C
A
C
A
A F
U9 LED?
7 6 4 2 1 9 10 5
38
A B C D E F G D
P
C
A
C
A
G
P1.3
+5V
G
P1.2
VCC
E
VCC
GADP
Q2
PNP BCE
Q1
PNP BCE
F
R3
2K2
R2
2K2
DP
J3
NGUON
1
2
3
A
D
DGB
VCC
A
B
B
E
E
J1
P
O
R
T
0
1
2
3
4
5
6
7
8
C
C
DP
U11 LED?
7 6 4 2 1 9 10 5
38
A B C D E F G D
P
C
A
C
A
C4
100u
D2
LED
U3
7905
2 3
1
VIN VOUT
G
N
D
0
-5V
1
2
3
C7
1u
0
0
0
0
+5V
1
2
3
0
0
C1
2200u
0
U1
7805
1 3
2
VIN VOUT
G
N
D
J1
AC 220V
1
2
R2
R
C3
100u
R1
R
0
0
C2
2200u
0
C6
1u
D3
LED
0
+12V
1
2
3
0
C5
1u
0
U2
7812
1 3
2
VIN VOUT
G
N
D
0
T1
TRANSFORMER CT
1 5
6
4 8
0
+
-
~
~
D1
DIODE BRIDGE_1423
Đồng thời bit P3.4 tích cực mức thấp làm cho led đèn sáng. Trong khi đó, quạt DC và
led quạt đều không hoạt động
- Nếu nhiệt độ đặt (nhiệt độ chuẩn) nhỏ hơn nhiệt độ lò thì bit P3.6 tích cực
mức cao (SETB P3.6), kích C1815 dẫn. Lúc này C1815 đóng vai trò là một khóa K.
Khi C1815 dẫn sẽ tạo ra một điện áp tại chân số 2 của Relay 1 làm cho Relay 1 hoạt
động. Khi đó chân số 3 được nối với chân số 4 làm cho quạt DC hoạt động. Đồng thời
bit P3.3 tích cực mức thấp làm cho led quạt sáng. Trong khi đó, led đèn và đèn AC đều
không hoạt động.
- Nếu SW4 được nhấn thì quạt DC, đèn AC, led quạt và led đèn được xử lý
liên tục như nguyên lý trên. Khi nhấn SW1 thì khối điều khiển quạt, đèn đều không
hoạt động.
2.4. Khối hiển thị:
Hình 2.5: Sơ đồ khối hiển thị
2.5. Khối nguồn: dùng các IC nguồn 7805, 7905 và 7812 để ổn áp nguồn 5V, -
5V và +12V
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 34
A
B
D2
LED
V
C
C
A
U5
AT89C51
91819
20
2930
31
40
1 2 3 4 5 6 7 8
21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
39 38 37 36 35 34 33 32
R
S
T
X
T
A
L2
X
T
A
L1
GND
P
S
E
N
A
LE
/P
R
O
G
E
A
/V
P
P
VCC
P1
.0
P1
.1
P1
.2
P1
.3
P1
.4
P1
.5
P1
.6
P1
.7
P
2.
0/
A
8
P
2.
1/
A
9
P
2.
2/
A
10
P
2.
3/
A
11
P
2.
4/
A
12
P
2.
5/
A
13
P
2.
6/
A
14
P
2.
7/
A
15
P
3.
0/
R
X
D
P
3.
1/
T
X
D
P
3.
2/
IN
T
0
P
3.
3/
IN
T
1
P
3.
4/
T
0
P
3.
5/
T
1
P
3.
6/
W
R
P
3.
7/
R
D
P
0.
0/
A
D
0
P
0.
1/
A
D
1
P
0.
2/
A
D
2
P
0.
3/
A
D
3
P
0.
4/
A
D
4
P
0.
5/
A
D
5
P
0.
6/
A
D
6
P
0.
7/
A
D
7
R43
R
0
- +
U3
OP07
2 3
6
4
8
7
1
E
R34
2K2
VCC
E
B
0
D
B
VCC
R38
R
0
VCC
E
D6LM335
1
3
2
D
D
D1
DIODE
U1
LED?
7
6
4
2
1
9
10
5
3
8
A
B
C
D
E
F
G
DP
CA
CA
Q1
C1815
F
R35
220
0
R2
10K
0
A B
VCC
C
R33
2K2
VCC
0
Q3
J4
DEN AC
12
R2
4K7
R4
4K7
0
R3
4K7
D
SW2
TANG
VCC
G
R2 10K
0
C5
10U 0
G
Q1
- VCC
SW4
ENTER
DP
Q4
LS2
RELAY SPDT
3
5
4
1
2
VCC
DP
R44
330
Q2
VCC
C
R13
39K- +
U2 OP07
2 3
6
4
8
7
1
G
DP
C4
10U
R39
R
VCC
R36
220
A
E
F
SW1
RESET
C1
30p
R7
20K
SW3
GIAM
B
R3
10K
0
R12
10K
0
F
R37
R
D3
LED
0
0
VCC
C
J1
NGUON DC 12V
1 2 3
0
F
R41
R
R42
R
J2
QUAT DC
12
VCC
R3
10K
R9
10K
0
VCC
C2
33p
0
R31
2K2
C
U2
LED?
7
6
4
2
1
9
10
5
3
8
A
B
C
D
E
F
G
DP
CA
CA
VCC
R147K
J3
NGUON AC 220V
1 2
Y1
CRYSTAL
U4
LED?
7
6
4
2
1
9
10
5
3
8
A
B
C
D
E
F
G
DP
CA
CA
F
D
0
G
C2
10U
- VCC
R4
22K
DP
R4
4K7
LS1
RELAY SPDT
3
5
4
1
2
- VCC
C
D2
DIODE
VCC
R30
2K2
R8
20K
U4
ADC0804
6
7
8
9
10
1112131415161718
19 204
5
1
2
3
+I
N
-IN
AGND
VREF/2
GND
D
B
7
D
B
6
D
B
5
D
B
4
D
B
3
D
B
2
D
B
1
D
B
0
C
LK
R
V
C
C
/V
R
E
F
C
LK
IN
INTR
CS
RD
WR
A
DP
G
0
- +
U1
OP07
2 3
6
4
8
7
1
E
R11
2K2
R1
22K
C1
33p
U3
LED?
7
6
4
2
1
9
10
5
3
8
A
B
C
D
E
F
G
DP
CA
CA
R10
39K
VCC
VCC
Q2
C1815
0
R40
R
Hình 2.6: Sơ đồ khối nguồn
2.6. Sơ đồ nguyên lý điều khiển nhiệt độ lò điện:
Hình 2.7: Sơ đồ nguyên lý toàn mạch
2.7. Sơ đồ mạch in điều khiển nhiệt độ lò điện:
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 35
Hình 2.8: Sơ đồ mạch in toàn mạch.
3. Phần mềm và giải thuật:
3.1. Phần mềm:
Sử dụng ngôn ngữ lập trình Assembler để viết chương trình điều khiển (Xem
phần phục lục).
3.2. Lưu đồ giải thuật:
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 36
TĐặt = TĐặt+1
Hiển thị TĐặt
Bắt đầu
Hiển thị 250C
(TĐặt = 250C)
P3.2 = 0 ?
(Tăng TĐặt)
P3.1 = 0 ?
(Giảm TĐặt)
P3.0 = 0 ?
(Kết thúc nhập
TĐặt)
TĐặt = TĐặt - 1
Hiển thị TĐặt
TĐặt ≥ TLò
Đọc nhiệt độ từ lò điện
(TLò điện)
Kết thúc
Hiển thị nhiệt đô lò điện
(TLò)
Bật lò (Đèn AC)
và tắt quạt
Tắt lò và mở quạt
làm mát
Y
N
Y
N
N
Y
NY
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 37
Hình 2.9: Lưu đồ giải thuật
CHƯƠNG 3: ĐÁNH GIÁ – KẾT LUẬN
1. Kết quả thực hiện:
- Hệ thống điều khiển tương đối ổn định, đáp ứng được yêu cầu của đề tài.
- Giám sát được quá trình hoạt động của lò qua khối hiển thị led 7 đoạn, đèn AC,
quạt DC, led đèn…
- Cảm biến đọc nhiệt độ tương đối chính xác.
- Phần mềm chương trình tương đối ngắn gọn, đơn giản, dễ hiểu.
Hình ảnh mô hình hoàn tất:
Hình 3.1: Hình ảnh mô hình lò điện khi TĐẶT < TLÒ.
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 38
Hình 3.2: Hình ảnh mô hình lò điện khi TĐẶT ≥ TLÒ.
2. Khuyết điểm:
- Đọc nhiệt độ từ môi trường vào chưa tuyệt đối chính xác.
- Do quá trình xử lý quạt DC, đèn AC hoạt động liên tục làm cho BJT, Relay
được kích liên tục → nếu mạch công suất lớn dễ hỏng BJT, Relay.
- Kích thước mô hình tương đối lớn.
3. Hướng khắc phục và phát triển:
- Dùng cảm biến nhiệt độ khác, có độ ổn định hơn và đọc nhiệt độ chính xác hơn.
- Đưa ra các giải thuật khác để lập trình hệ thống tối ưu hơn.
- Với mạch ta có thể kết nối khác hơn, tiện lợi hơn như thay quạt và đèn bằng
một thiết bị làm mát và làm nóng khác.
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 39
- Nếu sử dụng lò điện thực tế, mạch công suất lớn thì ta có thể thay thế C1815,
Relay bằng các linh kiện điện tử khác để mạch hoạt động tối ưu hơn.
- Có thể giao tiếp với máy tính để điều khiển nhiệt độ lò.
PHỤC LỤC
Phần mềm viết bằng ngôn ngữ Assembler:
;****************DIEU KHIEN NHIET DO LO DIEN***************
$MOD51
ORG 00H
DATA_ADC DATA P2
DATA_LED DATA P0
LED0 BIT P1.0
LED1 BIT P1.1
LED2 BIT P1.2
LED3 BIT P1.3
LEDQUAT BIT P3.3
LEDDEN BIT P3.4
DEN BIT P3.5
QUAT BIT P3.6
WRITE BIT P1.4
INTR BIT P1.5
READ BIT P1.6
SW1 BIT P3.0
SW2 BIT P3.1
SW3 BIT P3.2
;************************************************************
MAIN:
MOV SP,#5FH
MOV 51H,#25H
MOV TMOD,#01H
SETB TF0
MOV R7,#2
CLR QUAT
CLR DEN
LAP0:
LCALL HIENTHI
DJNZ R7,LAP0
JNB SW1,XULY
LAP1:
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 40
JB SW2,LAP2
JNB SW2,TANG
TANG:
MOV A,51H
ADD A,#1H
DA A
MOV 51H,A
CJNE A,#99H,LAP0
MOV A,#00H
LAP2:
JB SW3,LAP0
JNB SW3,GIAM
GIAM:
MOV A,51H
ADD A,#99H
DA A
MOV 51H,A
CJNE A,#00H,LAP0
MOV A,#99H
LJMP LAP0
;****************************CHUONG TRINH ADC **************
DULIEUTU_ADC:
MOV DATA_ADC,#0FFH
CLR WRITE
LCALL DELAY1
SETB WRITE
CLR READ
MOV 50H,DATA_ADC
ACALL ADC_BCD
SETB READ
RET
;**********************************************************
ADC_BCD:
MOV A,50H
MOV B,#100
DIV AB
MOV 30H,A
MOV A,B
MOV B,#10
DIV AB
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 41
MOV 31H,A ;HANG CHUC NHIET DO TU ADC
MOV 32H,B ;HANG DON VI NHIET DO TU ADC
MOV A,31H
SWAP A
ADD A,32H
MOV 50H,A
RET
;************************************************************
XULY:
MOV TMOD,#10H
SETB TF1
MOV R7,#2
MOV DATA_LED,#0FFH
AAA:
MOV DPTR,#GIATRISOSANH
LCALL HIENTHI1
DJNZ R7,AAA
LCALL DULIEUTU_ADC
LCALL XULY1
LCALL XULY2
LJMP AAA
;********************** XU LY DEN **************************
XULY1:
PUSH ACC
MOV A,51H
CJNE A,50H,XET
JMP TROVE
XET:
JNC OPEN
SETB LEDDEN
CLR DEN
JMP TROVE
OPEN:
CLR LEDDEN
SETB DEN
TROVE:
POP ACC
RET
;********************** XU LY QUAT ***********************
XULY2:
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 42
PUSH ACC
MOV A,51H
CJNE A,50H,XET1
JMP TROVE1
XET1:
JC OPEN1
SETB LEDQUAT
CLR QUAT
JMP TROVE1
OPEN1:
CLR LEDQUAT
SETB QUAT
TROVE1:
POP ACC
RET
;**************HIEN THI NHIET DO LO DIEN *********************
HIENTHI1:
MOV DPTR,#DULIEULED
MOV A,30H
MOV A,31H
MOVC A,@A+DPTR
MOV DATA_LED,A
CLR LED3
LCALL DELAY1
SETB LED3
MOV A,32H
MOVC A,@A+DPTR
MOV DATA_LED,A
CLR LED2
LCALL DELAY1
SETB LED2
MOV DATA_LED,#9CH
CLR LED1
LCALL DELAY1
SETB LED1
MOV DATA_LED,#0C6H
CLR LED0
LCALL DELAY1
SETB LED0
MOV DATA_LED,#0FFH
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 43
RET
;*********** HIEN THI NHIET DO DAT *********************
HIENTHI:
MOV DPTR,#DULIEULED
MOV A,51H
ANL A,#0FH
MOVC A,@A+DPTR
MOV DATA_LED,A
CLR LED2
LCALL DELAY
SETB LED2
MOV A,51H
SWAP A
ANL A,#0FH
MOVC A,@A+DPTR
MOV DATA_LED,A
CLR LED3
LCALL DELAY
SETB LED3
MOV DATA_LED,#9CH
CLR LED1
LCALL DELAY
SETB LED1
MOV DATA_LED,#0C6H
CLR LED0
LCALL DELAY
SETB LED0
MOV DATA_LED,#0FFH
RET
;********************** DELAY LED ***************************
DELAY:
PUSH 00
PUSH 01
MOV R0,#1
LOOP2:
MOV R1,#90
DJNZ R1,$
DJNZ R0,LOOP2
POP 01
POP 00
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 44
RET
;****************** DELAY ADC *******************************
DELAY1:
PUSH 00
PUSH 01
MOV R0,#2
LOOP:
MOV R1,#250
DJNZ R1,$
DJNZ R0,LOOP
POP 01
POP 00
RET
;*******************************************************
DULIEULED:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
;******************************************************
GIATRISOSANH:
DB 00H,01H,02H,03H,04H,05H,06H,07H,08H
DB 09H,10H,11H,12H,13H,14H,15H,16H,17H
DB 18H,19H,20H,21H,22H,23H,24H,25H,26H
DB 27H,28H,29H,30H,31H,32H,33H,34H,35H
DB 36H,37H,38H,39H,40H,41H,42H,43H,44H
DB 45H,46H,47H,48H,49H,50H,51H,52H,53H
DB 54H,55H,56H,57H,58H,59H,60H,61H,62H
DB 63H,64H,65H,66H,67H,68H,69H,70H,71H
DB 72H,73H,74H,75H,76H,77H,78H,79H,80H
DB 81H,82H,83H,84H,85H,86H,87H,88H,89H
DB 90H,91H,92H,93H,94H,95H,96H,97H,98H,99H
END
Trường ĐH Công Nghiệp TP. HCM Đồ án 1: Điều khiển nhiệt độ lò điện
GVHD: Đào Thị Thu Thủy Trang 45
TÀI LIỆU THAM KHẢO
1. Phạm Quang Trí – Giáo trình vi xử lý – Trường ĐH Công Nghiệp TP. HCM.
2. Tống Văn On, Hoàng Đức Hải – Họ vi điều khiển 8051 – NXB Lao Động Và Xã
Hội Hà Nội – 2001.
3. Dương Minh Trí – Cảm biến và ứng dụng – NXB Khoa Học Và Kỹ Thuật - 2000
4. Phan Quốc Phô, Nguyễn Đức Hải – Giáo trình cảm biến – NXB Khoa Học Và Kỹ
Thuật Hà Nội – 2000.
5. Các Wedsite:
www.alldatasheets.com
www.diendandientu.com
Các file đính kèm theo tài liệu này:
- Điều khiển nhiệt độ lò điện.pdf