Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 57 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
57
Dung lượng
1,57 MB
File đính kèm
Khóa điện tử bằng mật khẩu.rar
(1 MB)
Nội dung
VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG LỜI NÓI ĐẦU Kỹ thuật vi điều khiển phát triển ứng dụng rộng rãi giới nhiều lĩnh vực khác nhau, khắc phục vấn đề khí Ứng dụng kỹ thuật vi điều khiển phát triển cần thiết xã hội đại Trong trình học tập em có hội làm quen với vi điều khiển qua mơn học lớp tìm hiểu thêm thông qua tài liệu sách báo internet, em nhận thấy: ”Ứng dụng vi điều khiển vào sống điều thú vị trình sáng tạo” Trong đồ án kỹ thuật vi điều khiển kết nối ngoại vi này, em chọn đề tài: ”Thiết bị khóa cửa điện tử” Tuy em cố gắng thực đồ án tốt có thể, khơng tránh thiếu sót, mong q Thầy Cơ góp ý thơng cảm cho thiếu sót em Trong đồ án em sử dụng tài liệu tham khảo: “Họ Vi Điều Khiển 8051” thầy Tống Văn On Hoàng Đức Hải “Giáo Trình Vi Điều Khiển” Của GV Phạm Hùng Kim Khánh Từ trang web: www.dientuvietnam.net, codientu.org Đà Nẵng, Ngày 25 Tháng 05 Năm 2015 Phạm Ngọc Hiên Nguyễn Xuân Toàn SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN -oOo Đà Nẵng, ngày… tháng …năm 2015 SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG MỤC LỤC LỜI NÓI ĐẦU Chương 1: GIỚI THIỆU ĐỀ TÀI 1.1Giới thiệu 1.1.1 Chức hệ thống 1.1.2Hoạt động hệ thống 1.2Phân tích khối chức hệ thống 1.2.1Khối xử lý trung tâm 1.2.2 Bàn phím 1.2.3 Khối hiển thị 1.2.4 Khối nguồn 1.2.5 Khối mạch điều khiển động đóng ,mở cửa 1.2.6 Khối báo động 1.3 Giới thiệu vi điều khiển 8051 1.3.1 Giới thiệu MSC-51 1.3.2 Sơ lược chân ic 89C51: 1.3.3 Khảo sát khối bên 89c51 − tổ chức nhớ: 10 1.3.4 Hoạt động định timer: 12 1.3.5 Hoạt động ngắt (INTERRUPT): 17 1.4 Giới thiệu LCD 19 1.4.1 Cấu tạo 19 1.4.2 Chức chân 20 1.4.3 Sơ đồ khối HD44780 22 1.5 Giới thiệu bàn phím 25 Chương 2: THIẾT KẾ VÀ THI CÔNG MẠCH 25 2.1 Sơ đồ mạch 25 2.1.1Khối điều khiển trung tâm 26 2.1.2 LCD 27 2.1.3 Bàn Phím 28 2.1.4 Khối mạch điều khiển đóng mở cửa 30 2.1.5Khối báo động 31 2.1.6 Mạch nguồn 32 Chương 3: LƯU ĐỒ THUẬT TỐN VÀCHƯƠNG TRÌNH 32 3.1 Lưu đồ thuật tốn chương trình (chương trình nhập mật khẩu) 34 3.2 Thuật toán chương trình 35 3.2.1 Thuật tốn qt phím 35 SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG 3.2.2 Thuật toán chương trình enter so sánh mật 37 3.2.3 Thuật tốn chương trình đổi mật 38 3.2.5 Thuật toán chương trình đóng mở cửa 40 3.2.6 Thuật tốn chương trình phím xóa 41 3.2.7 Thuật toán hiển thị LCD 42 3.3 CHƯƠNG TRÌNH 43 SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI Chương 1: GVHD:ThS LÊ XỨNG GIỚI THIỆU ĐỀ TÀI 1.1Giới thiệu Ngành công nghệ kỹ thuật không ngừng phát triển, việc ứng dụng vi điều khiển ngày sử dụng rộng rãi lĩnh vực dân dụng công nghiệp, thiết bị điện tử phần gắn với sống người xã hội đại, hệ thống kiểm soát bảo vệ an ninh củng xu đó, phần lớn khóa sử dụng chủ yếu khóa khí,nhưng cơng việc có bảo mật ,giám sát an ninh giới hạn người vào, việc ứng dụng khóa điện tử vào quan, nhà máy phương án có hiệu cao Ở em xin giới thiệu đề tài khóa điện tử với số yêu cầu thiết bị khóa thơng dụng: - Tính an tồn: phải có chức bảo mật cao - Dễ sử dụng - Có thể thay đổi bảo mật cần thiết - Hệ thống vận hành ổn định, tuổi thọ cao - Có thể điều khiểm từ xa sóng RF Trên sở đó, em đưa phương án thiết kế khóa điều khiển với chức sau: 1.1.1Chức hệ thống - - Hệ thống gồm chuổi mã số từ đến 9, độ dài mật mã khơng q 10 số có người phân quyền sử dụng biết Có hệ thống phím gồm 15 phím, ngồi 10 số mật có phím chức năng: phím Enter, phím Xóa, phím Đổi mã, phím Khóa, phím dự bị để mở rộng thêm cần thiết Hệ thống hiển thị trực quan qua LCD 16x2A, có đèn chiếu sáng điều kiện mơi trường tối Có hệ thống báo động nhập sai nhiều lần (ở em thiết kế lần, sau lần nhập sai LCD hiển thị sai mã, kích hoạt hệ thống báo động) Có chức thay đổi mật cần thiết, mật mặc định ban đầu 111111 Phím Xóa xóa bạn nhập sai, sửa nhầm lẫn nhập phím 1.1.2Hoạt động hệ thống Ban đầu: - Thay đổi mật cho người sử dụng: Ấn phím thay đổi mật khẩu, hệ thống hiển thị LCD : ” NHAP MK CU” Tiến hành nhập mật cũ, nhấn Enter, hệ thống hiển thị : ”NHAP MK MOI”, sau nhập mật , nhấn Enter LCD hiển thị:”NHAP LAI MK”, trình đổi mã thành cơng LCD hiễn thị:”DA DOI MK” Nếu sai hệ thống hiển thị:” SAI MA, NHAP LAI”, sai q lần sẻ kích hoạt hệ thống báo động -Nhập mật khẩu: SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG 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, nhập LCD hiển thị “ MO KHOA”, nhập sai LCD hiển thị:” SAI MA, NHAP LAI”,sai q lần kích hoạt hệ thống báo động Nếu người dùng xóa mã hập cảm thấy nhập sai thơng qua phím Xóa, nhập q 10 ký tự thị hệ thống tự kiểm tra, thông báo sai mã 1.2Phân tích khối chức hệ thống 1.2.1Khối xử lý trung tâm Chức năng: Đóng vai trò đầu não hệ thống,tiếp nhận tín hiệu từ bàn phím so sánh mã, hiển thị LCD.Từ đưa 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 - Sử dụng chip: AT89S52 1.2.2 Bàn phím Bàn phím gồm nút Mỗi nút phận đóng mở khí Các mã bàn phím tạo tạo trực tiếp phép quét hàng quét cột Bàn phím gồm 15 phím xắp xếp theo kiểu 3x5( với cột dòng) Chức năng: tín hiệu đầu vào cho xử lý trung tâm, nhập mã đóng mở cửa 1.2.3 Khối hiển thị Yêu cầu đặt khối hiển thị 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 dẫn SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG Thay đổi nội dung linh hoạt.Xử lý lập trình đơn giản LED7 ma trận điểm Nhược điểm: Giá thành đắt 1.2.4 Khối nguồn Chức năng: cung cấp nguồn hoạt động cho hệ thống vi điều khiển củng hệ thống báo động - sử dụng họ 78xx, bao gồm 7805 cung cấp cho vi điều khiển lcd, 7809 dùng cho động đóng mở cửa 1.2.5 Khối mạch điều khiển động đóng ,mở cửa Chức năng: đóng khóa cửa có tín hiệ tương ứng từ xử lý trung tâm - Mạch sử dụng mạch cầu H để điều khiển, động sử dụng động DC 1.2.6 Khối báo động Chức năng: nhận tín hiệu từ xử lý trung tâm, phát tín hiệu báo động âm 1.2.7 Khối module từ xa sóng RF Gồm có thu phát sóng RF cho phép điều khiển đóng mở cửa từ xa mà khơng cần phải nhấn mật 1.3 Giới thiệu vi điều khiển 8051 1.3.1 Giới thiệu MSC-51 MCS-51 l họ IC điều khiển (micro controller), chế tạo bán thị trường hãng Intel Mỹ Họ IC cung cấp thiết bị nhiều hãng sản xuất IC khác giới chẳng hạn: nhà sản xuất IC SIEMENS Đức, FUJITSU Nhật PHILIPS Hà Lan Mỗi IC họ có hồn thiện riêng có hãnh diện riêng nó, phù hợp với nhu cầu người sử dụng yêu cầu đặt nhà sản xuất IC 89C51 IC tiêu biểu họ MCS-51 bán thị trường Tất IC họ có tương thích với có khác biệt sản xuất sau có mà sản xuất trước khơng có, để tăng thêm khả ứng dụng IC Chúng có đặc điểm sau Hình 2.1: Sơ đồ cấu tạo 89C51 SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG - 4k byte ROM (được lập trình nhà sản xuất, có 8051) - 128 byte RAM - Port I/O bit - định thời 16 bit - Giao tiếp nối tiếp - 64k không gian nhớ chương trình mở rộng - 64k khơng gian nhớ liệu mở rộng - Một xử lý luận lý (thao tác bit đơn) - 210 bit địa hóa - Bộ nhân /chia bit 1.3.2 Sơ lược chân ic 89C51: 89C51 l IC vi điều khiển (Microcontroller) hãng intel sản xuất ic 89C51 có tất 40 chân có chức đường xuất nhập Trong có 24 chân có tác dụng kép, đường hoạt động đường xuất nhập đường điều khiển thành phần bus liệu U1 39 38 37 36 35 34 33 32 19 18 31 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 XTAL1 XTAL2 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD ALE/PROG PSEN 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 30 29 EA/VPP RST AT89C51 Hình 2.2: Sơ đồ chân Chức chân 89C51: Port 0:Port l port có hai chức chân từ 32÷39 89C51 Trong thiết kế cỡ nhỏ khơng dùng nhớ mở rộng có chức đường vào Port 1:Port l port I\O chân từ 1-8 Các chân ký hiệu l P0.0, P0.1, P0.2,…P1.7, dùng cho giao tiếp với thiết bị bên cần Port khơng có chức khác dùng cho giao tiếp với thiết bị bên (chẳng hạn ROM, RAM, 8255, 8279, …) SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG Port 2:Port2 port có tác dụng kép chân từ 21-28 dùng đường xuất nhập byte cao Bus địa thiết kế lớn Port3:Port3 l port có tác dụng kép từ chân 10 –17 Các chân port có nhiều chức năng, cơng dụng chuyển đổi có liên hệ với đặc tính đặc biệt 8951 bảng sau: Bit P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Tn RXD TXD INT0\ INT1\ T0 T1 WR\ RD\ Chức chuyển đổi Ngõ vào liệu nối tiếp Ngõ liệu nối tiếp Ngõ vào ngắt ngòai Ngõ vào ngắt ngồi Ngõ vào timer/couter Ngõ vào timer/couter Điều khiển ghi nhớ liệu (RAM) Điều khiển đọc nhớ liệu (RAM) Bảng2.1: Chức chân port - Ngõ tín hiệu PSEN\ (Progam store enable): PSEN\ l tín hiệu ngõ chân 29 có tác dụng cho phép đọc nhớ chương trình mở rộng thường nối với chân OE\ (output enable) EPROM cho phép đọc byte mã lệnh PSEN mức thấp thời gian lấy lệnh.Các mã nhị phân chương trình đọc từ EPROM qua bus liệu chốt vào ghi bên 89C51 để giải mã lệnh.Khi thi hành chương trình ROM nội (ic 89C51) PSEN\ mức - Ngõ tín hiệu điều khiển ALE (Address latch enable): Khi 89C51 truy xuất nhớ bên ngoài, port0 có chức địa liệu phải tách đường địa liệu Tín hiệu ALE chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp đường địa liệu kết nối với IC chốt Tín hiệu ALE l xung khoảng thời gian port đóng vai trò địa thấp nên chốt địa hoàn toàn tự động Các xung tín hiệu ALE có tốc độ 1/6 tần số dao động vi điều khiển dùng làm tín hiệu clock cho phần khác hệ thống Chân ALE dùng làm ngõ vào xung lập trình cho EPROM 89C51 Ngõ tín hiệu EA\ (External Access: truy xuất liệu bên ngoài): Tín hiệu vo EA\ chân 31 thường mắc lên mức mức Nếu mức ic89C51 thi hành chương trình ROM nội khoảng địa thấp 4k.Nếu mức 89C51 thi hành chương trình từ nhớ mở rộng (vì ic89C51 khơng có nhớ chương trình chip).Chân EA\ lấy làm chân cấp nguồn 21v lập trình cho EPROM 89C51 SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG - Ngõ tín hiệu RST (Reset): Ngõ tín hiệu RST chân ngõ vào Reset 89C51 Khi ngõ vào tín hiệu đưa lên mức cao l chu kỳ máy, ghi bên nạp gi trị thích hợp để khởi động hệ thống Khi cấp điện mạch tự động Reset - Ngõ vào dao động X1, X2: Bộ tạo dao động tích hợp bên 8951, sử dụng 89C51 người thiết kế cần ghép nối thêm tụ, thạch anh.Tần số thạch anh sử dụng cho 89C51 l 12MHz - Nguồn cho 89C51: Nguồn cho 89C51 cung cấp chân l 20 v 40 cấp GND v Vcc Nguồn cung cấp +5v Khả tải Port l LS –TTL port 1,2,3 l 4LS –TTL Cấu trúc port xây dựng từ FET làm cho port xuất nhập dễ dàng.Khi FET tắt port dễ dàng dùng chức xuất.Khi FET hoạt động port làm chức nhập ngõ nhập mức cao làm hỏng port 1.3.3 Khảo sát khối bên 89c51 − tổ chức nhớ: Bộ nhớ 89C511 bao gồm ROM RAM RAM 89C51 bao gồm nhiều thnh phần: phần lưu trữ đa dụng, phần lưu trữ địa hóa bit, bank ghi ghi chức đặc biệt 89C51 có cấu trúc nhớ theo kiểu Harvard: có vùng nhớ riêng biệt cho chương trình liệu Chương trình liệu chứa bên 89C51, 89C51 kết nối với 64k byte chương trình 64k byte liệu Các ghi port xuất nhập định vị (được định vị có nghĩa l xác định) nhớ truy xuất trực tiếp giống nhớ địa khác Ngăn xếp bên RAM nội nhỏ so với ROM ngoại vi xử lý khác RAM bên 89C51 phân chia sau: - Các Bank ghi có địa 00H ÷ 1FH - RAM địa hóa bit có địa 20H ÷ 2FH - RAM đa dụng có địa 30H ÷ 7FH Các ghi có chức đặc biệt 80H ÷ FFH SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang 10 VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG 3.2.8 Chương trình phục vụ ngắt: NGAT0 NGAT1 CRL P0.6 CRL P0.5 SETB P0.5 SETB P0.6 S S P0.6=0? P0.7=0? Đ CRL P0.5 RETI CRLP0.6 RETI 3.3 CHƯƠNG TRÌNH RS EQU P0.0 RW EQU P0.1 ENABLE EQU P0.2 ORG 0000H LJMP MAIN ORG 03H LJMP NGAT0 ORG 13H LJMP NGAT1 ORG 0030H MAIN: MOV IE,#85H SETB IT1 SETB IT0 MOV P0,#0F7H MOV 71H,#0 ; MOV R0,#40H ; DIA CHI ONHO CHUA MAT KHAU GOC MOV R1,#50H ; DIA CHI O NHO CHUA MAT KHAU NHAP MOV TMOD,#11H SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 VAO Trang 43 VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG ; ********** MAT KHAU BAN DAU *********** MAT_KHAU_BAN_DAU: MOV R2,#10 MKBD: MOV @R0,#01H INC R0 DJNZ R2,MKBD MOV R0,#40H MOV R2,#0 MOV R3,#6 ; DO DAI MAT KHAU GOC ; ****************************** ; HIEN THI LCD BAN DAU MOV R7,#0FDH MOV A,#38H LCALL DIEU_KHIEN CALL DELAYMS MOV A,#0EH LCALL DIEU_KHIEN LCALL DELAYMS MOV A,#01H LCALL DIEU_KHIEN CALL DELAYMS MOV A,#06H LCALL DIEU_KHIEN CALL DELAYMS MOV DPTR, #HIEN_THI_BAN_DAU1 LCALL STRING MOV A,#0C0H LCALL DIEU_KHIEN CALL DELAYMS MOV DPTR, #HIEN_THI_BAN_DAU2 LCALL STRING MOV 70H,#100; NEU QUA NHIEU THI SE PHAI AN PHIM LAU KTBPK1: MOV P1,#0FFh MOV P1,#00000111B MOV A,P1 ANL A,#00000111B CJNE A,#00000111B,LCD_NHAP_MAT_KHAU JMP KTBPK1 HIEN_THI_BAN_DAU1: DB' DHBK DA NANG ',0 HIEN_THI_BAN_DAU2: DB'DO AN VDK & NV',0 ;************************************************** ;*********** LCD NHAP MAT KHAU ***************** LCD_NHAP_MAT_KHAU: MOV R7,#0FDH SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang 44 VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG MOV A,#38H LCALL DIEU_KHIEN CALL DELAYMS MOV A,#0EH LCALL DIEU_KHIEN LCALL DELAYMS MOV A,#01H LCALL DIEU_KHIEN CALL DELAYMS MOV A,#06H LCALL DIEU_KHIEN CALL DELAYMS MOV DPTR, #NHAP_MAT_KHAU LCALL STRING MOV A,#0C0H LCALL DIEU_KHIEN CALL DELAYMS ; ****************************************************** ; ************ KIEM_TRA_BAM_PHIM_KHONG ************** QUET_PHIM: KIEM_TRA_BAM_PHIM_KHONG: MOV 70H,#100; NEU QUA NHIEU THI SE PHAI AN PHIM LAU KTBPK: MOV P1,#0FFh MOV P1,#00000111B MOV A,P1 ANL A,#00000111B CJNE A,#00000111B,CO_BAM JMP KIEM_TRA_BAM_PHIM_KHONG RET CO_BAM: LCALL DELAYMS DJNZ 70H,KTBPK ; ********************************************************* ; **************XAC DINH PHIM ************************* XAC_DINH_PHIM: XDP: MOV P1,#11110111B MOV A,P1 ANL A,#11110111B CJNE A,#11110111B, HANG1 ;**************************** MOV P1,#11101111B MOV A,P1 ANL A,#11101111B SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang 45 VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG 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 ;**************************** 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 SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang 46 VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG 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 JMP FIND RET SO: DB '0FAH',0FBH,'0FCH' ; *************************************** ; **********FIND************************ FIND: RRC A JNC GHI_VAO INC DPTR JMP FIND RET ; ************************* GHI_VAO: CLR A MOVC A,@A+DPTR MOV @R1,A INC R1 INC R2 LJMP HIEN_THI_SAO RET ; ************************* HIEN_THI_SAO: MOV A,#'*' SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang 47 VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG MOV P2,A LCALL HIEN_THI CJNE R2,#10,NHAY_LAI_QUET_PHIM LJMP ENTER RET ;************************** NHAY_LAI_QUET_PHIM: LJMP QUET_PHIM RET ; ******************************************* ; ********** PHIM ENTER ******************** ENTER: CLR A MOV A,R7 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: SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang 48 VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG JMP SAI_MAT_KHAU RET ;********************************************** MO_KHOA: CLR P0.6 SETB P0.5 JB P3.6,MO_KHOA CLR P0.5 CALL LCD_MO ;*********************************************** LCD_MO: MOV A,#01H LCALL DIEU_KHIEN MOV DPTR,#DONG61LCD CALL STRING CALL DELAYMS MOV A,#0C0H LCALL DIEU_KHIEN CALL DELAY4S MOV R1,#50H MOV R2,#0 MOV R0,#40H MOV 71H,#0 MOV R4,#0 JMP LCD_TB RET DONG61LCD: DB 'MO KHOA',0 ;************************************************ ;*********************************************** LCD_TB: MOV A,#01H LCALL DIEU_KHIEN MOV DPTR,#DONG61LCD1 CALL STRING CALL DELAYMS MOV A,#0C0H LCALL DIEU_KHIEN MOV DPTR,#DONG61LCD2 CALL STRING CALL DELAYMS CALL DELAY3S MOV R1,#50H MOV R2,#0 MOV R0,#40H MOV 71H,#0 MOV R4,#0 SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang 49 VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG JMP LCD_NHAP_MAT_KHAU RET DONG61LCD1: DB 'NHAN PHIM KHOA',0 DONG61LCD2: DB 'DE DONG CUA',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 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 SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang 50 VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG INC R0 DJNZ R2, ENTER121 JMP GHI_MAT_KHAU_DOI RET ;**************************** SAI_MAT_KHAU3: JMP SAI_MAT_KHAU RET ; ************************* GHI_MAT_KHAU_DOI: CLR 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 LCALL DIEU_KHIEN LCALL DELAYMS MOV DPTR,#NHAP_MAT_KHAU LCALL STRING MOV A,#0C0H LCALL DIEU_KHIEN SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang 51 VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG LCALL 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 JB P3.7,KHOA CLR P0.6 CALL LCD_KHOA_CUA LCD_KHOA_CUA: MOV A,#01H LCALL DIEU_KHIEN MOV DPTR,#DONGLCD_KHOACUA LCALL STRING LCALL DELAYMS MOV A,#0C0H LCALL DIEU_KHIEN LCALL DELAY4S SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang 52 VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG 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 ; ****************************************************** ; ***************PHIM DOI MAT KHAU ******************** PHIM_DOI_MAT_KHAU: LCD_NHAP_M_K_CU: MOV R1,#50H MOV R2,#0 MOV R7,#0FAH MOV A,#01H CALL DIEU_KHIEN CALL DELAYMS MOV DPTR,#DONG_LCD_NHAP_M_K_CU CALL STRING MOV A,#0C0H LCALL DIEU_KHIEN LCALL 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 LCALL DIEU_KHIEN LCALL DELAYMS MOV DPTR,#DONG_LCD_NHAP_M_K_MOI CALL STRING MOV A,#0C0H CALL DIEU_KHIEN CALL DELAYMS LJMP QUET_PHIM RET DONG_LCD_NHAP_M_K_MOI: DB 'NHAP MK MOI',0 ; ************************* LCD_NHAP_LAI_M_K_MOI: MOV R1,#50H SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang 53 VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG MOV R2,#0 MOV R7,#0FCH MOV A,#01H LCALL DIEU_KHIEN LCALL DELAYMS MOV DPTR,#DONG_LCD_NHAP_LAI_M_K_MOI LCALL STRING MOV A,#0C0H LCALL DIEU_KHIEN LCALL DELAYMS JMP QUET_PHIM RET DONG_LCD_NHAP_LAI_M_K_MOI: DB 'NHAP LAI MK',0 ; ********************************************************** ; ******************** PHIM DU BI*************************** DU_BI: MOV A,#01H LCALL DIEU_KHIEN LCALL DELAYMS MOV DPTR,#DONG_DU_BI CALL STRING MOV A,#0C0H LCALL DIEU_KHIEN LCALL 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 LCALL DIEU_KHIEN LCALL DELAYMS MOV DPTR,#DONG_LCD_SAI_MA CALL STRING MOV A,#0C0H LCALL DIEU_KHIEN LCALL DELAYMS CLR P0.4 MOV R7,#45 LAP_SMK: SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang 54 VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG LCALL DELAY4S DJNZ R7,LAP_SMK MOV R7,#0 SETB P0.4 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 LCALL DIEU_KHIEN LCALL DELAYMS MOV DPTR,#LCD_SAI_MA_NHAP_LAI LCALL STRING MOV A,#0C0H LCALL DIEU_KHIEN LCALL 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 JMP LCD_NHAP_MAT_KHAU RET DELAY4S: MOV R6,#4 LAP_DELAY4SR6: MOV R5,#100 LAPDELAY4S: MOV TH1,#HIGH(-10000) MOV TL1,#LOW(-10000) SETB TR1 WAITDELAY4S: SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang 55 VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG JNB TF1, WAITDELAY4S CLR TF1 CLR TR1 DJNZ R5,LAPDELAY4S DJNZ R6,LAP_DELAY4SR6 RET ;********************************************************* ; CHUONG TRINH CON TRONG HIEN THI LCD DIEU_KHIEN: MOV P2,A CLR RS CLR RW SETB ENABLE LCALL DELAYMS CLR ENABLE LCALL DELAYMS RET HIEN_THI: SETB RS CLR RW MOV P2,A SETB ENABLE LCALL DELAYMS CLR ENABLE LCALL DELAYMS RET STRING: CLR A MOVC A,@A+DPTR JZ EXIT LCALL HIEN_THI LCALL DELAYMS INC DPTR SJMP STRING EXIT: RET NHAP_MAT_KHAU: DB 'NHAP MAT KHAU',0 ; CAC DELAY SU DUNG TRONG CHUONG TRINH DELAYMS: MOV TH0,#HIGH(-1000) MOV TL0,#LOW(-1000) SETB TR0 WAITDL1: JNB TF0, WAITDL1 CLR TF0 CLR TR0 SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang 56 VI ĐIỀU KHIỂN VÀ GHÉP NỐI NGOẠI VI GVHD:ThS LÊ XỨNG RET DELAY3S: MOV R5,#12 L1: MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) SETB TR0 WAITDL2: JNB TF0, WAITDL2 CLR TF0 CLR TR0 DJNZ R5,L1 RET NGAT0: SETB P0.5 CLR P0.6 L4: JB P3.6, L4 CLR P0.5 RETI NGAT1: SETB P0.6 CLR P0.5 L5: JB P3.7,L5 CLR P0.6 RETI END SVTH: PHẠM NGỌC HIÊN_11CDT1 SVTH: NGUYỄN XUÂN TOÀN _11CDT1 Trang 57