1. Trang chủ
  2. » Tất cả

Giáo trình Vi điều khiển (Nghề Điện tử công nghiệp Cao đẳng)

223 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 223
Dung lượng 2,68 MB

Nội dung

ỦY BAN NHÂN DÂN THÀNH PHỐ HÀ NỘI TRƯỜNG CAO ĐẲNG NGHỀ VIỆT NAM - HÀN QUỐC THÀNH PHỐ HÀ NỘI TRẦN VĂN NAM (Chủ biên) NGUYỄN ANH DŨNG – NGUYỄN THANH HÀ GIÁO TRÌNH VI ĐIỀU KHIỂN Nghề: Điện tử cơng nghiệp Trình độ: Cao đẳng (Lưu hành nội bộ) Hà Nội - Năm 2018 LỜI NÓI ĐẦU Để cung cấp tài liệu học tập cho học sinh - sinh viên tài liệu cho giáo viên giảng dạy, Khoa Điện tử Trường CĐN Việt Nam - Hàn Quốc thành phố Hà Nội chỉnh sửa, biên soạn giáo trình “VI ĐIỀU KHIỂN” dành riêng cho học sinh - sinh viên nghề Điện tử công nghiệp Đây môn học kỹ thuật sở chương trình đào tạo nghề Điện tử cơng nghiệp trình độ Cao đẳng Nhóm biên soạn tham khảo tài liệu: Giáo trình “Họ vi điều khiển” Tống văn On - Đại học Bách khoa TP.HCM – 2005 Và giáo trình “8051 Development Boad”, Rev - Paul Stoffregen nhiều tài liệu khác Mặc dù nhóm biên soạn có nhiều cố gắng khơng tránh thiếu sót Rất mong đồng nghiệp độc giả góp ý kiến để giáo trình hồn thiện Xin chân thành cảm ơn! Hà Nội, tháng 09 năm 2018 Chủ biên: Trần Văn Nam MỤC LỤC LỜI NÓI ĐẦU MỤC LỤC GIÁO TRÌNH MƠ ĐUN Bài 1Sơ lược lịch sử hướng phát triển vi điều khiển 1.1 Lịch sử xuất vi điều khiển 8051 1.2 Vi điều khiển (microcontroller) Bài 2Cấu trúc họ vi điều khiển 8051 16 2.1 Tổng quan 16 2.3 Cấu trúc Port I/O 25 2.4 Tổ chức nhớ 29 2.5 Các ghi chức đặc biệt (SFR) 32 2.6 Tổ chức nhớ 36 Bài 3Tập lệnh 8051 40 3.1 Mở đầu 40 3.2 Các phương pháp định địa 42 3.3 Các nhóm lệnh 47 Bài 4Bộ định thời 89 4.1.Mở đầu 89 4.2.Thanh ghi SFR của timer 91 4.3.Các chế độ làm việc 93 4.4 Nguồn cung cấp xung cho Timer 95 4.5 Khởi động, dừng điều khiển Timer 95 4.6 Khởi tạo truy xuất ghi Timer 96 Bài 5Cổng nối tiếp (serial port) 108 5.1 Mở đầu 108 5.2 Thanh ghi điều khiển 111 5.3 Chế độ làm việc 113 5.4 Khởi tạo truy xuất ghi PORT nối tiếp 118 5.5 Truyền thông đa xử lý (Multiprocessor Communications) 120 5.6 Tốc độ baud 121 Bài 6Ngắt 131 6.1 Mở đầu 131 6.2.Tổ chức ngắt của 8051 133 6.3 Xử lý ngắt 138 6.4 Thiết kế chương trình sử dụng ngắt 140 6.5 Ngắt cổng nối tiếp 145 6,6 Các cổng ngắt 145 6.7 Đồ thị thời gian của ngắt 145 Bài 7Phần mềm hợp ngữ 157 7.1 Mở đầu 157 7.2 Hoạt động của trình biên dịch Assembler 158 7.3 Cấu trúc chung chương trình hợp ngữ cho 8051 159 7.4 Tính biểu thức hợp dịch 162 7.5 Các điều khiển của ASSEMBLER 167 7.6 Hoạt động liên kết (Linker) 173 7.7 Macro 173 TÀI LIỆU THAM KHẢO 223 GIÁO TRÌNH MƠ ĐUN Tên mơ đun: Vi điều khiển Mã số mô đun: MĐ 24 Thời gian mô đun: 120 (LT: 40 giờ; BT: 75 giờ; KT: giờ) I Vị trí, tính chất, ý nghĩa vai trị mơ đun Vị trí của mơ đun: Mơ đun bố trí dạy sau học xong môn học mô đun: Kỹ thuật xung số điện tử bản, điện tử nâng cao, điện tử công suất, học trước môn vi mạch số lập trình Tính chất của mơ đun: Là mơ đun chuyên môn nghề Ý nghĩa của mô đun: mô đun giúp ngườu học có kiến thức điều khiển hệ thống va thiết bị bằng Vi khiển Vai trò của mô đun: Là mô đun chuyên ngành giúp người học điều Vi khiển hệ thống thông qua Vi xử lý II Mục tiêu mô đun Về kiến thức: - Trình bày cấu trúc, ứng dụng vi điều khiển công nghiệp - Kiểm tra viết chương trình điều khiển Về kỹ năng: - Vận hành thiết bị dây chuyền sản xuất dùng vi điều khiển - Xác định nguyên nhân gây hư hỏng xảy thực tế - Kiểm tra viết chương trình điều kiển Về thái độ: Rèn luyện cho học sinh thái độ nghiêm túc, cẩn thận, xác học tập thực công việc III Nội dung mô đun Số TT Thời gian Tên mô đun Tổng số Lý thuyết Thực hành Kiểm tra* Sơ lược lịch sử hướng phát triển của vi điều khiển 4 0 Cấu trúc họ vi điều khiển 8051 5 0 Tập lệnh 8051 25 18 Bộ định thời 25 16 Cổng nối tiếp 20 14 Ngắt 25 17 Phần mềm hợp ngữ 16 10 Cộng 120 40 75 Bài Sơ lược lịch sử hướng phát triển vi điều khiển Mục tiêu Trình bày cấu trúc chung của vi điều khiển Phát biểu ứng dụng của vi điều khiển hướng phát triển của vi điều khiển Rèn luyện cho học sinh thái độ nghiêm túc, cẩn thận, xác học tập thực công việc 1.1 Lịch sử xuất vi điều khiển 8051 Năm 1976 Intel giới thiệu vi điều khiển (microcontroller) 8748, chip tương tự vi xử lý chip họ MCS-48 Độ phức tạp, kích thước khả của Vi điều khiển tăng thêm bậc quan trọng vào năm 1980 intel tung chip 8051, Vi điều khiển của họ MCS-51 chuẩn công nghệ cho nhiều họ Vi điều khiển sản xuất sau Chip 8051 chứa 60000 transistor bao gồm 4K byte ROM, 128 byte RAM, 32 đường xuất nhập, port nối tiếp định thời 16 bit Sau nhiều họ Vi điều khiển của nhiều nhà chế tạo khác đưa thị trường với tính cải tiến ngày mạnh Hiện có nhiều họ Vi điều khiển thị trường với nhiều ứng dụng khác nhau, họ Vi điều khiển họ MCS-51 sử dụng rộng rãi giới Việt Nam Vào năm 1980 Intel cơng bố chíp 8051(80C51), vi điều khiển của họ vi điều khiển MCS-51 Nó bao gồm 4KB ROM, 128 byte RAM, 32 đường xuất nhập, port nối tiếp định thời 16 bit Tiếp theo sau đời của chip 8052, 8053, 8055 với nhiều tính cải tiến Hiện Intel khơng cung cấp loại Vi điều khiển họ MCS-51 nữa, thay vào nhà sản xuất khác Atmel, Philips/signetics, AMD, Siemens, Matra&Dallas, Semiconductors cấp phép làm nhà cung cấp thứ hai cho chip của họ MSC-51 Chip Vi điều khiển sử dụng rộng rãi giới Việt Nam Vi điều khiển của hãng Atmel với nhiều chủng loại vi điều khiển khác Hãng Atmel có chip Vi điều khiển có tính tương tự chip Vi điều khiển MCS-51 của Intel, mã số chip thay đổi chút Atmel sản xuất Mã số 80 chuyển thành 89, chẳng hạn 80C52 của Intel sản xuất Atmel mã số thành 89C52 (Mã số đầy đủ: AT89C52) với tính chương trình tương tự Tương tự 8051,8053,8055 có mã số tương đương Atmel 89C51,89C53,89C55 Vi điều khiển Atmel sau ngày cải tiến bổ sung thêm nhiều chức tiện lợi cho người dùng Bảng Dung lượng RAM Dung lượng ROM Chế độ nạp 89C51 128 byte Kbyte song song 89C52 128 byte Kbyte song song 89C53 128 byte 12 Kbyte song song 89C55 128 byte 20 Kbyte song song Sau khoảng thời gian cải tiến phát triển, hãng Atmel tung thị trường dòng Vi điều khiển mang số hiệu 89Sxx với nhiều cải tiến đặc biệt có thêm khả nạp chương trình theo chế độ nối tiếp đơn giản tiện lợi cho người sử dụng Bảng Dung lượng RAM Dung lượng ROM Chế độ nạp 89S51 128 byte Kbyte nối tiếp 89S52 128 byte Kbyte nối tiếp 89S53 128 byte 12 Kbyte nối tiếp 89S55 128 byte 20 Kbyte nối tiếp Tất Vi điều khiển có đặc tính giống phần mềm (các tập lệnh lập trình nhau), còn phần cứng bổ sung với chip có mã số hai số cuối cao hơn, Vi điều khiển sau có nhiều tính vượt trội Vi điều khiển hệ trước Các Vi điều khiển 89Cxx bảng có cấu tạo ROM RAM 98Sxx bảng 2, nhiên 98Sxx bổ sung số tính có thêm chế độ nạp nối tiếp 8051 vi điều khiển bit tức CPU làm việc với bit liệu Dữ liệu lớn bit chia thành liệu bit để xử lý 8051 trở nên phổ biến sau Intel cho phép nhà sản xuất khác (Siemens, Atmel, Philips, AMD, Matra, Dallas, Semiconductor …) sản xuất bán dạng biến thể của 8051 mà họ muốn với điều kiện họ phải để mã chương trình tương thích với 8051 Từ dẫn đến đời của nhiều phiên của 8051 với tốc độ dung lượng ROM chip khác Tuy nhiên, điều quan trọng có nhiều biến thể của 8051, khác tốc độ, dung lượng ROM tất lệnh tương thích với 8051 ban đầu Điều có nghĩa chương trình viết cho phiên 8051 chạy với phiên khác không phụ thuộc vào hãng sản xuất Các loại vi điều khiển khác: vi điều khiển AVR, vi điều khiển PIC, vi điều khiển MCUs của Philips, Ngoài ra, loại vi điều khiển chuyên dụng của hãng sản xuất khác: loại vi điều khiển sử dụng chuyên dụng theo chức cần điều khiển Bảng 3: Địa chỉ số hãng sản xuất thành viên vi điều khiển Hãng Địa Website intel www.intel.com/design/mcs51 Antel www.atmel.com Philips/Signetis www.semiconductors.philips.com Siemens www.sci.siemens.com Dallas Semiconductor www.dalsemi.com 1.2 Vi điều khiển (microcontroller) 1.2.1 Nguyên lý, cấu tạo a Cấu tạo vi điều khiển Vi điều khiển máy tính tích hợp chíp, thường sử dụng để điều khiển thiết bị điện tử Vi điều khiển thực chất gồm vi xử lý có hiệu suất đủ cao giá thành thấp (so với vi xử lý đa dùng máy tính) kết hợp với thiết bị ngoại vi nhớ, mô đun vào/ra, mô đun biến đổi từ số sang tương tự từ tương tự sang số, mô đun điều chế độ rộng xung (PWM) Vi điều khiển thường dùng để xây dựng hệ thống nhúng Nó xuất nhiều dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, dây truyền tự động Hầu hết loại vi điều khiển có cấu trúc Harvard loại cấu trúc mà nhớ chương trình nhớ liệu phân biệt riêng Cấu trúc của vi điều khiển gồm CPU, nhớ chương trình (thường nhớ ROM nhớ Flash), nhớ liệu (RAM), định thời, cổng vào/ra để giao tiếp với thiết bị bên ngoài, tất khối tích hợp vi mạch Các loại vi điều khiển thị trường nay: -VDK MCS-51: 8031, 8032, 8051, 8052, -VDK ATMEL: 89Cxx, AT89Cxx51 -VDK AVR AT90Sxxxx -VDK PIC 16C5x, 17C43 b Nguyên lý hoạt động Vi điều khiển Mặc dù có nhiều họ vi điều khiển phát triển nhiều chương trình điều khiển tạo cho chúng, tất chúng có số điểm chung Do ta hiểu cặn kẽ họ việc tìm hiểu thêm họ vi điều khiển hoàn toàn đơn giản Một kịch chung cho hoạt động của vi điều khiển sau: Khi khơng có nguồn điện cung cấp, vi điều khiển chip có chương trình nạp sẵn vào khơng có hoạt động xảy Khi có nguồn điện, hoạt động bắt đầu xảy với tốc độ cao Đơn vị điều khiển logic có nhiệm vụ điều khiển tất hoạt động Nó khóa tất mạch khác, trừ mạch giao động thạch anh Sau vài mili giây tất sẵn sàng hoạt động Điện áp nguồn nuôi đạt đến giá trị tối đa của tần số giao động trở nên ổn định Các bit của ghi SFR cho biết trạng thái của tất mạch vi điều khiển Toàn vi điều khiển hoạt động theo chu kỳ của chuỗi xung Thanh ghi đếm chương trình (Program Counter) xóa Câu lệnh từ địa gửi tới giải mã lệnh sau thực thi Giá trị ghi PC tăng lên tồn q trình lặp lại vài … triệu lần giây Các kiểu cấu trúc nhớ (Hình 1.1) Memory (bộ nhớ): ROM/RAM lưu trữ chương trình hay kết trung gian Read Only Memory (ROM): Read Only Memory (ROM) loại nhớ sử dụng để lưu vĩnh viễn chương trình thực thi Kích cỡ của chương trình viết phụ thuộc vào kích cỡ của nhớ ROM tích hợp vi điều khiển hay thêm vào chip gắn bên ngoài, tùy thuộc vào loại vi điều khiển Cả hai tùy chọn có số nhược điểm Nếu ROM thêm vào chip bên ngoài, vi điều khiển rẻ chương trình tồn lâu đáng kể Đồng thời, làm giảm số lượng chân vào/ra để vi điều khiển sử dụng với mục đích khác ROM nội 10 MOV 75H,65H LJMP MAIN NHAP_LAI_PASS_CU: MOV A,@R0 CJNE A,60H,LOI_DOI_PASS INC R0 MOV A,@R0 CJNE A,61H,LOI_DOI_PASS INC R0 MOV A,@R0 CJNE A,62H,LOI_DOI_PASS INC R0 MOV A,@R0 CJNE A,63H,LOI_DOI_PASS INC R0 MOV A,@R0 CJNE A,64H,LOI_DOI_PASS INC R0 MOV A,@R0 CJNE A,65H,LOI_DOI_PASS ; HIEN THI NHAP PASS MOI ;******************** MOV DATABUS,#01H ACALL ;clear lcd GUI_LENH MOV DATABUS,#81H ; First following character will appear on first LCALL GUI_LENH PUSH 04H PUSH ACC MOV R4,#0 209 MOV DPTR,#DATACODE2 PINGMOI: MOV A,R4 MOVC A,@A+DPTR LCALL GUI_DATA INC R4 CJNE R4,#15,PINGMOI POP ACC POP 04H MOV DATABUS,#0C0H appear on second ACALL ; First following character will GUI_LENH MOV A,#11111110B LCALL GUI_DATA ; KHOANG TRANG MOV A,#11111110B LCALL GUI_DATA MOV A,#00110110B LCALL GUI_DATA MOV A,#11111110B LCALL GUI_DATA MOV A,#01010011B LCALL GUI_DATA MOV A,#01101111B LCALL GUI_DATA MOV A,#11111110B LCALL GUI_DATA MOV A,#01111110B LCALL GUI_DATA ; DAU EXIT_DUNG: INC R5 210 -> LJMP DOI_PASS LOI_DOI_PASS: INC R3 CJNE R3,#3,HOMESET_1 LCALL ; HIEN CAU NHAP PASS CU ALARM MOV R3,#00H LJMP CHANGE_PASS HOMESET_1: MOV DATABUS,#2 ACALL GUI_LENH MOV DATABUS,#1 ACALL GUI_LENH MOV DATABUS,#0CH ACALL ;CHO PHEP LCD HIEN THI GUI_LENH PUSH 04H PUSH ACC MOV R4,#15 MOV DPTR,#STRINGCODE ;HIEN THI PASS SAI ROI STINGSET: MOV A,R4 MOVC A,@A+DPTR ACALL GUI_DATA INC R4 CJNE R4,#30,STINGSET POP ACC POP 4H LCALL DELAY LCALL DELAY LCALL DELAY 211 LCALL DELAY LJMP CHANGE_PASS ;******************* ; LAP TRINH QUET BAN PHIM NAY QUA HAY KHONG CHE VAO DAU DUOC QUET_PHIM: PUSH 07H ; R7 DUOC DUNG DE LUU TRU CAC GIA TRI COT SCAN: MOV A,#0EFH ;QUET COLUMN0 MOV R7,#0 ;R7 = i CONT: MOV P0,A ;PORT2 NOI VOI BAN PHIM MOV A,P0 ;read row JNB ACC.0,ROW_0 JNB ACC.1,ROW_1 JNB ACC.2,ROW_2 JNB ACC.3,ROW_3 RL A ;prepare to conect next col to ground INC R7 CJNE R7,#4,CONT ;4 col is conected to ground one after another SJMP SCAN ROW_0: ;row = 0,col = MOV A,R7 ADD A,#0 ;A = 0+R7 SJMP EXIT ROW_1: ;row = 1,col = R7 MOV A,R7 ADD A,#4 ;A = 4+R7 SJMP EXIT ROW_2: 212 MOV A,R7 ;row = 2,col = R7 ADD A,#8 ;A = 8+R7 SJMP EXIT ROW_3: MOV A,R7 ;row = 3,col = R7 ADD A,#12 ;A = 12+R7 SJMP EXIT EXIT: MOV PASS,A LOVE3: MOV A,P0 ANL A,#0FH CJNE A,#0FH,LOVE3 MOV A,PASS ;MOV A,#00101010B POP 07H RET ;*****************************DELAY********************* DELAY: PUSH 4H PUSH 2H MOV R2,#0FFH LOOPDE1: MOV R4,#0FFH DJNZ R4,$ DJNZ R2,LOOPDE1 POP 2H POP 4H RET DELAY50MS: 213 PUSH 00H MOV R0,#50 MOV TMOD,#01H STINGA: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,STINGA POP 00H RET CHAY_CHU: ACALL LCDINIT ACALL DISP_SLINE MP1: DONG ;KHOI TAO LCD ;HIEN THI DONG ;XU LY DICH CHUYEN DU LIEU HIEN THI CHO MOV DPTR,#FLINE_DATA ;NAP DIA CHI VUNG DU LIEU DONG CUA LCD SHIFT: ACALL DISP_FLINE MOV R1,#10 ;HIEN THI DONG ;DELAY 500MS DEL500: MOV TH0,#HIGH(-10000) MOV TL0,#LOW(-10000) ACALL DELAYA DJNZ R1,DEL500 THAI MAN HINH LCD ;THOI GIAN DUNG YEN CUA MOT TRANG INC DPTR DONG CHU ;TANG GIA TRI DPTR DE DICH CHUYEN 214 MOV A,DPL CHU RA MAN HINH LCD ;KIEM TRA DA DICH XONG DONG CJNE A,#LOW(FLINE_DATA+80),SHIFT MOV A,DPH CJNE A,#HIGH(FLINE_DATA+80),SHIFT LJMP MAIN1 ;*************************************************** LCDINIT: ;CTC KHOI TAO LCD CLR RS ;RS = - GUI LENH CLR RW ;RW = - WRITE LCD MODE SETB EN ;E = - ENABLE MOV DATABUS,#38H ;CODE = 38H - BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD MOV TH0,#HIGH(-4100) MOV TL0,#LOW(-4100) ACALL DELAYA ;DELAY 4.1MS MOV DATABUS,#38H ;CODE = 38H - BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD MOV TH0,#HIGH(-100) MOV TL0,#LOW(-100) ACALL DELAYA ;DELAY 100US MOV DATABUS,#38H ;CODE = 38H - BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD MOV DATABUS,#0CH ;CODE = 0CH - CHO PHEP LCD HIEN THI ACALL SENDCOMMAND ;GUI LENH RA LCD MOV DATABUS,#01H ;CODE = 01H - XOA LCD ACALL SENDCOMMAND 215 ;GUI LENH RA LCD MOV DATABUS,#06H ;CODE = 06H - TU TANG DIA CHI HIEN THI, TAT DICH CHUYEN HIEN THI ACALL SENDCOMMAND ;GUI LENH RA LCD RET ;*************************************************** SENDCOMMAND: ;CTC GUI LENH (SENDCOMMAND) VA GUI DU LIEU (SENDDATA) RA LCD CLR RS ;RS = - GUI LENH SJMP PULSE_ENA SENDDATA: SETB RS ;RS = - GUI DU LIEU NOP PULSE_ENA: ;TAO XUNG CHUYEN THONG TIN (COMMAND/DATA) VAO LCD CLR RW ;RW = - WRITE LCD MODE CLR EN ;EN = ENABLE DE NOP SETB EN ;EN = - XUNG ENABLE NOP ;KIEM TRA CO BAO BAN (BUSY FLAG) DE DAM BAO HOAN TAT VIEC LCD GHI NHAN THONG TIN GUI DEN ;*********************************************************** ** MOV TH0,#HIGH(-1000) ;LENH NAY DUOC THAY THE CHO DOAN MA KIEM TRA DUOI DAY KHI MOV TL0,#LOW(-1000) ACALL DELAYA RET ;*************************************************** DISP_FLINE: 216 MOV DATABUS,#80H ACALL SENDCOMMAND ACALL WRITE RET ;*************************************************** DISP_SLINE: MOV DATABUS,#0C0H ACALL SENDCOMMAND MOV DPTR,#SLINE_DATA ACALL WRITE RET ;*************************************************** WRITE: MOV R0,#0 WR1: MOV A,R0 MOVC A,@A+DPTR MOV DATABUS,A ACALL SENDDATA INC R0 CJNE R0,#16,WR1 RET ;*************************************************** DELAYA: MOV TMOD,#01H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 RET 217 FLINE_DATA: DB ' ' DB 'CHAO MUNG BAN DEN VOI HE THONG KHOA SO BANG PASSWORD CUA NHOM ' DB ' ' SLINE_DATA: DB ' Welcome ' THONG_BAO: ACALL LCDINIT1 ACALL DISP_SLINE1 MP11: MOV DPTR,#FLINE_DATA1 SHIFT1: ACALL DISP_FLINE1 MOV R1,#5 DEL5001: MOV TH0,#HIGH(-10000) MOV TL0,#LOW(-10000) ACALL DELAY1 DJNZ R1,DEL5001 INC DPTR MOV A,DPL CJNE A,#LOW(FLINE_DATA1+102),SHIFT1 MOV A,DPH CJNE A,#HIGH(FLINE_DATA1+102),SHIFT1 RET ;*************************************************** LCDINIT1: ;CTC KHOI TAO LCD CLR RS CLR RW 218 SETB EN MOV DATABUS,#38H ACALL SENDCOMMAND1 MOV TH0,#HIGH(-4100) MOV TL0,#LOW(-4100) ACALL DELAY1 ;DELAY 4.1MS MOV DATABUS,#38H ACALL SENDCOMMAND1 ;GUI LENH RA LCD MOV TH0,#HIGH(-100) MOV TL0,#LOW(-100) ACALL DELAY1 ;DELAY 100US MOV DATABUS,#38H ACALL SENDCOMMAND1 ;GUI LENH RA LCD MOV DATABUS,#0CH ACALL SENDCOMMAND1 ;GUI LENH RA LCD MOV DATABUS,#01H ACALL SENDCOMMAND1 ;GUI LENH RA LCD MOV DATABUS,#06H ACALL SENDCOMMAND1 ;GUI LENH RA LCD RET ;*************************************************** SENDCOMMAND1: CLR RS ;RS = - GUI LENH SJMP PULSE_EN1 SENDDATA1: SETB RS ;RS = - GUI DU LIEU NOP PULSE_EN1: CLR RW ;RW = - WRITE LCD MODE CLR EN ;EN = 219 NOP SETB EN ;EN = - XUNG ENABLE NOP ;KIEM TRA CO BAO BAN (BUSY FLAG) DE DAM BAO HOAN TAT VIEC LCD GHI NHAN THONG TIN GUI DEN ;*********************************************************** ** MOV TH0,#HIGH(-1000) MOV TL0,#LOW(-1000) ACALL DELAY1 RET ;*************************************************** DISP_FLINE1: MOV DATABUS,#80H ACALL SENDCOMMAND1 ACALL WRITE1 ;GUI LENH RA LCD ;GUI VUNG DU LIEU SANG LCD RET ;*************************************************** DISP_SLINE1: MOV DATABUS,#0C0H ACALL SENDCOMMAND1 ;GUI LENH RA LCD MOV DPTR,#SLINE_DATA1 ACALL WRITE1 RET ;*************************************************** WRITE1: MOV R0,#0 WR11: MOV A,R0 ;NAP OFFSET 220 MOVC A,@A+DPTR ;LAY DU LIEU TU VUNG DU LIEU MOV DATABUS,A ACALL SENDDATA1 INC R0 ;GUI DU LIEU RA LCD ;CHUYEN SANG DU LIEU KE TIEP CJNE R0,#16,WR11 RET ;*************************************************** DELAY1: MOV TMOD,#01H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 RET ;*************************************************** FLINE_DATA1: DB ' ;DU LIEU HIEN THI DONG ' DB ' Ban Da Quen Pass Vui Long Dung Ngoai Cho Neu La Trom Thi Vui Long Pha Khoa Hi' DB ' SLINE_DATA1: DB ' ;DU LIEU HIEN THI DONG ' Keypad Locked ' AAAA: MOV DATABUS,#0C0H LCALL GUI_LENH MOV A,#11111110B ;HIEN THI DAU CACH LCALL GUI_DATA MOV A,#11111110B LCALL GUI_DATA MOV A,#11111110B 221 LCALL GUI_DATA MOV A,#11111110B LCALL GUI_DATA MOV A,#01010111B LCALL GUI_DATA MOV A,#01100101B LCALL GUI_DATA MOV A,#01101100B LCALL GUI_DATA MOV A,#01100011B LCALL GUI_DATA MOV A,#01101111B LCALL GUI_DATA MOV A,#01101101B LCALL GUI_DATA MOV A,#01100101B LCALL GUI_DATA RET STRINGCODE: DB ' Nhap Password ' DB ' Pass Sai Rui ' DB ' Keypad Locked ' DB 'Open The Door ' DB ' Correct ' DATACODE1: DB ' Nhap Pass Cu ' DATACODE2: DB ' Nhap Pass Moi ' END 222 TÀI LIỆU THAM KHẢO [1] Thiết kế chương trình ứng dụng dựa ngơn ngữ C , Yoon, Kun Su KorPolytechnics [2] Đề cương môđun/môn học nghề Sửa chữa thiết bị điện tử công nghiệp”, Dự án Giáo dục kỹ thuật Dạy nghề (VTEP), Tổng cục Dạy Nghề, Hà Nội, 2003 [3] Microprocessor and IC families - Walter H Buchbaum Sc.D [4] Mikrocompute Lehrbuch - HPI Fachbuchreihen Pflaum Verlag Munchen [5] 8051 Development Boad, Rev - Paul Stoffregen [6] Họ vi điều khiển - Tống văn On - Đại học Bách khoa TP.HCM - 2005 223 ... www.dalsemi.com 1.2 Vi điều khiển (microcontroller) 1.2.1 Nguyên lý, cấu tạo a Cấu tạo vi điều khiển Vi điều khiển máy tính tích hợp chíp, thường sử dụng để điều khiển thiết bị điện tử Vi điều khiển thực... ban đầu Điều có nghĩa chương trình vi? ??t cho phiên 8051 chạy với phiên khác không phụ thuộc vào hãng sản xuất Các loại vi điều khiển khác: vi điều khiển AVR, vi điều khiển PIC, vi điều khiển MCUs... Chip Vi điều khiển sử dụng rộng rãi giới Vi? ??t Nam Vi điều khiển của hãng Atmel với nhiều chủng loại vi điều khiển khác Hãng Atmel có chip Vi điều khiển có tính tương tự chip Vi điều khiển MCS-51

Ngày đăng: 05/01/2023, 17:19

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN