KHOA CÔNG NGHỆ ĐIỆN TỬ
ĐỒ ÁN 1:
GVHD : PHẠM QUANG TRÍ
SVTH : DƯƠNG MINH TÂM - 06050341
NGUYỄN ĐÌNH THI - 06064911
LỚP : ĐHĐT2B
Thành phố Hồ Chí Minh, ngày 20, tháng 5, năm 2009
MẠCH CHỐNG TRỘM DHDT2B2
L I NÓI UỜ ĐẦ
Đồ án môn học 1 là đồ án đầu tiên của sinh viên sau ba học kì học chuyên
ngành. Đây là cơ hội để cho mỗi sinh viên vận dụng những kiến thức đã học, để hiểu
sâu sắc hơn về những kiến thức đó và tìm hiểu thêm nhiều kiến thức mới, đặc biệt
kiến thức thực tế bên ngoài nhà trường…để tạo ra một sản phẩm có công dụng thực tế
phục vụ cho việc học tập, nghiên cứu và sử dụng. Từ đó, tạo nên hứng thú, động lực
cho việc học tập nhiều hơn nữa và đây cũng là nền tảng cho việc thực hiện đồ án tốt
nghiệp sau này. Tuy nhiên, do đây là đồ án đầu tiên mà sinh viên thực hiện, vì việc
thực hiện đồ án này song song với quá trình học tập tại lớp, do đó thời gian dành cho
đồ án là không nhiều. Cho nên, trong quá trình thực hiện không tránh khỏi những sai
sót, nên mong thầy cô thông cảm và chỉ dạy thêm để cho nhóm hoàn thiện hơn trong
những đồ án kế tiếp.
2
MẠCH CHỐNG TRỘM DHDT2B2
L I C M NỜ Ả Ơ
Chúng em xin chân thành cảm ơn quí thầy cô Trường ĐH Công Nghiệp TP.Hồ
Chí Minh đã dạy bảo, truyền đạt kiến thức cho chúng em trong suốt quá trình học.
Đặc biệt là thầy Phạm Quang Trí đã tận tình chỉ dẫn cho chúng em trong quá trình làm
và hoàn thành đồ án này.
Đồng cảm ơn Ban giám hiệu nhà trường đã tạo điều kiện cho chúng em học tập
và trau dồi kiến thức. Xin cảm ơn các bạn cùng lớp đã có ý kiến đóng góp cho nhóm
chúng em trong quá trình tìm hiểu và làm đồ án.
Do thời gian và trình độ có hạn nên đồ án không tránh khỏi những thiếu sót.
Chúng em mong nhận được ý kiến đóng góp của quí thầy cô và các bạn để đồ án được
hoàn thiện hơn, và tạo lập cho chúng em có một cơ sở nhìn nhận về khả năng, kiến
thức, từ đó có hướng phấn tốt hơn cho các đồ án tiếp theo.
Chúng em xin chân thành cảm ơn!
Sinh viên
Dương Minh Tâm - Nguyễn Đình Thi
3
MẠCH CHỐNG TRỘM DHDT2B2
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN:
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
Chữ ký giáo viên
4
MẠCH CHỐNG TRỘM DHDT2B2
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN :
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
……………………………………………………………………………….
Chữ ký giáo viên
I. GIỚI THIỆU ĐỀ TÀI:
5
MẠCH CHỐNG TRỘM DHDT2B2
“Mạch báo động chống trộm dùng cảm biến giao tiếp LCD” là một hệ thống báo động
gồm 2 Sensor hồng ngoại đặt ở 2 vị trí khác nhau được kết nối với vi điều khiển 89V51RB2,
đồng thời hiển thị lên LCD và báo động qua loa khi có trộm.
Mạch được thiết kế bao gồm 4 khối chính ( khối vi xử lý, khối hiển thị, khối báo
động, khối cảm biến) và 5 nút nhấn:
+ POWER : Bật/Tắt nguồn hệ thống.
+ RESET : Thiết lập lại hệ thống.
+ SILENT : Tắt loa báo động.
+ STOP : Đặt chương trình ở trạng thái nghỉ.
+ START : Khởi động chương trình.
Ngoài ra còn có hệ thống LED đơn báo hiệu: các nút nhấn, nguồn và 2 LED 7 màu khi
báo động.
SƠ LƯỢC VỀ SENSOR SB0061:
- Hình dạng thực tế:
Mặt trên
Mặt dưới
- Các thông số kỹ thuật :
Kích thước: (28 x 38 mm)
Điện áp: DC 5V – 20V (có thể 3V – 24V)
Dòng điện: < 50 uA
Điện áp ngõ ra: Mức cao 3.3V
Delay: 5s – 18p
Thời gian bao phủ: 0.5s – 50s (coi như bằng 0s).
Nhiệt độ: -15
0
C – 70
0
C
Light sensor: CdS photocell.
- Vùng quét :
6
MẠCH CHỐNG TRỘM DHDT2B2
- Mạch nguyên lý:
1. Nguồn
2. Output (Mức cao 3.3V)
3. GND
H. Giữ trạng thái.
L. Không giữ trạng thái.
CDS: Photocell
7
MẠCH CHỐNG TRỘM DHDT2B2
II. SƠ ĐỒ KHỐI PHẦN CỨNG:
II.1 SƠ ĐỒ MẠCH NGUYÊN LÝ:
AD7
AD0
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
AD6
AD5
AD4
AD3
AD2
AD1
D0
D7
AD2
AD0
AD1
D0
D1
D2
D3
D4
D5
D6
D1
D2
D3
D4
D5
D6
D7
AD6
AD5
AD4
AD3
AD7
E0
E0
AD7
E0
LED
SIL
LED
LED
SIL
SIL
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
U1
AT89C51
C1
33p
C2
33p
X1
12MHz
C3
10uF
R5
10k
+5V
2
3
4
5
6
7
8
9
1
RP1
10K
+5V
MAÏCH ÑIEÀU KHIEÅN LCD
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9
D1
8
D0
7
E
6
RW
5
RS
4
VSS
1
VDD
2
VEE
3
LCD1
ALPHANUMERIC LCD 16 CHAR x 2 LINE
RV1
10K
+5V
+5V+5V
LOA2
R2
330
LOA1
R1
330
START SS1 SS2STOP
+5V
STOPP
R3
330
+5V
STARTT
R4
330
+5V+5V
LED2
R7
330
LED1
R6
330
+5V
LED_SILENT
R8
330
SILENT
II.2 KHỐI VI XỬ LÝ:
8
VI ĐIỀU KHIỂN
Sensor
Sensor2
LCD NÚT NHẤN
ĐIỀU
KHIỂN
SILENT STOP START BÁO ĐỘNG
MẠCH CHỐNG TRỘM DHDT2B2
AD7
AD0
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
AD6
AD5
AD4
AD3
AD2
AD1
D0
D1
D2
D3
D4
D5
D6
D7
E0
LED
SIL
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
U1
AT89C51
C1
33p
C2
33p
X1
12MHz
C3
10uF
R5
10k
+5V
2
3
4
5
6
7
8
9
1
RP1
10K
+5V
II.3 KHỐI HIỂN THỊ (LCD):
D7
AD2
AD0
AD1
D0
D1
D2
D3
D4
D5
D6
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9
D1
8
D0
7
E
6
RW
5
RS
4
VSS
1
VDD
2
VEE
3
LCD1
ALPHANUMERIC LCD 16 CHAR x 2 LINE
RV1
10K
+5V
Chức năng hiển thị :
9
MẠCH CHỐNG TRỘM DHDT2B2
- Trạng thái bình thường và khi nhấn nút STOP:
Dòng 1 chạy chữ : ‘MACH CHONG TROM – GVHD: PHAM QUANG TRI –
SVTH: MINH TAM- DINH THI ’
Dòng 2 dòng chữ đứng yên: ‘ HE THONG NGHI ’
- Nhấn nút START:
Dòng 1 chạy chữ : ‘MACH BAO DONG CHONG TROM ’
Dòng 2 dòng chữ đứng yên: ‘$$ DHCN TPHCM $$’
- Trạng thái báo động:
+PHÒNG ĐẶT CẢM BIẾN 1:
Dòng 1 dòng chữ đứng yên: ‘STRANGER’
Dòng 2 dòng chữ đứng yên: ‘ ROOM 1 ’
+PHÒNG ĐẶT CẢM BIẾN 2:
Dòng 1 dòng chữ đứng yên: ‘STRANGER’
Dòng 2 dòng chữ đứng yên: ‘ ROOM 2 ’
+KHI PHÁT HIỆN CẢ 2 PHÒNG:
Dòng 1 dòng chữ đứng yên: ‘STRANGER’, ‘VT1(2)’
Dòng 2 dòng chữ đứng yên: ‘ TWO ROOMS ’
II.4 KHỐI BÁO ĐỘNG (SPEAKER):
Chức năng:
LOA 1: Phát ra âm thanh báo động khi có trộm ở ROOM 1.
LOA 2: Phát ra âm thanh báo động khi có trộm ở ROOM 2.
II.5 KHỐI CẢM BIẾN (SENSOR):
10
MẠCH CHỐNG TRỘM DHDT2B2
Chức năng:
Phát ra tia hồng ngoại, đo mức thay đổi hồng ngoại của môi trường và cho ra tín hiệu
ở mức cao 3.3V khi có trộm.
II.6 SƠ ĐỒ KẾT NỐI VỚI VI XỬ LÝ 89V51RB2:
• Port 1 của vi xử lý nối với 8 chân dữ liệu của LCD.
• P0.0, P0.1, P0.2 nối với 3 chân điều khiển RS, RW, E của LCD.
• P0.3 nối với Sensor 1
• P0.4 nối với Sensor 2.
• P0.5 nối với Loa 1
• P0.6 nối với Loa 2.
• P0.7 nối với nút START.
• P2.0 nối với 2 LED 7 màu báo hiệu.
• P2.1 nối với nút SILENT
• P2.6 nối với nút STOP
II.7 NGUYÊN LÝ HOẠT ĐỘNG:
Trạng thái bình thường hai chân Sensor được tích cực mức thấp 0V, khi có sự thay
đổi hồng ngoại, chân tín hiệu của Sensor sẽ ở mức cao 3.3V, nhưng khi qua mạch IC đảo
ULN 2803 thì:
• Trạng thái bình thường cho ra mức cao ≈ 5V mức 1
• Khi có sự thay đổi sẽ được đưa về 0V mức 0
Sensor : khi mức 0 là có phát hiện, mức 1 là không có phát hiện
Loa : mức 0 là kích loa kêu, mức 1 là tắt loa
Chế độ Sensor 1 Sensor 2 Loa 1 Loa 2
Nghỉ 1 1 1 1
Báo động
Phòng 1
0 1 0 1
Báo động
Phòng 2
1 0 1 0
Báo động
2 Phòng
0 0 0 0
11
MẠCH CHỐNG TRỘM DHDT2B2
Có 3 nút nhấn để điều khiển nút STRAT, STOP, và SILENT
Nút START : khởi động chương trình
Nút STOP : dừng chương trình
Nút SILENT :tắt loa
“ 2 cảm biến sẽ được ở 2 phòng khác nhau: phòng 1 và phòng 2 ”
Lúc đầu khi cấp nguồn, hệ thống ở trạng thái không hoạt động, LCD hiển
thị dòng 1 chạy chữ: ‘MACH CHONG TROM – GVHD: PHAM QUANG TRI – SVTH:
MINH TAM- DINH THI ’; dòng 2 hiển thị dòng chữ đứng yên: ‘ HE THONG NGHI ’ ,
lúc này sensor bắt đầu được kích hoạt phát tia hồng ngoại nhưng nếu sensor có phát hiện gì
thì cũng không có báo động.
Để bắt đầu hoạt động ta kích nút START hệ thống bắt đầu hoạt động quét mán
hình LCD hiển thị dòng 1 chạy chữ : ‘ MACH BAO DONG CHONG TROM ’ ; dòng 2
hiển thị dòng chữ đứng yên : ‘ $$ DHCN TPHCM $$ ’ ; Hệ thống bắt đầu quét kiểm tra
từng cảm biến, trong trường hợp này khi ta nhấn SILENT thì khi có phát hiện hệ thống chỉ
báo qua LCD và 2 led 7 màu sáng lên, loa bây giờ không còn tác dụng báo nữa, còn nếu ta
nhấn STOP thì sẽ trở về giống khi lúc cấp nguồn. Khi ở chế độ hoạt động sẽ có 4 trường
hợp:
Trường hợp 1: chỉ có Sensor 1 đặt ở phòng 1 phát hiện
Sẽ kích hoạt loa 1 báo ( ở đây ta chọn là 1 bản nhạc) , đồng thời led 7
màu sáng lên và hiển thị lên LCD: đầu dòng 1 chữ: ‘ STRANGER ’ đứng yên ; và đầu dòng
2 chữ: ‘ ROOM 1 ’ đứng yên ; nếu trong phòng 1 cảm biến phát hiện vẫn còn có người thì
chữ ‘ STRANGER ’ sẽ chớp tắt với thời gian là 100ms, khi ta nhấn SILENT thì loa sẽ tắt
Trường hợp 2: chỉ có Sensor 2 đặt ở phòng 2 phát hiện
Sẽ kích hoạt loa 2 báo ( ở đây ta chọn là 1 bản nhạc khác) , đồng thời
led 7 màu sáng lên và hiển thị lên LCD: đầu dòng 1 chữ: ‘ STRANGER ’ đứng yên ; và cuối
dòng 2 chữ: ‘ ROOM 2 ’ đứng yên ; nếu trong phòng 2 cảm biến phát hiện vẫn còn có người
thì chữ ‘ STRANGER ’ sẽ chớp tắt với thời gian là 100ms, khi ta nhấn SILENT thì loa sẽ
tắt
Trường hợp 3: Sensor 1 đặt ở phòng 1 phát hiện trước, Sensor 2 đặt
ở phòng 2 phát hiện sau:
Khi sensor 1 phát hiện, ban đầu sẽ giống như trường hợp 1, và khi sensor 2
phát hiện tiếp lúc này sẽ kích hoạt 2 loa báo động báo 2 phòng đều có người, và màn hình
12
MẠCH CHỐNG TRỘM DHDT2B2
LCD lúc này sẽ hiển thị: ở giữa dòng 2 chữ ‘ TWO ROOMS ’ đứng yên ; dòng 1 sẽ hiển
thị : ‘ STRANGER VT2 ’ đứng yên ; VT2 có nghĩa là phát hiện ở phòng 2 sau cùng,
nếu trong phòng 2 sensor vẫn còn phát hiện có người thì chữ VT2 sẽ chớp tắt với thời gian là
100ms ; Lúc này, nếu sensor 1 có phát hiện thì sẽ hiển thị chữ ‘ STRANGER VT1 ’
đứng yên và sensor 1 còn phát hiện nữa thì chữ VT1 sẽ chớp tắt với thời gian là 100ms, cứ
như thế nếu sensor nào phát hiện thì sẽ hiển thị chớp tắt VT1 hoặc VT2 tương ứng với
sensor 1 và 2
Trường hợp 4: Sensor 2 đặt ở phòng 2 phát hiện trước, Sensor 1 đặt
ở phòng 1 phát hiện sau:
Trường hợp này giống như trường hợp 3 thay vì hiển thị ‘ STRANGER
VT2 ’ trước, thì sẽ hiển thị ‘ STRANGER VT1 ’ trước, phần sau giống hoàn toàn
trường hợp 3.
Trong bất cứ trường hợp nào nếu nhấn nút START hoặc STOP thì sẽ trở
về chương trình hoạt động tương ứng.
13
MẠCH CHỐNG TRỘM DHDT2B2
III. LƯU ĐỒ GIẢI THUẬT CỦA CHƯƠNG TRÌNH.
Chương trình chính:
14
HOAT_DONG:
BEGIN
MAIN:
KIỂM TRA ĐỂ HOẠT
ĐỘNG
( START ) = 0
GỌI CTC KHỞI ĐỘNG LCD
HỆ THỐNG VÀO TRẠNG THÁI KHÔNG
HOẠT ĐỘNG
CHỐNG NHIỄU
LOA1 VÀ LOA2
MP1:
GỌI CTC HIỂN THỊ DÒNG 1
HT_CHAYCHU
SAI
ĐÚNG
NẠP GIÁ TRỊ THỜI GIAN TẠO TRỄ
200MS
NẠP DỮ LIỆU VÙNG NHỚ CỦA DÒNG 1
( DPTR ) = DATA 6
GỌI CHƯƠNG TRÌNH TẠO TRỄ
DELAY
TĂNG VÙNG MÃ DỮ LIỆU
( DPTR ) = ( DPTR ) + 1
KIỂM TRA HẾT VÙNG
MÃ DỮ LIỆU
( DPTR ) = DATA7
ĐÚNG
GỌI CTC KHỞI ĐỘNG LCD
GỌI CTC HIỂN THỊ DÒNG 2
TT_NGHI
GÁN 2 BIT NHỚ NHO_I VÀ NHO_II MỨC THẤP
( NHO_I ) = 0 ; ( NHO_II ) = 0
GỌI CTC HIỂN THỊ DÒNG 2
TT_HOATDONG
CHỐNG NHIỄU
LOA1 VÀ LOA2
NẠP DỮ LIỆU VÙNG NHỚ CỦA
DÒNG 1
( DPTR ) = DATA 1
KIỂM TRA CẢM BIẾN 1
( CAM_BIEN1) = 0
KIỂM TRA CẢM BIẾN 2
( CAM_BIEN2) = 0
KIỂM TRA ĐỂ
DỪNG HOẠT
ĐỘNG
( STOP ) = 0
GỌI CTC HIỂN THỊ DÒNG 1
HT_CHAYCHU
NẠP GIÁ TRỊ THỜI GIAN TẠO TRỄ
200MS
GỌI CHƯƠNG TRÌNH TẠO TRỄ
DELAY
TĂNG VÙNG MÃ DỮ LIỆU
( DPTR ) = ( DPTR ) + 1
KIỂM TRA HẾT
VÙNG MÃ DỮ LIỆU
( DPTR ) = DATA2
LOOP1:
LOOP2:
MP2:
SAI
SAI
ĐÚNG
ĐÚNG
ĐÚNG
ĐÚNG
SAI
SAI
SAI
M
AI
N2
:
M
AI
N3
:
TẮT 2 LOA
KIỂM TRA TẮT
LOA
( STOP ) = 0
SAI
MẠCH CHỐNG TRỘM DHDT2B2
15
KÍCH HOẠT LED 7 MÀU BÁO
HIỆU
MAIN2:
GỌI CTC HIỂN THỊ DÒNG 1
CHỮ : ( STRANGER )
AAA
GỌI CTC BÁO ĐỘNG CỦA VỊ
TRÍ 1
BAODONG1
KIỂM TRA ĐỂ
TẮT LOA BÁO
ĐỘNG
( SILENT ) = 0
KIỂM TRA CẢM
BIẾN 1 ĐỂ CHỚP
BÁO HIỆU
( CAM_BIEN1 ) = 0
KIỂM TRA ĐỂ
RESET
( RESET ) = 0
KIỂM TRA ĐỂ
DỪNG
( STOP ) = 0
KIỂM TRA CẢM BIẾN
2
( CAM_BIEN2) = 0
KIEMTRA1:
KIEMTRA_TIEP1:
KKK:
GỌI CTC TẮT LOA
GỌI CTC HIỂN THỊ
CHỚP TẮT TRÊN LCD
CHOP_TAT
ĐÚNG
SAI
ĐÚNG
SAI
ĐÚNG
ĐÚNG
ĐÚNG
SAI
SAI
SAI
KÍCH HOẠT LED 7 MÀU BÁO
HIỆU
MAIN3:
GỌI CTC HIỂN THỊ DÒNG 1
CHỮ : ( STRANGER )
AAA
GỌI CTC BÁO ĐỘNG CỦA VỊ
TRÍ 2
BAODONG2
KIỂM TRA ĐỂ
TẮT LOA BÁO
ĐỘNG
( SILENT ) = 0
KIỂM TRA CẢM
BIẾN 2 ĐỂ CHỚP
BÁO HIỆU
( CAM_BIEN2 ) = 0
KIỂM TRA ĐỂ
DỪNG
( STOP ) = 0
KIỂM TRA ĐỂ
RESET
( RESET ) = 0
KIỂM TRA CẢM BIẾN
1
( CAM_BIEN1) = 0
KIEMTRA1:
KIEMTRA_TIEP2:
LLL:
GỌI CTC TẮT LOA
GỌI CTC HIỂN THỊ
CHỚP TẮT TRÊN LCD
CHOP_TAT
ĐÚNG
SAI
ĐÚNG
SAI
ĐÚNG
ĐÚNG
ĐÚNG
SAI
SAI
SAI
H
O
AT
_D
O
N
G:
M
AI
N:
GỌI CTC ĐƯA DỮ LIỆU RA LCD
GHI_DULIEULCD
KÍCH HOẠT LOA 1
TẮT LOA2
NẠP Ô NHO_I GIÁ TRỊ MỨC
CAO
( NHO_I ) = 1
COPPY GIÁ TRỊ Ô NHỚ
NHO_II VÀO CỜ CY
( CY ) = ( NHO_II )
GỌI CTC KHỞI TẠO LCD
KIỂM TRA CỜ
CY
NẾU ( CY ) = 1
( DPTR ) =
DATA7
TẮT NHẤP NHÁY CON TRỎ,
BẬT HIỂN THỊ ĐẦU DÒNG 2
( P_DULIEU ) = 0C0H
GỌI CTC GỞI LỆNH RA LCD
GOI_LENH
NẠP DỮ LIỆU VÙNG NHỚ CỦA
DÒNG 2
( DPTR ) = DATA 3
KÍCH HOẠT LOA 2
TẮT LOA1
NẠP Ô NHO_II GIÁ TRỊ MỨC
CAO
( NHO_II ) = 1
COPPY GIÁ TRỊ Ô NHỚ
NHO_I VÀO CỜ CY
( CY ) = ( NHO_I )
GỌI CTC KHỞI TẠO LCD
KIỂM TRA CỜ
CY
NẾU ( CY ) = 1
( DPTR ) =
DATA7
TẮT NHẤP NHÁY CON TRỎ,
BẬT HIỂN THỊ CUỐI DÒNG 2
( P_DULIEU ) = 0C8H
GỌI CTC GỞI LỆNH RA LCD
GOI_LENH
NẠP DỮ LIỆU VÙNG NHỚ CỦA
DÒNG 2
( DPTR ) = DATA 4
GỌI CTC ĐƯA DỮ LIỆU RA LCD
GHI_DULIEULCD
KÍCH HOẠT LOA 1
VÀ LOA2
GỌI CTC KHỞI TẠO LCD
TẮT NHẤP NHÁY CON TRỎ, BẬT HIỂN
THỊ Ở GIỮA DÒNG 2
( P_DULIEU ) = 0C5H
GỌI CTC GỞI LỆNH RA LCD
GOI_LENH
GỌI CTC ĐƯA DỮ LIỆU RA LCD
GHI_DULIEULCD
NẠP DỮ LIỆU VÙNG NHỚ CỦA DÒNG 2
( DPTR ) = DATA 5
ALL_BAODONG:
KIỂM TRA Ô NHỚ
ĐỂ TẮT LOA
( NHO_SILENT ) =
1
KIỂM TRA Ô NHỚ
ĐỂ TẮT LOA
( NHO_SILENT ) =
1
SAI
SAI
ĐÚNG
ĐÚNG
IMLANG1:
IMLANG2:
RET
RET
KIỂM TRA ĐỂ TẮT
LOA BÁO ĐỘNG
( NHO_SILENT ) =
1
IMLANG3:
M
AI
N4
:
BAODONG2:
BAODONG1:
ĐÚNG
SAI
ĐÚNG ĐÚNG
SAI
SAI
MẠCH CHỐNG TRỘM DHDT2B2
16
MẠCH CHỐNG TRỘM DHDT2B2
17
CHOP_TAT
GỬI MÃ LCD ĐỊA CHỈ BẮT ĐẦU CỦA DÒNG 1:00H
( P_DULIEU ) = 80H
GỌI CTC GỬI LỆNH RA LCD
GOI_LENH
NẠP ĐỊA CHỈ VÙNG NHỚ CHỨA DỮ LIỆU CỦA DÒNG 1
( DPTR ) = DATA8
GỌI CTC GỬI VÙNG DỮ LIỆU SANG LCD
GHI_DULIEULCD
GỌI CTC TẠO TRỄ 200ms
TAOTRE_200MS
GỬI MÃ LCD ĐỊA CHỈ BẮT ĐẦU CỦA DÒNG 1:00H
( P_DULIEU ) = 80H
GỌI CTC GỬI LỆNH RA LCD
GOI_LENH
NẠP ĐỊA CHỈ VÙNG NHỚ CHỨA DỮ LIỆU CỦA DÒNG 1
( DPTR ) = DATA12
GỌI CTC GỬI VÙNG DỮ LIỆU SANG LCD
GHI_DULIEULCD
GỌI CTC TẠO TRỄ 200ms
TAOTRE_200MS
GỬI MÃ LCD ĐỊA CHỈ BẮT ĐẦU CỦA DÒNG 1:00H
( P_DULIEU ) = 80H
GỌI CTC GỬI LỆNH RA LCD
GOI_LENH
NẠP ĐỊA CHỈ VÙNG NHỚ CHỨA DỮ LIỆU CỦA DÒNG 1
( DPTR ) = DATA8
GỌI CTC GỬI VÙNG DỮ LIỆU SANG LCD
GHI_DULIEULCD
GỌI CTC TẠO TRỄ 200ms
TAOTRE_200MS
RET
MAIN4:
GỌI CTC HIỂN THỊ DÒNG 1
CHỮ : ( STRANGER )
AAA
KIỂM TRA ĐỂ
TẮT LOA BÁO
ĐỘNG
( SILENT ) = 0
KIỂM TRA CẢM
BIẾN 1 ĐỂ CHỚP
BÁO HIỆU
( CHOP1) = 0
KIỂM TRA ĐỂ
DỪNG
( STOP ) = 0
KIỂM TRA ĐỂ
RESET
( RESET ) = 0
KIỂM TRA CẢM BIẾN
2
( CAM_BIEN2) = 0
BAOHIEU1:
KIEMTRA_TIEP3:
BAO_HIEU2:
GỌI CTC TẮT LOA
ĐÚNG
SAI
ĐÚNG
SAI
ĐÚNG
SAI
SAI
SAI
H
O
AT
_D
O
N
G:
M
AI
N:
ĐÚNG
ĐÚNG
CH
OP
_1:
CH
OP
_2:
GỬI MÃ LCD ĐỊA CHỈ GẦN CUỐI CỦA DÒNG 1:0BH
( P_DULIEU ) = 8BH
GỌI CTC GỬI LỆNH RA LCD
GOI_LENH
NẠP ĐỊA CHỈ VÙNG NHỚ CHỨA DỮ LIỆU CỦA DÒNG 1
( DPTR ) = DATA9
GỌI CTC GỬI VÙNG DỮ LIỆU SANG LCD
GHI_DULIEULCD
GỌI CTC TẠO TRỄ 200ms
TAOTRE_200MS
GỬI MÃ LCD ĐỊA CHỈ GẦN CUỐI CỦA DÒNG 1:0BH
( P_DULIEU ) = 8BH
GỌI CTC GỬI LỆNH RA LCD
GOI_LENH
NẠP ĐỊA CHỈ VÙNG NHỚ CHỨA DỮ LIỆU CỦA DÒNG 1
( DPTR ) = DATA12
GỌI CTC GỬI VÙNG DỮ LIỆU SANG LCD
GHI_DULIEULCD
GỌI CTC TẠO TRỄ 200ms
TAOTRE_200MS
GỬI MÃ LCD ĐỊA CHỈ GẦN CUỐI CỦA DÒNG 1:0BH
( P_DULIEU ) = 8BH
GỌI CTC GỬI LỆNH RA LCD
GOI_LENH
NẠP ĐỊA CHỈ VÙNG NHỚ CHỨA DỮ LIỆU CỦA DÒNG 1
( DPTR ) = DATA9
GỌI CTC GỬI VÙNG DỮ LIỆU SANG LCD
GHI_DULIEULCD
GỌI CTC TẠO TRỄ 200ms
TAOTRE_200MS
RET
CHOP_1:
GỬI MÃ LCD ĐỊA CHỈ GẦN CUỐI CỦA DÒNG 1:0BH
( P_DULIEU ) = 8BH
GỌI CTC GỬI LỆNH RA LCD
GOI_LENH
NẠP ĐỊA CHỈ VÙNG NHỚ CHỨA DỮ LIỆU CỦA DÒNG 1
( DPTR ) = DATA10
GỌI CTC GỬI VÙNG DỮ LIỆU SANG LCD
GHI_DULIEULCD
GỌI CTC TẠO TRỄ 200ms
TAOTRE_200MS
GỬI MÃ LCD ĐỊA CHỈ GẦN CUỐI CỦA DÒNG 1:0BH
( P_DULIEU ) = 8BH
GỌI CTC GỬI LỆNH RA LCD
GOI_LENH
NẠP ĐỊA CHỈ VÙNG NHỚ CHỨA DỮ LIỆU CỦA DÒNG 1
( DPTR ) = DATA12
GỌI CTC GỬI VÙNG DỮ LIỆU SANG LCD
GHI_DULIEULCD
GỌI CTC TẠO TRỄ 200ms
TAOTRE_200MS
GỬI MÃ LCD ĐỊA CHỈ GẦN CUỐI CỦA DÒNG 1:0BH
( P_DULIEU ) = 8BH
GỌI CTC GỬI LỆNH RA LCD
GOI_LENH
NẠP ĐỊA CHỈ VÙNG NHỚ CHỨA DỮ LIỆU CỦA DÒNG 1
( DPTR ) = DATA10
GỌI CTC GỬI VÙNG DỮ LIỆU SANG LCD
GHI_DULIEULCD
GỌI CTC TẠO TRỄ 200ms
TAOTRE_200MS
RET
CHOP_2:
MẠCH CHỐNG TRỘM DHDT2B2
18
GÁN GIÁ TRỊ KÍCH 2 LOA
MỨC CAO
( LOA1 ) = 1
( LOA2 ) = 1
RET
TAT_LOA
GỬI MÃ LCD=0CH
BẬT HIỂN THỊ,TẮT CON TRỎ,TĂT NHẤP NHÁY CON TRỎ
( P_DULIEU) = 0CH
GỬI MÃ LCD=06H
BẬT HIỂN THỊ,TẮT CON TRỎ,TĂT NHẤP NHÁY CON TRỎ
( P_DULIEU) = 0CH
KHOITAO_LCD
THIẾT LẬP GỬI MÃ LỆNH
(RS)=0
THIẾT LẬP GHI VÀO LCD
(RW)=0
THIẾT LẬP TRUY XUẤT LCD
(EN)=1
GỬI MÃ LCD=38H,8BIT,2 DÒNG,ĐỊNH DẠNG 5x7
( P_DULIEU ) = 38H
GỌI CTC GỬI LỆNH RA LCD
GOI_LENH
GỌI CTC TẠO TRỄ
DELAY
GỬI MÃ LCD=38H,8BIT,2 DÒNG,ĐỊNH DẠNG 5x7
( P_DULIEU ) = 38H
NẠP GIÁ TRỊ TẠO TRỄ 100us
(TH0/TL0)=-100=FF9CH
GỌI CTC TẠO TRỄ
DELAY
GỬI MÃ LCD=38H,8BIT,2 DÒNG,ĐỊNH DẠNG 5x7
( P_DULIEU )=38H
XÓA MÃ LCD=01H,XÓA HIỂN THỊ
(P_DULIEU)=01
NẠP GIÁ TRỊ TẠO TRỄ 4.1ms
(TH0/TL0)=-4100=EFFCH
GỌI CTC GỬI LỆNH RA LCD
GOI_LENH
GỌI CTC GỬI LỆNH RA LCD
GOI_LENH
GỌI CTC GỬI LỆNH RA LCD
GOI_LENH
GỌI CTC GỬI LỆNH RA LCD
GOI_LENH
GỌI CTC GỬI LỆNH RA LCD
GOI_LENH
RET
GOI_LENH GOI_DULIEU
ĐƯA LCD VỀ TRẠNG THÁI
HOẠT ĐỘNG BÌNH THƯỜNG
(EN) =1
THIẾT LẬP GỬI DỮ LIỆU
(RS)=1
NOP
THIẾT LẬP GHI VÀO LCD
(RW)=0
TẠO XUNG TRUY XUẤT LCD (EN=1→0)
(EN) = 0
NOP
NOP
THIẾT LẬP GỬI MÃ LỆNH
(RS)=0
TAO_XUNG:
GỌI CTC TẠO TRỄ
DELAY
NẠP GIÁ TRỊ TẠO TRỄ 1ms
(TH0/TL0)=-1000=FC18H
RET
MẠCH CHỐNG TRỘM DHDT2B2
19
TT_HOATDONG
GỬI MÃ LCD =C0H ĐỊA CHỈ BẮT ĐẦU CỦA DÒNG 2:40H
( P_DULIEU) =C0H
RET
GỌI CTC GỬI LỆNH RA LCD
GOI_LENH
NẠP ĐỊA CHỈ VÙNG NHỚ CHỨA DỮ LIỆU CỦA DÒNG 2
( DPTR ) = DATA2
GỌI CTC GỬI VÙNG DỮ LIỆU SANG LCD
GHI_DILIEULCD
MẠCH CHỐNG TRỘM DHDT2B2
20
DELAY
RET
KHỞI ĐỘNG TIMER
(TIMER0,MODE1)
(TMOD)=01H
CHO TIMER0 HOẠT ĐỘNG
(TR0)=1
9
0
CHƯA ĐỦ THỜI
GIAN
(TF0)=0
DỪNG TIMER
(TR0)=0
9
0
XÓA CỜ TRÀN TIMER
(TR0)=0
9
0
DELAY:
S
Đ
TAOTRE_200MS
DELAY:
NẠP GIÁ TRỊ VÒNG LẶP
( R4) = 10
9
0
GỌI CTC TẠO TRỄ
DELAY
NẠP GIÁ TRỊ TẠO TRỄ 10ms
(TH0/TL0)=-10000=FD8FH
GIẢM SỐ VÒNG
LẶP
( R4 ) = 0
SAI
ĐÚNG
RET
HT_CHAYCHU
GỬI MÃ LCD = 80H ĐỊA CHỈ BẮT ĐẦU CỦA DÒNG 1:00H
( P_DULIEU) =80H
RET
GỌI CTC GỬI LỆNH RA LCD
GOI_LENH
GỌI CTC GỬI VÙNG DỮ LIỆU SANG LCD
GHI_DILIEULCD
MẠCH CHỐNG TRỘM DHDT2B2
IV. CODE CHƯƠNG TRÌNH:
$MOD51
P_DULIEU EQU P1
RS BIT P0.0
RW BIT P0.1
EN BIT P0.2
CAM_BIEN1 BIT P0.3
CAM_BIEN2 BIT P0.4
LOA1 BIT P0.5
LOA2 BIT P0.6
START BIT P0.7
LED7 BIT P2.0
SILENT BIT P2.1
STOP BIT P2.6
O_NHO DATA 20H
NHO_I BIT O_NHO.0
NHO_II BIT O_NHO.1
NHO_SILENT BIT O_NHO.2
;########################################################################
ORG 00H
MAIN1:
ACALL KHOITAO_LCD ;KHOI TAO LCD
;########################################################################
NGHI:
SETB LED7
SETB CAM_BIEN1
SETB CAM_BIEN2
SETB STOP
SETB START
SETB LOA1
SETB LOA2
ACALL TT_NGHI ;HIEN THI DONG 2 (DANG O CHE DO NGHI)
MP1:
MOV DPTR,#DATA7 ;HIEN THI DONG 2 CHU ‘ HE THONG NGHI ’
LOOP1:
JNB START,HOAT_DONG
ACALL HT_CHAYCHU
MOV R1,#20 ;DELAY 200MS
DEL200_1:
MOV TH0,#HIGH(-10000)
MOV TL0,#LOW(-10000)
ACALL DELAY
DJNZ R1,DEL200_1 ;THOI GIAN DUNG YEN CUA MOT TRANG THAI LCD
INC DPTR ;TANG GIA TRI DPTR DE DICH CHUYEN DONG CHU
MOV A,DPL ;KIEM TRA DA DICH XONG DONG CHU RA LCD
CJNE A,#LOW(DATA7+73),LOOP1
MOV A,DPH
CJNE A,#HIGH(DATA7+73),LOOP1
SJMP MP1
21
MẠCH CHỐNG TRỘM DHDT2B2
;########################################################################
HOAT_DONG:
SETB LED7
SETB CAM_BIEN1
SETB CAM_BIEN2
CLR NHO_SILENT
CLR NHO_I
CLR NHO_II
SETB LOA1
SETB LOA2
ACALL TT_HOATDONG ;HIEN THI DONG 2 CHU ‘$$ DHCN TPHCM $$’
MP2: ;XU LY DICH CHUYEN DU LIEU HIEN THI DONG 1
MOV DPTR,#DATA1 ;NAP DIA CHI VUNG DU LIEU DONG 1 CUA LCD
LOOP2:
JNB STOP,MAIN1
JNB SILENT,IMLANG ;TAT CHUONG BAO DONG
TIEP_TUC:
JNB CAM_BIEN1,MAIN2 ;KIEM TRA NEU CO NGUOI PHONG 1
JNB CAM_BIEN2,MAIN3 ;KIEM TRA NEU CO NGUOI PHONG 2
JNB START,HOAT_DONG
ACALL HT_CHAYCHU ;HIEN THI DONG 1
MOV R1,#20 ;DELAY 200MS
DEL200_2:
MOV TH0,#HIGH(-10000)
MOV TL0,#LOW(-10000)
ACALL DELAY
DJNZ R1,DEL200_2
INC DPTR ;TANG GIA TRI DPTR DE DICH CHUYEN DONG CHU
MOV A,DPL ;KIEM TRA DA DICH XONG DONG CHU RA MAN HINH
LCD
CJNE A,#LOW(DATA1+40),LOOP2
MOV A,DPH
CJNE A,#HIGH(DATA1+40),LOOP2
SJMP MP2
;########################################################################
IMLANG:
SETB NHO_SILENT
SJMP TIEP_TUC
;########################################################################
KHOITAO_LCD: ;CTC KHOI TAO LCD
CLR RS ;RS = 0 - GUI LENH
CLR RW ;RW = 0 - WRITE LCD MODE
SETB EN ;E = 1 - ENABLE
MOV P_DULIEU,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7
ACALL GOI_LENH ;GUI LENH RA LCD
MOV TH0,#HIGH(-4100)
MOV TL0,#LOW(-4100)
ACALL DELAY ;DELAY 4.1MS
MOV P_DULIEU,#38H
ACALL GOI_LENH
22
MẠCH CHỐNG TRỘM DHDT2B2
MOV TH0,#HIGH(-100)
MOV TL0,#LOW(-100)
ACALL DELAY ;DELAY 100US
MOV P_DULIEU,#38H
ACALL GOI_LENH
MOV P_DULIEU,#0CH ;CODE = 0CH - CHO PHEP LCD HIEN THI
ACALL GOI_LENH
MOV P_DULIEU,#01H ;CODE = 01H - XOA LCD
ACALL GOI_LENH
MOV P_DULIEU,#06H ; TU TANG DIA CHI HIEN THI, TAT DICH
; CHUYEN HIEN THI
ACALL GOI_LENH
RET
;########################################################################
MAIN2:
CLR LED7 ;KICH HOAT LED 7 MAU
ACALL AAA ;HIEN THI DONG 1 CHU ‘STRANGER’
ACALL BAODONG1
KIEMTRA1:
JNB SILENT,IMLANG4
KIEMTRA_TIEP1:
JNB CAM_BIEN1,CHOP_KIEMTRA1 ;CHOP TAT CHU-BAO CO NGUOI
KKK:
JNB START,RESET ;KIEM TRA DE RESET
JNB STOP,KO_HD ;KIEM TRA DE NGUNG HOAT DONG
JNB CAM_BIEN2,MAIN3 ;KIEM TRA NEU CO NGUOI TAI PHONG2
SJMP KIEMTRA1
;########################################################################
IMLANG4:
ACALL TAT_LOA
SJMP KIEMTRA_TIEP1
;######################
CHOP_KIEMTRA1:
ACALL CHOP_TAT
SJMP KKK
;########################################################################
MAIN3:
CLR LED7
ACALL BAODONG2
ACALL AAA
KIEMTRA2:
JNB SILENT,IMLANG5
KIEMTRA_TIEP2:
JNB CAM_BIEN2,CHOP_KIEMTRA2
LLL:
JNB START,RESET
JNB STOP,KO_HD
JNB CAM_BIEN1,MAIN2
SJMP KIEMTRA2
;########################################################################
IMLANG5:
ACALL TAT_LOA
23
MẠCH CHỐNG TRỘM DHDT2B2
SJMP KIEMTRA_TIEP2
;######################
CHOP_KIEMTRA2:
ACALL CHOP_TAT
SJMP LLL
;########################################################################
CHOP_TAT:
MOV P_DULIEU,#80H
ACALL GOI_LENH
MOV DPTR,#DATA8
ACALL GHI_DULIEULCD
ACALL TAOTRE_100MS1
MOV P_DULIEU,#80H
ACALL GOI_LENH
MOV DPTR,#DATA12
ACALL GHI_DULIEULCD
ACALL TAOTRE_100MS1
MOV P_DULIEU,#80H
ACALL GOI_LENH
MOV DPTR,#DATA8
ACALL GHI_DULIEULCD
RET
;########################################################################
KO_HD:
LJMP MAIN1
;########################################################################
MAIN4:
ACALL AAA
BAO_HIEU1:
JNB SILENT,IMLANG6
KIEMTRA_TIEP3:
JNB CAM_BIEN1,CHOP_1
BAO_HIEU2:
JNB CAM_BIEN2,CHOP_2
JNB STOP,KO_HD
JNB START,RESET
SJMP BAO_HIEU1
IMLANG6:
ACALL TAT_LOA
SJMP KIEMTRA_TIEP3
;########################################################################
RESET:
LCALL HOAT_DONG
;########################################################################
CHOP_1:
MOV P_DULIEU,#8BH
ACALL GOI_LENH
MOV DPTR,#DATA9
ACALL GHI_DULIEULCD
ACALL TAOTRE_100MS1
24
MẠCH CHỐNG TRỘM DHDT2B2
MOV P_DULIEU,#8BH
ACALL GOI_LENH
MOV DPTR,#DATA12
ACALL GHI_DULIEULCD
ACALL TAOTRE_100MS1
MOV P_DULIEU,#8BH
ACALL GOI_LENH
MOV DPTR,#DATA9
ACALL GHI_DULIEULCD
ACALL TAOTRE_100MS1
SJMP BAO_HIEU2
CHOP_2:
MOV P_DULIEU,#8BH
ACALL GOI_LENH
MOV DPTR,#DATA10
ACALL GHI_DULIEULCD
ACALL TAOTRE_100MS1
MOV P_DULIEU,#8BH
ACALL GOI_LENH
MOV DPTR,#DATA12
ACALL GHI_DULIEULCD
ACALL TAOTRE_100MS1
MOV P_DULIEU,#8BH
ACALL GOI_LENH
MOV DPTR,#DATA10
ACALL GHI_DULIEULCD
ACALL TAOTRE_100MS1
SJMP BAO_HIEU1
;########################################################################
TAT_LOA:
SETB LOA1
SETB LOA2
RET
;########################################################################
BAODONG1:
JB NHO_SILENT,IMLANG1
CLR LOA1 ;KICH HOAT LOA 1
SETB LOA2 ;TAT LOA 2
IMLANG1:
SETB NHO_I
MOV C,NHO_II
JC ALL_BAODONG
MOV P_DULIEU,#0C0H
ACALL GOI_LENH
MOV DPTR,#DATA3
LCALL GHI_DULIEULCD
RET
;########################################################################
25