25
Hanoi university of industry BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA : ĐIỆN TỬ ĐỒ ÁN MÔN HỌC ĐỀ TÀI: THIẾT KẾ BỘ ĐO VÀ KHỐNG CHẾ NHIỆT ĐỘ, HIỂN THỊ LCD . “Nhiệt độ khống chế được đặt bằng phím nhấn, thao tác khống chế được mô phỏng bằng 3led với 3 màu khác nhau, sai số cho phép là 1 0 C”. Giáo viên hướng dẫn: Nguyễn Văn Tùng Sinh viên thực hiện: 1.Phạm Lê Xuân Điện tử 7 k10 1

do an vi dieu khien do va khong che nhiet do hien thi lcd

  • Upload
    xuan-le

  • View
    841

  • Download
    1

Embed Size (px)

Citation preview

Page 1: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

BỘ CÔNG THƯƠNGTRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA : ĐIỆN TỬ

ĐỒ ÁN MÔN HỌCĐỀ TÀI: THIẾT KẾ BỘ ĐO VÀ KHỐNG CHẾ NHIỆT ĐỘ, HIỂN THỊ LCD .

“Nhiệt độ khống chế được đặt bằng phím nhấn, thao tác khống chế được mô phỏng bằng 3led với 3 màu khác nhau, sai số cho phép là 10C”.

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

Nguyễn Văn Tùng Sinh viên thực hiện:

1.Phạm Lê Xuân 2.Nguyễn Văn Thắng

Điện tử 7 k101

Page 2: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

LỜI NÓI ĐẦUKỹ thuật vi điều khiển hiện nay rất phát triển, nó được ứng dụng vào rất

nhiều lĩnh vực sản xuất công nghiệp, tự động hóa, trong đời sống và còn nhiều lĩnh vực khác nữa. So với kỹ thuật số thì kỹ thuật vi điểu khiển nhỏ gọn hơn rất nhiều do nó được tích hợp lại và có khả năng lập trình được để điều khiển. Nên rất tiện dụng và cơ động. Với tính ưu việt của vi điều khiển thì trong phạm vi đồ án nhỏ này, em chỉ dùng vdk để đo và khống chế nhiệt độ, đồng thời cho hiển thị lên LCD.

Mục đích của đề tài hướng đến: tạo ra bước đầu cho sinh viên thử nghiệm những ứng dụng của vdk trong thực tiễn để rồi từ đó tìm tòi, phát triển nhiều ứng dụng khác trong đời sống hằng ngày cần đến.

Việc thực hiện xong đồ án môn học bằng các kiến thức đã học, một số sách tham khảo và một số nguồn tài liệu khác nên không tránh khỏi những thiếu sót. Vì vậy nhóm rất mong được sự góp ý của thầy cô và các bạn.

Điện tử 7 k102

Page 3: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

Mục lục trang

Lời nói đầu.....................................................................................................................................2Mục lục.....................................................................................................................................3..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Chương I>Tổng quan thiết kế phần cứng cho đồ án.......................................4

I. sơ đồ khối tổng quát .4

II. Các vi mạch chính sử dụng trong từng khối và nguyên lý hoạt động từng khối................................................................................................................5...............................................................................................................................................................................................................nguyên lý hoạt động từng khối.............................................................

Chương II >Lập trình cho vi điều khiển................................................................................................................................14

1. sơ đồ giải thuật....................................................................................................................................................................................................142. code lập trình........................................................................................

Điện tử 7 k103

Page 4: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

CHƯƠNG 1:TỔNG QUAN THIẾT KẾ PHẦN CỨNG CHO ĐỒ ÁN

I. SƠ ĐỒ KHỐI TỔNG QUÁT1.sơ đồ

Điện tử 7 k104

KHỐI CẢM BIẾN

KHỐI ĐIỀU CHẾ VÀ KHUẾCH

ĐẠI

KHỐI XỬ LÝ TRUNG TÂM: 8051

KHỐI CHUYỂN

ĐỒI TƯƠNG TỰ

=> SỐ

KHỐI ĐIỀU KHIỂN

(khống chế)

KHỐI HIỂN THỊ: LCD

ĐẦU RA ỨNG DỤNG

(điều khiển lò nhiệt, cảnh báo,

…)

Page 5: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

2> sơ đồ nguyên lý.

Điện tử 7 k105

Page 6: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

II. CÁC VI MẠCH CHÍNH SỬ DỤNG TRONG ĐỒ ÁN1.trong khối cảm biến: có LM35;2.Trong khối điều chế và khuếch đại: LM358;3.Trong khối chuyển đổi: ADC 0804;4.Trong khối xử lý trung tâm: AT89C52;5.khối hiển thị: LCD ;6.Khối điều khiển (khống chế): hệ thống các phím nhấn.7.đầu ra ứng dụng: (đơn giản) là các led hiển thị.

III. CẤU TẠO VÀ NGUYÊN LÝ HOẠT ĐỘNG CƠ BẢN CỦA TỪNG VI MẠCH.

1> Cảm biến nhiệt LM35.1.1 Nguyên lý hoạt động chung của IC đo nhiệt độ.

IC đo nhiệt độ là một mạch tích hợp nhận tín hiệu nhiệt độ chuyển thành tín hiệu điện dưới dạng dòng điện hay điện áp. Dựa vào đặc tính rất nhạy của các bán dẫn với nhiệt độ, tạo ra điện áp hoặc dòng điện tỷ lệ thuận với nhiệt độ tuyệt đối. Đo tín hiệu điện ta biết được giá trị của nhiệt độ cần đo. Sự tác động của nhiệt độ tạo ra điện tích tự do và các lỗ trống trong chất bán dẫn. Bằng sự phá vỡ các phân tử, bứt các electron thành dạng tự do di chuyển qua vùng cấu trúc mạng tinh thể

Điện tử 7 k106

Page 7: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

tạo sự xuất hiện các lỗ trống. Làm cho tỷ lệ điện tử tự do và lỗ trống tăng lên theo quy luật hàm mũ với nhiệt độ.

+LM135, LM35Ngõ ra là điện áp.Độ nhạy 10mv/10CSai số cực đại 1,50C khi nhiệt độ lớn hơn 1000C.Phạm vi sử dụng :00 C=>1000 C

2> Khuếch đại LM358;a, cấu tạoLM358 gồm có 2 con khuếch đại thuật toán:

Con thứ 1: chân 2 ,3 vào, chân 1ra;Con thứ 2: chân 5,6 vào, chân 7 ra;

Công dụng: khuếch đại điện áp và dòng điện nhận được từ LM35 để sau đó chuyển tiếp đến đầu vào IN của ADC 0804;

LM358

Sơ đồ mạch như sau:

b, tính toán và cân chỉnh

Điện tử 7 k107

Page 8: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

+tại OA2:

Xét tại: N2: =

=>Ur=Un . .

Xét tại P2: = .

=> Up=Uv .

Mà coi như OA lý tưởng.Uv=Up;

Ur=Uv. . ;

Do điện áp đầu ra của bộ khuếch đại chỉ giới hạn trong khoảng từ 0-5V khi dùng nguồn đơn. Nên chọn giá trị R2= R3=4,7 K R1=R4= 1 K ;

Khi đó Ur=Vin=1Uv;3> bộ chuyển đổi tương tự-số: ADC 0804; a, cấu tạo ADC 0804 là một bộ chuyển đổi tương tự số. Gồm có 20 chân.

DB0-DB7: là 8 chân ra dữ liệu.RD: lối vào đọcWR :lối vào ghi.INTR: lối ra ngắt.CLKR/CLKIN: các lối vào điều khiển xung nhịp.VIN: lối vào analog dương

b, tính toán và cân chỉnh.Chọn điện trở R11 và tụ C4 cho bộ dao động của ADC0804. R11=10k và C=15pf.

Có đầu ra số: N= xVin.;

T0 cần đo= với K là hệ số khuếch đại qua IC LM358.

c, nguyên lý hoạt động

DB0- DB7: các lối ra số, dữ liệu chuyển đổi xuất hiện trên 8bit này. Bộ biến đổi có độ phân giải là 5/256=19,53 mV.

RD :là chân điều khiển đọc dữ liệu. RD=0: có dữ liệu lối ra. RD=1: không có dữ liệu lối ra. WR: bình thường ở mức logic cao, và lối vào này sẽ được kéo xuống mức thấp,

sau đó lại trở về mức cao để bắt đầu quá trình chuyển đổi. INTR: là lối ra ngắt của bộ biến đổi A/D. 1 sườn xung âm được tạo lên chân này

khi quá trình chuyển đổi kết thúc. Lối ra này thường được sử dụng để tạo ra một ngắt trong vi điều khiển sao cho dữ liệu đã chuyển đổi có thể được đọc.

Điện tử 7 k108

Page 9: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

ADC 0804 chứa một bộ dao động bên trong và cần có 1 tụ điện và 1điện trở bên ngoài nối chân CLKR và CLKIN để khởi động bộ dao động.

VIN là chân lối vào của điện áp tương tự. Bít 0 và 1 của ADC phải có điện trở kéo lên, do lối ra bộ điều khiển tại những

chân này không có sẵn điện trở kéo lên.

CÁC BƯỚC CỦA QUÁ TRÌNH CHUYỂN ĐỔI.Đặt WR =RD=1;Bắt đầu biến đổi. Đặt WR=0, trễ( )ms.Đặt lại WR=1;Phát hiện điểm kết thúc của quá trình biến đổi khi INTR xuống mức thấp. (được sử dụng bởi ngắt)Đặt RD=0 và đọc dữ liệu từ DB0=>DB7.Đặt RD=1. => kết thúc chu trình.

4> vi điều khiển AT89C51;a, cấu tạo và chức năng các khối của AT89S52.

CPU( CPU centralprocessing unit) bao gồm: Thanh ghi tích lũy A; Thanh ghi tích lũy phụ B; Đơn vị logic học (ALU); Thanh ghi từ trạng thái chương trình; Bốn băng thanh ghi; Con trỏ ngăn xếp

Bộ nhớ chương trình( ROM) gồm 8Kbyte Flash. Bộ nhớ dữ liệu( RAM) gồm 256 byte. Bộ UART, có chức năng truyền nhận nối tiếp. 3 bộ Timer/Counter 16 bit thực hiện chức năng định thời và đếm sự kiện. 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( ghi chương trình lên Flash ROM) cho phép người sử dụng có thể

nạp các chương trình cho chíp mà không cần các bộ nạp chuyên dụng. Bộ chia tần số với hệ số chia là 12. 4 cổng xuất nhập với 32 chân.

b, chức năng các chân của AT89C52 Port 0( P0.0=>P0.7)Port 0 gồm 8 chân, 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 89c51 giao tiếp với các thiết bị ngoài có kiến trúc Bus như các vi mạch nhớ, mạch PIO… Port 1( P1.0=>P1.7) Chức năng duy nhất của Port 1 là chức năng xuất nhập cũng như các Port khác. Port1 có thể xuất nhập theo bit và theo byte. Port 2( P2.0=>P2.7)Port 2 ngoài chức năng là cổng vào/ra như Port 0 và 1 còn là byte cao của bus địa chỉ khi sử dụng bộ nhớ ngoài. Port 3Mỗi chân trên Port 3 ngoài chức năng xuất nhập còn có một chức năng riêng, cụ thể như sau:

Điện tử 7 k109

Page 10: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

Bit Tên Chức năngP3.0 RXD Dữ liệu nhận cho Port nối tiếpP3.1 TXD Dữ liệu truyền cho Port nối tiếpP3.2 INT0 Ngắt bên ngoài 0P3.3 INT1 Ngắt ngoài 1P3.4 TO Ngõ vào của Timer/counter0P3.5 T1 Ngõ vào của Timer/counter1P3.6 /WR Xung ghi bộ nhớ dữ liệu ngoài.P3.7 /RD Xung đọc bộ nhớ dữ liệu ngoài.

Chân /PSEN : là chân điều khiển đọc chương trình ở bộ nhớ ngoài. Chân ALE.ALE 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ư 7473. Chân /EA.

Tín hiệu /EA cho phép chọn bộ nhớ chương trình là bộ nhớ trong hay ngoài. EA=1 thì thực hiện chương trình trong RAM nội. EA=0 thực hiện ở RAM ngoài.

RST( reset)Ngõ vào reset trên chân số 9. khi RST=1 thì bộ vi điều khiển sẽ được khởi động lại thiết lập ban đầu. XTAL1, XTAL22 chân này được nối song song với thạch anh tần số max=33 Mhz. Để tạo dao động cho bộ vi điều khiển. Vcc, GND : cung cấp nguồn nuôi cho bộ vi điều khiển. cấp qua chân 20 và 40.c, sơ đồ AT89C52 trong mạch

Điện tử 7 k1010

Page 11: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

d, nguyên lý hoạt động+Chân 9 được nối với mạch reset. Khi nhấn SW1 thì bộ vi điều khiển sẽ được khởi động lại từ đầu.+ chân 18-19 được nối // với thạch anh 12Mhz. mạch có nhiệm vụ tạo dao động cho vi điều khiển.+từ chân P0.0=>P0.2 lần lượt được nối với Vee, RS, RW của LCD. Có nhiệm vụ điều khiển hoạt động của LCD.+chân P0.3=>P0.5 điều khiển led. Khi nhiệt độ đo được vượt qua khoảng nhiệt độ khống chế thì 1 trong 3 đèn led này sẽ sáng.+ chân P1.0=>P1.7. giao tiếp với ADC0804. Cổng P1 này có nhiệm vụ đọc nhiệt độ thu được từ bộ chuyển đổi.+P2.0=>P2.7. Lần lượt được nối với đầu vào dữ liệu từ DB0=> DB7 của LCD. Có chức năng điều khiển hiển thị LCD theo thao tác khống chế và nhiệt độ đo được.+P3.0, P3.1 lần lượt nối với /RD và /WR của ADC0804. Nhiệm vụ điều khiển hoạt động của bộ chuyển đổi số - tương tự.+P3.2=> P3.4 dùng để nối với các phím nhấn. Có tác dụng để thực hiện các thao tác khống chế nhiệt độ cần đo.

Điện tử 7 k1011

Page 12: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

5> hiển thị( LCD 16x2)a, cấu tạo

Chức năng các chân của Module LCD 16x2;Chân số Ký hiệu Mức logic I/O Chức năng1 Vss - - Nguồn cung cấp(GND)2 Vdd - - Nguồn cung cấp(+5V)3 Vee - I Điện áp để điều chỉnh độ tương phản4 RS 0/1 I Lựa chọn thanh ghi

0= thanh ghi lệnh1=thanh ghi dữ liệu

5 R/W 0/1 I 0=ghi vào LCD module1=đọc từ LCD module

6 E 1,1=>0 I Tín hiệu cho phép7 DB1 0/1 I/O Data bus line 0(LSB)8 DB2 0/1 I/O Data bus line19 DB3 0/1 I/O Data bus line210 DB4 0/1 I/O Data bus line311 DB5 0/1 I/O Data bus line412 DB6 0/1 I/O Data bus line513 DB7 0/1 I/O Data bus line614 DB8 0/1 I/O Data bus line7(MSB)15 Vcc - - Nguồn cung cấp16 GND - - mass

b, nguyên tắc hiển thị ký tự trên LCDmột chương trình hiển thị ký tự trên LCD sẽ đi theo bốn bước sau:

1) Xóa toàn bộ màn hình.2) Đặt chế độ hiển thị.3) Đặt vị trí con trỏ (nơi bắt đầu của ký tự hiển thị).4) Hiển thị ký tự.

Chú ý: +Các bước 3, 4 có thể lặp lại nhiều lần nếu cần hiển thị nhiều ký tự.+ Mỗi khi thực hiện ghi lệnh hoặc ghi dữ liệu hiển thị lên LCD cần phải kiểm tra cờ bận trước. Vì vậy, cần phải chủ động phân phối thời gian khi ra lệnh cho LCD( ví dụ sau khi xóa màn hình sau khoảng 2ms mới ra lệnh khác vì thời gian để LCD xóa màn hình là 1,64ms).+chế độ hiển thị mặc định sẽ là hiển thị dịch, vị trí con trỏ mặc định sẽ là đầu dòng thứ nhất.d. mã lệnh của LCD HD4480

Lệnh Mã lệnh Mô tả Thời gian thi hành

RS R/W

DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7

Xóa màn 0 0 0 0 0 0 0 0 0 1 Xóa màn hình đưa 1.64m

Điện tử 7 k1012

Page 13: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

hình con trỏ về vị trí đầu sĐưa con trỏ về vị trí đầu

0 0 0 0 0 0 0 0 1 x Đưa con trỏ về vị trí đầu

1.64ms

Thiết lập chế độ

0 0 0 0 0 0 0 1 I/D S Thiết lập hướng dịch chuyển con trỏ(I/D), dịch hiển thị(S)

40us

Bật tắt hiển thị

0 0 0 0 0 0 1 D C B Bật tắt hiển thị, con trỏ; bật tắt chế độ nhấp nháy con trỏ

40us

Dịch con trỏ hiển thị

0 0 0 0 0 1 S/C R/L * * Thiết lập chiều dịch chuyển của con trỏ và hiển thị

40us

Thiết lập chức năng

0 0 0 0 1 DL N F * * Thiết lập độ dài của dữ liệu, số dòng và font chữ

40us

Thiết lập địa chỉ CGRAM

0 0 0 1 CGRAM address Thiết lập địa chỉ CGRAM

40us

Thiết lập địa chỉ DDRAM

0 0 1 DDRAM address Thiết lập địa chỉ DDRAM

40us

Đọc cờ báo bận và địa chỉ CGRAM/DDRAM

0 1 BF CGRAM/ DDRAM address Đọc cờ báo bận và địa chỉ của CGRAM hoặc DDRAM( tùy vào lệnh trước đó)

40us

Ghi CGRAM/DDRAM

1 0 Write data Ghi dữ liệu vào CGRAM hoặc DDRAM.

40us

Đọc CGRAM/DDRAM

1 1 Read data Đọc dữ liệu từ CGRAM hoặc DDRAM

40us

e> các bit viết tắt trong mã lệnh.Tên bit Mô tảI/D 0=không dịch chuyển vị trí

con trỏ1=dịch chuyển vị trí con trỏ

S =0 không dịch chuyển hiển thị

=1 dịch chuyển hiển thị

D 0=tắt hiển thị =1 bật hiển thịC 0=tắt con trỏ =1 bật con trỏB 0=con trỏ không nhấp nháy =1 con trỏ nhấp nháyS/C 0=di chuyển con trỏ =1 dịch chuyển hiển thịR/L 0= dịch trái =1 dịch phảiDL 0=chế độ 4bit dữ liệu =1 chế độ 8bit dữ liệu

Điện tử 7 k1013

Page 14: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

N 0=1 dòng 1= 2 dòngF 0= font 5x7 1= font 5x10BF 0= không bận 1= đang bận

6> bộ phím nhấn điều khiển (khống chế)a, sơ đồ mạch

b, chức năng: dùng để thiết lập nhiệt độ khống chế.SW2 (được nối với INT0 ) là phím dùng để tăng nhiệt độ khống chế.SW3 (được nối với INT1) là phím dùng để giảm nhiệt độ khống chế.SW4 (được nối với T0) là phím dùng để làm phím mode( chế độ).

7> ứng dụng điều khiểna, sơ đồ mạch

b, chức năng: hiển thị khi nhiệt độ đo được so sánh với nhiệt độ khống chế.Nếu t0 đo > t0khống chế max thì led 2 sáng.Nếu t0 đo<t0 khống chế min thì led 3 sáng.Nếu t0 kcmin< t0 đo< t0 kc max. thì led 4 sáng.

Đây chỉ là mạch điều khiển đơn giản sử dụng led. Còn trong thực tế có thể ứng dụng nhiều: như việc khống chế nhiệt độ của lò lung, máy lạnh,…

CHƯƠNG II>LẬP TRÌNH CHO VI ĐIỀU KHIỂNI>sơ đồ giải thuật

Chương trình chính.

Điện tử 7 k1014

START

NẠP GIÁ TRỊ ĐẦU

Tăng t0 đặt

Hiển thị t0 đo đượcĐọc ADCKhối xử lý

Page 15: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

GIẢI THUẬT CHƯƠNG TRÌNH KHỐNG CHẾ

No

Điện tử 7 k1015

MODE

T0 đo <t0 min

T0 đo > t0 max

Giảm t0

đặt

Hiển thị t0 đặt

Hiển thị cảnh báo

START

Phím mode có nhấn không?

Page 16: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

Yes

No

Yes

No

II> code chương trình.

#include <REGX52.H>#include <stdio.h>

sbit RS_LCD = P1^0;sbit RW_LCD = P1^1;sbit E_LCD = P1^2;sbit INTR_ADC = P3^5;sbit WR_ADC = P3^6;sbit RD_ADC = P3^7;sbit thap = P1^7;

Điện tử 7 k1016

Phím tăng có nhấn?

Phím giảm có nhấn?

Giảm thông số đi một đi vị

Gọi chương trình hiển thị

Tăng thông số lên một đơn vị

Page 17: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

sbit tb = P1^6;sbit cao = P1^5; unsigned long x;long temp,nhietdo;long t_khongche = 25;//---------------void delay_short(){

unsigned int i;for(i=0;i<3;i++);

}//--------------void delay(unsigned int time){ // Thoi gian time ms

TMOD = 0x01; //Timer 0 che do 1

while (time--){TH0 = -1000/256;TL0 = -1000%256;TR0 = 1;while (!TF0);TR0 = 0;TF0 = 0;

}}

//--------------void kt_ban(){

unsigned char x;P2 = 0xff;RS_LCD = 0;RW_LCD = 1;do {

E_LCD = 1;delay_short();E_LCD = 0;x=P2;x=x&0x80;

}while(x!=0x80);

} //----------------void ghi_lenh(unsigned char command){

kt_ban();delay(50);P2 = command;RS_LCD = 0; // chon thanh ghi

lenh

Điện tử 7 k1017

Page 18: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

RW_LCD = 0; // write to LCDE_LCD = 1;delay_short();E_LCD = 0;

}//-----------------void ghi_kytu(unsigned char kytu){

kt_ban();delay(50);P2 = kytu;RS_LCD = 1;RW_LCD = 0;E_LCD =1;delay_short();E_LCD = 0;

}//------------------void ghi_nhanh ( unsigned char kytu){

delay_short();P2 = kytu;RS_LCD = 1;RW_LCD = 0;E_LCD = 1;delay_short();E_LCD = 0;

}//-------------------void ghi_chuoi(char *s){

while(*s){ghi_kytu(*s);s++;

}}//------------------- void ghi_nhanh_chuoi(char *s){

while(*s){ghi_nhanh(*s);s++;

}}//-------------------void setting(){

ghi_lenh(0x38);ghi_lenh(0x01); //Xoa man hinhghi_lenh(0x0f); //Co dich hien thi

}

Điện tử 7 k1018

Page 19: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

void ghi_so_nguyen(long number){int j,m;unsigned char d[20];for(j=0 ; j<20 ; j++)

{d[j] = number%10;number =number/10;if(number==0)

{m = j;break;}

} for(j=m ; j>=0 ; j--)

ghi_nhanh(d[j]+0x30);}

void main()

{ IE = 0x85;IT0 = IT1 = 1;setting();ghi_lenh(0x01);ghi_lenh(0x80);ghi_chuoi(" SV DT7-K10 ");delay(200);RD_ADC = 0;WR_ADC = 0;INTR_ADC = 1;delay(10);P0 = 0xff;thap = tb = cao = 0;

while(1){WR_ADC = 0;delay_short();WR_ADC = 1;

while (!INTR_ADC);x = P0;nhietdo = x*2000/255;ghi_lenh(0xc0);ghi_lenh(0x0c); //Bat hien thi ,tat con troghi_chuoi("nhiet do");

Điện tử 7 k1019

Page 20: do an vi dieu khien do va khong che nhiet do hien thi lcd

Hanoi university of industry

if(nhietdo>=0){ghi_nhanh(' ');ghi_so_nguyen(nhietdo/10); }

else{ghi_nhanh('-');ghi_so_nguyen(-nhietdo/10);}

ghi_nhanh_chuoi(" do C");if(nhietdo>10*(t_khongche+3))

{cao = 1;thap = tb = 0;}

else{if(nhietdo<10*(t_khongche-3))

{cao = tb = 0;thap = 1;}

else{cao = thap = 0;tb = 1;}

} }

}

void ngat0()interrupt 0{t_khongche ++;}

void ngat1()interrupt 2{t_khongche --;}

Điện tử 7 k1020