Người dùng giao tiếp với thiết bị trên bảng điều khiển bảng điều khiển chứa các phím số và các phím điều khiển, thông tin sẻ được hiển thị trên màn hình LCD.. Sau khi nhập mật khẩu, hệ t
Trang 1NHÓM: 5A MSSV: 101110458 GVHD: ThS Lê Xứng
Đà Nẵng 2015
Trang 2MỤC LỤC GIỚI THIỆU THIẾT BỊ KHÓA CỬA ĐIỆN TỬ
“Thiết bị khóa cửa điện tử” như tên gọi của nó, đây là thiết bị với mục
đích khóa mở cửa Thay vì sử dụng phương pháp bảo mật truyền thống là ổ khóa
và chìa thì người dùng chỉ việc nhập đúng mật khẩu từ bàn phím
Người dùng giao tiếp với thiết bị trên bảng điều khiển (bảng điều khiển chứa các phím số và các phím điều khiển), thông tin sẻ được hiển thị trên màn hình LCD Sau khi nhập mật khẩu, hệ thống điều khiển (MCU8051) sẻ kiểm tra mật khẩu nếu mật khẩu đúng với mật khẩu đã đặt trước đó thì cửa sẻ tự động mở, còn nếu nhập sai quá số lần quy định hệ thống sẻ kích hoạt chuông báo động Thiết bị sẻ được cấp 1 mật khẩu ban đầu và người dùng có thể đổi mật khẩu tùy
ý
Việc sử dụng mật khẩu thay chìa khóa thông thường sẻ nâng cao được tính bảo mật Tránh được hiện tượng trộm cắt ổ khóa hay đơn giản là không còn cảnh quên chìa, gãy chìa.
Thiết bị có thể gắn lên cửa chính của từ hộ gia đình, công ty, các phòng yêu cầu độ bảo mật cao như phòng họp phòng nghiên cứu v.v.
Chức năng hệ thống:
- Hệ thống gồm một chuổi mã số từ 0 đến 9, và độ dài mật mã không quá 10
số chỉ có người được phân quyền sử dụng mới biết được.
- Có hệ thống phím gồm 15 phím, ngoài 10 số mật khẩu có các phím chức
năng: phím Enter, phím Xóa, phím Đổi Mã, phím Khóa, và một phím dự
bị để mở rộng thêm khi cần thiết.
- Hệ thống hiển thị trực quan qua LCD 16x2A, có đèn chiếu sáng khi điều kiện môi trường tối.
- Có hệ thống báo động khi nhập sai quá nhiều lần (ở đây em thiết kế là 3 lần, sau 3 lần nhập sai thì LCD hiển thị sai mã, và kích hoạt hệ thống báo động trong 28s).
- Có chức năng thay đổi mật khẩu khi cần thiết, và mật khẩu mặc định ban
đầu là 111111
- Phím Xóa có thể xóa khi bạn nhập sai, sửa nhầm lẫn khi nhập phím.
Trang 3ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
Hoạt động của hệ thống:
Ban đầu:
- Thay đổi mật khẩu cho người sử dụng:
Ấn phím Đổi Mã, hệ thống sẽ hiển thị trên LCD là: “NHAP MK CU”
Tiến hành nhập mật khẩu cũ, nhấn Enter, nếu đúng thì hệ thống hiển thị:
“NHAP MK MOI”, sau khi nhập mật khẩu mới, nhấn Enter thì LCD hiển thị: “NHAP LAI MK”, nếu quá trình đổi mã thành công thì LCD hiễn thị:
“DA DOI MK”
Nếu sai thì hệ thống sẽ hiển thị: “SAI MA, NHAP LAI”, sai quá 3 lần thì
sẻ kích hoạt hệ thống báo động.
- Nhập mật khẩu:
LCD hiển thị nhập mật khẩu, người sử dụng nhập mã thông qua bàn phím,
nhấn Enter để xác nhận nhập xong, nếu nhập đúng thì LCD hiển thị “MO
KHOA”, nếu nhập sai thì LCD hiển thị: “SAI MA, NHAP LAI”, sai quá 3 lần thì kích hoạt hệ thống báo động.
Nếu người dùng có thể xóa khi mã đang hập khi cảm thấy nhập sai thông
qua phím Xóa, và nếu nhập quá 10 ký tự thì hệ thống tự kiểm tra, và thông
báo sai mã.
Trang 4Chương 1: THIẾT KẾ MẠCH
1.1 SƠ ĐỒ KHỐI VÀ CHỨC NĂNG CÁC KHỐI.
1.1.1 Khối xử lý trung tâm.
Chức năng: Đóng vai trò đầu não của hệ thống, tiếp nhận tín hiệu từ bàn phím, cam và so sánh mã, hiển thị trên LCD Từ đó đưa các tín hiệu điều khiển đến cho khối mạch điều khiển động cơ, hay khối mạch báo động tương ứng.
Trang 5ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
1.1.3 Khối hiển thị.
Yêu cầu đặt ra đối với khối hiển thị là thân thiện với người sử dụng Dùng LCD.
Ưu điểm: Hiển thị rõ ràng có kèm theo chỉ dẫn.
Thay đổi nội dung linh hoạt Xử lý lập trình đơn giản hơn LED7 thanh và
1.1.5 Khối mạch điều khiển động cơ đóng, mở cửa.
Chức năng: Đóng và khóa cửa khi có tín hiệu tương ứng từ bộ xử lý trung tâm Mạch sử dụng mạch cầu H để điều khiển, và động cơ sử dụng là động cơ DC.
Trang 61.2.1 Khối điều khiển trung tâm.
Khối kết nối xử lý trung tâm trong hệ thống này sử dụng AT89S52
AT89S52 cũng có cấu trúc phần cứng giống như các vi điều khiển khác trong họ 8051 và còn có các đặc trưng riêng:
+ Bộ nhớ 8k.
+ 3 Timer/Counter 16 bit Timer 0,1,2.
+ So với 89C, nó có chân MISO (P1.5), MOSI (P1.6), SCK (P1.7) nên có thể nạp bằng các mạch nạp hiện đại như Burn-e.
Trang 7ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
Khối xử lý trung tâm với 89s52 có nhiệm vụ là nhận biết tín hiệu thu được từ bàn phím Sau đó xử lý các tín hiệu đó và xuất ra các tín hiệu điều khiển thích hợp để điều khiển hệ thống theo chương trình lập sẵn.
Địa chỉ chức năng kết nối của hệ thống xử lý trung tâm như sau:
P0.0 - RS P0.1 - RW P0.2 - EN P0.3 - Kích sáng màn hình LCD P0.4
P0.5 - Tín hiệu mở cửa P0.6 - Tín hiệu đóng cửa P0.7 - tín hiệu báo động P1.0 - Cột 1
P1.1 - Cột 2 P1.2 - Cột 3 P1.3 - Hàng 1 P1.4 - Hàng 2 P1.5 - Hàng 3 P1.6 - Hàng 4 P1.7 - Hàng 5 P2 nối với D0 ÷ D7 của LCD
Bộ dao động thạch anh có tác dụng tạo xung nhịp với tần số 12MHz cho VĐK hoạt động Hai đầu này được nối vào 2 chân XTAL1 và XTAL2 của VĐK.
Bộ RESET có tác dụng đưa vi điều khiển về trạng thái ban đầu Khi nút RESET được ấn điện áp +5V từ nguồn được nối vào chân RESET của vi điều khiển được chạy thẳng xuống đất lúc này điện áp tại chân vi điều khiển thay đổi đột ngột về
0, VĐK nhận biết được sự thay đổi này và khởi động lại trạng thái ban đầu cho
hệ thống.
Trang 81.2.2 Khối hiển thị LCD.
Là thiết bị hiển thị cho hệ thống Khi nhập mả thì sẻ hiển thị ký tự “*”, và hiển thị các trạng thái làm việc của hệ thống như đổi mật khẩu, sai mã, nhập mật khẩu
LCD được sử dụng là 16x2A với 2 dòng và hiển thị 5x7 Các chân được nối:
Trang 9ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
1.2.3 Khối bàn phím.
Người dùng nhập mã thông qua bàn phím, và bàn phím là thiết bị đầu vào được kết nối với vi điều khiển, cung cấp tín hiệu cho bộ xử lý trung tâm, sau khi phân tích tính hiệu và so sánh thì cho ra tín hiệu điều khiển tương ứng.
Bàn phím được dùng bằng phương pháp quét phím theo hàng và cột Dùng bàn phím cơ với 3 cột 5 hàng Xắp xếp các hàng cột như bảng:
Trang 10Được ghép nối với vi điều khiển tại Port P1 Với:
Trang 11ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
1.2.4 Khối mạch điều khiển đóng mở cửa.
Sử dụng mạch cầu H với 4 BJT Tip 41 và BJT kích là C1815, mạch điều khiển động cơ DC công suất nhỏ.
BJT Tip 41 là BJT công suất có áp cao tới 100V và dòng lên đến 6 ampe.
Có 2 tín hiệu nhận vào, 1 tín hiệu mở cửa set ở Port P0.5 và 1 tín hiệu đóng cửa set ở cổng P0.6 mạch sử dụng rơ le để nhận biết đả đóng cửa hay đả mở cửa
để thực hiện quá trình cho chính xác.
Nhiệm vụ: Nhận tín hiệu từ bộ xử lý để thự hiện công việc đóng và mở cửa.
Trang 122.1.5 Khối báo động
Chức năng: khi nhập sai quá 3 lần thì chuông báo động xẽ kêu.
Ở mạch nguyên lý, J8 được nối với chuông nhỏ, được kích qua P0.7
Trang 13ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
Đầu vào là điện áp 1 chiều 12VDC Sau khi đi qua IC ổn áp LM 7805 ta có áp chuẩn 5VCC để cung cấp cho các mạch điều khiển, hiển thị, bàn phím
Thực tế quá trình làm mạch em kết hợp các khối nguồn, khối báo động, khối, điều khiển đống mở cửa thành 1 mạch như hình dưới:
Trang 14Chương 2: THIẾT KẾ CHƯƠNG TRÌNH
2.1 LƯU ĐỒ THUẬT TOÁN.
Trang 15ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
2.1.1 Lưu đồ thuật toán của chương trình chính (chương trình nhập mật khẩu.)
2.1.2 Thuật toán quét phím.
a) Thuật toán của chương trình con có nhấn phím không.
Trang 16b Thuật toán của chương trình con xác định phím (quét hàng và cột)
Trang 17ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
Trang 182.1.3 Thuật toán của chương trình con enter và so sánh mật khẩu.
Trang 19ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
Trang 202.1.4 Thuật toán của chương trình con đổi mật khẩu.
Trang 21ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
Trang 222.1.5 Thuật toán của chương trình con sai mã.
Trang 23ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
2.1.6 Thuật toán của chương trình con đóng và mở cửa.
Trang 242.1.7 Thuật toán của chương trình con phím xóa.
Trang 25ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
2.1.8 Thuật toán hiển thị trên LCD.
Trang 26MOV P0,#0 MOV 71H,#0 MOV R0,#40H ; Dia chi o nho chua mat khau goc MOV R1,#50H ; Dia chi o nho chua mat khau nhap vao MOV TMOD,#11H
DJNZ R2,MKBD MOV R0,#40H MOV R2,#0 MOV R3,#6 ; Do dai mat khau goc
; **************************************************
; LCD NHAP MAT KHAU
LCD_NHAP_MAT_KHAU:
MOV R7,#0FDH MOV A,#38H CALL DIEU_KHIEN CALL DELAYMS MOV A,#0EH
Trang 27ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
CALL DIEU_KHIEN CALL DELAYMS MOV A,#01H CALL DIEU_KHIEN CALL DELAYMS MOV A,#06H CALL DIEU_KHIEN CALL DELAYMS MOV DPTR, #NHAP_MAT_KHAU CALL STRING
MOV A,#0C0H CALL DIEU_KHIEN CALL DELAYMS
ANL A,#00000111B CJNE A,#00000111B,CO_BAM JMP KIEM_TRA_BAM_PHIM_KHONG RET
CO_BAM:
CALL DELAYMS DJNZ 70H,KTBPK
Trang 28MOV A,P1 ANL A,#11110111B CJNE A,#11110111B, HANG1 MOV P1,#11101111B
MOV A,P1 ANL A,#11101111B CJNE A,#11101111B, HANG2 MOV P1,#11011111B
MOV A,P1 ANL A,#11011111B CJNE A,#11011111B, HANG3 MOV P1,#10111111B
MOV A,P1 CJNE A,#10111110B, SO_KHONG JMP ENTER
RET SO_KHONG:
MOV P1,#10111111B MOV A,P1
CJNE A,#10111101B, XOA_KHONG JMP SO_KHONG_GIUA
RET XOA_KHONG:
MOV P1,#10111111B MOV A,P1
CJNE A,#10111011B,XD_HANG5 JMP XOA
RET XD_HANG5:
MOV P1,#01111111B MOV A,P1
CJNE A,#01111110B,DOI_MAT_KHAU JMP KHOA
RET
Trang 29ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
DOI_MAT_KHAU:
MOV P1,#01111111B MOV A,P1
CJNE A,#01111101B, PHIM_DU_BI JMP PHIM_DOI_MAT_KHAU RET
PHIM_DU_BI:
MOV P1,#01111111B MOV A,P1
CJNE A,#01111011B, NHAY_DEN_XDP JMP DU_BI
RET NHAY_DEN_XDP:
JMP KIEM_TRA_BAM_PHIM_KHONG RET
; **************************************************
; XAC DINH CHINH XAC SO DA AN TRONG THANH GHI DU LIEU DPTR
HANG1:
MOV DPTR,#HANG123 JMP FIND
RET HANG123: DB 01H,02H,03H HANG2:
MOV DPTR,#HANG456 JMP FIND
RET HANG456: DB 04H,05H,06H HANG3:
MOV DPTR,#HANG789 JMP FIND
RET HANG789: DB 07H,08H,09H SO_KHONG_GIUA:
MOV DPTR,#SO
Trang 30JMP FIND RET
GHI_VAO:
CLR A MOVC A,@A+DPTR MOV @R1,A INC R1 INC R2 JMP HIEN_THI_SAO RET
HIEN_THI_SAO:
MOV A,#'*' MOV P2,A CALL HIEN_THI CJNE R2,#10,NHAY_LAI_QUET_PHIM JMP ENTER
RET NHAY_LAI_QUET_PHIM:
JMP QUET_PHIM RET
; **************************************************
; PHIM ENTER
ENTER:
CLR A MOV A,R7
Trang 31ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
CJNE A,#0FAH,ENTER_TIEP1 JMP ENTER_M_K_CU
RET ENTER_TIEP1:
MOV A,R7 CJNE A,#0FBH,ENTER_TIEP2 JMP ENTER_NHAP_M_K_MOI RET
ENTER_TIEP2:
MOV A,R7 CJNE A,#0FCH,ENTER_BINH_THUONG JMP ENTER_NHAP_LAI_M_K_MOI RET
ENTER_BINH_THUONG:
MOV A,R2 MOV 74H,R3 SUBB A,74H CJNE A,#00H,SAI_MAT_KHAU1 MOV R1,#50H
MOV R0,#40H LAP_ENTER_BINH_THUONG:
MOV A,@R0 MOV 74H,@R1 SUBB A,74H CJNE A,#00H,SAI_MAT_KHAU1 INC R1
INC R0 DJNZ R2,LAP_ENTER_BINH_THUONG JMP MO_KHOA
RET SAI_MAT_KHAU1:
JMP SAI_MAT_KHAU RET
MO_KHOA:
Trang 32CLR P0.6 SETB P0.5 CALL DELAY2S CLR P0.5 LCD_MO:
MOV A,#01H CALL DIEU_KHIEN MOV DPTR,#DONG61LCD CALL STRING
CALL DELAYMS MOV A,#0C0H CALL DIEU_KHIEN CALL DELAY4S MOV R1,#50H MOV R2,#0 MOV R0,#40H MOV 71H,#0 MOV R4,#0 JMP LCD_NHAP_MAT_KHAU RET
DONG61LCD: DB 'MO KHOA',0 ENTER_M_K_CU:
MOV 74H,R2 MOV A,R3 SUBB A,74H CJNE A,#0,SAI_MAT_KHAU2 MOV R1,#50H
MOV R0,#40H E_NHAP_M_K_CU:
MOV A,@R0 MOV 74H,@R1 SUBB A,74H CJNE A,#0,SAI_MAT_KHAU2 INC R1
Trang 33ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
INC R0 DJNZ R2,E_NHAP_M_K_CU MOV R2,#0
JMP LCD_NHAP_M_K_MOI RET
SAI_MAT_KHAU2:
JMP SAI_MAT_KHAU RET
ENTER_NHAP_M_K_MOI:
MOV A,R2 MOV R4,A JMP LCD_NHAP_LAI_M_K_MOI RET
ENTER_NHAP_LAI_M_K_MOI:
MOV A,R4 MOV 74H,R2 SUBB A,74H CJNE A,#0,SAI_MAT_KHAU3 MOV R1,#60H
MOV R0,#50H ENTER121:
MOV 74H,@R0 MOV A,@R1 SUBB A,74H CJNE A,#0,SAI_MAT_KHAU3 INC R1
INC R0 DJNZ R2, ENTER121 JMP GHI_MAT_KHAU_DOI RET
SAI_MAT_KHAU3:
JMP SAI_MAT_KHAU RET
GHI_MAT_KHAU_DOI:
Trang 34CLR A MOV A,R4 MOV R3,A MOV R1,#60H MOV R0,#40H LAP_GHI_MAT_KHAU_DOI:
CLR A MOV A,@R1 MOV @R0,A INC R0 INC R1 DJNZ R4,LAP_GHI_MAT_KHAU_DOI MOV R4,#0
MOV R0,#40H MOV R1,#50H MOV R7,#0FDH MOV R2,#0 MOV 71H,#0 JMP LCD_DA_DOI_MA_THANH_CONG RET
LCD_DA_DOI_MA_THANH_CONG:
MOV A,#01H CALL DIEU_KHIEN CALL DELAYMS MOV DPTR,#DONG_LCD_DMTC CALL STRING
CALL DELAYMS CALL DELAY4S MOV A,#01H CALL DIEU_KHIEN CALL DELAYMS MOV DPTR,#NHAP_MAT_KHAU CALL STRING
MOV A,#0C0H
Trang 35ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
CALL DIEU_KHIEN CALL DELAYMS JMP QUET_PHIM RET
DONG_LCD_DMTC: DB 'DA DOI MK',0
; **************************************************
; PHIM XOA
XOA:
CLR A MOV A,R7 CJNE A,#0FAH,XOA_TIEP1 JMP LCD_NHAP_M_K_CU RET
XOA_TIEP1:
MOV A,R7 CJNE A,#0FBH,XOA_TIEP2 JMP LCD_NHAP_M_K_MOI RET
XOA_TIEP2:
MOV A,R7 CJNE A,#0FCH,XOA_PHIM_THUONG JMP LCD_NHAP_LAI_M_K_MOI RET
XOA_PHIM_THUONG:
MOV R1,#50H MOV R2,#0 MOV R0,#40H JMP LCD_NHAP_MAT_KHAU RET
; **************************************************
; PHIM KHOA
KHOA:
CLR P0.5 SETB P0.6
Trang 36CALL DELAY2S CLR P0.6 CALL LCD_KHOA_CUA LCD_KHOA_CUA:
MOV A,#01H CALL DIEU_KHIEN MOV DPTR,#DONGLCD_KHOACUA CALL STRING
CALL DELAYMS MOV A,#0C0H CALL DIEU_KHIEN CALL DELAY4S MOV R1,#50H MOV R2,#0 MOV R0,#40H MOV 71H,#0 MOV R4,#0 JMP LCD_NHAP_MAT_KHAU RET
DONGLCD_KHOACUA: DB 'DA KHOA CUA',0
MOV A,#0C0H CALL DIEU_KHIEN
Trang 37ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
CALL DELAYMS JMP QUET_PHIM RET
DONG_LCD_NHAP_M_K_CU: DB 'MAT KHAU CU',0
; **************************************************
; LCD HIEN THI NHAP MAT KHAU MOI
LCD_NHAP_M_K_MOI:
MOV R1,#60H MOV R4,#0 MOV R2,#0 MOV R7,#0FBH MOV A,#01H CALL DIEU_KHIEN CALL DELAYMS MOV DPTR,#DONG_LCD_NHAP_M_K_MOI CALL STRING
MOV A,#0C0H CALL DIEU_KHIEN CALL DELAYMS JMP QUET_PHIM RET
DONG_LCD_NHAP_M_K_MOI: DB 'NHAP MK MOI',0
LCD_NHAP_LAI_M_K_MOI:
MOV R1,#50H MOV R2,#0 MOV R7,#0FCH MOV A,#01H CALL DIEU_KHIEN CALL DELAYMS MOV DPTR,#DONG_LCD_NHAP_LAI_M_K_MOI CALL STRING
MOV A,#0C0H CALL DIEU_KHIEN CALL DELAYMS
Trang 38JMP QUET_PHIM RET
DONG_LCD_NHAP_LAI_M_K_MOI: DB 'NHAP LAI MK',0
; **************************************************
; PHIM DU BI
DU_BI:
MOV A,#01H CALL DIEU_KHIEN CALL DELAYMS MOV DPTR,#DONG_DU_BI CALL STRING
MOV A,#0C0H CALL DIEU_KHIEN CALL DELAY4S MOV R1,#50H MOV R2,#0 JMP LCD_NHAP_MAT_KHAU RET
DONG_DU_BI: DB 'DU BI',0
; **************************************************
; SAI MAT KHAU
SAI_MAT_KHAU:
INC 71H MOV A,71H CJNE A,#3,NHAY_QUET_PHIM_SAI MOV A,#01H
CALL DIEU_KHIEN CALL DELAYMS MOV DPTR,#DONG_LCD_SAI_MA CALL STRING
MOV A,#0C0H CALL DIEU_KHIEN CALL DELAYMS SETB P0.7
Trang 39ĐỒ ÁN VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI GVHD: ThS LÊ XỨNG
MOV R7,#7 LAP_SMK:
CALL DELAY4S DJNZ R7,LAP_SMK MOV R7,#0
CLR P0.7 MOV R2,#0 MOV R1,#50H JMP LCD_NHAP_MAT_KHAU RET
DONG_LCD_SAI_MA: DB 'SAI MA',0 NHAY_QUET_PHIM_SAI: ; Kiem tra sai khi dang o dau
MOV A,#01H CALL DIEU_KHIEN CALL DELAYMS MOV DPTR,#LCD_SAI_MA_NHAP_LAI CALL STRING
MOV A,#0C0H CALL DIEU_KHIEN CALL DELAY4S MOV A,R7 CJNE A,#0FAH,SAI_NEXT1 JMP LCD_NHAP_M_K_CU RET
LCD_SAI_MA_NHAP_LAI: DB 'SAI MA, NHAP LAI',0 SAI_NEXT1:
MOV A,R7 CJNE A,#0FCH,SAI_BINH_THUONG JMP LCD_NHAP_LAI_M_K_MOI RET
SAI_BINH_THUONG:
MOV R1,#50H MOV R2,#0 MOV R0,#40H