Đề tài: Thiết kế mô hình bảng led điện tử dung một Ma trận led đa sắc Yêu cầu: _ xây dựng bộ font gồm 26 chữ cái từ AZ Và 10 chữ số từ 09 _hệ thống hiện thị lần lượt từng chữ cái với Chữ số với 3 màu xanh, đỏ, vàng Giáo viên hướng dẫn : Nguyễn Anh Dũng Nhóm sinh viên thực hiện: Đào Hùng Cường Đào Văn Hảo Hoàng Văn Trình Nguyễn Văn Huy
Trang 1BỘ GIÁO DỤC ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
ĐỒ ÁN MÔN HỌC VI ĐIỀU KHIỂN
THIẾT KẾ BỘ ĐO VÀ KHỐNG CHẾ NHIỆT ĐỘ HIỂN
THỊ BẰNG MÀN HÌNH MÁY TÍNH
GIÁO VIÊN HƯỚNG DẪN NGUYỄN ANH DŨNG
SINH VIÊN THỰC HIỆN NGUYỄN ĐỨC THỐNG NGUYỄN TUẤN ANH TRẦN VĂN QUANG
HÀ NỘI-2014
Trang 2LỜI NÓI ĐẦU
Kỹ 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 vi điều khiển để đo và khống chế nhiệt độ, đồng thời cho hiển thị lên máy tính thông qua phần mềm hyper terminal của windows
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 vi điều khiển 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
Trang 3CHƯƠNG 1:TỔNG QUAN THIẾT KẾ PHẦN CỨNG CHO ĐỒ ÁN
I SƠ ĐỒ KHỐI TỔNG QUÁT
1.sơ đồ
KHỐI XỬ LÝ TRUNG TÂM 8051
KHỐI
CẢM BIẾN
LM35
KHỐI
CHUYỂN ĐỔI
TƯƠNG TỰ
SỐ
ADC 0804
KHỐI GIAO TIẾP MÁY TÍNH MAX232
KHỐI HIỂN THỊ : MÁY TÍNH
Đầu Ra Ứng Dụng
Trang 42 / sơ đồ nguyên lý
rd wr
rd wr 5
7 6 5
rst rst 18 XTAL2
XTAL1 19
ALE 30 EA 31 PSEN 29 RST 9
P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32
P1.0/T2 1 P1.1/T2EX 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8
P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR P3.5/T1 16 15 P2.7/A15 28
P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27
U1
AT89C52 VIN+
6 VIN-7 VREF/2 9 CLK IN 4
A GND 8 RD 2 WR 3 INTR 5 CS 1
D GND 10 DB7(MSB) DB6 DB5 DB4 DB3 DB2 DB1 11 12 13 14 15 16 17 DB0(LSB) 18
CLK R 19
VCC 20
U2
ADC0804
R1
10k
C1
150p
27.0
3
1
VOUT 2
U3
LM35
T1IN 11 R1OUT 12 T2IN 10 R2OUT 9 T1OUT 14 R1IN 13 T2OUT 7 R2IN 8 C2+
4 C2-5
C1+
1 C1-3
VS+ 2 VS- 6
U4
MAX232 1 7 4
J4
CONN-D9M
C9
10u
C10
10u
C11
10u C12
10u
D1
LED-GREEN
D2
LED-RED
D3
LED-YELLOW
X1
CRYSTAL
C2
33p
C3
33p
C4
104
C5
104
C6
104
R2
10k
1
1
C7
10u
1
J1
TBLOCK-I2
VI
1 VO 3
U5
7805
C8
100u
C13
1000u
RV1
1k
RV2
1k
RXD RTS
II CÁC VI MẠCH CHÍNH SỬ DỤNG TRONG ĐỒ ÁN
1.trong khối cảm biến: có LM35;
2.Trong khối chuyển đổi: ADC 0804;
3.Trong khối xử lý trung tâm: AT89C52;
4.trong giao tiếp máy tính: Max232, cổng Com;
5.khối 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 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
Trang 5trong 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ể 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, LM35
Ngõ ra là điện áp
Độ nhạy 10mv/10C
Sai 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> 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 đọc
WR :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, sơ đồ
c, nguyên lý hoạt động
Trang 6 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
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
3> vi điều khiển AT89C52;
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
Trang 7 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 89c52 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 3
Mỗ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:
P3.0 RXD Dữ liệu nhận cho Port nối tiếp
Trang 8P3.1 TXD Dữ liệu truyền cho Port nối tiếp
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, XTAL2
2 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
Trang 9d, nguyên lý hoạt động của các chân trong mạch
+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
+điện trở băng U5: có tác dụng làm điện trở kéo lên nguồn
+ 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
+chân p1.0 => p1.7 được giao tiếp nối với ADC 0804 : nhiệm vụ đọc nhiệt độ thu được của bộ chuyển đổi
+chân p2.5=> p2.7 điều khiển hiển thị led: khi nhiệt độ đo vượt quá khoảng nhiệt độ khống chế thì 1 trong 3 led sẽ sáng
+chân p3.0 => p3.1 kết nối với Max232 nhiệm vụ hiển thị nhiệt độ đo được
+chân p3.5=>p3.7 lần lượt nối với /RD và /WR , /INTR nhiệm vụ điều khiển hoạt động của bộ điều khiển số - tương tự
Trang 104, HIỂN THỊ , GIAO TIẾP MÁY TÍNH
a, +Bộ vi điều khiển AT89S52 có thể giao tiếp vơí máy tính qua cổng nối tiếp
+ người ta sử dụng mạch giao tiếp giữa vi điều khiển với máy tính qua cổng RS232
+việc truyền một kí tự qua cổng nối tiếp thực chất là truyền mã ASCII của kí tự
mà trong bài là truyền con số nhiệt độ
+windows cung cấp sẵn cho chúng ta một công cụ truyền tin qua cổng nối tiếp là Hyper Terminal Từ menu Start ->program -> accessories -> communications -> chọn Hyper terminal Sau đó chọn cổng nối tiếp và thiết lập các thông số cho cổng nối tiếp.Lưu ý rằng các thông số này phải giống như dã thiết lập cho cổng nôi tiếp của vi điều khiển
B,mạch trong bài
p3.1
1 2 3 4
5 J1
CONN-D9M
C1
10u
T1IN 11 R1OUT 12 T2IN 10 R2OUT 9
T1OUT 14 R1IN 13 T2OUT 7 R2IN 8 C2+
4 C2-5
C1+
1 C1-3
VS+ 2 VS- 6
U1
MAX232
C2
10u
C3
10u C4
10u
Trang 11B,Hiển thị cảnh báo
5
6
7
D1
LED-GREEN
D2
LED-RED
D3
LED-YELLOW
Chức năng hiển thị khi nhiệt độ đo được so sánh với nhiệt độ khống chế +nếu nhiệt độ đo được nhỏ hơn nhiệt độ khống chế thì led đỏ sang +nếu nhiệt độ đo được lớn hơn nhiệt độ khống chế thì led xanh sang +nếu nhiệt độ đo bằng nhiệt độ khống chế thì led vàng sang
II, MẠCH THIẾT KẾ VÀ CHƯƠNG TRÌNH
1, Mạch nguyên lý
Trang 12rd wr
rd wr 5
7 6 5
rst rst 18 XTAL2
XTAL1 19
ALE 30 EA 31 PSEN 29 RST 9
P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32
P1.0/T2 1 P1.1/T2EX 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8
P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR P3.5/T1 16 15 P2.7/A15 28
P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27
U1
AT89C52 VIN+
6 VIN-7 VREF/2 9 CLK IN 4
A GND 8 RD 2 WR 3 INTR 5 CS 1
D GND 10 DB7(MSB) DB6 DB5 DB4 DB3 DB2DB1 11 12 13 14 15 1617 DB0(LSB) 18
CLK R 19
VCC 20
U2
ADC0804
R1
10k
C1
150p
27.0
3
1
VOUT 2
U3
LM35
T1IN 11 R1OUT 12 T2IN 10 R2OUT 9 T1OUT 14 R1IN 13 T2OUT 7 R2IN 8 C2+
4 C2-5
C1+
1 C1-3
VS+ 2 VS- 6
U4
MAX232 1 7 4
J4
CONN-D9M
C9
10u
C10
10u
C11
10u C12
10u
D1
LED-GREEN
D2
LED-RED
D3
LED-YELLOW
X1
CRYSTAL
C2
33p
C3
33p
C4
104
C5
104
C6
104
R2
10k
1
1
C7
10u
1
J1
TBLOCK-I2
VI
1 VO 3
7805
C8
100u
C13
1000u
RV1
1k
RV2
1k
RXD RTS
2,mạch in
3; CODE CHƯƠNG TRÌNH
#include<reg52.h>
sbit rd=P3^7; //Read signal P3.7
sbit wr=P3^6; //Write signal P3.6 //Chip Select P3.5 sbit intr= P3^5;
Trang 13sbit d= P2^5;
sbit x=P2^6;
sbit v=P2^7; //INTR signal P3.4
char tempuart;
unsigned int adc_avg,adc;
void read()
{
wr=1;
while(intr);
rd=0;
adc_avg=P1;
rd=1;
}
uart_init()
{
TMOD = 0x20; //Timer 1 che do 2 TH1= 0xF3; //Toc do 2400 baud
SCON=0x50;
SCON=0x50;
TR1 =1;
TI = 1;
}
//Chuong trinh nhan du lieu tu PC
void getPC ()interrupt 4
Trang 14//Nhan du lieu truyen den tu may tinh
while(RI==0);
tempuart = (SBUF); //Nhan menu dieu khien tu VB
RI = 0;
}
void sendPC(char m)
{
SBUF=m;
while(!TI);
TI = 0;
}
void sendPCstr(unsigned char *s)
{
while(*s!=0x00)
{
SBUF = *s;
while(!TI);
TI = 0;
s++;
}
}
void sendPCint(long int i)
{
int j,m;
char c=0;
unsigned char d[20];
if(i>=0)
Trang 15c=0;
else if(i<0)
{
c=1;
i=0-i;
}
for(j=0;j<20;j++)
{
d[j]=i%10;
i/=10;
if(i==0) {
m=j;
} }
if(c==1)
sendPCstr("-");
for(j=m;j>=0;j )
sendPC(d[j]+48);
}
void delay()
{
long x;
for(x=1;x<=10000;x++); }
void main()
{
Trang 16uart_init(); //Cai dat UART
d=v=x=1;
while(1)
{
sendPCstr(" Nhiet do hien tai\n"); sendPC(10);
read();
adc=adc_avg*0.14634;
sendPCint(abc);
delay();
sendPC(12);
if(adc>27)
{ x=1;
d=v=0;
} if(adc==27)
{ d=1;
v=x=0;
} if(adc<27)
{ v=1;
x=d=0;
} }
Trang 17II, ĐÁNH GIÁ VỀ SẢN PHẨM
1, ưu điểm
+ Với mạch đo nhiệt độ hiển thị trên máy tính
-đảm bảo độ chính xác cao
-mạch đơn giản dễ dàng thực hiện
-phạm vi đo nhiệt độ rộng từ -55 đến 150 0c
-điện áp làm việc 4 đến 30v, dòng tiêu thụ nhỏ,nên hầu như không ảnh hưởng tới kết quả đo
-sai số nhỏ
-số linh kiện sử dụng ít
-khả năng giao tiếp máy tính giúp người sử dụng giám sát dễ dàng -khả năng ứng dụng cao, thích hợp với nhiều công việc tại các nhà máy ,xí nghiệp có liên quan dến nhiệt như lò nhiệt, sấy thực phẩm,hay như ấp trứng gia cầm…
2, hướng phát triển
-ngày nay với sự phát triển của khoa học kĩ thuật ,đặc biệt là về công nghệ kĩ thuật điện tử có vai trò rất quan trọng trong mọi lĩnh vực khoa học kĩ thuật , tự động hóa…do đó chúng ta phải biết nắm bắt và ứng dụng vào thực tế
-có thể ứng dụng việc kiểm soát nhiệt độ trong dây chuyền tự động hóa tại các nhà máy do đó sử dụng hiệu quả tối đa trong việc kiểm soát ,tiết kiệm nguyên nhiên liệu tại các lò nhiệt,lò sấy…
-có thể đo nhiệt độ để đưa ra các cảnh báo tức thời