Tiểu luận Màn hình quảng cáo ở chế độ văn bản sử dụng màn hình LCD có sử dụng giao tiếp bàn phím

27 232 0
Tiểu luận Màn hình quảng cáo ở chế độ văn bản sử dụng màn hình LCD có sử dụng giao tiếp bàn phím

Đ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

Header Page of 126 Bài tập lớn môn Vi Xử Lý Tiểu luận Màn hình quảng cáo chế độ văn sử dụng hình LCD có sử dụng giao tiếp bàn phím Footer Page of 126 Header Page of 126 Bài tập lớn môn Vi Xử Lý LỜI NÓI ĐẦU Trong phát triển kỹ thuật điện tử ngày việc sử dụng vi điều khiển hệ thống điện tử phổ biến số lượng ứng dụng nhiều thiết bị điện tử từ dân dụng chuyên dụng, nhiều lĩnh vực đo lường, điều khiển, v.v nhờ vào nhiều ưu điểm Cùng với phát triển kỹ thuật số với tảng mạch logic số dựa kết hợp cổng logic mà ngày tích hợp IC số Việc sử dụng hình LCD để hiển thị thông tin nhằm mục đích thông báo, quảng cáo, nơi công cộng sử dụng rộng rãi Trên sở kiến thức học môn học kỹ thuật vi xử lý Kỹ thuật số chúng em thiết kế mạch logic số sử dụng vi điều khiển với tên đề tài đầy đủ là: Màn hình quảng cáo chế độ văn sử dụng hình LCD có sử dụng giao tiếp bàn phím với mục đích tìm hiểu thêm vi điều khiểnvà lĩnh vực kỹ thuật số, nâng cao kiến thức Do kiến thức hạn hẹp thời gian thực không nhiều nên đề tài chúng em nhiều sai sót, hạn chế Mặc dù cố gắng phần thiết kế tính toán cách chi tiết mạch, thông số mang tính lý thuyết, chưa thực tế Chúng em mong có góp ý sửa chữa để đề tài có tính khả thi phương diện kinh tế kỹ thuật Hà Nội 4/2006 Nhóm sinh viên thực hiện: HOÀNG NGỌC ANH DƯƠNG THÀNH PHAO NGUYỄN HOÀNG HẢI A NGUYỄN HOÀNG HẢI B NGUYỄN HỮU HẢI Lớp Điện Tử 2-K48 ĐHBKHN PHẦN I:VI ĐIỀU KHIỂN 8051 Footer Page of 126 Header Page of 126 Bài tập lớn môn Vi Xử Lý Bộ vi điều khiển 8051 thành viên họ 8051 EXTERNAL INTERRUPTS ETC ON - CHIP RAM TIMER TIMER I/O PORTS SERIAL PORT P P P P TXD RXD COUNTER INPUTS INTERRUP T CONTROL CPU OSC BUS CONTROL ADDRESS/DAT Bố trí bên sơ đồ khối 8051 A 1.Bên 8051 Trong phần nghiên cứu ghi 8051 trình bày cách sử dụng với lệnh đơn giản MOV ADD 1.1 Các ghi Trong CPU ghi dùng để lưu cất thông tin tạm thời, thông tin byte liệu cần sử lý địa đến liệu cần nạp Phần lớn ghi 8051 ghi bit Trong 8051 có kiểu liệu: Loại bit, bit ghi trình bày sau: D7 D6 D5 D4 D3 D2 D1 D0 với MSB bit có giá trị cao D7 LSB bit có giá trị thấp D0 (MSB Most Sigfican bit LSB - Leart Significant Bit) Với kiểu liệu bit liệu lớn bit phải chia thành khúc bit trước xử lý Vì có số lượng lớn ghi 8051 ta tập trung vào số ghi công dụng chung đặc biệt chương Footer Page of 126 Header Page of 126 Bài tập lớn môn Vi Xử Lý Các ghi sử dụng rộng rãi 8051 A (thanh ghi tích luỹ), B, R0 - R7, DPTR (con trỏ liệu) PC (bộ đếm chương trình) Tất liệu g hi bit trừ DPTR PC 16 bit Thanh ghi tích luỹ A sử dụng cho tất phép toán số học lô-gíc Mô tả chân 8051 Mặc dù thành viên họ 8051 (ví dụ 8751, 89C51, DS5000) Tuy nhiên, hầu hết nhà phát triển sử dụng chíp đóng vỏ 40 chân với hai hàng chân DIP nên ta tập chung mô tả phiên P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST (RXD) P3.0 (TXD) P3.1 (NT0) P3.2 (NT1) P3.3 (T0) P3.4 (T1) P3.5 (WR) P3.6 (RD) P3.7 XTAL XTAL1 GND 10 11 12 13 14 15 16 17 18 19 20 8051 (8031) 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 Vcc P0.0 (AD0) P0.1 (AD1) P0.2 (AD2) P0.3 (AD3) P0.4 (AD4) P0.5 (AD5) P0.6 (AD6) P0.6 (AD6) EA/CP ALE/PRO PSEN P2.7 (A15) P2.6 (A14) P2.5 (A13) P2.4(A12) P2.3 (A11) P2.2 (A10) P2.1 (A9) P2.0 (AB) Sơ đồ bố trí chân 8051 Trên hình sơ đồ bố trí chân 8051 Ta thấy 40 chân có 32 chân dành cho cổng P0, P1, P2 P3 với cổng có chân Các chân lại dành cho nguồn VCC, đất GND, chângiao động XTAL1 XTAL2 tái lập RST cho phép chốt địa ALE truy cập địa EA , cho phép cất chương trình PSEN Trong chân chân VCC , GND, XTAL1, XTAL2, RST EA họ Footer Page of 126 Header Page of 126 Bài tập lớn môn Vi Xử Lý 8031 8051 sử dụng Hay nói cách khác chúng phải nối hệ thống làm việc mà không cần biết vi điều khiển thuộc họ 8051 hay 8031 Còn hai chân khác PSEN ALE sử dụng chủ yếu hệ thống dựa 8031 CÁC CHẾ ĐỘ ĐÁNH ĐỊA CHỈ CỦA 8051 Các chế độ đánh địa khác vi xử lý xác định thiết kế người lập trình đánh địa khác là: tức thời Theo ghi Trực tiếp gián tiếp qua ghi Theo số Các chế độ đánh địa tức thời theo ghi 1.1 Chế độ đánh địa tức thời Trong chế độ đánh địa toán hạng nguồn số Và tên gọi lệnh hợp dịch toán hạng tức thi sau mã lệnh Lưu ý trước liệu tức thời phải đặt dấu (#) chế độ đánh địa dùng để nạp thông tin vào ghi kể ghi trỏ liệu DPTR 1.2 chế độ đánh địa theo ghi: Chế độ đánh địa theo ghi liên quan đến việc sử dụng ghi để liệu cần thao tác ví dụ đánh địa theo ghi sau: MOV A, RO ; Sao nội dung ghi RO vào ghi A Cũng nên lưu ý ghi nguồn đích phải phù hợp kích thước Hay nói cách khác, viết “ MOV DPTR, A” cho lỗi nguồn ghi bit đích lại ghi 16 bit Xét đoạn mã sau: MOV DPTR, #25F5H Để ý ta chuyển liệu ghi tích luỹ A ghi Rn (n từ đến 7) việc chuyển liệu ghi Rn không phép Ví dụ, lệnh “MOV R4, R7” không hợp lệ Truy cập nhớ sử dụng chế độ đánh địa khác 2.1 Chế độ đánh địa trực tiếp Như nói chương 8051 có 128 byte nhớ RAM Bộ nhớ RAM gán địa từ 00 đến FFH phân chia sau: Các ngăn nhớ từ 00 đến 1FH gán cho băng ghi ngăn xếp Các ngăn nhớ từ 20H đến 2FH dành cho không gian đánh địa theo bit để lưu liệu bit Các ngăn nhớ từ 30H đến 7FH không gian để lưu liệu có kích thước 1byte Mặc dù toàn byte nhớ RAM truy cập chế độ đánh địa trực tiếp, chế độ thường sử dụng để truy cập ngăn nhớ RAM từ 30H đến 7FH Đây thực tế ngăn nhớ dành cho băng ghi truy cập ghi theo tên gọi chúng R0 - R7 ngăn nhớ khác RAM tên Trong chế độ đánh địa trực tiếp liệu ngăn nhớ RAM mà địa biết địa cho Footer Page of 126 Header Page of 126 Bài tập lớn môn Vi Xử Lý phần lệnh Khác với chế độ đánh địa tức mà toán hạng tự cấp với lệnh Dấu (# phân biệt hai chế độ đánh địa *Các ghi đánh địa theo bit Xét theo chế độ đánh địa trực tiếp cần phải lưu ý giá trị địa giới hạn đến 1byte, 00 - FFH Điều có nghĩa việc sử dụng chế độ đánh địa bị giới hạn việc truy cập vị trí ngăn nhớ RAM ghi với địa cho bên 8051 2.3 Ngăn xếp chế độ đánh địa trực tiếp Một công dụng khác chế độ đánh địa trực tiếp ngăn xếp Trong họ 8051 có chế độ đánh địa trực tiếp phép đẩy vào ngăn xếp Do vậy, lệnh “PVSH A” không hợp lệ Việc đẩy ghi A vào ngăn xếp phải viết dạng “PVAH 0E0H” với 0E0H địa ghi A Tương tự để đẩy ghi R3 rãnh vào ngăn xếp ta phải viết “PVSH 03” Chế độ đánh địa trực tiếp phải sử dụng cho lệnh POP Vì dụ “POP 04” kéo đỉnh ngăn xếp vào ghi R4 rãnh 2.4 chế độ đánh địa gián tiếp ghi Trong chế độ này, ghi sử dụng trỏ đến liệu Nếu liệu bên CPU ghi R0 R1 sử dụng cho mục đích Hay nói cách khác ghi R2 - R7 không dùng để giữ địa toán hạng nằm RAM sử dụng chế độ đánh địa Ro R1 dùng trỏ, nghĩa chúng giữ địa ngăn nhớ RAM trước chúng phải đặt dấu (@) MOV A, @ R0; Chuyển nội dung ngăn nhớ RAM có địa RO A Lưu ý R0 R1 có dấu “@” đứng trước Khi dấu lệnh chuyển nội dung ghi Ro R1 liệu ngăn nhớ mà địa có R0 R1 12.1 Phối ghép LCD với 8051 phần ta mô tả chế độ hoạt động LCD sau mô tả cách lập trình phối ghép LCD tới 8051 12.1.2 Các chân LCD Bảng 2.1: Mô tả chân LCD Chân Ký hiệu I/O VSS - Đất VCC - Dương nguồn 5v VEE - Cấp nguồn điều khiển phản Footer Page of 126 Mô tả Header Page of 126 Bài tập lớn môn Vi Xử Lý RS I RS = chọn ghi lệnh RS = chọn liệu R/W I R/W = đọc liệu R/W = ghi E I/O Cho phép DB0 I/O Các bít liệu DB1 I/O Các bít liệu DB2 I/O Các bít liệu 10 DB3 I/O Các bít liệu 11 DB4 I/O Các bít liệu 12 DB5 I/O Các bít liệu 13 DB6 I/O Các bít liệu 14 DB7 I/O Các bít liệu 15 A - Anode 16 K - Kathode LCD nói mục có 14 chân, chức chân cho bảng 12.1 Vị trí chân mô tả hình 12.1 cho nhiều LCD khác Chân VCC, VSS VEE: Các chân VCC, VSS VEE: Cấp dương nguồn - 5v đất tương ứng VEE dùng để điều khiển độ tương phản LCD Chân chọn ghi RS (Register Select) Có hai ghi quan trọng bên LCD, chân RS dùng để chọn ghi sau: Nếu RS = ghi mà lệnh chọn phép người dùng gửi lệnh chẳng hạn xoá hình, đưa trỏ đầu dòng v.v… Nếu RS = ghi liệu chọn cho phép người dùng gửi liệu cần hiển thị LCD Chân đọc/ ghi (R/W) Đầu vào đọc/ ghi cho phép người dùng ghi thông tin lên LCD R/W = đọc thông tin từ R/W = Chân cho phép E (Enable) Chân cho phép E sử dụng LCD để chốt thông tin hữu chân liệu Khi liệu cấp đến chân liệu xung mức cao xuống thấp phải áp đến chân để LCD chốt liệu chân liêu Xung phải rộng tối thiểu 450ns Footer Page of 126 Header Page of 126 Bài tập lớn môn Vi Xử Lý Chân D0 - D7 Đây chân liệu bít, dùng để gửi thông tin lên LCD đọc nội dung ghi LCD Để hiển thị chữ số bật RS = Cũng có mã lệnh mà gửi đến LCD để xoá hình đưa trỏ đầu dòng nhấp nháy trỏ Bảng 12.2 liệt kê mã lênh Chúng ta sử dụng RS = để kiểm tra bít cờ bận để xem LCD có sẵn sàng nhân thông tin Cờ bận D7 đọc R/W = RS = sau: Nếu R/W = 1, RS = D7 = (cờ bận 1) LCD bận công việc bên không nhận thông tin Khi D7 = LCD sẵn sàng nhận thông tin Lưu ý nên kiểm tra cờ bận trước ghi liệu lên LCD 12.1.3 Gửi lệnh liệu đến LCD với độ trễ Để gửi lệnh từ bảng 12.2 đến LCD ta phải đưa chân RS Đối với liệu bật RS = sau gửi sườn xung cao xuống thấp đến chân E phép chốt liệu LCD Điều đoạn mã chương trình (xem hình 12.2) LCD 8051 D0 +5v VCC VEE P1.0 D7 VSS RS R/W E P1.0 P2.1 P2.2 Hình 12.2: Nối ghép LCD 12.1.4 Gửi mã lệnh liệu đến LCD có kiểm tra cờ Bảng 2.2: Các mã lệnh LCD Mã (Hex) Footer Page of 126 Lệnh đến ghi LCD Xoá hình hiển thị 10K POT Header Page of 126 Bài tập lớn môn Vi Xử Lý Trở đầu dòng Giảm trỏ (dịch trỏ sang trái) Tăng trỏ (dịch trỏ sang phải) Dịch hiển thị sang phải Dịch hiển thị sang trái Tắt trỏ, tắt hiển thị A Tắt hiển thị, bật trỏ C Bật hiển thị, tắt trỏ E Bật hiển thị, nhấp nháy trỏ F Tắt trỏ, nhấp nháy trỏ 10 Dịch vị trí trỏ sang trái 14 Dịch vị trí trỏ sang phải 18 Dịch toàn hiển thị sang trái 1C Dịch toàn hiển thị sang phải 80 Đa trỏ đầu dòng thứ C0 Đa trỏ đầu dòng thứ hai 38 Hai dòng ma trận  Đoạn chương trình cách gửi lệnh đến LCD mà kiểm tra cờ bận (Busy Flag) Lưu ý phải đặt độ trễ lớn ảtình xuất liệu lệnh LCD Tuy nhiên, cách tốt nhiều hiển thị cờ bận trước xuất lệnh liệu tới LCD Dưới chương trình ; Kiểm tra cờ bận trước gửi liệu, lệnh LCD Lưu ý chương trình cờ bận D7 ghi lệnh Để đọc ghi lệnh ta phải đặt RS = 0, R/W = xung cao - xuống - thấp cho bít E để cấp ghi lệnh cho Sau đọc ghi lệnh, bít D7 (cờ bận) mức cao LCD bận thông tin (lệnh) xuất đến D7 = gửi liệu lệnh đến LCD Lưu ý phương phát không sử dụng độ trễ thời gian ta kiểm tra cờ bận trước xuất lệnh liệu lên LCD 13.2 Phối ghép 8051 với bàn phím 13.2.1 Phối ghép bàn phím với 8051 mức thấp bàn phím tổ chức dạng ma trận hàng cột CPU truy cập hàng lẫn cột thông qua cổng Do vậy, với hai cổng bít Footer Page of 126 Header Page 10 of 126 Bài tập lớn môn Vi Xử Lý 2 2 2 1 1 2 2 1 C D D3 E F A D2 B 2 D1 2 DO 2 2 nối tới bàn phím  tới vi xử lý Khi phím ấn hàng cột tiếp xúc, tiếp xúc hàng cột Trong bàn phím máy tính IBM PC có vi điều khiển (bao gồm vi xử lý, nhớ RAM EPROM số cổng tất bố trí chíp) chịu trách nhiệm phối ghép phần cứng phần mềm bàn phím Trong hệ thống vậy, chức chương trình lưu EPROM vi điều khiển để quét liên tục phím, xác định xem phím kích hoạt gửi đến bo mạch Trong phần nghiên cứu cấu 8051 quét xác định phím 13.2.2 Quét xác định phím VCC_CIRCLE D3 D2 D1 DO CONG VAO CONG RA Hình 1.1: Nối ghép bàn phím ma trận tới cổng Các hàng nối tới đầu cột nối tới cổng vào Nếu phím ấn việc đóng cổng vào hoàn toàn cho tất cột tất nối tới dương nguồn VCC Nếu tất hàng nối đất phím ấn cột có giá trị phím ấn tạo đường xuống đất Chức vi điều khiển quét liên tục để phát xác định phím ấn 13.2.3 Nối đất hàng đọc cột Để phát phím ấn vi điều khiển nối đất tất hàng cách cấp tơí chốt đầu ra, sau đọc hàng Nếu đọc từ cột D3 D0 = 1101 phím ấn trình tiếp tục phát phím ấn Tuy nhiên, bít cột có số điều có nghĩa Footer Page 10 of 126 10 Header Page 13 of 126 Bài tập lớn môn Vi Xử Lý Do kiến thức hạn chế nên khoảng thời gian học kỳ, chúng em định làm phương án Khối nhập liệu ( Bàn phím) Khối hiển thị Khối lưu trữ (ROM + RAM) Khối giải mã Khối xử lý trung tâm Khối khuếch đại Nguyên lý làm việc mạch: Khi khởi động mạch, khối xử lý trung tâm lấy liệu lưu trữ từ nhớ ROM Để khối xử lý quy chiếu xác đến địa liệu lưu trữ ROM, ta dùng giải mã địa Sau xử lý quy chiếu đến liệu ROM, liệu đưa từ ROM xử lý Trong vi xử lý, liệu xử lý (trễ, lặp, xuất port,…) Dữ liệu nhập từ bàn phím vi điều khiển quét xãc định phím ấn xẽ gửi mã ASCII cuả phím ấn đến vi xử lý Sau liệu xử lý bên vi xử lý, xuất port vi xử lý Các port lại nối tới chân tương ứng hình LCD Lựa chọn linh kiện để lắp mạch:  IC AT89C51  BÀN PHÍM 4X4 Footer Page 13 of 126 13 Header Page 14 of 126 Bài tập lớn môn Vi Xử Lý  LCD 16X2  BỘ DAO ĐỘNG THẠCH ANH TẦN SỐ 12 MHZ  CÁC ĐIỆN TRỞ VÀ CÁC TỤ ĐIỆN PHẦN IV : THIẾT KẾ CHƯƠNG TRìNH CHO VI ĐIỀU KHIỂN I THUẬT TOÁN Theo nguyên lý thiết kế phần cứng mạch quảng cáo, xẽ xây dựng thuật toán cho chương trình điều khiển để nạp vào vi điều khiển AT89C51 Trong sơ đồ nguyên lý, liệu từ Port xuất chân liệu tương ứng LCD Ba chân p3.0,p3.1,p3.4 xẽ nối với chân RS,EN,RW LCD Port có chân sử dụng để lối với chân bàn phím Như mục đích chương trình - Điều khiển việc nhập liệu từ bàn phím vào vi điều khiển +trước tiên xác định phím bấm việc cho hành nối đất cột nối mức cao +sau xác định mã ASCII phím đựơc ấn gửi đến vi xử lý - Điều khiển để dòng chữ nhập từ bàn phím nhấn phím # kết thúc nhập cho dòng chữ nhập từ bàn phím nhấp nháy hình LCD sau cho chữ chạy từ trái qua phải Đầu tiên cần phải khai báo liệu(nạp liệu vào ô nhớ Rom 8951) nhập theo tong byte.Các byte xẽ cất vào ô nhớ liên tiếp nhớ rom vi điều khiển 89c51 muốn truy xuất liệu việc truy xuất vào ô nhớ đính địa Dữ liệu truy xuất, đưa Port để hiển thị chữ cách sau: Theo nguyên tắc: địa = đếm + trỏ Con trỏ mà sử dụng trỏ liệu DPTR Đầu tiên trỏ đặt địa đầu bảng liệu, đếm đếm địa offset , dựng ghi A chứa địa Và lệnh sau truy xuất vào liệu: MOVC A, @A+DPTR Khi việc xuất liệu từ chứa A Port Việc nhập liệu từ bàn phím trước hết cho hàng nối đất lấy cột làm đầu vào xem có phím bấm chưa Sau để xác định phím bấm ta cho tất hàng nối mức cao lấy cột làm đầu vào,sau cho hàng nối đất quét tất cột xem nhấn đâu ,sau làm lại với hàng lại Rồi lấy mã ASCII phím bấm gửi vi điều khiển xuất LCD,lưu ý phím hiển thị ký tự Footer Page 14 of 126 14 Header Page 15 of 126 Bài tập lớn môn Vi Xử Lý Khởi tạo LCD Xác định phím nhấn thuộc hàng Thông báo nhập liệu Xác định phím nhấn thuộc cột Thực giao tiếp với bàn phím Xác định vị trí phím nhấn Bắt đầu Xác định phím đợc nhấn lần Nối đất tất hàng Xác định từ mã Đọc tất cột Gửi lên LCD Tất phím thả Có nhấn phím kết thúc không Đọc tất cột Chạy quảng cáo Có phím nhấn Chờ phím nhấn xong Đọc tất cột Có phím nhấn SƠ ĐỒ THUẬT TOÁN CỦA CHƯƠNG TRÌNH Footer Page 15 of 126 15 Header Page 16 of 126 Bài tập lớn môn Vi Xử Lý II.SƠ ĐỒ NGUYÊN LÝ J3 CON2 J1 U4 39 38 37 36 35 34 33 32 J2 8 R1 R C4 19 18 Y2 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/T2 P1.1/T2-EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 XTAL1 XTAL2 RST 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/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD PSEN EA/VPP AT89C52 SW1 VCC C5 GND + 40 U2 C3 C1 ALE/PROG 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 10 11 12 13 14 CON14 29 30 20 C7 + VI GND LM7805 VO C6 C ON = + LCD1 C D 10 11 12 13 14 D0 D1 D2 D3 D4 D5 D6 D7 B RS RW E VSS VDD VEE + A LM016L II CHƯƠNG TRÌNH Chương trình lập trình ngôn ngữ lập trình ASSEMBLY ******************************************************** RS EN RW BIT BIT BIT Footer Page 16 of 126 P3.0 P3.1 P3.4 ;Bit P3.0 dung chon ghi lenh/du lieu ;Bit P3.1 dung lam chan 'Cho phep' ;Bit P3.4 dieu khien viec doc/ghi du lieu 16 Header Page 17 of 126 C1 C2 C3 H1 H2 H3 H4 BIT BIT BIT BIT BIT BIT BIT ORG Mainpro: LCALL LCALL LJMP Bài tập lớn môn Vi Xử Lý P1.2 P1.1 P1.0 P1.3 P1.4 P1.5 P1.6 ;Cac bit P1.2, P1.1, P1.0 lan luot noi voi ;cac cot tu - cua ban phim ;Cac bit P1.3 - P1.6 lan luot noi voi ; cac hang tu - cua ban phim Hien_Promt Nhap_Dulieu QuangCao Hien_Promt: ;1-Hien thi dau nhac nap du lieu ;Khoi tao LCD MOV A,#38H ;Che dong ma tran 5x7 LCALL COMMAND ;Thuc hien lenh MOV A,#0EH ;Bat hien thi nhap nhay tro LCALL COMMAND MOV A,#01H ;Xoa man hinh hien thi LCALL COMMAND ;gioi thieu cac vien lam de tai MOV DPTR,#900H ;Nap tro du lieu MOV R3,#7 ;R3 de chua so chuoi duoc hien thi AGAIN: LCALL GTTIEP ; GTIEP = gioi thieu tiep INC DPTR DJNZ R3,AGAIN LJMP Xoamanhinh GTTIEP: BACK1: CLR A MOVC A,@A+DPTR MOV R7,A ;Du cat vao R7 de phuc vu cho HIENTHI1 JZ TIEPTUC ;Chuyen sang nhap chuoi tiep theo LCALL HIENTHI1 LCALL DELAY LCALL DELAY INC DPTR SJMP BACK1 TIEPTUC: LCALL DELAY MOV A,#01 ;Xoa man hinh de hien thi chuoi moi Footer Page 17 of 126 17 Header Page 18 of 126 LCALL LCALL Bài tập lớn môn Vi Xử Lý COMMAND DELAY RET ; RET OF GTTIEP ;Chuong trinh xuat lenh COMMAND: LCALL READY ;Kiem tra co ban neu san sang MOV P2,A ;thi chuyen ma lenh cong P2 CLR RS ;RS =0 Cho xuat lenh CLR RW ;RW = O De gi lenh toi LCD SETB EN ;Chan E nhan duoc mot xung cao CLR EN ;xuong thap cho phep LCD chot lenh RET ; ret of COMMAND xoamanhinh: ;giu prompt mot luc, roi xoa man hinh de nhap du lieu LCALL DELAY MOV A,#01 LCALL COMMAND LJMP Nhap_dulieu ;Chuong trinh hien thi HIENTHI1: MOV A,#06H ;Chon huong hien thi sang ben phai LCALL COMMAND LCALL READY MOV P2,R7 SETB RS ;RS = De cho phep xuat du lieu CLR RW ;RW = De ghi du lieu LCD SETB EN ;Chan Enable nha mot xung cao CLR EN ;xuong thap de chot du lieu RET ;RET of HIENTHI1 ;Chuong trinh tao tre DELAY: MOV R6,#255 VONG2:MOV R7,#255 HERE: DJNZ R7,HERE DJNZ R6,VONG2 RET ; Kiem tra co ban READY: SETB P2.7 ;lay P2.7- chan co ban lam dau vao CLR RS ; RS =0 de truy cap ghi lenh SETB RW ; RW = Doc ghi lenh ;Doc ghi lenh va kiem tra co lenh BACK: CLR EN SETB EN Footer Page 18 of 126 18 Header Page 19 of 126 JB RET Bài tập lớn môn Vi Xử Lý P2.7,BACK ;cho cho den LCD het ban ;Of ready ;CHUONG TRINH CON GIAO TIEP VOI BAN PHIM ;P1.1 P1.2 P1.3 duoc noi voi cac cot ;P1.4 P1.5 P1.6 P1.7 duoc noi voi cac hang Nhap_Dulieu: ;Doan phuc vu cho viec luu Du lieu vao vung RAM da nang MOV R1,#30H ;R1 dung lam tro ram,phuc vu cho ; viec luu giu du lieu vao RAM MOV R2,#4FH ; lon khong gian RAM dan nang Xoaram: MOV @R1,#20H ;20h ma ASCII cua ky tu trang ' ' INC R1 DJNZ R2,Xoaram MOV R1,#30H MOV R5,#0 ;dem so ky tu hien tai dang hien thi tren LCD ;doan chi nhan biet xem la co phim nhan chua ; nen ta tiep dat tat ca cac hang batdau: MOV P1,#00000111b ;De co the nhan biet duoc phim da nhan ; chua ta dat cac bit tuong ung voi ;cac cot lam dau vao va cac bit tuong ;ung voi hang duoc noi dat MOV R0,#0 ;vi moi phim co the hien thi ky tu ;ta dung R0 de xac dinh so ky tu tren ; mot phim da duoc nhan la bao nhieu KT1: MOV A,P1 CJNE A,#00000111b,KT1 ;Kiem tra nha phim chua,neu chua ;kiem tra lai cho den nha phim KT2: LCALL DELAY MOV A,P1 ; De doc cac cot CJNE A,#00000111b,CHO1 ; Neu phim nhan cho xong SJMP KT2 ; Neu khong thi kiem tra lai xem no co duoc nhan ko CHO1: MOV LCALL CJNE R0,#0 DELAY ; Cho cho nhan xong A,#00000111b,CHO2 ;Neu co phim nhan thi nhay den ;CHO2 cho hien thi phim va ;tiep tuc kiem tra xem phim ; co duoc nhan tiep khong Footer Page 19 of 126 19 Header Page 20 of 126 SJMP Bài tập lớn môn Vi Xử Lý KT2 CHO2: INC LCALL LCALL LCALL MOV LCALL MOV CJNE MOV R0 ;Da co mot phim duoc nhan lan HIEN ; hien thi ky tu DELAY DELAY P1,#00000111B ;kiem tra co phim nhan tiep khong DELAY A,P1 A,#00000111b,CHO3 A,R4 ;luu ky tu duoc hien thi cuoi ;cung cua phim nhan vao RAM MOV @R1,A INC R1 INC R5 ;Doan dung de dich man hinh hien thi sang phai so ;ky tu da hien thi lon hon 16 CLR C MOV A,R5 SUBB A,#16 JC TIEP1 MOV A,#18H LCALL COMMAND ;het doan dich hien thi sang phai TIEP1:MOV R0,#0 SJMP KT2 CHO3:MOV LCALL INC LCALL LCALL LCALL MOV LCALL MOV CJNE MOV MOV INC INC CLR MOV SUBB JC MOV Footer Page 20 of 126 A,#10H COMMAND R0 HIEN DELAY DELAY P1,#00000111B DELAY A,P1 A,#00000111b,CHO4 A,R4 @R1,A R1 R5 C A,R5 A,#16 TIEP2 A,#18H 20 Header Page 21 of 126 LCALL TIEP2: MOV SJMP CHO4:MOV LCALL INC LCALL LCALL LCALL MOV LCALL MOV CJNE MOV MOV INC INC CLR MOV SUBB JC MOV LCALL Bài tập lớn môn Vi Xử Lý COMMAND R0,#0 KT2 A,#10H COMMAND R0 HIEN DELAY DELAY P1,#00000111B DELAY A,P1 A,#00000111b,CHO5 A,R4 @R1,A R1 R5 C A,R5 A,#16 TIEP3 A,#18H COMMAND TIEP3: MOV R0,#0 LJMP KT2 CHO5:MOV A,#10H LCALL COMMAND INC R0 LCALL HIEN LCALL DELAY LCALL DELAY MOV P1,#00000111B LCALL DELAY MOV A,P1 CJNE A,#00000111b,VONGVE MOV A,R4 MOV @R1,A INC R1 INC R5 CLR C MOV A,R5 SUBB A,#16 JC TIEP4 MOV A,#18H LCALL COMMAND Footer Page 21 of 126 21 Header Page 22 of 126 Bài tập lớn môn Vi Xử Lý TIEP4: MOV R0,#0 VONGVE: LJMP KT2 HIEN: Timhang: MOV P1,#11111111B ;DAU TIEN KO TIEP DAT HANG NAO ;VA DAT CAC COT LAM DAU VAO CLR H1 ;Tiep dat hang MOV A,P1 ;Doc tat ca cac cot CJNE A,#11110111b,HG1 ;Hang tim cot (ro rang la cac hang tuong ung voi bit ;dau la co dinh=11110 chi tiep dat hang1, tai day ;ta chi can quan tam den phim co phai o hang khong thoi ; boi vay chi can co cot duoc nhan se lam cho ;1 cot tiep dat dan den bit dau =0 nhu vay ; gia tri A se khac #11110111 chung to phim nhan ; o hang va ta tiep tuc xac dinh phim o cot nao MOV P1,#11111111B CLR H2 ;Tiep dat hang MOV A,P1 ;Doc tat ca cac cot CJNE A,#11101111b,HG2 ;Hang tim cot MOV CLR MOV CJNE P1,#11111111B H3 ;Tiep dat hang A,P1 ;Doc tat ca cac cot A,#11011111b,HG3 ;Hang tim cot MOV CLR MOV CJNE LJMP P1,#11111111B H4 ;Tiep dat hang A,P1 ;Doc tat ca cac cot A,#10111111b,HG4 ;Hang tim cot KT2 HG1: CJNE MOV LJMP DT12: CJNE MOV LJMP R0,#1,DT12 DPTR,#DATA11 TIM ;Tim xem phim nhan o cot nao R0,#2,DT13 DPTR,#DATA12 TIM DT13: CJNE R0,#3,DT14 MOV DPTR,#DATA13 LJMP TIM ;Neu khong phai la cac truong hop tren thi R0 = ; ta tim luon den data14 DT14: MOV DPTR,#DATA14 Footer Page 22 of 126 22 Header Page 23 of 126 LJMP HG2: CJNE MOV LJMP Bài tập lớn môn Vi Xử Lý TIM R0,#1,DT22 DPTR,#DATA21 TIM DT22: CJNE R0,#2,DT23 MOV DPTR,#DATA22 SJMP TIM DT23: CJNE MOV SJMP DT24: MOV SJMP HG3: CJNE MOV SJMP R0,#3,DT24 DPTR,#DATA23 TIM DPTR,#DATA24 TIM R0,#1,DT32 DPTR,#DATA31 TIM DT32: CJNE R0,#2,DT33 MOV DPTR,#DATA32 SJMP TIM DT33: CJNE MOV SJMP DT34: MOV SJMP HG4: CJNE MOV SJMP R0,#3,DT34 DPTR,#DATA33 TIM DPTR,#DATA34 TIM R0,#1,DT42 DPTR,#DATA41 TIM DT42: CJNE R0,#2,DT43 MOV DPTR,#DATA42 SJMP TIM DT43: CJNE MOV SJMP R0,#3,DT44 DPTR,#DATA43 TIM DT44: MOV DPTR,#DATA44 SJMP TIM TIM: RRC A ;Kiem tra cot nao o muc thap nho co CY JNC LAYMA ;Neu bang thi lay ma ASCII Footer Page 23 of 126 23 Header Page 24 of 126 INC SJMP LAYMA:CLR MOVC JZ MOV Bài tập lớn môn Vi Xử Lý DPTR TIM ;Trai lai tim cot ke A A,@A + DPTR Ketthucnhap R4,A CJNE A,#23h,SS2 SJMP backspace SS2 : CJNE A,#24h,SS3 LCALL Xuongdong SS3 : LCALL HienThiPhimNhan VE: RET BACKSPACE: ;doan de xoa ca ky DEC R1 DEC R5 DEC R1 DEC R5 MOV A,@R1 MOV R4,A ;Doan de xoa ky tu MOV A,#10H LCALL COMMAND MOV A,#20H LCALL HIENTHIPHIMNHAN MOV A,#10H LCALL COMMAND LJMP VE ketthucnhap: LJMP quangcao ngoai ; a= '#' ,ta quy uoc la phim xoa ;quy uoc '$' la ma xuong dong ;hien thi phim da nhan ;OF HIEN tu da duoc luu RAM tren LCD ;dich tro sang phai mot cot ;chen ky tu trang vao vi tri ;lui ve cot ;do khoang cach tu doan lay ma ;den doan quangcao nam ;dai cua lenh JZ nen ta dung ;doan de noi tiep xuongdong: MOV A,#0C0H LCALL COMMAND LJMP VE Hienthiphimnhan: LCALL READY MOV P2,A SETB RS ;RS = De cho phep xuat du lieu CLR RW ;RW = De ghi du lieu LCD SETB EN ;Chan Enable nha mot xung cao CLR EN ;xuong thap de chot du lieu Footer Page 24 of 126 24 Header Page 25 of 126 Bài tập lớn môn Vi Xử Lý LCALL RET DELAY QUANGCAO: MOV A,R5 MOV R3,A ;Xoa tung ky tu CHAY1: Mov a,#10h Lcall command MOV A,#20h LCALL HIENTHIPHIMNHAN Mov a,#10h Lcall command LCALL DELAY LCALL DELAY DJNZ R5,CHAY1 ;hien thi lai tung ky tu MOV HTL: R1,#30H MOV A,@R1 MOV R7,A LCALL Hienthi1 LCALL DELAY LCALL DELAY LCALL DELAY INC R1 R3,HTL TIEP: DJNZ MOV R4,#5 FOREVER: MOV R4,#5 NHAPNHAY: Footer Page 25 of 126 MOV A,#0AH ;Xoa man hinh hien thi LCALL COMMAND LCALL DELAY ;de man hinh tat mot luc LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY MOV A,#0eH ;Bat man hinh hien thi LCALL COMMAND LCALL DELAY ; de mot luc LCALL DELAY 25 Header Page 26 of 126 Bài tập lớn môn Vi Xử Lý LCALL DELAY LCALL DELAY DJNZ R4,NHAPNHAY LCALL DELAY LCALL DELAY MOV R4,#40 ; vi LCD co 40 cot, nen cuoi cung ;hien thi se dich ve dung vi tri cu DichTrai: Mov A,#18H LCALL COMMAND LCALL DELAY LCALL DELAY LCALL DELAY DJNZ R4,DichTrai LCALL DELAY LCALL DELAY MOV R4,#40 DichPhai: Mov A,#1CH LCALL COMMAND LCALL DELAY LCALL DELAY DJNZ R4,DichPhai LJMP FOREVER ORG 900H DANHSACH: DB "Nhom thuc hien: ",0 SV1: DB "NGUYEN HOANG HAI",0 SV2: DB "HOANG NGOC ANH",0 SV3: DB "NGUYEN HUU HAI",0 SV4: DB "DUONG THANH PHAO",0 SV5: DB "NGUYEN HOANG HAI",0 DULIEU: DB "Nhap du lieu ",0 ORG DATA11: DATA12: DATA13: DATA14: 1000H DB '1','2','3' DB '1','A','D' DB '1','B','E' DB '1','C','F' DATA21: DATA22: DATA23: DB DB DB Footer Page 26 of 126 '4','5','6' 'G','J','M' 'H','K','N' 26 Header Page 27 of 126 Bài tập lớn môn Vi Xử Lý DATA24: DB 'I','L','O' DATA31: DATA32: DATA33: DATA34: DB DB DB DB '7','8','9' 'P','T','W' 'R','U','X' 'S','V','Y' DATA41: DATA42: DATA43: DATA44: DB DB DB DB '#',' ',0 ' ','0',0 '$','_',0 '#','@',0 END :Tài liệu tham khảo:  Kĩ thuật Vi xử lý Tác giả Văn Thế Minh  Cấu trúc lập trình họ vi điều khiển 8051 Tác giả Nguyễn Tăng Cường, Phan Quốc Thắng Footer Page 27 of 126 27 ... số chúng em thiết kế mạch logic số sử dụng vi điều khiển với tên đề tài đầy đủ là: Màn hình quảng cáo chế độ văn sử dụng hình LCD có sử dụng giao tiếp bàn phím với mục đích tìm hiểu thêm vi điều... cập Hình 1.2: Lưu đồ tìm phím ấn Bắt đầu Nối đất hàng Nối đất hàng Nối đất hàng Đọc cột Không Không Mọi phím hở Có Có Tìm phím đợc ấn Đọc cột Không Tìm phím đợc ấn Có phím ấn Trở Có Chờ nhả phím. .. viết “PVSH 03” Chế độ đánh địa trực tiếp phải sử dụng cho lệnh POP Vì dụ “POP 04” kéo đỉnh ngăn xếp vào ghi R4 rãnh 2.4 chế độ đánh địa gián tiếp ghi Trong chế độ này, ghi sử dụng trỏ đến liệu

Ngày đăng: 18/05/2017, 15:01

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan