Tải bản đầy đủ (.doc) (23 trang)

Thiết kế bộ đếm sản phẩm dùng cảm biến hồng ngoại hiển thị trên phần mềm tiện ích Hyper terminal

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

Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3

Lời nói đầu
Sự ra đời của các bộ vi xử lý nói chung ,và các bộ vi điều khiển
nói riêng đã tạo ra một bước ngoặt lớn trong việc thiết kế các hệ
thống xử lý thông tin,đo lường điều khiển và truyền thông.kêt quả
là đã tạo ra được những sản phẩm như máy vi tính,máy ảnh kĩ
thuật số,TV LCD,máy nghe nhạc MP3,Mp4… ngày càng nhỏ gọn
hơn,giá cả rẻ hơn,tiện ích hơn,đa năng hơn,tiệm dụng hơn. Ứng
dụng thực tế nhóm 10 được giao đề tài “Thiết kế bộ đếm sản
phẩm dùng cảm biến hồng ngoại hiển thị trên phần
mềm tiện ích Hyper terminal”
Nội dung gồm có:
Chương I : Giới thiệu về mạch và sơ đồ khối
Chương II: Tìm hiểu về các khối chức năng
Chương III: Đánh giá về sản phẩm
Chương IV:Code
Do còn thiếu kinh nghiệm nên không khỏi sai sót và thiếu thốn chúng em rất mong
sự đóng góp ý kiến và sự giúp đỡ của thầy cô.
Chúng em xin trân thành cảm ơn!
Hà nội,ngày 19 tháng 5 năm 2011
Nhón sinh viên lớp
ĐT3-K3
thực hiện
1.Nguyễn văn Chính
2.Nguyễn văn Du
3.Phạm thế Nam

Đồ án Vi Điều Khiển Design by Group 10
1
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3



ĐỒ ÁN VI XỬ LÝ
Đề tài :
Thiết kế bộ đếm sản phẩm dùng cảm biến hồng
ngoại hiển thị trên phần mềm tiện ích
Hyper terminal
I .Giới thiệu về mạch và sơ đồ khối
Mạch sử dụng cảm biến hồng ngoại để đếm sản phẩm đi qua một vị trí cô định trên băng
truyền.
Mạch đếm sản phẩm bằng phương pháp đếm xung nên mỗi khi sản phẩm đi qua băng
chuyền thì cần có mạch để chuyển tín hiệu từ cảm biến thành dạng xung.Ta goi phần nay
la mạch điều chế.
Xung tao ra sẽ được đưa qua khối xử lý để tiến hành đếm sau đó số sản phẩm được hiển
thị lên máy tính.
Vì vi điều khiển sử dụng mức logic TTL còn máy tính thì được thiết kế cổng COM theo
chuẩn RS232 nên để giao tiếp giữa vi điều khiển và máy tính chúng ta cần có một mạch
để chuyển đổi mức tín hiệu.
Từ đó ta có sơ đồ khối như sau:
Đồ án Vi Điều Khiển Design by Group 10
2
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3

II. Tìm hiểu về các khối chức năng
1) Khối cảm biến
a/Cảm biến hồng ngoại
- Cảm biến hồng ngoại sử dụng một cặp LED thu/phát hồng ngoại
- LED phát sẽ phát ra tia hồng ngoại khi được cấp dòng
- LED thu khi không có ánh sáng hồng ngoại chiếu vào thì có điện trở rất lớn.Ánh sáng
hồng ngoại có cường độ càng mạnh thì điện trở của LED thu càng nhỏ


Đồ án Vi Điều Khiển Design by Group 10
Cảm
biến

điều
chế
Xử


tính
toán

Chuyển
đổi mức
tín
hiệu

Hiển
thị
bằng
máy
tính
3
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3

LED phát LED thu
-Sử dụng đặc điểm này của LED thu chúng ta sử dụng mạch so sánh dùng O-amp để tạo
ra xung.
-Mạch phát chúng ta sử dụng một điện trở(R1) để tạo dòng cho LED phát
Sơ đồ mạch :


Khối thu phát
V C C
D 1
f a t
D 3
X U N G
R 2
1 0 K
R 1
2 2 0
R 3
4 7 0
R 4
2 0 K
D 2
t h u
+
-
U 2 A
L M 3 5 8
3
2
1
84
X u n g
R a ( I N T 0 )
- Biến trở R4 sẽ được điều chỉnh để tạo điện áp so sánh vào chân 3.
- Điện trở R2 kết hợp với LED thu để tạo thành mạch phân áp.Khi không có ánh
sáng hồng ngoại chiếu vào thì điện trở của LED thu rất lớn => chân 2(-V) có điên

áp > điện áp chân 3 (+V) do đó đầu ra 1 sẽ ở mức thấp = 0V.
- O-amp co nhiệm vụ phối hợp trở kháng để tín hiệu đưa ra ơ chân 7 được ổn định.
- Led D2 dùng để báo cho ta biết mức logic của đầu ra 7.
bộ O-AMP được sử dụng lấy từ IC LM358.Sơ đồ chân của LM 358 :
Đồ án Vi Điều Khiển Design by Group 10
4
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3

2) Khối xử lý và tinh toán
Trong khối này chúng ta sử dụng vi điều khiển 89s52 để tính toán và giao tiếp với máy
tính.Vi điều khiển thuộc họ 8051.
a. Giới thiệu cấu trúc phần cứng 89s52
a1) Sơ đồ chân 89s52:
8051 là họ vi điều khiển (Microcontroller) do hãng Intel sản xuất. 89s52 có đặc điểm như
sau:
- 8k byte ROM,256 byte RAM
- 4 Port I/O 8 bit (32 chân xuất nhập)
- 3 bộ đếm/ định thời 16 bit.
- Giao tiếp nối tiếp song công hoàn toàn UART (full duplex UART)
- 64k byte không gian bộ nhớ chương trình mở rộng.
- 64k byte không gian bộ nhớ dữ liệu mở rộng.
- Một bộ xử lý luận lý (thao tác trên các bít đơn).
- 6 nguồn ngắt
- Watch Dog Time (WDT)
Sơ lược về các chân của 8051 (89s52):
Đồ án Vi Điều Khiển Design by Group 10
5
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3



a2/ Chức năng của các chân 8051:
Port 0: từ chân 32 đến chân 39 (P0.0 _P0.7). Port 0 có 2 chức năng: trong các
thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường IO, đối
với thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ và bus dữ liệu.
Port 1: từ chân 1 đến chân 9 (P1.0 _ P1.7). Port 1 là port IO dùng cho giao tiếp
với thiết bị ngoài nếu cần.
Port 2: từ chân 21 đến chân 28 (P2.0 _P2.7). Port 2 là một port có tác dụng kép
dùng như các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị
dùng bộ nhớ mở rộng.
Port 3: từ chân 10 đến chân 17 (P3.0 _ P3.7). Port 3 là port có tác dụng kép. Các
chân của port này có nhiều chức năng, có công dụng chuyển đổi có liên hệ đến các
đặc tính đặc biệt của 8051 như ở bảng sau :
Bit Tên Chức năng chuyển đổi
Đồ án Vi Điều Khiển Design by Group 10
6
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3

P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RXD
TXD
INT0\
INT1\
T0

T1
WR\
RD\
Ngõ vào dữ liệu nối tiếp.
Ngõ xuất dữ liệu nối tiếp.
Ngõ vào ngắt cứng thứ 0.
Ngõ vào ngắt cứng thứ 1.
Ngõ vào TIMER/ COUNTER thứ 0.
Ngõ vào của TIMER/ COUNTER thứ 1.
Tín hiệu ghi dữ liệu lên bộ nhớ ngoài.
Tín hiệu đọc bộ nhớ dữ liệu ngoài
PSEN (Program store enable):
PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc bộ nhớ chương trình mở rộng
và thường được nối đến chân OE\ của Eprom cho phép đọc các byte mã lệnh.
PSEN ở mức thấp trong thời gian 8051 lấy lệnh. Các mã lệnh của chương trình
được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên trong 8051 để
giải mã lệnh. Khi 8051 thi hành chương trình trong ROM nội PSEN ở mức cao.
ALE (Address Latch Enable):
Khi 8051 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ và dữ
liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân thứ 30 dùng
làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng
với IC chốt.
Tín hiệu ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là
địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động.
EA(External Access): Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức
1 hoặc mức 0. Nếu ở mức 1, 8051 thi hành chương trình từ ROM nội. Nếu ở mức 0,
8051 thi hành chương trình từ bộ nhớ mở rộng. Chân EA\ được lấy làm chân cấp
nguồn 21V khi lập trình cho Eprom trong 8051.
RST (Reset): Khi ngõ vào tín hiệu này đưa lên mức cao ít nhất 2 chu kỳ máy,
các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ thống. Khi

cấp điện mạch phải tự động reset.
Các ngõ vào bộ dao động X1, X2:
Bộ tạo dao động được tích hợp bên trong 8051. Khi sử dụng 8051, người ta chỉ cần nối
thêm tụ thạch anh và các tụ. Tần số tụ thạch anh thường là 12 Mhz
-mạch reset
R e s e t ( 9 )
S W 1
C O N T A C
R 5
1 0 K
V C C
+
C 3
1 0 u F
-Mạch tạo dao động (89s52 có thể lấy tần số thạch anh từ 0  33Mhz)
Đồ án Vi Điều Khiển Design by Group 10
7
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3

ở đây ta lấy tần số là 11.0592 Mhz để tạo tốc độ baud chuẩn.
Y 1
1 1 . 0 5 9 2 M h z
X T A L 1
C 5
3 3
X T A L 2
C 4
3 3
Trong mạch chúng ta sử dụng ngắt ngoài 0 để đếm xung,cổng nối tiếp để giao tiếp với
máy tính qua cổng COM DB9,timer 1 để tạo tốc độ baud.Do đó ta sẽ đi sâu tìm hiểu về :

- Các nguồn ngắt
- Port nối tiếp (serial port)
- Timer
b/ Ngắt (interrupt)
- 89s52 có 6 nguồn gây ngắt : ngắt ngoài 0,ngắt ngoài 1,ngắt timer 0,timer 1, timer 2,ngắt
do port nối tiếp
Vector ngắt và các cờ ngắt.
Đồ án Vi Điều Khiển Design by Group 10
8
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3


Chúng ta sử dụng ngắt ngoài 0 để đếm xung.Với phương pháp này,nếu sản phẩm đi
qua băng tải khi vi điều khiển đang bận xử lý thì chúng ta vẫn đếm được.Do đó sẽ cho
kết quả chính xác hơn.
- Ngắt ngoài 0 lấy tín hiệu đầu vào là chân INT0 (P3.2).Có hai kiểu gây ngắt đó là
ngắt theo mức “0“ và ngắt theo sườn âm.Khi có tín hiệu ngắt vào chân INT0 thì cờ
IE0 được dựng lên yêu cầu phục vụ ngắt.IE0 được xóa bởi phần mềm.
Có 2 thanh ghi điều khiển ngắt đó là:
- Thanh ghi cho phép/cấm ngắt IE
Bit Ký hiệu Địa chỉ bit Mô tả
IE.7 EA AFH Cho phép / Cấm toàn bộ
IE.6 _ AEH Không được mô tả
IE.5 ET2 ADH Cho phép ngắt từ Timer 2 (8052)
Đồ án Vi Điều Khiển Design by Group 10
9
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3

IE.4 ES ACH Cho phép ngắt port nối tiếp
IE.3 ET1 ABH Cho phép ngắt từ Timer 1

IE.2 EX1 AAH Cho phép ngắt ngoài 1
IE.1 ET0 A9H Cho phép ngắt từ Timer 0
IE.0 EX0 A8H Cho phép ngắt ngoài 0
Tóm tắt thanh ghi IE
- Thanh ghi ưu tiên ngắt IP:
- 2 bit IT0,IT1 nằm trong thanh ghi TCON dùng để chọn kiểu ngắt.IT0=0 cho ta kiểu
ngắt theo mức “0”,IT0=1 cho ta kiểu ngắt theo sườn âm.Trong bài này ta sử dụng ngắt
theo sườn âm.Code thiết lập ngắt :
EA=EX0=1; // cho phep ngat 0
IT0=1; // ngat bang suon am
Chúng ta phải đếm số sản phẩm đến 12 chữ số thâp phân,tức là có giá trị bằng 10
12
,trong
khi đó kiểu số nguyên trong C lớn nhất là kiểu unsigned long int co giá trị lớn nhất là
4,3*10
9
(4 byte).Do đó để tiết kiệm bộ nhớ mà vẫn đếm được đến 12 chứ số ta sử dụng 3
biến dạng unsigned int (2byte) x,y,z mỗi biến sẽ đếm từ 0000  9999 .Code:
void ngat_int() interrupt 0
{
num0++;
if(num0==10000)
{
num1++;
num0=0;
if(num1==10000)
{
num2++;
num1=0;
num2=0;

Đồ án Vi Điều Khiển Design by Group 10
10
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3

if(num2==10000)
{
num0=0;
num1=0;
num2=0;
}
}
}
}c/ Timer 1
Chúng ta dùng timer 1 ở chế độ 2 (tự nạp lại 8 bít – auto- reload) để tạo tốc độ baud cho
port nối tiếp.
Sơ đồ hoạt động của time 0 va 1 ở chế độ này là :
Các thanh ghi điều khiển timer 1:
Thanh ghi chọn chế độ TMOD :
Đồ án Vi Điều Khiển Design by Group 10
11
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3

Thanh ghi điều khiển TCON :
Để điều khiển và thiết lập cho timer 1 tạo tốc độ baud ta sẽ nói rõ ở phần sau.
d/ Port nối tiếp
Sơ đồ cổng nối tiếp :
Đồ án Vi Điều Khiển Design by Group 10
12
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3


Có 2 thanh ghi SBUF dùng để làm phần đệm dữ liệu.Chúng có chung tên gọi là SBUF
nhưng một thanh ghi chỉ có thể đọc (dùng để nhận dữ liệu) vả một thanh ghi chỉ ghi
(dùng để gửi dữ liệu).Tùy vào cách truy xuất thanh ghi này là đọc hay ghi để vi điều
khiển biết là thanh ghi nào.
Thanh ghi điều khiển SCON:
Các bít SM0,SM1 để chọn chế độ truyển thông:
Chúng ta sử dụng chế độ 1 (truyền, nhận 8 bít)
Đồ án Vi Điều Khiển Design by Group 10
13
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3

Ta có bảng tốc độ baud :
Để vi điều khiển khớp với máy tính chúng ta sử dụng tốc độ baud là 9600.
Do đó tần số thach anh là 11.0582Mhz,SCON = 0,TH1=-3.
Ta thiết lập cho cổng nối tiếp như sau:
IE=0x81;
IT0=1;
SCON=0x52;
TMOD=0X20;
TH1=TL1=-3;
TR1=1;
Muốn gửi môt byte vào ta dùng hàm sau :
putchar(0x0c);
3.Khối chuyển đổi mức điện áp
Như đã nói ở trên,vi điều khiển sử dụng mức điện áp TTL trong khi cổng COM của máy
tính sử dụng mức RS232.
Mức logic TTL RS232
Đồ án Vi Điều Khiển Design by Group 10
14
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3


0 0 0.5V
+3+12V
1 3.5 5 V
-3 -12V
IC MAX 232 có 2 kênh chuyển đổi giữa hai mức điện áp trên (mỗi kênh gồm một cổng
phát vao một công thu) :
Ta sử dụng một kênh cho mạch:
Đồ án Vi Điều Khiển Design by Group 10
15
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3

+
C 6
1 0 u F
V B 1
S U B - D 9
5
9
4
8
3
7
2
6
1
T x D
+
C 7
1 0 u F

U 3
M A X 2 3 2
1
3
4
5
1 6
1 5
2
6
1 2
9
1 1
1 0
1 3
8
1 4
7
C 1 +
C 1 -
C 2 +
C 2 -
V C C
G N D
V +
V -
R 1 O U T
R 2 O U T
T 1 I N
T 2 I N

R 1 I N
R 2 I N
T 1 O U T
T 2 O U T
R x D
V C C
+
C 5
1 0 u F
+
C 4
1 0 u F

Cổng COM DB9 :


R X D _ R S 2 3 2
T X D _ R S 2 3 2
P 1
C O M D B 9
5
9
4
8
3
7
2
6
1
Đồ án Vi Điều Khiển Design by Group 10

16
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3

1.Mạch nguyên lý
D 3
X U N G
R 2
1 0 K
+
C 9
1 0 0 0 u F
+
C 6
1 0 u F
V B 1
S U B - D 9
5
9
4
8
3
7
2
6
1
S W 1
C O N T A C
U 5
L M 7 8 0 5 C / T O
1 3

2
I N O U T
G N D
R 3
4 7 0
V C C
+
C 7
1 0 u F
D 1
f a t
U 1
A T 8 9 C 5 2
9
1 8
1 9
2 0
2 9
3 0
3 1
4 0
1
2
3
4
5
6
7
8
2 1

2 2
2 3
2 4
2 5
2 6
2 7
2 8
1 0
1 1
1 2
1 3
1 4
1 5
1 6
1 7
3 9
3 8
3 7
3 6
3 5
3 4
3 3
3 2
R S T
X T A L 2
X T A L 1
G N D
P S E N
A L E / P R O G
E A / V P P

V C C
P 1 . 0 / T 2
P 1 . 1 / T 2 - E X
P 1 . 2
P 1 . 3
P 1 . 4
P 1 . 5
P 1 . 6
P 1 . 7
P 2 . 0 / A 8
P 2 . 1 / A 9
P 2 . 2 / A 1 0
P 2 . 3 / A 1 1
P 2 . 4 / A 1 2
P 2 . 5 / A 1 3
P 2 . 6 / A 1 4
P 2 . 7 / A 1 5
P 3 . 0 / R X D
P 3 . 1 / T X D
P 3 . 2 / I N T 0
P 3 . 3 / I N 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
J 1
C O N 2
1
2
C 1
3 3 P
V C C
R 1
2 2 0
U 3
M A X 2 3 2
1
3
4
5
1 6
1 5
2
6
1 2
9
1 1
1 0
1 3
8
1 4
7

C 1 +
C 1 -
C 2 +
C 2 -
V C C
G N D
V +
V -
R 1 O U T
R 2 O U T
T 1 I N
T 2 I N
R 1 I N
R 2 I N
T 1 O U T
T 2 O U T
C 1 0
1 0 4
C 2
3 3 P
+
C 1 2
1 0 u F
+
C 8
1 0 0 0 u F
Y 1
1 1 . 0 5 9 2
D 2
t h u

V C C
V C C
C 1 1
1 0 4
R 4
2 0 K
V C C
+
C 5
1 0 u F
+
C 4
1 0 u F
R 5
1 0 K
+
-
U 2 A
L M 3 5 8
3
2
1
84
V C C
2.Mach in:
3. mô phỏng
Đồ án Vi Điều Khiển Design by Group 10
17
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3


XTAL2
18
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
1

P1.1
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
16
P3.5/T1
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
AT89C51
X1
CRYSTAL
C1
33n
C2
33n
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
U3
MAX232
47U
10u
C6
10u
ERROR
TXD
3

RXD
2
CTS
8
RTS
7
DSR
6
DTR
4
DCD
1
RI
9
P1
COMPIM
C3
10u
C4
10u
U4
NOT
U5
NOT
Dùng phần mềm tạo cổng com ảo Virtual serial port driver 6.9 để kết nối với
Hyper terminal
5. Hiển thị trên máy tính bằng phần mền Hyper teminal
Trong Windows có cung cấp sẵn cho chúng ta một phần mền truyền tin qua cổng nối tiếp
là Hyper teminal.Cách sử dụng như sau:
Từ menu Start  programs Acessories  communications  hyper teminal

Nhập tên cho kết nối :
Đồ án Vi Điều Khiển Design by Group 10
18
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3

Sau đó chon cổng nối tiếp :
Cài đặt các thông số cho cổng com :
Và bây giờ thì kết quả đã hiện ra!
III. Đánh già về sản phẩm
+Ưu điểm :
- Mạch đơn giản do hiển thị trên máy tính (không phải thiết kế thêm phẩn hiển thị như
LCD hay led 7 thanh …) và cảm biến hồng ngoại không có phần chống nhiễu (thu và
Đồ án Vi Điều Khiển Design by Group 10
19
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3

phát ánh sáng hồng ngoại ở một tần số nào đó để chống nhiễu ).Do đó mạch rẻ tiền và dễ
làm.
+Nhược điểm :
- Mạch không co giao tiếp với cac phím nhấn nên không đặt được giá trị cần đếm
ban đầu (chi đếm được từ 0) hoăc giá trị dừng đếm.
- Chỉ đếm được các sản phẩm có khả năng che đươc ánh sáng hồng ngoại
- Không chống được những nguồn nhiễu hồng ngoại
- Khoảng cách giữa thu và phát còn hạn chế
+Hướng phát triển :
- Thêm modun nút ấn cho mạch hoặc thiết kế phần mền có thể cài đặt các thông số
ngay trên máy tính.
-Thiết kế thêm phần điều chế để có thể chống nhiễu cho cảm biến.
+Ứng dụng :
Với các cải tiến vừa nêu trên sản phẩm hoàn toàn có khả năng đem vào ứng dụng trong

thực tế sản xuất.
VI.CODE
#include <REGX52.H>
#include<stdio.h>
unsigned char m[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
int num0,num1,num2,i,j,n; //cac bien noi voi nhau tao so co 12 con so
int a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11;//so co 12 chu so
void truyen_mang(char *s)
{
putchar(0X0d);
putchar(0x0b);
while(*s)
{
putchar(*s);
s++;
}
}
void hien_thi()
{
a0=num0/1000;
a1=(num0%1000)/100;
a2=((num0%1000)%100)/10;
a3=((num0%1000)%100)%10;
a4=num1/1000;
a5=(num1%1000)/100;
a6=((num1%1000)%100)/10;
a7=((num1%1000)%100)%10;
a8=num2/1000;
Đồ án Vi Điều Khiển Design by Group 10
20

Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3

a9=(num2%1000)/100;
a10=((num2%1000)%100)/10;
a11=((num2%1000)%100)%10;
putchar(0X0d); //con tro da ve cuoi dong
putchar(m[a8]); //bat dau truyen so san pham
putchar(m[a9]);
putchar(m[a10]);
putchar(m[a11]);
putchar(m[a4]);
putchar(m[a5]);
putchar(m[a6]);
putchar(m[a7]);
putchar(m[a0]);
putchar(m[a1]);
putchar(m[a2]);
putchar(m[a3]);
}
void main()
{
IE=0x81;
IT0=1;
SCON=0x52;
TMOD=0X20;
TH1=TL1=-3;
TR1=1;
putchar(0x0c);
truyen_mang("MACH DEM SAM PHAM DUNG CAM BIEN HONG NGOAI HIEN
THI TREN PHAN MEM HYPER TERMINAL");

truyen_mang(" ===>>>>DESIGN BY GROUP 10<<<<===");
putchar(0X0d);
putchar(0x0b);
truyen_mang(" Group designer:");
putchar(0X0d);
putchar(0x0b);
truyen_mang(" 1.Nguyen Van Chinh");
truyen_mang(" 2.Nguyen Van Du");
truyen_mang(" 3.Pham The Nam");
putchar(0X0d);
putchar(0x0b);
truyen_mang("__________________________________So san pham
la________________________________");
putchar(0X0d);
putchar(0x0b);
Đồ án Vi Điều Khiển Design by Group 10
21
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3

putchar(0x0b);
num0=num1=num2=0;
while(1)
{
hien_thi();
}
}
void ngat_int() interrupt 0
{
num0++;
if(num0==10000)

{
num1++;
num0=0;
if(num1==10000)
{
num2++;
num1=0;
num2=0;
if(num2==10000)
{
num0=0;
num1=0;
num2=0;
}
}
}
}
Đồ án Vi Điều Khiển Design by Group 10
22
Đại học Công Nghiệp Hà Nội Điện Tử 3 khóa 3


Tài liệu tham khảo
1.Giáo trình “ Vi Điều Khiển Cấu Trúc Lập Trình Và Ứng Dụng
“ nhóm tác giả Kiều Xuân Thực-Vũ Thị Thu Hương- Vũ Trung
Kiên
2. Giáo trình “Vi điều khiển với lập trình C” tác giả Ngô Diên
Tập
3.và 1 số trang Web và diễn đàn như
- google.com.vn

- Hauionline.com
- dientuvietnam.com.vn
Và một số nguồn khác nữa…….
Đồ án Vi Điều Khiển Design by Group 10
23

×