Professional Documents
Culture Documents
Bước sang thế kỷ XXI thế giới và Việt Nam đều khẳng định có 4
lĩnh vực khoa học được gọi là lĩnh vực công nghệ cao đó là :Công nghệ
điện tử,Công nghệ vật liệu mới ,công nghệ sinh học và công nghệ năng
lượng mới. Ngành công nghệ điện tử ở đây thực chất được hiểu bao gồm
công nghệ NANO ,kỹ thuật điện tử ,kỹ thuật máy tính ,điện tử viễn thông
và điều khiển tự động.Một trong những yếu tố tạo ra những tiền đề đó là
ngành Công nghệ kỹ thuật Điện tử _Tự động hoá . Việc áp dụng hợp lý
các thành tựu của điều khiển tự động và máy tính vào sản xuất sẽ mang
lại lợi ích to lón về nhiều mặt.
I: Đặt vấn đề
Ngày nay kỹ thuật vi diều khiển đã trở nên quen thuộc trong nganh
kỹ thuật và trong dân dụng .từ các dây truyền sản xuất lớn tới các thiết bị
dân dụng .chung ta đều thấy có mặt của vi điều khiển .các bộ vi điều
khiển có khả năng sử lý nhiều hoạt động phức tạp mà chỉ cần 1 con chip
vi mạch nhỏ ,nó đã thay thế các tủ điều khiển lớn và phức tạp bằng những
mạch điện nhỏ gọn ,dễ thao tác sử dụng .
Vi điều khiển không những góp phần vào kỹ thuật điều khiển mà
còn góp phần to lớn vào việc phát triển thông tin .Đó chính là sự ra đời
của hàng loạt các thiết bị tối tân trong ngành điện tử viễn thông ,truyền
hình ,đặc biệt là sự ra đời của mạng internet siêu xa lộ thông tin .góp
phấn đưa con người tới đỉnh cao của nền văn minh nhân loại.
Chính các lý do trên ,việc tìm hiểu vi điều khiển là điều kiện mà các
sinh viên các ngành đặc biệt là ngành điện_điện tử phải hết sức quan
tâm .Đó chính là một nhu cầu cấp bách và cần thiết với mỗi sinh viên .đề
tài được thực hiện chính là đáp ứng nhu cầu đó.
Các bộ vi điều khiển sử dụng các vi điều khiển tuy đơn giản nhưng
vận hành và sử dụng được là một điều rât phức tạp .Phần công việc sử lý
chính vẫn phụ thuocj vào con người đó chính là chương trính hay phần
mềm.Tuy chúng ta thấy các máy tinh cực kỳ thông minh giải quyết các
bài toán phức tạp trong vài phần triệu giây nhưng đó cũng là dựa trên
những sự hiểu biết của con người .Nếu không có sự tham gia của con
người thì hệ thống vi điều khiển cũng chỉ là một vật vô tri.đo vậy khi nói
đến vi điều khiển cũng giống như máy tính bao gôm hai phần là phần
cứng và phần mềm.
Các bộ vi điều khiển theo thời gian cùng với sự phát triển của công
nghệ bán dẫn đã tiến triển rất nhanh từ bộ vi điều khiển 4 bit đơn giản đến
bộ vi điều khiển 32 bit.Với công nghệ tiên tiens ngày nay máy tính có thể
đi đến viêc suy nghĩ tri thức các thông tin đưa vào đó là các máy tính
thuộc thế hệ trí tuệ nhân tạo.
Để tài tìm hiểu vi điều khiển một cách thực tế và tích lũy thêm kinh
nghiệm ,ngay khi đang là sinh viên ,việc làm đồ án là vô cùng cần thiết
Sau đây chúng ta tìm hiểu về đề tài “ ĐO VẬN TỐC TRUNG BÌNH
CỦA MỘT VẬT CHUYỂN ĐỘNG TỊNH TIẾN HIỂN THỊ TRÊN LCD
“ .Đây là một cách hiển thị khá phổ biến hiện nay.
Hệ thống sử dụng 2 cảm biến phát hiện vật đặt tại 2 vị trí khác nhau trên
hướng chuyển động của vật.
Dựa trên cơ sở của các đề tài vi điều khiển ,đặc biệt là các tính năng
của chúng cũng như các họ IC giao tiếp ,hiển thị và giải mã …. Nhằm
thiết kế môt hệ thống vi điều khiển góp phần làm phong phú cho việc
hiểu biết về lĩnh vực này đồng thời có thể mở rộng và định hướng về sau .
Đề tài này được thực hiện chủ yếu dựa trên kiến thức về vi điều khiển
,các phương pháp truyền dữ liệu ,tìm hiểu vè các IC được dung .
Các linh kiện được dùng trong đề tài bao gôm:
• Vi điều khiển IC AT89S52
• LCD 16*2
• IC LM358
• Cảm biến(octo)
Bộ vi điều khiển viết tên tiếng anh là Micro- Controller là mạch tích hợp
trên 1 chip có thể lập trình được ,dung để điều khiển hoạt đọng của một
hệ thống .Theo các tập lệnh của người lập trình .Bộ vi điều khiển tiến
hành đọc ,lưu chữ thông tin ,đo thời gian và tiến hành đóng mở một co
cấu nào đó
Trong các thiết bị điện và điện tử dân dụng các bộ vi điều khiển ,điều
khiển hoạt động của TV,máy giặt,đầu loicj lazer ,điện thoại,lò vi song…..
Trong hệ thống sản xuất tự động ,bộ vi điều khiển được sủ dụng trong
robot ,dây truyền tự động ,các hệ thống càng thông minh thi vai trò của vi
điều khiển càng quan trọng .
Vi điều khiển 8051 được Intel cho ra đời vào năm 1980 thuộc vi điều
khiển đầu tiên của họ MCS-51. Hiện tại rất nhiều nhà sản xuất như
Siemens, Advanced Micro Devices, Fusisu và Philips tập trung phát triển
các sản phẩm trên cơ sở 8051.
hgAtmel là hãng đã cho ra đời các chip 89C51, 52, 55 và sau đó cải tiến
thêm, hãng cho ra đời 89S51, 52, 89S8252…
Hiện nay các bộ vi điều khiển 8 bit đứng đầu là họ 8051 có số lượng
lớn nhất các nhà cung cấp đa dạng .8051 là một bộ vi sử lý 8 bit có nghĩa
la CPU chỉ co thể làm việc với 8 bit dữ liệu tại một thời điểm .Dữ liệu lớn
hơn 8 bit được chia ra thành các dũ liệu 8 bit để cho sử lý. 8051 có tất cả
4 cổng vào – ra I/O mỗi cổng rộng 8 bit .Các nhà sản xuất đã cho xuất
xưởng chỉ với 4K byte ROM trên chip.
1. CPU(Centralprocessing unit):
• Thanh ghi tích lũy A
• Thanh ghi tích lũy phụ B
• Đơn vị logic học(ALU:Arithmetic logical unit)
• Thanh ghi từ trạng thái chương trình(PSW :Program status
word)
• Bốn băng thanh ghi
• Con trỏ ngăn xếp
2. Bộ nhớ chương trình:( bộ nhớ ROM ) gồm 8 Kbyte flash
3. Bộ nhớ giữ liệu:( bộ nhớ RAM ) gồm 256 byte
4. 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 nối tiếp với máy tính thông qua bộ
UART.
5. 3 bộ timer/counter: 26 bit thực hiện chức năng định thời và
đếm sự kiện.
6. WDM ( Wath Dog Timer ): để phục hồi lại hoạt động của
CPU khi nó bi treo.
7 6 5 4 3 2 1 0
- - - - - S2 S1 S0
Tùy theo các giá trị khác nhau được ghi vào SO,S1,S2 sẽ có số chu kỳ
máy mà WDT sẽ đếm trong bảng sau
S2 S1 S0 Machine Cyle Count
14
0 0 0 2
0 0 1 215
0 1 0 216
0 1 1 217
1 0 0 218
1 0 1 219
1 1 0 220
1 1 1 221
Sơ đồ chân IC AT89S52
P ort 3(chân 10 – 17) mỗi chân trên port3 ngoài chức năng nhập
còn
có chức năng riêng:
9. XTAL1,XTAL2
AT89S52 có một bộ dao động trên chip,nó thường được gắn với bộ
dao động thạch anh có tần số lớn nhất là 33MHz ,thông thường là
12MHz
10.VCC,GND
AT89S52 dùng nguồn 1 chiều có dải điện áp từ 4V đến 5.5V được
cấp qua chân 40 và 20.
1 8 X T A L 2
1 9
X T A L 1
AT89S52 có một bộ chia tần số bên trong chip,bộ này sẽ cung cấp
xung clock cho các khối trên chip từ nguồn dao động bên ngoài qua 2
chân XTAL 1 và XTAL 2
Hoạt động ở 2 chế độ:
• Chế độ X1: (chế độ mặc định)
• Chế độ X2:
2,Mach RESET
V C C
+ C 3
1 0 u F
9 S W 1
R S T
1 0 k
Các bộ định thời (Timer) được sử dụng rộng dãi trong các ứng dụng đo
lường và điều khiển .vi điều khiển AT89S52 có 3 bộ định thời 16 Bit
trong đó 2 bộ timer 0 và 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 ( hẹn giờ ) đếm sự
kiện sảy ra bên ngoài bộ vi điều khiển hoặc tốc độ Baud cho cổng nối tiếp
của vi điều khiển.
I : Các thanh ghi của bộ định thời:
1,Các thanh ghi của Timer 0 và Timer 1
Thanh ghi chế độ định thời (TMOD)
Thanh ghi TMOD chứa 2 nhóm 4 bit dùng để đặt chế độ làm việc cho
Time 0 và Timer 1
7 6 5 4 3 2 1 0
GATE1 C/#T1 M1 M0 GATE0 C/#T0 M1 M0
_______timer1________ _ _ ________timer0_________
.Thanh ghi TMOD
Bit Ký Địa Mô tả
hiệu chỉ
TCON.7 TF1 8FH Cờ báo tràn của timer 1,được đặt bởi phần
cứng khi có tràn ,xóa bởi p mềm hoặc p
cứng khi bộ vsl chỉ đến chương trình ngắt
TCON.6 TR1 8EH Bit điều khiển timer 1 hoạt động ,được đặt
xóa bằng phần mềm để diều khiển cho
timer 1 chạy dừng
TCON.5 TF0 8DH Cờ báo tràn cho timer 0
TCON.4 TR0 8CH Bit điều khiển cho timer 0 hoạt động
TCON.3 IT1 8BH Cờ ngắt do timer 1
TCON.2 IE1 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
TH1 TL1
TH0 TL0
Timer 0 Timer 1
T2CON.
1
T2CON.
Lớp Điện Tử 4_K10 - 15 – SVTH: Nguyễn Đình Cường
Nguyễn Văn Hải
Đoàn Văn Mừng
Trường Đại Học Công Nghiệp Hà Nội
*thanh ghi đệm truyền nhận ở cổng nối tiếp (SBUF _serial bufer)
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 đượ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
Trong những năm gần đây LCD ngày càng được sử dụng rộng dãi thay
thế dần cho các loại đen LED ( các đen LED 7 đoạn hay nhiều đoạn ) đó
là vì:
• Khả năng hiển thi các số ,ký tự và đồ họa tốt hơn nhiều so với các
đèn LED( vì đèn LED chi hiển thị được các số và một số ký tự)
• Nhờ kết hợp một bộ vi điều khiển làm tươi vào LCD làm giải
phóng cho CPU công việc làm tươi LCD trong khi đen LED phải
được làm tươi bằng CPU (hoặc bằng cách nào đó) để duy trì việc
hiển thị các dữ liệu
• Dễ dàng lập trình cho các ký tự và đồ họa
II,Ý nghĩa các chân và mã lệnh điều khiển LCD hiển thị ký tự
Hầu các mudule LCd hiển thị ký tự được thiết kế dựa trên bộ điều
khiển HD44780 của Hitachi nên chúng có tập lệnh và các chân tương
thích nhau
Tên Bit Mô tả
I/D 0=Decrement cursor 1=Increment cursor possition
position
S 0=không dịch chuyển 1=dịch chuyển hiển thị
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ỏ
Lớp Điện Tử 4_K10 - 19 – SVTH: Nguyễn Đình Cường
Nguyễn Văn Hải
Đoàn Văn Mừng
Trường Đại Học Công Nghiệp Hà Nội
Một chương trình hiển thị ký tự trên LCD sẽ đi theo 4 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ự
I : Sơ đồ nguyên lý
Mạch nguyên lý
II : Sơ đồ mạch in
Mạch in
/*...............................................................................................
Lớp Điện Tử 4_K10 - 23 – SVTH: Nguyễn Đình Cường
Nguyễn Văn Hải
Đoàn Văn Mừng
Trường Đại Học Công Nghiệp Hà Nội
#include<reg52.h>
#include<stdio.h>
#include<math.h>
int m,n,t,v,a,b,c,d,e;
sbit RS=P1^0;
sbit RW=P1^1;
sbit EN=P1^2;
char x;
void delay30ms(void)
{
TMOD=0x10;
TH1=35535/256;
TL1=35535%256;
TR1=1;
while(!TF1);
TR1=TF1=0;
}
void delay(unsigned long int t)
{
unsigned long int i;
for(i=0;i<t;i++);
}
void busy_flag(void)
{
P2=0xff;
RS=0;
RW=1;
do
{EN=1;
delay(10);
EN=0;
x=P2;
x=x&0x80;
}
while(x==0x80);
}
void write_command (unsigned char LCD_command)
{
busy_flag();
P2=LCD_command;
RS=0;
RW=0;
EN=1;
delay(10);
EN=0;
delay(10);
}
void init(void)
{
write_command (0x03);
write_command(0x38);
write_command(0x06);
write_command(0x0e);
}
void main(void)
Lớp Điện Tử 4_K10 - 25 – SVTH: Nguyễn Đình Cường
Nguyễn Văn Hải
Đoàn Văn Mừng
Trường Đại Học Công Nghiệp Hà Nội
{TMOD=0X01;
IE=0x87;
IT0=IT1=1;
TR0=0;
TL0=(65535-5000)/256;
TH0=(65535-5000)%256;
TR0=1;
delay30ms();
init();
while(1)
{
write_command (0x01);
write_command (0x38);
write_string(" DH CONG NGHIEP ");
write_command (0xc0);
write_string (" HA NOI ");
write_command(0x01);
while(1)
if(m==0)
{
v=1000/(t*0.005);
a=v/10000+0x30;
b=v%10000/1000+0x30;
c=v%10000%1000/100+0x30;
d=v%10000%1000%100/10+0x30;
e=v%10000%1000%100%10+0x30;
{
write_command (0x02);
write_string ("VAN TOC:");
write_command (0xc0);
write_data(a);
write_data(b);
write_data(46);
write_data(c);
write_data(d);
write_data(e);
write_string (" m/s");
}
Lớp Điện Tử 4_K10 - 26 – SVTH: Nguyễn Đình Cường
Nguyễn Văn Hải
Đoàn Văn Mừng
Trường Đại Học Công Nghiệp Hà Nội
}
}
}
void ngat_timer0(void) interrupt 1
{
TL0=(65535-5000)/256;
TH0=(65535-5000)%256;
if(m==1)
{
t=t+1;
}
}
void ngat_0(void) interrupt 0
{
t=0;
m=1;
}
void ngat_1(void) interrupt 2
{
m=0;
Mục lục
1,LỜI NÓI ĐẦU. ........................................................................…..1
I: Đặt vấn đề ……………………….…………………………...1
Lớp Điện Tử 4_K10 - 27 – SVTH: Nguyễn Đình Cường
Nguyễn Văn Hải
Đoàn Văn Mừng
Trường Đại Học Công Nghiệp Hà Nội