MỤC LỤC
Trang
LỜI MỞ ĐẦU 6
Chương 1 : Tổng Quan 7
1.1 Giới thiệu 7
1.2 Cách thức tìm hiểu và lựa chọn giải pháp thiết kế 7
Chương 2 : Vi Điều Khiển AMELT 89C51 8
2.1 Cấu trúc bên trong của Vi điều khiển 89C51 8
2.2 Sơ đồ chân và chức năng chân Vi điều khiển AMELT 89C51 . 10
2.3 Tổ chức bộ nhớ Vi điều khiển AMELT 89C51 12
2.3.1 Bộ nhớ nội Vi điều khiển AMELT 89C51 . 12
2.3.2 Bộ nhớ ngoài Vi điều khiển AMELT 89C51 . 16
2.4 Các chức năng của Vi điều Khiển AMELT 89C51 17
2.4.1 Input/ Output 17
2.4.2 Timer . 17
2.4.3 Ngắt . 19
2.4.4 Truyền thông nối tiếp 21
2.5 Tập lệnh của Vi điều khiển AMELT 89C51 23
Chương 3 : Báo cáo quá trình thực hiện đồ án 26
3.1 Cách thực hiện đồ án . 26
3.2 Các khối trên board . 26
3.2.1 Khối phát hồng ngoại từ xa 26
3.2.2 Khối thu thu hồng ngoại 30
3.2.3 Khối công suất sử dụng TRIAC 32
3.2.4 Khối kiểm tra thiết bị AC 220 32
3.2.5 Khối phím nhấn điều khiển không sử dụng khối phát hồng ngoại từ xa 33
3.2.6 Khối nguồn 33
3.2.7 Khối hiển thị LCD 34
3.2.8 Khối Vi Điều Khiển 89C51 35
3.2.9 Thi Công 36
3.3 Lưu đồ giải thuật 38
3.4 Chương trình . 41
Chương 4 : Kết Luận . 53
4.1 Kết quả thu được 53
4.2 Các ưu điểm của sản phẩm . 53
4.3 Các khuyết điểm của sản phẩm . 53
4.4 Hướng phát triển của đề tài trong tương lai 53
LỜI MỞ ĐẦU
Ngày nay, đời sống người dân ngày càng được nâng cao, vì thế nhu cầu về sự tiện nghi trong cuộc sống càng ngày càng được đòi hỏi cao hơn trước. Chính vì thế, việc thiết kế những sản phẩm phục vụ cuộc sống là một lĩnh vực luôn đầy tiềm năng và có ý nghĩa.
Các công tắc dùng điều khiển các thiết bị điện truyền thống không có tính năng điều khiển từ xa. Muốn đóng, ngắt các thiết bị phải thao tác ngay trên công tắc. Điều này là không tiện lợi, đặc biệt trong những ứng dụng gia đình mà có người lớn tuổi. Vì thế, tôi đã lựa chọn việc thiết kế và thi công bộ điều khiển thiết bị dân dụng từ xa bằng hồng ngoại làm nội dung của đồ án. Bộ điều khiển này có thể đưa vào sử dụng để điều khiển các thiết bị gia đình dùng điện AC như hệ thống đèn, quạt, chuông báo động,
Nội dung đồ án bao gồm hai phần chính:
Phần 1: Tìm hiểu về vi điều khiển AMELT 89C51 gồm hai chương
Chương 1: Tổng quan.
Chương 2: Vi điều khiển AMELT 89C51.
Phần 2: Thiết kế thi công bộ điều khiển và chương trình điều khiển gồm hai chương
Chương 3: Báo cáo quá trình thực hiện đồ án.
Chương 4: Kết luận.
49 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2745 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Điều khiển thiết bị AC bằng hồng ngoại giám sát hiển thị LCD định thời gian OFF, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MỤC LỤC
Trang
LỜI MỞ ĐẦU 6
Chương 1 : Tổng Quan 7
1.1 Giới thiệu 7
1.2 Cách thức tìm hiểu và lựa chọn giải pháp thiết kế 7
Chương 2 : Vi Điều Khiển AMELT 89C51 8
2.1 Cấu trúc bên trong của Vi điều khiển 89C51 8
2.2 Sơ đồ chân và chức năng chân Vi điều khiển AMELT 89C51 10
2.3 Tổ chức bộ nhớ Vi điều khiển AMELT 89C51 12
2.3.1 Bộ nhớ nội Vi điều khiển AMELT 89C51 12
2.3.2 Bộ nhớ ngoài Vi điều khiển AMELT 89C51 16
2.4 Các chức năng của Vi điều Khiển AMELT 89C51 17
2.4.1 Input/ Output 17
2.4.2 Timer 17
2.4.3 Ngắt 19
2.4.4 Truyền thông nối tiếp 21
2.5 Tập lệnh của Vi điều khiển AMELT 89C51 23
Chương 3 : Báo cáo quá trình thực hiện đồ án 26
3.1 Cách thực hiện đồ án 26
3.2 Các khối trên board 26
3.2.1 Khối phát hồng ngoại từ xa 26
3.2.2 Khối thu thu hồng ngoại 30
3.2.3 Khối công suất sử dụng TRIAC 32
3.2.4 Khối kiểm tra thiết bị AC 220 32
3.2.5 Khối phím nhấn điều khiển không sử dụng khối phát hồng ngoại từ xa 33
3.2.6 Khối nguồn 33
3.2.7 Khối hiển thị LCD 34
3.2.8 Khối Vi Điều Khiển 89C51 35
3.2.9 Thi Công 36
3.3 Lưu đồ giải thuật 38
3.4 Chương trình 41
Chương 4 : Kết Luận 53
4.1 Kết quả thu được 53
4.2 Các ưu điểm của sản phẩm 53
4.3 Các khuyết điểm của sản phẩm 53
4.4 Hướng phát triển của đề tài trong tương lai 53
LỜI MỞ ĐẦU
Ngày nay, đời sống người dân ngày càng được nâng cao, vì thế nhu cầu về sự tiện nghi trong cuộc sống càng ngày càng được đòi hỏi cao hơn trước. Chính vì thế, việc thiết kế những sản phẩm phục vụ cuộc sống là một lĩnh vực luôn đầy tiềm năng và có ý nghĩa.
Các công tắc dùng điều khiển các thiết bị điện truyền thống không có tính năng điều khiển từ xa. Muốn đóng, ngắt các thiết bị phải thao tác ngay trên công tắc. Điều này là không tiện lợi, đặc biệt trong những ứng dụng gia đình mà có người lớn tuổi. Vì thế, tôi đã lựa chọn việc thiết kế và thi công bộ điều khiển thiết bị dân dụng từ xa bằng hồng ngoại làm nội dung của đồ án. Bộ điều khiển này có thể đưa vào sử dụng để điều khiển các thiết bị gia đình dùng điện AC như hệ thống đèn, quạt, chuông báo động,…
Nội dung đồ án bao gồm hai phần chính:
Phần 1: Tìm hiểu về vi điều khiển AMELT 89C51 gồm hai chương
Chương 1: Tổng quan.
Chương 2: Vi điều khiển AMELT 89C51.
Phần 2: Thiết kế thi công bộ điều khiển và chương trình điều khiển gồm hai chương
Chương 3: Báo cáo quá trình thực hiện đồ án.
Chương 4: Kết luận.
CHƯƠNG 1 TỔNG QUAN
1.1 Giới thiệu
Ngày nay, mức sống của người dân ngày càng cao và yêu cầu về việc sử dụng những sản phẩm tiện lợi cho cuộc sống là vô cùng chính đáng. Hiện nay, việc điều khiển đóng mở các công tắc điện trong gia đình vẫn mang tính thủ công là người dùng vẫn phải đến nơi đặt công tắc. Việc này đem đến nhiều bất tiện như trời tối việc đi lại đóng mở các công tắc có thể gây khó khăn cho người lớn tuổi hay những lúc cha mẹ cần tắt đèn phòng cho con cái mà không muốn vào phòng con,… Vì thế, việc thiết kế thi công một sản phẩm dùng để thay thế việc đóng mở các công tắc một cách thủ công bằng việc đóng mở từ xa qua một modun FM, hồng ngoại từ xa hay máy tính sẽ có ý nghĩa thực tiễn lớn.
Trong việc điều khiển không dây có nhiều sự lựa chọn khác nhau như dùng PLC, vi điều khiển… Ở đây, do nhu cầu là thiết bị dân dụng, giá thành chấp nhận được nên tôi sử dụng vi điều khiển để thiết kế thi công sản phẩm này.
1.2 Cách thức tìm hiểu và lựa chọn giải pháp thiết kế
Sản phẩm này gồm hai phần chính là phần điều khiển-kết nối thiết bị và phần phát tín hiệu điều khiển (hồng ngoại từ xa).
Các khối được thiết kế trong đồ án được quan hệ với nhau theo sơ đồ hình 1.1
Khối phát tín hiệu khiển
Khối điều khiển và khối hiện thị ị
Thiết bị
Điều khiển
Kiểm tra
Hình 1.1 Sơ đồ quan hệ giữa các phần điều khiển.
Ở đây, tôi lựa chọn vi điều khiển là 89C51 của AMELT làm vi điều khiển cho phần điều khiển và kết nối thiết bị.
Quá trình tìm hiểu thí nghiệm, tôi nhận thấy có hai cách để đóng mở các thiết bị AC là:
Dùng rơ-le: đây là cách được sử dụng nhiều nhưng nó có khuyết điểm là gây tiếng ồn khi đóng ngắt và thời gian đáp ứng chậm cũng như sử dụng dòng điều khiển lớn.
Dùng triac thông qua opto-triac: cách này phù hợp với việc điều khiển bằng vi điều khiển hơn, vì: độ nhạy cao, không gây tiếng ồn, dòng điều khiển bé, tiết kiệm năng lượng.
Vì thế, trong đồ án phần thi công là sử dụng triac và opto-triac để đóng mở thiết bị AC. Sơ đồ khối của phần điều khiển-kết nối thiết bị:
SW Manul
Vi Điều Khiển và Khối hiển thị
Bộ công suât AC
Khối thu hồng ngoại
REMOTE Hồng ngoại
Các thiết bị AC
Khối kiểm tra AC
Hình 1.2 Sơ đồ khối của phần điều khiển-kết nối thiết bị
CHƯƠNG 2 VI ĐIỀU KHIỂN AMELT 89C51
Cấu trúc bên trong của IC ATMEL 89C51
Hình 2.1 Cấu trúc bên trong của 89C51
BỘ XỬ LÝ TRUNG TÂM CPU: (Central Processing Unit)
Thanh ghi tích lũy A
Thanh ghi tich lũy B dùng trong phép nhân vả phép chia ...
Đơn vị logic học (ALU : Arithmetic Logiccal Unit)
Trạng thái chương trình (PSW : Prorgam Status Word)
Con trỏ ngăn xếp
Bốn băng thanh ghi
Ngoài ra còn có bộ nhớ chương trình , bộ nhớ giải mã lệnh , bộ điều khiển thời gian và logic.
Bộ xử lý trung tâm nhận trực tiếp xung clock từ bộ dao động cung cấp.
Chương trình đang chạy có thể dừng nhờ khối điều khiển ngắt bên trong.
Các nguồn ngắt : biến cố từ bên ngoài (INT0 va INT1), tràn bộ đếm của Timer , truyền thông trên Port nối tiếp.
Có hai bộ Timer 16 bit dùng để đếm sự kiện hoặc thời gian.
Các cổng (Port 0 , Port 1 , Port 2 , Port3 ) dùng truy xuất dữ liệu .
Port nối tiếp gồm : bộ truyền và bộ nhận không đồng bộ hoạt động độc lập nhau .
IC vi điều khiển ATMEL 89C51 có hai thành phần quan trọng là bộ nhớ và các thanh ghi:
Bộ nhớ gồm có bộ nhớ Rom và Ram dùng lưu trữ dữ liệu và mã lệnh
Các thanh ghi sử dụng lưu trữ thông tin trong quá trình của CPU.
IC ATMEL 89C51 thuộc họ MCS51 có đặc điểm sau :
4Kbyte Rom ( được lập trình bởi nhà sản xuất )
128 bit Ram
4 Port I/O 8 bit
Hai bộ timer 16bit
Giao tiếp nối tiếp
64KB không gian bộ nhớ chương trình mở rộng
64KB không gian bộ nhớ dữ liệu mở rộng
Một bộ xử lý lý luận (thao tác trên các bit đơn)
210 bit được địa chỉ hóa
SƠ ĐỒ VÀ CHỨC NĂNG CỦA CHÂN IC ATMEL 89C51
Hình 2.2 Sơ đồ chân của 89C51
Các chân cấp nguồn : Vi Điều Khiển 89C51 hoạt động với nguồn đơn 5VDC. Chân 40 cấp 5VDC và chân 20 cấp Vss(GND).
Các ngõ vào bộ dao động trên chip : Vi Điều Khiển 89C51 có một bộ dao động trong chip để hoạt động chỉ kết nối thanh anh và tụ về GND giữa hai chân 18 và chân 19
Hình 2.3 : Khối dao động của 89C51
Thanh anh thông thường là 12mhz không có giao tiếp với PC. Giao tiếp PC thanh anh là 11.0592mhz, còn tụ C1 = 33p và C2 = 33p.
RST : Vi Điều Khiển 89C51 ngõ vào RST nằm chân số 9 là chức năng reset . Khi tín hiệu này được mức cao (trong ít nhất 2 chu kỳ máy ) các thanh ghi trong Vi Điều Khiển 89C51 được tải các giá trị thich hợp để khởi động lại .Thường khối reset kết nối chân 9
Hình 2.4 : Mạch kết nối vào chân Reset
ALE (Address Latch Enable ) :Chân 30 là tín hiệu ra cho việc giải mã các kênh bus địa chỉ và dữ liệu khi sữ dụng bộ nhớ ngoài. 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, có thể dùng là nguồn xung nhịp hệ thống khác .
EA (External Access) : Chân 31 là tín hiệu cho phép truy xuất Ram ngoại. Vi Điều Khiển 89C51 Ram bên trong của chip (4k) nên chân EA có tín hiệu mức cao (5VDC), khi dung lượng dữ liệu hơn 4K ta mở rộng bộ nhớ EA có tín hiệu mức thấp (0VDC).
PSEN (Program Store Enable ) : chân 29 là tín hiệu điều khiển để cho phép bộ nhớ chương trình mở rộng. Khi chương trình sử dụng Rom nội PSEN ở chế độ thụ động ( mức cao )
Port 0 : Từ chân 32 đến chân 39 (hình 2.2) và các chân ký hiệu P0.0 , P0.1,... ,P0.7 có hai nhiệm vụ Input/Output hoặc data buss khi mở rộng bộ nhớ.
Port 1 : Từ chân 1 đến chân 8 (hình 2.2) và các chân ký hiệu P1.0, P1.1, ... , P1.7 có nhiệm vụ là Input/Output.
Port 2 : Từ chân 21 đến chân 28 (hình 2.2) và các chân ký hiệu P2.0,P2.1,...,P2.7 có nhiệm vụ là Input/Output.
Port 3 : Từ chân 10 đến chân 17 (hình 2.2) và các chân ký hiệu P3.0,P3.1,...,P3.7 có hai nhiậm vụ là Input/Output hoặc các chức năng khác (truyền nhận port nối tiếp, Ngắt ngoài, Ngõ vào timer) theo bảng sau :
Bit
Tên
Chức năng chuyển đổi
P3.0
RXD
Nhận dữ liệu port nối tiếp
P3.1
TXD
Truyền dữ liệu port nối tiếp
P3.2
INT0
Ngắt 0
P3.3
INT1
Ngắt 1
P3.4
T0
Ngõ vào của timer 0
P3.5
T1
Ngõ vào của timer 1
P3.6
WR
Xung ghi dữ liệu bộ nhớ ngoài
P3.7
RD
Xung đọc dữ liệu bộ nhớ ngoài
TỔ CHỨC BỘ NHỚ IC ATMEL 89C51
2.3.1 BỘ NHỚ NỘI IC ATMEL 89C51
Vi điều khiển 89C51 có bộ nhớ theo cấu trúc Harvard có những vùng cho bộ nhớ riêng biệt, cho chương trình dữ liệu. Chương trình và dữ liệu bên trong, dù vậy ta có thể mở rộng bằng các thành phần bên ngoài lên tối đa 64KB bộ nhớ chương trình và 64KB bộ nhớ dữ liệu. Bộ nhớ trong bao gồm Rom và Ram, Ram chia làm ba vùng Ram : Ram đa dụng, Ram địa chỉ hóa từng bít, Các bank thanh ghi.
RAM
Bộ nhớ chương trình được chọn qua PSEN
FFFFH
Bộ nhớ dữ liệu được chọn qua WR và RD
FFFFH
Vùng các thanh ghi đặt biệt
FFH
7FH
30H
20H
1FH
07H
00H
0000H
0000H
Vùng Ram đa dụng
Vùng Ram địa chỉ hóa từng bit
Các BANK thanh ghi
Tóm tắt các vùng bộ nhớ của 89C51
Hai đặc tính cần lưu ý là :
Các thanh ghi và các port xuất nhập đã được xếp trong bộ nhớ và có thể truy xuất trực tiếp như các địa chỉ bộ nhớ khác.
Ngăn xếp bên trong Ram nội nhỏ hơn so với Ram ngoài như trong các bộ vi xử lý khác.
Như vậy Ram bên trong 89C51 được chia làm các bank thanh ghi (00H – 1FH), Ram địa chỉ hóa từng bit (20H – 2FH), Ram đa dụng (30H – 7FH), và các thanh ghi chức năng đặc biệt (80H - FFH).
Bảng vùng Ram của 89C51
7F
RAM đa dụng
30
2F
7F
7E
7D
7C
7B
7A
79
78
2E
77
76
75
74
73
72
71
70
2D
6F
6E
6D
6C
6B
6A
69
68
2C
67
66
65
64
63
62
61
60
2B
5F
5E
5D
5C
5B
5A
59
58
2A
57
56
55
54
53
52
51
50
29
4F
4E
4D
4C
4B
4A
49
48
28
47
46
45
44
43
42
41
40
27
3F
3E
3D
3C
3B
3A
39
38
26
37
36
35
34
33
32
31
30
25
2F
2E
2D
2C
2B
2A
29
28
24
27
26
25
24
23
22
21
20
23
1F
1E
1D
1C
1B
1A
19
18
22
17
16
15
14
13
12
11
10
21
0F
0E
0D
0C
0B
0A
09
08
20
07
06
05
04
03
02
01
00
1F
18
BANK 3
17
10
BANK 2
0F
BANK 1
07
01
00
BANK 0
Default Register Bark for R0 – R7
Ram đa dụng là có thể truy xuất tự do bằng cách tác động trực tiếp hoặc gián tiếp có địa chỉ từ 30H đến 7FH.
Ví dụ:MOV 5FH,#20H ; ghi dữ liệu 20H trực tiếp vào 5FH
MOV R0,#100 ; ghi dữ liệu 100 trực tiếp vào R0
MOV 5EH,R0 ;ghi nội dữ liệu trong R0 vào 5EH (gián tiếp)
Ram địa chỉ hóa từng bit : Có 128 bit được địa chỉ hóa đa dụng ở các byte 20H đến 2FH. Các địa chỉ này được truy xuất như các byte hoặc các bit phụ thuộc vào lệnh dùng.
Các Bark thanh ghi : 32 byte địa chỉ thấp của bộ nhớ làcác bark thanh ghi, 8 thanh ghi từ địa chỉ 00H đến 07H được địa chỉ hóa R0 – R7.
Bảng Các thanh ghi đặt biệt
Địa chỉ byte
Địa chỉ bit
FF
F0
F7
F6
F5
F4
F3
F2
F1
F0
B
E0
E7
E6
E5
E4
E3
E2
E1
E0
ACC
D0
D7
D6
D5
D4
D3
D2
-
D0
PSW
B8
-
-
-
BC
BB
BA
B9
B8
IP
B0
B7
B6
B5
B4
B3
B2
B1
B0
P3
A8
AF
-
-
AC
AB
AA
A9
A8
IE
A0
A7
A6
A5
A4
A3
A2
A1
A0
P2
99
NOT BIT ADDRESSABLE
SBUF
98
9F
9F
9F
9F
9F
9F
9F
9F
SCON
90
97
96
95
94
93
92
91
90
P1
8D
NOT BIT ADDRESSABLE
TH1
8C
NOT BIT ADDRESSABLE
TH0
8B
NOT BIT ADDRESSABLE
TL1
8A
NOT BIT ADDRESSABLE
TL0
89
NOT BIT ADDRESSABLE
TMOD
88
8F
8E
8D
8C
8B
8A
89
88
TCON
87
NOT BIT ADDRESSABLE
PCON
83
NOT BIT ADDRESSABLE
DPH
82
NOT BIT ADDRESSABLE
DPL
81
NOT BIT ADDRESSABLE
SP
80
87
86
85
84
83
82
81
80
P0
Từ trạng thái chương trình : (PSW_ Program Status Word ) ở địa chỉ D0H gồm các bit trạng thái theo bảng tóm tắt sau:
Bit
Ký hiệu
Địa chỉ
Ý nghĩa
PSW.7
PSW.6
PSW.5
PSW.4
PSW.3
PSW.2
PSW.1
PSW.0
CY
AC
F0
RS1
RS0
OV
P
D7H
D6H
D5H
D4H
D3H
D2H
D1H
D0H
Cờ nhớ
Cờ nhớ phụ
Cờ 0
Bit chọn bark thanh ghi
Bit chọn bark thanh ghi
00 = BANK 0 (00H – 07H)
01 = BANK 1 (08H – 0FH)
10 = BANK 2 (10H – 17H)
11 = BANK 3 (18H – 1FH)
Cờ tràn
Dự trữ
Cờ parity chẳn
Bảng Từ trạng thái chương trình
Cờ nhớ (CY) được dùng trong các lệnh toán học : so sánh giữa hai giá trị , phép cộng , phép trừ ...
Cờ nhớ phụ được dùng khi công hai số BCD , cờ nhớ phụ được set lên kết quả 4 bit nhỏ trong khoảng 0AH đến 0FH.
Cờ 0 (F0) là bit cờ đa dụng dành các ứng dụng cho người dùng.
Các bit chọn bark thanh ghi (RS0 và RS1) xác định bark thanh ghi tích cực.
Cờ tràn (OV) được set lên khi phép toán cộng hoặc trừ bị tràn.Khi các số có dấu được cộng hoặc trừ bit này cho biết kết quả nằm trong tầm xác định không. Khi phép cộng không dấu bit OV có thể bỏ qua . Các kết quả nhỏ hơn -127 hoặc lớn hơn +127 bit OV được set.
Thanh ghi B : ở địa chỉ F0H dùng cùng với thanh ghi tích lũy A trong các phép toán nhân chia. Trong phép nhân kết quả là 16bit thì A(byte thấp ) và B(byte cao), phép chia A chứa phần nguyên B chứa phần dư.
Con trỏ ngăn xếp (SP) : ở địa chỉ 81H , chứa địa chỉ của byte dữ liệu hiện hành trên đỉnh của ngăn xếp. Các lệnh trên ngăn xếp bao gồm các thao tác cất dữ liệu vào ngăn xếp và lấy dữ liệu từ ngăn xếp ra. Có thể truy xuất bằng địa chỉ gián tiếp , trực tiếp bằng các lệnh PUSH và POP để lưu giữ dữ liệu tạm thời và lấy lại dữ liệu.
Con trỏ dữ liệu (DPTR): dùng để truy xuất bộ nhớ ngoài, bộ nhớ nội.
Các thanh ghi port I/O : 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 đều được địa chỉ hóa từng bit.
Các thanh ghi Timer : có hai bộ timer 16bit được sử dụng trong sự kiên hoặc thời gian.
Timer 0 gồm hai thanh ghi 8AH(TL0 : byte thấp) và 8CH (TH0 : byte cao).
Timer 1 gồm hai thanh ghi 8BH(TL1 : byte thấp) và 8DH (TH1 : byte cao).
Điều khiển Timer bởi thanh ghi TMOD ở địa chỉ 89H và thanh ghi TCON ở địa chỉ 88H.
Các thanh ghi port truyền thông nối tiếp :SBUF ở địa chỉ 99H dùng truyền và nhận dữ liệu. SCON ở địa chỉ 98H dùng điều khiển truyền thông nối tiếp.
Thanh ghi ngắt : có 5 nguồn ngắt , 2 mức ưu tiên( ngắt ngoài ). Thanh ghi điều khiển quá trình ngắt IE ở địa chỉ 8AH và được địa chỉ hóa từng bit.
BỘ NHỚ NGOÀI IC ATMEL 89C51
Bộ nhớ chương trình ngoài là IC ROM được cho phép bởi tín hiệu PSEN. Hình 2.5 mô tả cách giao tiếp EPROM và vi điều khiển :
Port 0
EA
89C51
ALE
Port 2
PSEN
D0 – D7
A0 – A7
EPROM
A8 – A15
OE
D Q
G
74HC373
Hình 2.5 : Giao tiếp giữa IC 89C51 và EPROM
Bộ nhớ dữ liệu ngoài là một bộ nhớ RAM được cho phép ghi/đọc bằng cách tín hiệu WR và RD (chân P3.6 và P3.7) . Chỉ có một cách truy xuất bộ nhớ dữ liệu ngoài là lệnh MOVX và con trỏ dữ liệu DPTR. Hình 2.6 mô tả cách giao tiếp RAM và vi điều khiển
Port 0
EA
89C51
ALE
Port 2
RD
WR
D0 – D7
A0 – A7
RAM
A8 – A15
OE
WE
D Q
G
74HC373
Hình 2.6 : Giao tiếp giữa IC 89C51 và RAM
CÁC CHỨC NĂNG CỬA IC AMELT 89C51
INPUT/OUTPUT
Vi điều khiển 89C51 có 4 port I/O 8 bit dùng truy xuất dữ liệu tác động ra bên ngoài hoặc thu thập dữ liệu từ bên ngoài về.
TIMER
Vi điều khiển 89C51 có hai Timer 16 bit. Các thanh ghi này có thể hoạt động ở một trong hai trạng thái timer hoặc couter. Mỗi thanh ghi gồm 2 thanh ghi 8 bit ghép lại ( hình 2.7)
Hình 2.7 : Thanh ghi Timer 16bit
Cấu trúc của bộ Timer trong Vi điều khiển 89C51 ( hình 2.8)
Hình 2.8 : Cấu trúc của bộ Timer 89C51
Hoạt động của Timer được điều khiển bởi hai thanh ghi TCON và TMOD.
Thanh ghi TCON (Timer Control ):
Là thanh ghi 8 bit, có thể truy xuất byte hoặc bit (hình 2.9)
Hình 2.9 : Cấu trúc thanh ghi TCON
TF1 : báo trạng thái tràn cho Timer 1
TR1 : điều khiển cấp xung cho Timer 1
TF0 : báo trạng thái tràn cho Timer 0
TR0 : điều khiển cấp xung cho Timer 0
IE1 : không liên quan đến hoạt động của Timer , bit này dùng để báo trạng thái ngắt ngoài 1(khi trạng thái logic thay đổi từ 1 xuống 0 tại chân 13 của vi điều khiển )
TI1 : không liên quan đến hoạt động của Timer, bit này cho phép tác động ngắt ngoài 1 bằng cạnh xuống (default IT1 = 0 , tác động ngắt bằng mức thấp)
IE0 : không liên quan đến hoạt động của Timer , bit này dùng để báo trạng thái ngắt ngoài 0 (khi trạng thái logic thay đổi từ 1 xuống 0 tại chân 12 của vi điều khiển )
TI0 : không liên quan đến hoạt động của Timer, bit này cho phép tác động ngắt ngoài 0 bằng cạnh xuống (default IT0 = 0 , tác động ngắt bằng mức thấp)
Thanh ghi TMOD Là thanh ghi 8 bit ,chỉ có thể truy xuất byte
Hình 2.10 : Cấu trúc thanh ghi TMOD
GATE, C/T : điều khiển trạng thái hoạt động cho Timer
M1,M0 : chọn chế độ hoạt động cho Timer (theo bảng sau )
M1
M0
CHẾ ĐỘ (MODE)
MÔ TẢ
0
0
0
Timer 13 bit
0
1
1
Timer 16 bit
1
0
2
Timer 8 bit, auto reload
1
1
3
Timer 8 bit
Chế độ 0 : Thanh ghi THx và TLx kết hợp tọa thành Timer 13 bit , Bộ đếm Timer tràn thì cờ TFx sẽ đặt lên logic 1 (hình 2.11)
Hình 2.11 : Cấu trúc thanh ghi của Timer chế độ 0.
Chế độ 1 : Tương tự chế độ 0 Timer 16 bit (hình 2.11)
Hình 2.12 : Cấu trúc thanh ghi của Timer chế độ 1.
Chế độ 2: TLx được nạp lại giá trị ban đầu từ THx và bắt đầu đếm lại từ giá trị này khi có xung ỡ ngõ vào, khi tràn thì TFx sẽ đặt lên logic 1 đồng thời kích hoạt bộ khóa để nạp giá trị trong THx vào TLx
Hình 2.13 : Timer chế độ 2
Chế độ 3: Trong chế độ này, TH1 và TL1 không được sử dụng thay vào đó là TH0 và TL0 hoạt như hai bộ Timer 8 bit (TL0). Tuy nhiên tín hiệu mở xung cho TH0 không phải là TR0 mà là TR1
Hình 2.14 : Timer chế độ 3.
NGẮT
Ngắt là hoạt động tạm ngừng chương trình chính để tính hành một chương trình khác. Chương trình giải quyết ngắt được gọi là chương trình phục vụ ngắt (ISR : Interrupt Sevice Reutine).
Hoạt động của ngắt được điều khiển bởi thanh ghi IE (Interrupt Enable ) . Là thanh ghi 8 bit, có thể truy xuất byte hoặc bit .
Hình 2.15 : Cấu trúc thanh ghi IE
Ngắt ngoài 0 :
Địa chỉ vector ngắt
0003H
Khai báo sử dụng ngắt
- SETB EA
- SETB EX0
- SETB IT0 (ngắt cạnh )
Sự kiện ngắt
Xuất hiện mức thấp (hoặc cạnh xuống ) tại chân INT0
Ngắt Timer 0:
Địa chỉ vector ngắt
000BH
Khai báo sử dụng ngắt
- SETB EA
- SETB ET0
Sự kiện ngắt
Tràn bộ đếm Timer 0
Ngắt Ngoài 1 :
Địa chỉ vector ngắt
0013H
Khai báo sử dụng ngắt
- SETB EA
- SETB EX1
- SETB IT1 (ngắt cạnh )
Sự kiện ngắt
Xuất hiện mức thấp (hoặc cạnh xuống ) tại chân INT1
Ngắt Timer 1 :
Địa chỉ vector ngắt
001BH
Khai báo sử dụng ngắt
- SETB EA
- SETB ET0
Sự kiện ngắt
Tràn bộ đếm Timer 0
Ngắt Truyền thông ( truyền/nhận UART ) nối tiếp :
Địa chỉ vector ngắt
0023H
Khai báo sử dụng ngắt
- SETB EA
- SETB ES
Sự kiện ngắt
Nhận được một byte hoặc truyền xong một byte trong SBUF
Tốc độ truyền nhận MODE autoreload (Timer 2 chế độ 2)
- TH1 = - 3 ; 9600bps
- TH1 = - 6 ; 9600bps
- TH1 = - 12 ; 9600bps
- TH1 = - 24 ; 9600bps
SƠ ĐỒ CHƯƠNG TRÌNH KHI CÓ SỰ KIỆN NGẮT :
KHAI BÁO NGẮT
Sự kiện ngắt
Vector ngắt :
Xử lý ngắt
RETI
TRUYỀN THÔNG NỐI TIẾP
Truyền thông nối tiếp là thực hiện chuyển đổi dữ liệu song song thành dữ liệu nối tiếp ở chế độ truyền dữ liệu và dữ liệu nối tiếp thành dữ liệu song song ở chế độ nhận dữ liệu .
RXD
Truy xuất truyền thông nối tiếp qua hai chân TXD(chân P3.0 ) và RXD (chân P3.1), khi không sử dụng truyền thông nối tiếp hai chân trên làm chức năng I/O
TXD
SUBF
(ghi dữ liệu)
Thanh ghi dịch
CLK
CLK
Tốc độ baud
Tốc độ baud
BUS nội 89C51
SUBF
(đọc dữ liệu)
SUBF
(đọc dữ liệu)
Truyền thông nối tiếp hoạt động song song (thu và phát đồng thời) và đệm lúc thu cho phép một ký tự được nhận và được lưu trữ trong khi ký tự thứ hai được nhận.
Thanh ghi điều khiển truyền thông nối tiếp là SCON (serial control)ở địa chỉ 98H chứa các bit trạng thái và các bit điều khiển. Bảng tóm tắt thanh ghi SCON và các chế độ của truyền thông nối tiếp:
Bit
Ký hiệu
Địa chỉ
Mô tả
SCON.7
SM0
9FH
Bit chọn chế độ truyền nối tiếp
SCON.6
SM1
9EH
Bit chọn chế độ truyền nối tiếp
SCON.5
SM2
9DH
Bit của chế độ truyền thông nối tiếp ở chế độ 2 và 3, RI sẽ không tác động nếu bit thứ 9 nhận là 0
SCON.4
REN
9CH
Cho phép truyền và nhận dữ liệu
SCON.3
TB8
9BH
Truyền thông ở chế độ 2 và 3 ( truyền bit thứ 9)
SCON.2
RB8
9AH
Truyền thông ở chế độ 2 và 3 ( nhận bit thứ 9)
SCON.1
TI
99H
Cờ truyền, set lên khi truyền 1 byte
SCON.0
RI
98H
Cờ nhận, set lên khi nhận 1 byte
Bảng khai báo các chế độ trong truyền thông nối tiếp
SM0
SM1
Chế độ
Mô tả
Tốc độ baud
0
0
0
Thanh ghi dịnh
Cố định (Fosc/12)
0
1
1
UART 8 bit
Thay đồi (đặt bằng timer)
1
0
2
UART 9 bit
Cố định (Fosc/12 hoặc Fosc/64)
1
1
3
UART 9 bit
Thay đồi (đặt bằng timer)
Tần số làm việc của truyền thông nối tiếp gọi là tốc độ baud . Trong chế độ 0 và chế độ 2 tốc độ baud cố định , chế độ 1 và chế độ 3 tốc độ baud thay đổi. Tốc độ baud cho từng chế độ truyền thông nối tiếp .
÷ 12
Dao động trên chip
Xung nhịp tốc độ bauud
Chế độ 0
Dao động trên chip
÷ 64
÷ 32
Xung nhịp tốc độ bauud
Chế độ 1
SMOD = 0
SMOD = 1
Dao động trên chip
÷ 32
÷ 16
Xung nhịp tốc độ bauud
Chế độ 1 và 3
SMOD = 0
SMOD = 1
Bit 7 của thanh ghi PCON (Power control) la bit SMOD làm tăng tốc độ baud gấp đôi trong chế độ 1, 2 và 3.
TẬP LỆNH CỦA IC AMELT 89C51
Các lệnh số học (Arithmetic Instrustion):
ADD A, Rn : (A) (A) + (Rn)
ADD A, direct : (A) (A) + (direct)
ADD A, @ Ri : (A) (A) + ((Ri))
ADD A, # data : (A) (A) + # data
ADDC A, Rn : (A) (A) + (C) + (Rn)
ADDC A, direct : (A) (A) + (C) + (direct)
ADDC A, @ Ri : (A) (A) + (C) + ((Ri))
ADDC A, # data : (A) (A) + (C) + # data
SUBB A, Rn : (A) (A) - (C) - (Rn)
SUBB A, direct : (A) (A) - (C) - (direct)
SUBB A, @ Ri : (A) (A) - (C) - ((Ri))
SUBB A, # data : (A) (A) - (C) - # data
INC A : (A) (A) + 1
INC direct : (direct) (direct) + 1
INC Ri : ((Ri)) ((Ri)) + 1
INC Rn : (Rn) (Rn) + 1
INC DPTR : (DPTR) (DPTR) + 1
DEC A : (A) (A) - 1
DEC direct : (direct) (direct) - 1
DEC @Ri : ((Ri)) ((Ri)) - 1
DEC Rn : (Rn) (Rn) - 1
MULL AB : (A) LOW [(A) x (B)] : (B) HIGH [(A) x (B)]
DIV AB : (A) Integer Result of [(A)/(B)] : (B) Remainder of [(A)/(B)]
DA A :Hiệu chỉnh thanh ghi A thành số BCD
Các lệnh logic (Logic Operation):
ANL A, Rn : (A) (A) AND (Rn).
ANL A, direct : (A) (A) AND (direct).
ANL A,@ Ri : (A) (A) AND ((Ri)).
ANL A, # data : (A) (A) AND (# data).
ANL direct, A : (direct) (direct) AND (A).
ANL direct, # data : (direct) (direct) AND # data.
ORL A, Rn : (A) (A) OR (Rn).
ORL A, direct : (A) (A) OR (direct).
ORL A,@ Ri : (A) (A) OR ((Ri)).
ORL A, # data : (A) (A) OR # data.
ORL direct, A : (direct) (direct) OR (A).
ORL direct, # data : (direct) (direct) OR # data.
XRL A, Rn : (A) (A) (Rn).
XRL A, direct : (A) (A) (direct).
XRL A,@ Ri : (A) (A) ((Ri)).
XRL A, # data : (A) (A) # data.
XRL direct, A : (direct) (direct) (A).
XRL direct, # data : (direct) (direct) # data.
CLR A : (A) 0
CLR C : (C) 0
CLR Bit : (Bit) 0
RL A : Dịch thanh ghi A qua trái 1 bit
RLC A : Dịch thanh ghi A qua trái 1 bit qua cờ nhớ
RR A : Dịch thanh ghi A qua phải 1 bit
RRC A : Dịch thanh ghi A qua phải1 bit qua cờ nhớ SWAP A : Đổi chổ 4 bit thấp và 4 bit cao của A
Các lệnh rẽ nhánh :
JC rel : Nhảy đến “rel” nếu Carry C = 1.
JNC rel : Nhảy đến “rel” nếu 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à xóa bit.
ACALL addr11 : Lệnh gọi tuyệt đối
LCALL addr16 : Lệnh gọi dài trong chương trình con
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 trở về chương trình hoạt động như RET
AJMP Addr11 : Nhảy tuyệt đối không điều kiện
LJMP Addr16 : Nhảy dài không điều kiện
SJMP rel : Nhảy ngắn không điều kiện
JMP @ A + DPTR :Nhảy không điều kiện đến địa chỉ (A) + (DPTR)
JZ rel : Nhảy nếu A = 0
JNZ rel : Nhảy nếu A không bằng 0
CJNE A, direct, rel : So sánh và nhảy nếu A khác direct
CJNE A, # data, rel : Tương tự lệnh CJNE A, direct, rel.
CJNE Rn, # data, rel : Tương tự lệnh CJNE A, direct, rel.
CJNE @ Ri, # data, rel : Tương tự lệnh CJNE A, direct, rel.
DJNE Rn, rel : Giảm Rn và nhảy nếu khác 0
DJNZ direct, rel : Tương tự lệnh DJNZ Rn,rel
Các lệnh dịch chuyển dữ liệu :
MOV A,Rn : (A) (Rn)
MOV A, direct : (A) (direct)
MOV A, @ Ri : (A) ((Ri))
MOV A, # data : (A) # data
MOV Rn, A : (Rn) (A)
MOV Rn, direct : (Rn) (direct)
MOV Rn, # data : (Rn) # data
MOV direct, A : (direct) (A)
MOV direct, Rn : (direct) (Rn)
MOV direct, direct : (direct) (direct)
MOV direct, @ Ri : (direct) ((Ri))
MOV direct, # data : (direct) data
MOV @ Ri, A : ((Ri)) (A)
MOV @ Ri, direct : ((Ri)) (direct)
MOV @ Ri, # data : ((Ri)) # data
MOV DPTR, # data16 : (DPTR) # data16
MOV A, @ A + DPTR : (A) (A) + (DPTR)
MOV @ A + PC : (PC) (PC) + 1
(A) (A) + (PC)
MOVX A, @ Ri : (A) ((Ri))
MOVX A, @ DPTR : (A) ((DPTR))
MOVX @ Ri, A : ((Ri)) (A)
MOVX @ DPTR, A : ((DPTR)) (A)
PUSH direct : cất dữ liệu vào ngăn xếp
POP direct : Lấy dữ liệu từ ngăn xếp direct
XCH A, Rn : Đổi chổ nội dung A với Rn
XCH A, direct : (A) (direct)
XCH A, @ Ri : (A) ((Ri))
XCHD A, @ Ri : Đổi chổ 4 bit thấp của (A) với ((Ri))
CHƯƠNG 3: BÁO CÁO QUÁ TRÌNH THỰC HIỆN ĐỒ ÁN
3.1 Cách thức thực hiện đồ án
Khi thực hiện đồ án điều khiển thiết bị không dây, có hai cách để thực hiện là:
Điều khiển thông qua hồng ngoại.
Điều khiển thông qua sóng FM.
Trong đề tài này, tôi chọn lựa điều khiển bằng hồng ngoại vì:
Điều khiển bằng hồng ngoại chi phí nhẹ hơn so với FM.
Điều khiển bằng hồng ngoại nguyên lý thu và bộ phát đơn giản hơn so với FM.
Khi thực hiện đồ án đóng ngắt mạch AC cũng có hai lựa chọn là :
Rơ-le
Triac
Trong đồ án này, tôi chọn lựa điều khiển bằng triac vì:
Tiết kiệm năng lượng.
Tốc độ đáp ứng nhanh.
Không gây ra tiếng ồn.
Không tạo ra tia lửa điện trong quá trình đóng ngắt
Ngoài ra, vấn đề trong đồ án ngoài điều khiển bằng không dây còn có thể điều khiển tay thông qua các công tắc và khối kiểm tra thiết bị AC có hoạt động .
3.2 Các khối trên Board
3.2.1 Khối phát hồng ngoại từ xa
Sơ đồ khối của khối phát hồng từ xa, sử dụng IC SC9148 phát tín hiệu điều khiển hồng ngoại là hình 3.1
+Khối phím lệnh điều khiển ( bàn phím )
SC 9148
Khối phát hồng ngoại
Led phát hồng ngoại
Hình 3.1 Sơ đồ khối phát hồng ngoại
IC SC9148 được chế tạo theo công nghệ CMOS sử dụng trong bộ phát truyền tín hiệu điều khiển đi xa bằng hồng ngoại. Tín hiệu phát đi gồm 18 lệnh khác nhau, chia làm hai nhóm lệnh continuous keys và single short keys.
Cấu tạo bên trong của SC9148 (hình3.2)
Hình 3.2 Cấu trúc bên trong của IC SC9148
Sơ đồ chân của IC SC9148 (hình 3.3)
Hình 3.3 Sơ đồ chân của SC9148
Chức năng của các chân SC9148 theo bảng sau
Chân
Ký hiệu
Mô tả
Chức năng
1
GND
VDC = 2.2V – 5V
Cấp nguồn cho IC
16
VDD
2
XT
Cung cấp nguổn dao động cho IC
3
Non-XT
4 – 9
K1 – K6
Input
Kết nối ma trận bàn phím
10 – 12
T1- T3
Output
13
Code
Input
15
Tx out
Output
Phát tín hiệu hổng ngoại
14
Non- Test
Ma trận phím kết nối vào SC9148 (Hình 3.4)
Hình 3.4 Ma trận phím kết nối vào SC9148
Khung truyền dữ liệu là một Word gồm 12 bit data C1-C3 code kiểm tra, H-S1-S2 tín hiệu continous signal hoặc single short signal , D1- D6 data code của bàn phím
Hình 3.5 Khung truyền dữ liệu
Data code của ma trận phím (hình 3.6)
Hình 3.6 Data code của ma trận phím
Sơ đồ nguyên lý khối phát tín hiệu hồng ngoại (hình 3.7)
Hình 3.7 Sơ đồ nguyên lý khối phát hồng ngoại
3.2.2 Khối thu hồng ngoại
Sơ đồ khối của khối thu hồng ngoại , sử dụng IC SC9149 thu tín hiệu điều khiển hồng ngoại là hình 3.8
Thu tín hiệu ngoại hồng ngoại
Khuyết đại tín hiệu
SC 9149
VI ĐIỀU KHIỂN
CÔNG SUẤT
Hình 3.8 Sơ đồ của khối thu hồng ngoại
IC SC9149 được chế tạo theo công nghệ CMOS sử dụng trong bộ thu tín hiệu điều khiển đi xa bằng hồng ngoại. Tín hiệu thu gồm 10 lệnh khác nhau gồm hai nhóm lệnh continuous keys và single short keys được giãi mã thành hai mức logic trên các nhóm chân HPx và SPx.
Cấu tạo bên trong của SC 9149 (hình 3.9)
Hình 3.9 Cấu tạo bên trong SC 9149
Sơ đồ chân của SC 9149 (hình 3.10)
Hình 3.10 Sơ đồ chân SC 9149
Chức năng của các chân SC 9149 theo bảng sau
Chân
Ký hiệu
Mô tả
Chức năng
1
GND
0 VDC
Cấp nguồn cho IC
16
VDD
5VDC
2
RX in
Input
Thu tín hiện hồng ngoại
3-7
HP1 – HP5
Output
Báo kết quả của các phím nhấn lệnh continuous keys
8 - 12
SP5 – SP1
Output
Báo kết quả của các phím nhấn lệnh single short keys
13 – 14
Code
Code Input
Truyển đổi tín hiệu hồng ngoại
15
OSC
Tạo dao động cho IC
Ngõ ra của SC 9149 khi có tín hiệu của khối phát theo bảng sau
Sơ đồ nguyên lý của khối thu hồng ngoại (hình 3.11)
Hình 3.11 Sơ đồ khối thu hồng ngoại sử dụng SC 9149
3.2.3 Khối công suất sử dụng triac
Sơ đồ mạch khối công suất (hình 3.12)
Hình 3.12 Sơ đồ khối công suất AC sử dụng Triac
Nguyên tắc hoạt động : tín hiệu điều khiển 5VDC cấp vào P2.2 làm đèn led của opto-triac MOC3020 sẽ sáng lên làm cho photo-triac bên trong dẫn. Dòng AC sẽ dẫn qua MOC3020 và kích chân G triac BTA12 dẫn điện mở thiết bị. Khi có tín hiệu điều khiển 0VDC cấp vào P2.2 tương tự đóng thiết bị . Đồng thời led dùng báo hiệu thiết bị ON/OFF.
3.2.4 Khối kiểm tra thiết bị AC 220
Sơ đồ mạch khối kiểm tra thiết bị AC 220 (hình 3.13)
Hình 3.13 mạch kiểm tra thiết bị AC 220 sử dụng PC817
Nguyên tắc hoạt động : khi tải hoạt động có tín hiệu AC 220 tại vị trí HOITIEP2 qua điện trỏ R34 hạn dòng rồi qua D18 chỉnh lưu qua tụ lọc qua D19 ổn áp tại vị trí 1 của PC817 có tín hiệu 5VDC làm cho led của PC817 sáng kích photo- transistor dẫn làm tại vị trí P2.7 có 0VDC. Ngược lại khi tải không hoạt động tại vị trí P2.7 có 5VDC.
3.2.5 Khối phím nhấn điều khiển không sử dụng khối điều khiển từ xa
Trong quá trình sử dụng bộ điều khiển từ xa có sự cố (hết pin, bị hư, ...) người sử dụng vẫn có thể điều khiển thiết bị bình thường thông qua các công phím nhấn . Các công phím nhấn hoạt đông tương tự như các phím trên các phím của bộ điều khiển từ xa.
Hình 3.14 Các phím nhấn trong chế độ không sử dụng bộ diều khiển từ xa
3.2.6 Khối nguồn
Cung cấp nguồn cho khổi vi điều khiển, khối thu hồng ngoại , khối công suất AC, khối phím nhấn, khối kiểm tra thiết bị AC.
Sơ đồ nguyên lý khối nguồn (hình 3.15)
Hình 3.15 Khối nguồn tạo ra 5VDC sử dụng 7805
Nhiệm vụ của khối nguồn tạ ra 5VDC để cung cấp cho board. Cho khối nguồn tôi sử dụng IC ổn áp 7805 tạo ra nguồn ổn định cung cấp cho board.
3.2.7 Khối hiển thị LCD
Sơ đồ chân khối LCD 2*16 (hình 3.16 )
Hình 3.16 sơ đồ chân khối LCD
Nhiệm vụ các chân của khối LCD
Chân
Tên
Nhiệm vụ
Ghi chú
1
VSS
0VDC
2
VDC
5VDC
3
VEE
Hiệu chỉnh độ tương phản khối LCD
4
RS
Cho phép ghi dữ liệu lên khối LCD
[1]
5
RW
Cho phép đọc dữ liệu từ khối LCD
[1]
6
E
Cho phép truy xuất dữ liệu trên khối LCD
Cạnh xuống
7 - 14
D0- D7
Data
8 bit
15&16
Cấp nguồn cho led nền
Sơ đồ nguyên lý khối LCD liên kết với khối vi điều khiển 89C51(hình 3.17)
Hình 3.17 Sơ đồ khối LCD 2*16
3.2.8 Khối Vi Điều Khiển 89C51
Sơ đồ khối vi điều khiển kết nối với các thiết bị ngoại vi (hình 3.18)
Hình 3.18 Sơ đồ nguyên lý 89C51 liên kết với các thiết bị ngoại vi
Các chân từ P1.0 – P1.7 và P2.0- P2.1 làm nhiệm vụ giao tiếp khối hiện thị LCD
Các chân từ D0 – D7 làm nhiệm vụ nhận dữ liệu từ khối thu hồng ngoại .
Các chân P2.2 – P2.4 làm nhiệm vụ điều khiển khối công suất
Các chân P2.5- P2.7 làm nhiệm vụ nhận dữ liệu từ khối kiểm tra thiết bị AC
Các chân INT0, INT1, IN1, IN2 giao tiếp phím nhấn trong chế độ không sử dụng bộ điều khiển từ xa.
3.3.9 Thi công
Sơ đồ nguyên lý của board (hình 3.19)
Hình 3.19 Sơ đồ nguyên lý tất cả các khối liên kết với nhau.
Mạch in :
Hình 3.20 Sơ đồ mạch lớp TOP
Hình 3.21 Sơ đồ mạch lớp BOTTOM
3.3 Lưu đồ giải thuật
Bắt đầu
Các thiết bị OFF , khởi tạo LCD
SW1 | D0 ??
Y
N
DH CONG NGHIEP
DO AN MOT
N
GVHD TRAN V TRINH
NGUYEN NGOC TRUC
Y
DIEU KHIEN THIET BI
ON OFF 123
Y
N
THUC THI
SW1 | D0 ??
SW1 | D0 ??
Sơ đồ tổng quan của quá trình điều khiển thiết bị AC
Thông qua SW1 và D0 hiển thị các lời chào lên khối LCD.
THUC THI là lưu đồ đi điều khiển và kiểm tra các thiết bị AC.
THUC THI
SW2 | D1 ??
SW3 | D2 ??
SW4 | D3 ??
ON/OFF 3
ON/OFF 1
ON/OFF 2
N
N
N
Y
Y
Y
TEST TBI
P2.5==[0]
P2.6==[0]
P2.7==[0]
Y
N
N
Y
Y
Hiển thị các thiết bị OFF
N
Hiển thị thiết bị 3 ON
Hiển thị thiết bị 2 ON
Hiển thị thiết bị 1 ON
X0
X0
X0
X0
X0
D4 ??
SETUPOFF
N
Thông qua D4 chế độ cài đặt thời gian hoạt động. Ở chế độ cài đặt thời gian thiết bị off. Trong chế độ cài đặt sữ dụng 4 phím còn lại trên khối phát hồng ngoại .
SETUPOFF
D5 ??
D7 ??
D6 ??
N
N
N
Y
Y
Y
TG_TBI2 + 5P
TG_TBI3 + 5P
TG_TBI1 + 5P
X1
X1
X1
X1
D4 ??
N
TIMER RUN
Y
END
TIMER RUN
TF==[1]
N
Y
TF=[0],R0--
R0==0??
N
Y
TG_TBI1==0??
N
Y
TG_TBI2==0??
N
Y
TG_TBI3==0??
N
Y
TG_TBI1--
TBI1 OFF
TBI1 OFF
TG_TBI1--
TG_TBI1--
TG_TBI2--
END
3.4 Chương Trình điều khiển thiết bị AC ON/OFF bằng Triac thông qua hồng ngoại có giám sát thiết bị hiện thị lên LCD có chế độ định thời gian OFF
TIMERUP EQU -50000
;DECTIMER0 EQU 70H
DECTIMER1 EQU 71H
STIMER1 EQU 72H
TGOFF_TBI1 EQU 73H
TGOFF_TBI2 EQU 74H
TGOFF_TBI3 EQU 75H
ORG 0000H
SJMP MAIN
ORG 001BH
CALL DOWNTIMER1
RETI
ORG 0050H
MAIN:
;DINH NGHIA CAC CHAN
KICH BIT P2.1
VIET BIT P2.0
DATALCD EQU P1
TBI1 BIT P2.2
TBI2 BIT P2.3
TBI3 BIT P2.4
STBI1 BIT P2.5
STBI2 BIT P2.6
STBI3 BIT P2.7
SW1 BIT P3.2
SW2 BIT P3.3
SW3 BIT P3.4
SW4 BIT P3.5
SWD0 BIT P0.4
SWD1 BIT P0.5
SWD2 BIT P0.6
SWD3 BIT P0.7
SWD4 BIT P0.0
SWD5 BIT P0.1
SWD6 BIT P0.2
SWD7 BIT P0.3
;CHUONG TRINH CHINH
;CAC THIET LAP BAN DAU
CALL KHOITAOLCD
CLR TBI1
CLR TBI2
CLR TBI3
;MOV DECTIMER0,#00H
MOV DECTIMER1,#00H
MOV TGOFF_TBI1,#00H
MOV TGOFF_TBI2,#00H
MOV TGOFF_TBI3,#00H
MOV IE,#10001000B
MOV TMOD,#00010000B
;HIEN THI CAC LOI CHAO
CALL KIEMTRAHIENTHI
MOV DPTR,#BANG00
CALL XUATLCD
MOV DATALCD,#0C0H
CALL TRIGGER
MOV DPTR,#BANG01
CALL XUATLCD
CALL KIEMTRAHIENTHI
MOV DATALCD,#01H
CALL TRIGGER
MOV DPTR,#BANG02
CALL XUATLCD
MOV DATALCD,#0C0H
CALL TRIGGER
MOV DPTR,#BANG03
CALL XUATLCD
CALL KIEMTRAHIENTHI
MENU_THUCTHI:
MOV DATALCD,#01H
CALL TRIGGER
MOV DPTR,#BANG04
CALL XUATLCD
MOV DATALCD,#0C0H
CALL TRIGGER
MOV DPTR,#BANG05
CALL XUATLCD
;DIEU KHIEN THIET BI
THUCTHI:
CALL KIEMTRAKHIEN
CALL KIEMTRATBI
LJMP THUCTHI
;CAC CHUONG TRINH CON
SETUPRUN:
MOV DATALCD,#01H
CALL TRIGGER
MOV DATALCD,#80H
CALL TRIGGER
CALL DELAY
MOV DPTR,#BANG06
CALL XUATLCD
MOV DATALCD,#0C0H
CALL TRIGGER
MOV DPTR,#BANG07
CALL XUATLCD
LOOP_SETUPRUN:
CALL HIENTHI_TG
JB SWD5,TG_TBI1
JB SWD6,TG_TBI2
JB SWD7,TG_TBI3
JB SWD4,TIMER_RUN
SJMP LOOP_SETUPRUN
TG_TBI1:
JB SWD5,$
MOV A, TGOFF_TBI1
ADD A,#5
CJNE A,#95,LUUTG_TBI1
MOV A,#00H
LUUTG_TBI1:
MOV TGOFF_TBI1,A
SJMP SETUPRUN
TG_TBI2:
JB SWD6,$
MOV A, TGOFF_TBI2
ADD A,#5
CJNE A,#95,LUUTG_TBI2
MOV A,#00H
LUUTG_TBI2:
MOV TGOFF_TBI2,A
SJMP SETUPRUN
TG_TBI3:
JB SWD7,$
MOV A, TGOFF_TBI3
ADD A,#5
CJNE A,#95,LUUTG_TBI3
MOV A,#00H
LUUTG_TBI3:
MOV TGOFF_TBI3,A
SJMP SETUPRUN
TIMER_RUN:
JB SWD4,$
MOV TH1,#HIGH(TIMERUP)
MOV TL1,#LOW(TIMERUP)
MOV DECTIMER1,#21
MOV STIMER1,#61
CLR TF1
SETB TR1
LJMP MENU_THUCTHI
HIENTHI_TG:
MOV A,TGOFF_TBI1
CALL TINH
CLR VIET
MOV DATALCD,#84H
CALL TRIGGER
SETB VIET
MOV DATALCD,R0
CALL TRIGGER
MOV DATALCD,R1
CALL TRIGGER
CLR VIET
MOV A,TGOFF_TBI2
CALL TINH
CLR VIET
MOV DATALCD,#8CH
CALL TRIGGER
SETB VIET
MOV DATALCD,R0
CALL TRIGGER
MOV DATALCD,R1
CALL TRIGGER
CLR VIET
MOV A,TGOFF_TBI3
CALL TINH
CLR VIET
MOV DATALCD,#0C4H
CALL TRIGGER
SETB VIET
MOV DATALCD,R0
CALL TRIGGER
MOV DATALCD,R1
CALL TRIGGER
CLR VIET
RET
TINH:
MOV B,#10
DIV AB
MOV R1,B
ADD A,#30H
MOV R0,A
MOV A,R1
ADD A,#30H
MOV R1,A
RET
;KIEM TRA SW1 VA SWD0
KIEMTRAHIENTHI:
JNB SW1,ABC000
JB SWD0,ABC001
SJMP KIEMTRAHIENTHI
ABC000:
JNB SW1,$
RET
ABC001:
JB SWD0,$
RET
; KIEM TRA SW2,SW3,SW4,SWD1,SWD2,SWD3
KIEMTRAKHIEN:
JNB SW2,ABC002
JNB SW3,ABC003
JNB SW4,ABC004
JB SWD1,ABC005
JB SWD2,ABC006
JB SWD3,ABC007
JB SWD4,ABC008
RET
ABC002:
JNB SW2,$
SJMP TBI1ONOFF
ABC003:
JNB SW3,$
SJMP TBI2ONOFF
ABC004:
JNB SW4,$
SJMP TBI3ONOFF
ABC005:
JB SWD1,$
SJMP TBI1ONOFF
ABC006:
JB SWD2,$
SJMP TBI2ONOFF
ABC007:
JB SWD3,$
SJMP TBI3ONOFF
ABC008:
JB SWD4,$
LJMP SETUPRUN
TBI1ONOFF:
CPL TBI1
RET
TBI2ONOFF:
CPL TBI2
RET
TBI3ONOFF:
CPL TBI3
RET
;KIEM TRA CAC THIET BI CO ON/OFF
KIEMTRATBI:
JNB STBI1,TBI1ON
SJMP TBI1OFF
TBI1ON:
MOV DATALCD,#0C4H
CALL TRIGGER
SETB VIET
MOV DATALCD,#'1'
CALL TRIGGER
CLR VIET
MOV DATALCD,#0CCH
CALL TRIGGER
SETB VIET
MOV DATALCD,#' '
CALL TRIGGER
CLR VIET
SJMP KTBI2
TBI1OFF:
MOV DATALCD,#0C4H
CALL TRIGGER
SETB VIET
MOV DATALCD,#' '
CALL TRIGGER
CLR VIET
MOV DATALCD,#0CCH
CALL TRIGGER
SETB VIET
MOV DATALCD,#'1'
CALL TRIGGER
CLR VIET
KTBI2:
JNB STBI2,TBI2ON
SJMP TBI2OFF
TBI2ON:
MOV DATALCD,#0C5H
CALL TRIGGER
SETB VIET
MOV DATALCD,#'2'
CALL TRIGGER
CLR VIET
MOV DATALCD,#0CDH
CALL TRIGGER
SETB VIET
MOV DATALCD,#' '
CALL TRIGGER
CLR VIET
SJMP KTBI3
TBI2OFF:
MOV DATALCD,#0C5H
CALL TRIGGER
SETB VIET
MOV DATALCD,#' '
CALL TRIGGER
CLR VIET
MOV DATALCD,#0CDH
CALL TRIGGER
SETB VIET
MOV DATALCD,#'2'
CALL TRIGGER
CLR VIET
KTBI3:
JNB STBI3,TBI3ON
SJMP TBI3OFF
TBI3ON:
MOV DATALCD,#0C6H
CALL TRIGGER
SETB VIET
MOV DATALCD,#'3'
CALL TRIGGER
CLR VIET
MOV DATALCD,#0CEH
CALL TRIGGER
SETB VIET
MOV DATALCD,#' '
CALL TRIGGER
CLR VIET
RET
TBI3OFF:
MOV DATALCD,#0C6H
CALL TRIGGER
SETB VIET
MOV DATALCD,#' '
CALL TRIGGER
CLR VIET
MOV DATALCD,#0CEH
CALL TRIGGER
SETB VIET
MOV DATALCD,#'3'
CALL TRIGGER
CLR VIET
RET
DOWNTIMER1:
MOV TH1,#HIGH(TIMERUP)
MOV TL1,#LOW(TIMERUP)
CLR TF1
SETB TR1
DJNZ DECTIMER1,RET_TIMER1
MOV DECTIMER1,#21
DJNZ STIMER1,RET_TIMER1
MOV STIMER1,#61
MOV A,TGOFF_TBI1
CJNE A,#00,AB000
CLR TBI1
SJMP AB001
AB000:
DEC A
AB001:
MOV TGOFF_TBI1,A
MOV A,TGOFF_TBI2
CJNE A,#00,AB002
CLR TBI2
SJMP AB003
AB002:
DEC A
AB003:
MOV TGOFF_TBI2,A
MOV A,TGOFF_TBI3
CJNE A,#00,AB004
CLR TBI3
SJMP AB005
AB004:
DEC A
AB005:
MOV TGOFF_TBI3,A
RET_TIMER1:
RET
;KHOI TAO LCD
KHOITAOLCD:
CLR VIET
MOV DATALCD,#38H
CALL TRIGGER
; MOV DATALCD,#0EH ; HIEN CON TRO
MOV DATALCD,#0CH ; AN CON TRO
CALL TRIGGER
MOV DATALCD,#01H
CALL TRIGGER
RET
;XUAT CAC HANG CHU LEN LCD
XUATLCD:
MOV R7,#00H
SETB VIET
CALL DELAY
LOOPLCD:
MOV A,R7
MOVC A,@A+DPTR
INC R7
CJNE A,#'#',CON_LCD
CLR VIET
MOV R7,#00H
RET
CON_LCD:
MOV DATALCD,A
CALL TRIGGER
SJMP LOOPLCD
;TAO XUNG CANH XUONG E_LCD
TRIGGER:
SETB KICH
CALL DELAY
CLR KICH
CALL DELAY
RET
DELAY:
MOV 50H,#150
DJNZ 50H,$
RET
;KHAI BAO CAC BANG DB
BANG00:
DB ' DH CONG NGHIEP#'
BANG01:
DB ' DO AN MOT#'
BANG02:
DB 'GVHD TRAN V TRINH#'
BANG03:
DB 'NGUYEN NGOC TRUC#'
BANG04:
DB ' DIEU KHIEN TBI#'
BANG05:
DB 'ON OFF 123#'
BANG06:
DB 'TB1 P TB2 P#'
BANG07:
DB 'TB3 P #'
END
CHƯƠNG 4: KẾT LUẬN
4.1 Kết quả thu được
Sau khi hoàn thành đồ án một , tôi đã thu được một số kết quả như sau:
Xây dựng được một sản phẩm có thể ứng dụng vào đời sống là thiết bị điều khiển AC bằng sóng hồng ngoại.
Tìm hiểu được về vi điều khiển AMET 89C51.
Tìm hiểu và thiết kế được khối công suất nhằm chuyển đổi tín hiệu điều khiển DC thành tín hiệu đóng mở AC bằng opto-triac và triac.
Tìm hiểu và lập trình điều khiển khối LCD hiển thị .
Tìm hiểu và thiết kế được khối kiểm tra nhằm chuyển đổi tín hiệu AC thành tín hiệu ligic DC bằng opto-transistor để giám sát thiết bị AC.
Tìm hiểu và sử dụng chức năng ngắt của Timer tao ra thời gian lớn.
Tìm hiểu thu phát hồng ngoại bằng SC9148 và SC9149.
4.2 Các khuyết điểm của sản phẩm
Dù đã hoạt động tốt nhưng sản phẩm vẫn còn một số khuyết điểm sau:
Thời gian thử hoạt động còn ngắn.
Việc thi công vẫn chưa được đẹp .
Khoảng cách của bộ điều khiển không được xa .
Trong quá trình thiết kế có những lỗi nhỏ đã khắc phục.
Số lượng thiết bị ít.
Thời gian định thiết bị OFF còn nhỏ (chỉ có 95 phút), thời gian có tính tương đối.
Tần số đáp ứng của các phím chưa cao
Trong quá trình thiết bị hoạt động chưa xử lý các tín hiệu ngoài ý muốn ( là xung do tải tạo ra trong quá trình khởi động đưa về Triac).
4.3 Các ưu điểm của sản phẩm
Sản phẩm thi công được có các ưu điểm như sau:
Sử dụng triac để dẫn điện AC nên mạch hoạt động không gây tiếng ồn, tiết kiệm năng lượng hơn nhiều so với dùng rơ-le.
Các bộ thu phát hồng ngoại đều hoạt động tốt với cự ly (5m – 10m ).
Khối điều khiển , khối công suất, các khối khác trừ khối phát hồng ngoại được bố trí trong tủ điện tiện lợi cho việc lắp đặt và bảo quản .
Có giám sát thiết bị hiển thị LCD.
Có chế độ định thời gian thiết bị OFF
Hướng phát triển của đề tài trong tương lai
Đưa sản phẩm vào sử dụng trong thực tế để kiểm tra độ ổn định.
Thay thế khối thu phát hồng ngoại thành khối thu phát FM nâng khoảng cách xa hơn.
Giám sát thiết bị bằng PC thông qua cổng COM ,USB.
Xây dựng thành mạng điều khiển sử dụng RS 485.
Nghiên cứu phát triển sản phẩm để có thể hoạt động ở điện 3 pha.
Mở rộng thêm số lượng thiết bị có thể được điều khiển không chỉ dừng lại ở 3 thiết bị. Có chế độ định thời gian ON/OFF tự động.