Đồ án khóa số dùng ram ngoài
PHẦN I: NỘI DUNG
1. SƠ ĐỒ NGUYÊN LÝ
Sơ đồ khối các khối chức năng
RS
RW
EN
VDDVSS
VDDP3.3
P3.4
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
VEE
P3.4
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
30
30
3.7
3.6
3.7
3.6
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
P3.3
P3.5
P3.5
P2.7
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
P2.4
P2.5
P2.6
P2.3
P2.2
P2.1
P2.0
D7
D0
D1
D2
D3
D4
D5
D6
D7
D6
D5
D4
D3
D2
D1
D0
EN
RW
RS
VEE
VDD
VSS
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
C3
10uF
R1
10k
+5V
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
16 CHARACTERS X 2 LINES
RV1
1k
+5V
RL1
5V
D7
LED-RED
R11
220
+5V
2
3
4
5
6
7
8
9
1
RP1
RESPACK-8
+5V
R2
10k
R3
10k
X1
12M
0 1 2 3
4 5 6 7
8 9
Open Close
No Start Change OOK
A
B
C
D
1
2
4
3
A0
10
A1
9
A2
8
A3
7
A4
6
A5
5
A6
4
A7
3
A8
25
A9
24
A10
21
A11
23
A12
2
CE
20
CS
26
WE
27
OE
22
D0
11
D1
12
D2
13
D3
15
D4
16
D5
17
D6
18
D7
19
U2
6264
D0
3
Q0
2
D1
4
Q1
5
D2
7
Q2
6
D3
8
Q3
9
D4
13
Q4
12
D5
14
Q5
15
D6
17
Q6
16
D7
18
Q7
19
OE
1
LE
11
U3
74LS373
R4
10k
D1
LED-RED
Sơ đồ nguyên lý các khối chức năng
2. HOẠT ĐỘNG
- 1 -
Khối vi điều khiển
8051
Khối báo độngKhối nguồn
Khối mở cửaKhối hiển thị
Khối RAM
Đồ án khóa số dùng ram ngoài
- Khi mới cấp nguồn password mặc định là 111111 (do người lập trình cung
cấp,password chỉ dùng 6 số.
- Nếu không dùng password do người lập trình cung cấp thì ta thay đổi
password bằng cách: Nhấn phím CHANGE nhập password mặc định(hay
password củ) nhấn phím Yes nhập password mới (gồm 6 số) nhấn phím
Yes.
- Muốn mở : nhập password nhấn phím OPEN thì khóa sẽ mở.
- Muốn khóa : nhấn phím CLOSE.
- Trong quá trình thay đổi password hay mở khóa nếu muốn thoát ra thì nhấn
phím START.
3. GIỚI THIỆU VỀ CÁC KHỐI VÀ CÁC IC TRONG SƠ ĐỒ NGUYÊN
LÝ
Mạch điện gồm có:
- Khối nguồn
- Vi điều khiển AT89V51
- Ram CY6264 và IC 74LS373
- Một bàn phím ma trận 4 x 4
- Khối hiển thị là mội LCD 16 characters x 2 Line
- Khối mở khóa
- Khối báo động.
3.1. Khối nguồn
- 2 -
Đồ án khóa số dùng ram ngoài
U 2
L 7 8 0 5 / T O 2 2 0
1
2
3
V I N
G N D
V O U T
C 1
1 0 0 0 u
C 4
1 0 4
- +
D 2
D B 1 0 1
1
2
3
4
J 1
N g u o n A C 1 2 V
1
2
R 1
1 k 5
C 1
1 0 0 0 u
J 4
1 2 V
1
2
3
C 5
4 7 0 u
C 3
1 0 4
C 5
4 7 0 u
S W 1
N U T N H A N
C 4
1 0 4
D 4
L E D
U 2
L 7 8 1 2 / T O 2 2 0
1
2
3
V I N
G N D
V O U T
J 2
5 V
1
2
3
C 3
1 0 4
Hình 3.1: Sơ đồ nguyên lý của khối nguồn.
Bao gồm:
Cầu diode để biến điện AC thành DC
Tụ 1000 uF, 470 uF và tụ gốm 104 lọc nguồn
IC ổn áp 7805, 7812 để tạo ra nguồn điện áp 5v, 12v cung cấp cho vi xử
lý.
3.2. Vi điều khiển AT89V51
Là một chíp AT89V51 thuộc họ vi điều khiển 8051 có nhiện vụ điều
khiển ra lệnh cho khối hiển thị (LCD) thông qua các phím nhấn của người sử
dụng.
3.2.1. Một số nét đặc trưng
− Tương thích với sản phẩm MCS-51
− Bộ nhớ chương trình bên trong: 4KB (ROM)
− Bộ nhớ dữ liệu bên trong: 128 KB (RAM)
− Port xuất nhập (I/O port) :32
- 3 -
Đồ án khóa số dùng ram ngoài
− 2 bộ định thời 16 bit
− Ngắt :6
− Nguồn cấp :Vcc =5V
− 3 vị trí khoá bộ nhớ chương trình.
− Mạch giao tiếp nối tiếp.
− Hoạt động tĩnh: từ 0 Hz đến 24 MHz
− Chạy không nguồn thấp và chế độ giảm nguồn.
− Số chân IC :40
3.2.2. Sơ đồ chân và chức năng các chân của vi điều khiển AT89V51
3.2.2.1. Sơ đồ chân:
Hình 3.1: Sơ đồ nguyên lý của khối nguồn.
Hình 3.2.2.1: Sơ đồ chân của vi điều khiển 8051
- 4 -
U 1
A T 8 9 C 5 1
9
1 8
1 9
2 0
2 9
3 0
3 1
4 01
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 CP 1 . 0
P 1 . 1
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
Đồ án khóa số dùng ram ngoài
3.2.2.2. Chức năng:
Vcc: nguồn cấp (chân số 40)
GND: Nối đất (chân số 20 )
Port 0:
Port 0 (P0.0 – P0.7) có số chân từ 32- 39
Port 0 là port xuất nhập 8bit 2 chiều. Port 0 được định hình làm bus địa
chỉ (byte thấp) và làm bus dữ liệu đa hợp trong khi truy xuất bộ nhớ dữ
liệu ngoài và bộ nhớ chương trình ngoài. Port 0 nhận các byte mã trong
khi lập trình cho Flash và xuất các byte mã trong khi kiểm tra chương
trình.
Port 1 :
Port 1 (P1.0 – P1.7) có số chân từ 1 – 8.
Port 1 là một port xuất nhập 8bit có các điện trở kéo lên bên trong.khi các
logic 1 được đặt lên các chân của port 1, các chân này được kéo lên mức
cao bởi các điện trở kéo lên bên trong và có thể được sử dụng như là các
ngõ vào. Khi thực hiện là các port nhập, các chân của port 1 được kéo
xuống mức thấp do tác động bên ngoài sẽ cấp dòng cho các điện trở kéo
lên bên trong.
Port 2 :
Port 2 (P2.0 – P2.7) có số chân từ 21 -28
Port 2 là port xuất nhập 8bit 2 chiều có các điện trở kéo lên bên trong.
Khi các logic 1 được đặt lên các chân của port 2, các chân này được sử
dụng như là các ngõ vào. Khi thực hiện chức năng port nhập, các chân
port 2 được kéo xuống mức thấp do tác động bên ngoài sẽ cấp dòng do có
các điện trở kéo lên bên trong. Port 2 tạo ra byte cao của bus địa chỉ trong
thời gian tìm nạp lệnh từ bộ nhớ chương trình ngoài và trong thời gian
truy xuất bộ nhớ dữ liệu ngoài sử dụng các địa chỉ 16 bit.
Port 3 :
Port 3 (P3.0 - P3.7) có số chân từ 10 – 17
Port 3 là port xuất nhập 8 bit 2 chiều có các điện trở kéo lên bên trong.
Khi các logic 1 được đặt lên các chân của port 3 các chân này được đưa lê
- 5 -
Đồ án khóa số dùng ram ngoài
mức cao bởi các điện trở kéo lên bên trong và có thể được sử dụng như là
các ngõ vào. Khi làm chức năng port nhập, các chân port 3 được kéo
xuống mức thấp do tác động bên ngoài cấp dòng do có các điện trở kéo
lên bên trong. Port 3 còn được sử dụng làm các chức năng khác của
AT89C51.
Chức năng của các chân được mô tả qua bảng sau :
Bit Tên Địa chỉ bit Chức năng
P3.0 RxD B0H
Chân nhận dữ liệu của
port nối tiếp
P3.1 TxD B1H
Chân phát dữ liệu của port
nối tiếp
P3.2 INTO\ B2H Ngõ vào ngắt ngoài 0
P3.3 INT1\ B3H Ngõ vào ngắt ngoài 1
P3.4 T0 B4H
Ngõ vào của bộ định
thời/đếm 0
P3.5 T1 B5H
Ngõ vào của bộ định
thời/đếm 1
P3.6 WR\ B6H
Điều khiển ghi vào RAM
ngoài
P3.7 RD\ B7H
Điều khiển đọc từ RAM
ngoài
RST : Thiết lập lại ( chân 9). Mức cao trên chân này trong 2 chu kì máy
trong khi bộ dao động đang hoạt động sẽ Reset AT89V51.
- 6 -
Đồ án khóa số dùng ram ngoài
Mạch reset
Mạch Reset tự động khi khởi động máy.
Ở đây chúng ta thực hiện Reset bằng cách nối chân 9 của 8951 với nguồn 5V.
Chân ALE (Address Latch Enable) /
PROG
: chân số 3
Là một xung ngõ ra cho phép chốt địa chỉ, cho phép chốt byte thấp của địa
chỉ trong thời gian truy xuất bộ nhớ ngoài. Chân này cũng được dùng làm ngõ
vào xung lập trình (
PROG
) trong thời gian lập trình cho Flash.
Khi hoạt động bình thường, xung của ngõ ra ALE luôn luôn có tần số
bằng 1/6 tần số của mạchdao động trên chip, có thể được sử dụng cho các mục
đích định thời từ bên ngoài và tạo xung Clock. Tuy nhiên cần lưu ý là một xung
ALE sẽ bị bỏ qua trong mỗi chu kì truy xuất của bộ nhớ dữ liệu ngoài. Khi cần
hoạt động cho phép chốt byte thấp của địa chỉ sẽ được vô hiệu hoá bằng cách set
bit 0 của thanh ghi chức năng đặc biệt (SFR) có địa chỉ byte là 8EH. Khi bit này
được set, ALE chỉ tích cực trong thời gian thực hiện lệnh MOVX hoặc MOVC.
Ngược lại chân này sẽ được đưa lên mức cao. Việc set bit không cho phép hoạt
động chốt byte thấp của địa chỉ sẽ không có tác dụng nếu bộ điều khiển đang ở
chế độ thực thi chương trình ngoài.
Chân
PSEN
(Program Store Enable):cho phép đọc bộ nhớ chương trình,
chân số 29
- 7 -
Đồ án khóa số dùng ram ngoài
Khi 8951 thực thi mã từ bộ nhớ chương trình ngoài,
PSEN
được hoạt
động 2 lần trong mỗi chu kỳ máy ngoại trừ hoạt của
PSEN
được bỏ qua trong
mỗi bộ nhớ dữ liệu ngoài.
Chân
EA
/ V
pp
(External Access): truy xuất ngoài , chân số 31
EA
phải đươc nối với GND cho phép xuất mã từ vị trí bộ nhớ chương
trình ngoài bắt đầu tại 0000H đến FFFFH.
Chú ý:
Nếu khoá bit 1 được lập trình,
EA
sẽ được chốt bên trong lúc Reset.
EA
nối V
cc
để thực hiện chương trình bên trong.
Chân này nhận điện áp cho phép lập trình là 12V (Vpp) trong khi lập trình
Flash
Chân XTAL 1 (Crysral), chân 18
Ngõ vào mạch khuếch đại đảo của mạch dao động và ngõ vào mạch tạo xung
Clock bên trong chip
Chân XTAL 2(chân 19)
Ngõ ra mạch khuếch đại đảo của mạch dao động.
Để tạo dao động cho vi điều khiển AT89V51 hoạt động, chúng em chọn
mạch dao động như hình vẽ sau với các giá trị của linh kiện: C1=
C2=33pF,thạch anh dao động có tần số 12MHz
- 8 -
Đồ án khóa số dùng ram ngoài
Hình 3.2.2.2: mạch tạo dao động cho vi điều khiển
- 9 -
Cách mắc của mạch dao động
Đồ án khóa số dùng ram ngoài
3.3. Khối bàn phím
Gồm 1 bàn phím ma trận 4 dòng và 4 cột, A, B, C, D : các hàng của ma
trận phím, 1 - 4: các cột của ma trận phím.
8 9
654
1 2
CH
0
A
B
C
D
1
2
4
3
NO
START
3
7
OPEN
YES
CLOSE
Để điều khiển bàn phím ma trận ta sử dụng phương quét phím. Để điều
khiển quét phím thì phải xuất dữ dữ liệu 4 bit ( trong đó có 1 bit ở mức logic
thấp và 3 bit còn lại ở mức logic cao) ra các cột của ma trận phím vào để kiểm
tra xem có phím nào được nhấn hay không. Nếu có phím nhấn thì trong 4 bít đọc
vào sẽ có 1 bit ở mức logic thấp và dựa trên cơ sở đó để thiết lập ma trận phím.
Nếu không có phím nhấn thì 4 bit đọc vào đều ở mức cao,khi đó ta chuyển mức
logic thấp sang cột kế tiếp để dò tìm phím khác.
Ứng dụng:
Thí nghiệm phương pháp kết nối bàn phím được thiết kế theo
kiểu ma trận với vi điều khiển.
Thí nghiệm ứng dụng điều khiển thiết bị bằng bàn phím.
Thí nghiệm các phương pháp quét phím và nhận dạng phím
nhấn.
- 10 -
Đồ án khóa số dùng ram ngoài
3.4. Khối Ram ngoài.
Khối Ram ngoài dùng để lưu password, gồm IC chốt 74LS373 và Ram
6264 dung lượng 64k.
Sơ đồ chân 74LS373 và CY6264
3.4.1. 74LS373
- 11 -
Đồ án khóa số dùng ram ngoài
H: tích cực mức cao
L: tích cực mức thấp
X: không xác định
Q
0
: The Level of the output befor steady-state input conditions were
established.
Z: High Impedance
3.4.2. CY6264
Trong mạch này ta dùng Ram CY6264 chỉ để lưu password nên cần dung
lượng ít,ta chỉ dùng 8 đường địa chỉ từ A0 đến A7, A8 đến A12 nối xuống 0V
Tức là ta chỉ sử dụng 256 byte của Ram có địa chỉ từ 00H đến FFH.
- 12 -
Đồ án khóa số dùng ram ngoài
Chức năng các chân:
A0
…. A7: các chân địa chỉ ( Address )
D0… A7: các chân dữ liệu ( data )
OE\ ( Output Enable ): ngõ vào cho phép xuất dữ liệu
WR\ ( Write ): ngõ vào cho phép ghi dữ liệu.
CS\ ( chip select ): ngõ vào cho phép RAM hoạt động.
- 13 -
U 5
6 2 6 4
1 0
9
8
7
6
5
4
3
2 5
2 4
2 1
2 3
2
1 1
1 2
1 3
1 5
1 6
1 7
1 8
1 9
2 81 4
2 2
2 7
2 0
2 6
A 0
A 1
A 2
A 3
A 4
A 5
A 6
A 7
A 8
A 9
A 1 0
A 1 1
A 1 2
D 0
D 1
D 2
D 3
D 4
D 5
D 6
D 7
V C CG N D
O E
W E
C S 1
C S 2
Đồ án khóa số dùng ram ngoài
3.5. Khối hiển thị
Khối này sử dụng một LCD để hiển thị các thông tin khi sử dụng khóa và
được điều khiển bởi khối vi điều khiển.
Thông số của LCD :
+ Kích thước hiển thị : 16 ký tự x 2 dòng.
+ Màu hiển thị: đen/trắng
+ Chế độ giao tiếp : 8 bít và 4 bít
+ Cỡ chữ hiển thị : 5x7 hoặc 5x10
D 3
D 4
E
V C C
R 3
1 0 K
D 7
D 2
R W
D 0
D 1
L C D _ B L O C K
V C C
R 1
3 3 0
D 5
D 6
R S
Q 1
C 1 8 1 5
V C C
L C D
1 6 C h a r a t e r x 2 L i n e s
U 2
L C D
1
2
3
4
5
6
7
8
9
1 0
1 1
1 2
1 3
1 4
1 5
1 6
G N D
V C C
V E E
R S
R W
E
D 0
D 1
D 2
D 3
D 4
D 5
D 6
D 7
L E D +
L E D -
- 14 -
Đồ án khóa số dùng ram ngoài
Bảng mô tả chức năng các chân của các modul LCD ký tự
Số
chân
Tên Chức năng
Mức
logic
I/O Mô tả
1 Vss Nguồn cấp cho LCD - - GND
2 Vdd Nguồn cấp cho LCD - - +5V
3 Vee Chỉnh độ tương phản - - 0 - Vdd
4 RS
Điều khiển hoạt động
của LCD
0 I
D0 - D7 đóng vai trò
là ngõ vào lệnh
1 I
D0 - D7 đóng vai trò
là ngõ vào dữ liệu
5 R/W
0 I
Ghi thông tin (từ bộ
điều khiển đến LCD)
1 I
Đọc thông tin (từ
LCD đến bộ điều
khiển)
6 E
0 I Cấm truy xuất LCD
1 I
LCD hoạt động bình
thường
Từ 1
xuống
0
I
Các dữ liệu/Lệnh được
truyền tới LCD
7 D0
Dữ liệu / Lệnh
0/1 I/O Bit 0 LSB
8 D1 0/1 I/O Bit 1
9 D2 0/1 I/O Bit 2
10 D3 0/1 I/O Bit 3
11 D4 0/1 I/O Bit 4
12 D5 0/1 I/O Bit 5
13 D6 0/1 I/O Bit 6
14 D7 0/1 I/O Bit 7 MSB
- 15 -
Đồ án khóa số dùng ram ngoài
15 A
Nguồn cung cấp cho
LED nền
- - V (+)
16 K
Nguồn cung cấp cho
LED nền
- - 0 V
3.6. Khối đóng mở khóa
Tín hiệu mở khóa được điều khiển ở mức logic cao. Khi mở khóa thì chân
p3.4 ở mức 1 điều khiển transistor dẫn, có dòng qua relay.
D 1
D I O D E
V C C
Q 1
Q 2 S C 1 0 4 7
J 2
N A M C H A M
1
2
K 1
R E L A Y S P D T
3
5
4
1
2
R 3
8 k 2
Sơ đồ khối của khối mở khóa
Khi đó, relay chuyển sang tiếp điểm thường hở, làm ngắt nguồn 12v vào
nam châm điện. Làm lực từ của nam châm điện bị mất.
3.7. Khối báo hiệu
Là mạch loa, khi bạn nhập password sai 3 lần thì thì mạch phát ra âm
thanh và sau 1 khoảng thời gian( do người lập trình cài đạt đặt) mạch sẽ dừng
phát.
- 16 -
Đồ án khóa số dùng ram ngoài
I C n h a c
+
-
U 1
L M 3 8 6
3
2
5
6
1
4
87
2 2 0 u F
0
31
1 0 u F2 k 2
S P E A K E R
0
1 k
V C C
1 0 u F
V C C
4
1 0 k
2
2 2 0 u F
Q 1
P N P B E C
4. Chương trình điều khiển
4.1. Lưu đồ giải thuật
Hình 1: giải thuật chương trình chính
Hình 2: Sơ đồ giải thuật chương trình PROG1
- 17 -
START
TEST RAM=0
PROG2 PROG1
Đúng
Sai
PROG1
HIEN THI LCD
NẠP PASS MẶC ĐỊNH
PROG2
CHAGE_PAS
S
NHAP_PASS
OPEN
Hủy
Đồng ý
Đồ án khóa số dùng ram ngoài
Hình 3: Sơ đồ giải thuật chương trình PROG2
- 18 -
không
không
PROG2
Nhấn
Key start
Key
change
Key Ok
Nhấn
Change
Nhấn
Kiểm tra
Display
Hiển thị dòng chữ chạy
Nhập Password 6 Số:
Quet_phim:
Quet_phim_Func:
Key Open
Key Close
Open
Key No
Nhấn
Nhấn
không
không
không
không
Đồ án khóa số dùng ram ngoài
Hình 4:Sơ đồ giải thuật chương trình OPEN
- 19 -
Phím close
Open
So sanh pass
ram
Correct
Open the Safe
Welcome
Relay đóng
Quet_phim
Begin
Tăng R6
R6 = 3
Pass_ sai:
Thông báo
Báo động
sai
đúng
đúng
sai
Đồ án khóa số dùng ram ngoài
- 20 -
Đồ án khóa số dùng ram ngoài
Hình 5:Sơ đồ giải thuật chương trình CHAGE_PASS
- 21 -
Đúng
0
Change
So sanh pass ram
voi pass rom
Nhap password cu
6 so:
Doi_pass
Key
open
Key close
Key No
Key
Start
Key Change
Key Ok
TEST
R5
Nhấn
không
không
Begin
không
Nhấn
Không
không
Nhấn
Nhấn
Nhấn
không
Start_change:
Start_change:
1
Nhap password moi
6 so:
Alarm
So sanh
R3=
3?
Sai
Đúng
Sai
Đồ án khóa số dùng ram ngoài
4.2. Chương trình
$MOD51
;****************************************************************
; TRUONG DAI HOC CONG NGHIEP THANH PHO HO CHI MINH
; //\\*******//\\
; DO AN KHOA SO DUNG RAM NGOAI
; THUC HIEN: NGUYEN VAN HIEU - NGUYEN HOAI SANG
;=========================================================
;=========================================================
; 50H SO KI TU MAT KHAU
; 60H GIA TRI PASS NAP VAO
; 70H O NHO PASS RAM
;=========================================================
ORG 00H
;
*****************************************************************
*********
; PREDEFINED BITS-POSTS TRONG FUNCTIONS
;=========================================================
RS BIT P3.0
RW BIT P3.1
EN BIT P3.2
DATABUS EQU P1
BIT_RELAYBIT P3.3
BIT_DEN_ER BIT P3.4
BIT_BAODONG BIT P3.5
PASS EQU 70H
- 22 -
Đồ án khóa số dùng ram ngoài
;****************************************************************
; TEST RAM PROGRAM
;=========================================================
VANHIEU:
MOV R0,#70H
LAP_VANHIEU:
MOVX A,@R0 ;DUA NOI DUNG O NHO 70-
>75H RAM NGOAI VAO A
CJNE A,#00H,EXIT_LAP_VANHIEU ;SO SANH NOI DUNG CAC O
NHO 70->75H CO BANG 00 KO
INC R0
CJNE R0,#76H,LAP_VANHIEU
LCALL PROG1
EXIT_LAP_VANHIEU:
LCALL PROG2
;=========================================================
;****************************************************************
; PRO1 PROG
;=========================================================
PROG1:
CLR BIT_BAODONG
CLR BIT_RELAY
SETB BIT_DEN_ER
LCALL NAP_DEFAULT_PASS
; LCALL CHAY_CHU
LCALL TRANG_THAI_THANH_GHI
LCALL NHAP_PASS
- 23 -
Đồ án khóa số dùng ram ngoài
LJMP QUET_PHIM_FUNC ;BAT DAU CHAY DEN KI
TRA CAC PHIM CHUC NANG VA O DO
LJMP PROG2
;****************************************************************
; PRO2 PROG
;=========================================================
PROG2:
CLR BIT_BAODONG
CLR BIT_RELAY
SETB BIT_DEN_ER
LCALL CHAY_CHU
BEGIN:
LCALL RESET_O_PASS
LCALL TRANG_THAI_THANH_GHI
LCALL NHAP_PASS
LJMP QUET_PHIM_FUNC ;BAT DAU CHAY DEN KI
TRA CAC PHIM CHUC NANG VA O DO
LJMP PROG2
;****************************************************************
; INPUT DEFAULT PASS
- 24 -
Đồ án khóa số dùng ram ngoài
;=========================================================
NAP_DEFAULT_PASS:
MOV R0,#70H ;DUA PASSWORD MAT DINH VAO RAM CO
DIA CHI TU 40H DEN 45H
MOV R1,#00H
MOV DPTR,#PASSWORD
LAP_NAP_DEFAULT_PASS:
MOV A,R1
MOVC A,@A+DPTR
MOVX @R0,A
INC R0
INC R1
CJNE R1,#06H,LAP_NAP_DEFAULT_PASS
RET
;****************************************************************
; RESET REGISTER PASS PROG
;=========================================================
RESET_O_PASS:
PUSH 00H
MOV R0,#60H
LAP_RESET_O_PASS:
MOV @R0,#0AH
INC R0
CJNE R0,#66H,LAP_RESET_O_PASS
POP 00H
RET
;
*****************************************************************
*********
- 25 -