Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
1,03 MB
Nội dung
lOMoARcPSD|9242611 BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ BÁO CÁO ĐỒ ÁN ĐỀ TÀI: MẠCH TẠO SỐ NGẪU NHIÊN SỬ DỤNG 8051 HIỂN THỊ TRÊN LCD Giảng viên hướng dẫn: Đặng Văn Hải Sinh viên thực hiện: Nguyễn Văn Ninh Lê Minh Tuấn Nguyễn Ngọc Huy Hà Nội, ngày 18 tháng 12 năm 2020 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 MỤC LỤC CHƯƠNG 1: TÌM HIỂU VỀ 8051 1.1 GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 8051 1.1.1 Sơ lược lịch sử 1.1.2 Cấu trúc vi điều khiển 8051 CHƯƠNG 2: TÌM HIỂU VỀ LCD 16X2 .19 2.1 TỔNG QUAN VỀ LCD 19 2.1.1 Giới thiệu LCD 19 2.1.2 Sơ đồ, chức năng, liên kết chân LCD 20 CHƯƠNG 3: THỰC HIỆN MƠ HÌNH ĐỒ ÁN 25 3.1 MẠCH NGUYÊN LÝ 25 3.2 MẠCH IN, 3D 25 3.3 CHƯƠNG TRÌNH CHÍNH 25 Kết luận 26 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 LỜI NÓI ĐẦU Trong thập niên cuối kỉ XX, từ đời công nghệ bán dẫn, kĩ thuật điện tử có phát triển vượt bậc Các thiết bị điện tử sau tích hợp với mật độ cao cao diện tích nhỏ, nhờ thiết bị điện tử nhỏ nhiều chức Các thiết bị điện tử ngày nhiều chức giá thành ngày rẻ hơn, điện tử có mặt khắp nơi Ngày nay, vi điều khiển có ứng dụng ngày rộng rãi thâm nhập ngày nhiều lĩnh vực kỹ thuật đời sống xã hội Hầu hết thiết bị kỹ thuật từ phức tạp đến đơn giản thiết bị điều khiển tự động, thiết bị văn phòng thiết bị gia đình có dùng vi điều khiển Rất nhiều họ vi điều khiển nhiều nhà chế tạo khác đưa thị trường Để tăng tính điều khiển, vi điều khiển không ngừng cải tiến, nâng cấp, chỉnh sửa tối ưu để phù hợp với công nghệ phát triển Đỉnh cao việc sử dụng vi điều khiển dùng người máy (Robot) thiết bị PLC để điều khiển logic chương trình hóa dây chuyền sản xuất tự động Và họ vi điều khiển ứng dụng rộng rãi ngày họ vi điều khiển 8051 Họ vi điều khiển 8051 ứng dụng thực tế phổ biến ứng dụng để điều khiển động cơ, điều khiển LED, điều khiển đèn giao thông, làm đếm sản phẩm, …trong nhiều ứng dụng nhóm sinh viên chúng em tham gia vào thực đề tài “MẠCH TẠO SỐ NGẪU NHIÊN SỬ DỤNG 8051 HIỂN THỊ TRÊN LCD” Trong trình thực làm chúng em chưa có kinh nghiệm nhiều nên cịn thiếu sót mong thầy (cơ) dạy chúng em thêm lần để chúng em thực đề tài thành công Chúng em xin chân thành cảm ơn!!! NHÓM SINH VIÊN THỰC HIỆN ĐỒ ÁN Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 CHƯƠNG 1: TÌM HIỂU VỀ 8051 1.1 GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 8051 1.1.1 Sơ lược lịch sử Bộ xử lý bit: Vào năm 1971, vi xử lý giới Intel mắt với tên gọi 4004 Hình 1.1 Vi điều khiển 4004 Intel 4004 vi xử lý 4-bit, 16 chân, hoạt động tốc độ 740KHz - khoảng tám chu kỳ đồng hồ cho chu kỳ lệnh (nhận lệnh, giải mã, thực hiện), chip có khả thực 46250 đến 92500 lệnh giây Bộ xử lý bit: Ra đời năm 1972 có tên Intel 8008 có tốc độ từ 200kHz đến 800kHz cao phiên cũ Vào năm 1981, Hãng Intel giới thiệu vi điều khiển 8-bit gọi 8051 Vi điều khiển trở nên phổ biến sau Intel cho phép nhà sản xuất khác sản xuất bán dạng biến 8051 mà họ thích với điều kiện họ phải để mã lại tương thích với 8051 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 Hình 1.2 Vi điều khiển 8051 Bộ xử lý 64 bit: Ra đời từ năm 2004 với nhiều phiên có phiên như: P4 Prescott (2004), Premium D (2005), Premium Extreme Edition (2005), kiến trúc Core I (2006 đến nay), Core Duo, Core Quad, Core Extreme đỉnh cao vi xử lý năm 2007 có khả ép xung, QX9650 Hình 1.3 Chip Intel Core i Series 9th Gen Kể từ mắt năm 2006 dòng Core I liên tục phát triển qua hệ: Nehalem, Sandy Bridge, Ivy Bridge, Haswell, Broad Well, Skylake, Kabylake, Coffelake, Thế hệ hệ thứ 10 Ice Lake Ngày với tên Core i3, Core i5, Core i7, Core i9 ngày thông dụng Càng phiên cơng nghệ, tốc độ, tích hợp cao mạnh mẽ Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 Các tính vi điều khiển 8051: - Bộ nhớ chương trình bên trong: KB (ROM) - Bộ nhớ liệu bên trong: 128 byte (RAM) - Bộ nhớ chương trình bên ngoài: 64 KB (ROM) - Bộ nhớ liệu bên ngoài: 64 KB (RAM) - port xuất nhập (I/O port) 8-bit - định thời 16-bit - Tần số hoạt động từ: 0Hz đến 24 MHz - Mạch giao tiếp nối tiếp - Bộ xử lý bit (thao tác bit riêng lẻ) - 210 vị trí nhớ định địa chỉ, vị trí bit - Nhân / Chia µs - 32 ghi đa dụng 8-bit - Thanh ghi PC DP 16-bit - UART, ADC, … Có hai vi điều khiển thành viên khác họ 8051 8052 8031 8052: vi điều khiển 8052 chứa tất đặc tính 8051 bổ sung thêm 128byte RAM, 4Kb ROM định thời 8031: Không có sẵn ROM Để sử dụng, bạn phải tự thêm ROM cho 8031 Bên cạnh đó, có port 8-bit thay port 8051 Đặc tính ROM chip RAM Bộ định thời Chân vào Cổng nối tiếp Nguồn ngắt 8051 4K byte 128 byte 32 8052 8K byte 256 byte 32 Bảng 1.1 So sánh đặc tính thành viên họ 8051 1.1.2 Cấu trúc vi điều khiển 8051 1.1.2.1 Sơ đồ khối chức khối vi điều khiển 8051 Downloaded by tran quang (quangsuphamhoak35@gmail.com) 8031 OK 28 byte 32 lOMoARcPSD|9242611 Hình 1.4 Sơ đồ khối vi điều khiển 8051 - CPU (Central Processing Unit): đơn vị xử lý trung tâm → tính tốn điều khiển q trình hoạt động hệ thống - OSC (Oscillator): Mạch dao động → tạo tín hiệu xung clock cung cấp cho khối chip hoạt động - Interrupt control: điều khiển ngắt → nhận tín hiệu ngắt từ bên ngồi (INT0\, INT1\), từ định thời (Timer 0, Timer 1) từ cổng nối tiếp (Serial port), đưa tín hiệu ngắt đến CPU để xử lý - Other registers: Các ghi khác → lưu trữ liệu port xuất/nhập, trạng thái làm việc khối chip suốt trình hoạt động hệ thống - RAM (Random Access Memory): Bộ nhớ liệu chip → lưu trữ liệu - ROM (Read Only Memory): Bộ nhớ chương trình chip → lưu trữ chương trình hoạt động chip - I/O ports (In/Out ports): Các port xuất/nhập → điều khiển việc xuất nhập liệu dạng song song ngồi chip thơng qua port P0, P1, P2, P3 - Serial port: Port nối tiếp → điều khiển việc xuất nhập liệu dạng nối tiếp ngồi chip thơng qua chân TxD, RxD - Timer 0, Timer 1: Bộ định thời 0, → dùng để định thời gian đếm kiện (đếm xung) thông qua chân T0, T1 - Bus control: điều khiển bus → điều khiển hoạt động hệ thống bus việc di Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 chuyển thông tin hệ thống bus - Bus system: Hệ thống bus → liên kết khối chip lại với 1.1.2.2 Sơ đồ chân chức vi điều khiển 8051 Hình 1.5 Sơ đồ chân 8051 Port 0: - Port (P0.0 – P0.7) có số chân từ 32 – 39 - Port có hai chức năng: • Port xuất nhập liệu (P0.0 - P0.7) → khơng sử dụng nhớ ngồi • Bus địa byte thấp bus liệu đa hợp (AD0 – AD7) → có sử dụng nhớ ngồi - Ở chế độ mặc định (khi reset) chân Port (P0.0 - P0.7) cấu hình port xuất liệu Muốn chân Port làm port nhập liệu cần phải lập trình lại, cách ghi mức logic cao (mức 1) đến tất bit port trước bắt đầu nhập liệu từ port - Khi lập trình cho ROM chip Port đóng vai trị ngõ vào liệu (D0 – D7) Port 1: Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 - Port (P1.0 – P1.7) có số chân từ – - Port có chức năng: • Port xuất nhập liệu (P1.0 – P1.7) → sử dụng không sử dụng nhớ - Ở chế độ mặc định (khi reset) chân Port (P1.0 – P1.7) cấu hình port xuất liệu Muốn chân Port làm port nhập liệu cần phải lập trình lại, cách ghi mức logic cao (mức 1) đến tất bit port trước bắt đầu nhập liệu từ port - Khi lập trình cho ROM chip Port đóng vai trò ngõ vào địa byte thấp (A0 – A7) Port 2: - Port (P2.0 – P2.7) có số chân từ 21 – 28 - Port có hai chức năng: • Port xuất nhập liệu (P2.0 – P2.7) → khơng sử dụng nhớ ngồi • Bus địa byte cao (A8 – A15) → có sử dụng nhớ ngồi - Ở chế độ mặc định (khi reset) chân Port (P2.0 – P2.7) cấu hình port xuất liệu Muốn chân Port làm port nhập liệu cần phải lập trình lại, cách ghi mức logic cao (mức 1) đến tất bit port trước bắt đầu nhập liệu từ port - Khi lập trình cho ROM chip Port đóng vai trị ngõ vào địa byte cao (A8 – A11) tín hiệu điều khiển Port 3: - Port (P3.0 – P3.7) có số chân từ 10 – 17 - Port có hai chức năng: • Port xuất nhập liệu (P3.0 – P3.7) → khơng sử dụng nhớ ngồi chức đặc biệt • Các tín hiệu điều khiển → có sử dụng nhớ ngồi chức đặc biệt - Ở chế độ mặc định (khi reset) chân Port (P3.0 – P3.7) cấu hình port xuất liệu Muốn chân Port làm port nhập liệu cần phải lập trình lại, cách ghi mức logic cao (mức 1) đến tất bit port trước bắt đầu nhập liệu từ port - Khi lập trình cho ROM chip Port đóng vai trị ngõ vào tín hiệu điều khiển Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 - Chức chân Port 3: Bit P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Tên RxD TxD ∫0 ∫1 T0 T1 WR RD Địa bit B0H B1H B2H B3H B4H B5H B6H B7H Chức Chân nhận liệu port nối tiếp Chân phát liệu port nối tiếp Ngõ vào ngắt Ngõ vào ngắt Ngõ vào định thời/đếm Ngõ vào định thời/đếm Điều khiển ghi vào RAM Điều khiển đọc từ RAM Bảng 1.2 Chức chân Port PSEN : - PSEN (Program Store Enable): cho phép nhớ chương trình, chân số 29 - Chức năng: • Là tín hiệu cho phép truy xuất (đọc) nhớ chương trình (ROM) ngồi • Là tín hiệu xuất, tích cực mức thấp PSEN = → thời gian CPU tìm - nạp lệnh từ ROM PSEN = → CPU sử dụng ROM (khơng sử dụng ROM ngồi) - Khi sử dụng nhớ chương trình bên ngồi, chân PSEN thường nối với chân OE ROM phép CPU đọc mã lệnh từ ROM ALE: - ALE (Address Latch Enable): cho phép chốt địa chỉ, chân số 30 - Chức năng: • Là tín hiệu cho phép chốt địa để thực việc giải đa hợp cho bus địa byte thấp bus liệu đa hợp (AD0 – AD7) • Là tín hiệu xuất, tích cực mức cao ALE = → thời gian bus AD0 - AD7 đóng vai trò bus D0 - D7 ALE = → thời gian bus AD0 - AD7 đóng vai trị bus A0 - A7 - Khi lập trình cho ROM chip chân ALE đóng vai trị ngõ vào xung lập trình ( PGM ) - Khi lệnh lấy liệu từ RAM (MOVX) thực xung ALE bị bỏ qua 10 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 vào ghi cho phép ngắt IE (interrupt enable register) địa A8H Mức ưu tiên ngắt thiết lập qua ghi ưu tiên ngắt IP (interrupt priority register) địa Hoạt động Reset: 8051 reset cách giữ chân RST mức cao tối thiểu chu kỳ máy sau chuyển mức thấp RST tác động tay đựơc tác động cấp nguồn cách dùng mạch RC Thanh ghi Nội dung Bộ đếm chương trình Thanh chứa A Thanh ghi B PSW SP DPTR Port 0-3 IP 0000H 00H 00H 00H 07H 0000H FFH xxx00000B (8051) xx000000B (8052) 0xx00000B (8051) 0x000000B (8052) 00H 00H 00H 0xxxxxxxB 0xxx0000B IE Các ghi định thời SCON SBUF PCON (HMOS) PCON (CMOS) Bảng 1.5 Trạng thái ghi sau reset 18 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 CHƯƠNG 2: TÌM HIỂU VỀ LCD 16X2 2.1 TỔNG QUAN VỀ LCD 2.1.1 Giới thiệu LCD Thế kỷ 21 chứng kiến phát triển vượt bậc ngành công nghệ Một số cơng nghệ phải kể đến cơng nghệ LCD Nhà vật lý người Áo Frinitzen Reinitzer phát tinh thể lỏng vào năm 1888 Màn hình tinh thể lỏng đuợc sản xuất vào năm 70 ký 20 với ứng dụng ban đầu máy tính, đồng hồ quan sát phần tử… Cơng nghệ hình tinh thể lỏng phát triển mạnh mẽ với giá thành ngày thấp, tiêu hao luợng kiểu dáng gọn nhẹ với nhiều ứng dụng thực tế như: tivi, hình máy tính, hình điện thoại… Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) sử dụng nhiều ứng dụng VĐK LCD có nhiều ưu điểm so với dạng hiển thị khác: Nó có khả hiển thị kí tự đa dạng, trực quan (chữ, số kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn tài nguyên hệ thống giá thành rẽ … LCD tên viết tắt (Liquid Crystal Display) hay biết đến tên dân dã hình tinh thể lỏng Có nhiều loại hình LCD khác Với ứng dụng nhỏ thường sử dụng loại hình cỡ nhỏ đơn giản loại LCD16x2 Các ký tự hiển thị hình với hàng, hàng hiển thị 16 ký tự Hình 2.1 Màn hình LCD 16x2 Có thể chia module LCD làm loại chính: + Loại hiển thị ký tự (charater LCD) gồm có các kích cỡ 16x1(16 kí tự x1 dòng) ;16x2(16 ký tự x2 dòng); 16x4 (16 ký tự x4 dòng); 20x1 (20 ký tự x1 dòng) + Loại hiển thị đồ họa (graphic LCD) đen trắng màu gồm kích cỡ 1,47 inch (128x128 điểm ảnh); 1,8 inch (128x160 điểm ảnh); 2,4 inch (240x320 điểm ảnh) 19 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 Thông số kỹ thuật: Điện áp hoạt động V Kích thước: 80 x 36 x 12.5 mm Chữ đen, xanh Khoảng cách hai chân kết nối 0.1 inch tiện dụng kết nối với Breadboard Tên chân ghi mặt sau hình LCD hổ trợ việc kết nối, dây điện Có đèn led nền, dùng biến trở PWM điều chình độ sáng để sử dụng điện Có thể điều khiển với dây tín hiệu 2.1.2 Sơ đồ, chức năng, liên kết chân LCD Sơ đồ chân LCD: Hình 2.2 Sơ đồ chân LCd 16x2 Mô tả chân, loại 16 chân - VDD (chân 2): cấp nguồn dương 5v +/ VSS (chân 1): cấp nguồn âm (GND) - VEE (chân 3): điều khiển độ tương phản LCD (contrast), chân cần nối với biến trở 10k để chia áp Trong hoạt động, chỉnh để thay đổi giá trị biến trở để đạt độ tương phản cần thiết, sau giữ mức biến trở Các chân điều khiển RS, R/W, EN đường liệu nối trực tiếp với vi điều khiển Tùy theo chế độ hoạt động 4bit hay 8bit mà chân từ D0 đến D3 bỏ qua nối với vi điều khiển 20 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 o Trong số LCD, chân LED đánh số 15 16 số trường hợp chân ghi A (Anode) K (Cathode), gọi chân nguồn cho “đèn LED nền” - Chân chọn ghi RS (chân 4_Register Select): Có hai ghi quan trọng LCD, chân cho phép lựa chọn ghi IR DR để làm việc Vì ghi kết nối với chân Data LCD nên cần bit để lựa chọn chúng Nếu RS=0, ghi IR chọn, ghi mà lệnh chọn phép người dùng gửi lệnh chẳng hạn xóa hình RS=1 ghi DR chọn, ghi liệu chọn cho phép người dùng gửi liệu cần hiển thị LCD Chúng ta biết ghi IR ghi chứa mã lệnh cho LCD, muốn gửi mã lệnh đến LCD chân RS phải reset Ngược lại, muốn ghi mã ASCII ký tự cần hiển thị lên LCD set RS=1 để chọn ghi DR Hoạt động chân RS mô tả sau: o Thanh ghi IR: Để điều khiển LCD, người dùng phải “ra lệnh” thông qua tám đường bus DB0-DB7 Mỗi lệnh nhà sản xuất LCD đánh địa rõ ràng Người dùng việc cung cấp địa lệnh cách nạp vào ghi IR Nghĩa là, ta nạp vào ghi IR chuỗi 8-bit, chip HD44780 tra bảng mã lệnh địa mà IR cung cấp thực lệnh VD: Lệnh “hiển thị hình” có địa lệnh 00001100 (DB7 DB0) Lệnh “hiển thị hình trỏ” có mã lệnh 00001110 o Thanh ghi DR: Thanh ghi DR dùng để chứa liệu bit để ghi vào vùng RAM DDRAM CGRAM (ở chế độ ghi) dùng để chứa liệu từ vùng RAM gởi cho MPU (ở chế độ đọc) Nghĩa là, MPU ghi thông tin vào DR, mạch nội bên chip tự động ghi thông tin vào DDRAM CGRAM Hoặc thông tin địa ghi vào IR, liệu địa vùng RAM nội HD44780 chuyển DR để truyền cho MPU Bằng cách điều khiển chân RS R/W chuyển qua lại giữ ghi giao tiếp Xem bảng thiết lập hai chân RS R/W theo mục đích giao tiếp với MPU => Bằng cách điều khiển chân RS R/W chuyển qua lại giữ ghi giao tiếp với MPU Bảng sau tóm tắt lại thiết lập hai chân RS R/W theo mục đích giao tiếp 21 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 RS R/W Chức 0 Ghi vào ghi IR để lệnh cho LCD Đọc cờ bận DB7 giá trị đếm địa DB0-DB6 Ghi vào ghi DR 1 Đọc liệu từ DR Bảng 2.1 Các thiết lập hai chân RS R/W - Chân đọc/ghi R/W (chân 5) Chân lựa chọn việc đọc ghi Nếu R/W=0 liệu ghi từ điều khiển (vi điều khiển AVR chẳng hạn) vào LCD Nếu R/W=1 liệu đọc từ LCD ngồi Tuy nhiên, có trường hợp mà liệu đọc từ LCD ra, đọc trạng thái LCD để biết LCD có bận hay không (cờ Busy Flag - BF) Do LCD thiết bị hoạt động tương đối chậm (so với vi điều khiển), cờ BF dùng để báo LCD bận, BF=1 phải chờ cho LCD xử lí xong nhiệm vụ tại, đến BF=0 thao tác gán cho LCD Vì thế, làm việc với Text LCD thiết phải có chương trình tạm gọi wait_LCD để chờ LCD rảnh Có cách để viết chương trình wait_LCD Cách đọc bit BF kiểm tra chờ BF=0, cách đòi hỏi lệnh đọc từ LCD điều khiển ngồi, chân R/W cần nối với điều khiển Cách viết hàm delay khoảng thời gian cố định (tốt 1ms) Ưu điểm cách đơn giản khơng cần đọc LCD, chân R/W khơng cần sử dụng nối với GND Tuy nhiên, nhược điểm cách khoảng thời gian delay cố định lớn làm chậm trình thao tác LCD, nhỏ gây lỗi hiển thị - Chân cho phép E (chân 6_Enable) Chân cho phép LCD hoạt động (Enable), chân cần kết nối với điều khiển phép thao tác LCD Để đọc ghi data từ LCD cần tạo “xung cạnh xuống” chân EN, nói theo cách khác, muốn ghi liệu vào LCD trước hết cần đảm bảo chân EN=0, tiếp đến xuất liệu đến chân D0^7, sau set chân EN lên cuối xóa EN để tạo xung cạnh xuống, nói cách khác chân cho phép E sử dụng LCD để chốt thơng tin hữu chân liệu Khi liệu cung cấp đến chân liệu xung mức cao xuống 22 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 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 - Chân D0+D7: Đây chân liệu bit, dùng để gửi thông tin LCD đọc nội dung ghi LCD Để hiển thị chữ số, gửi mã ASCII chữ từ A đến Z, a đến f số từ 0~9 đến chân bật RS=1 Cũng mã lệnh mà gửi đến LCD để xóa hình đưa trỏ vị trí đầu dòng nhấp nháy trỏ Chúng ta sử dụng RS=0 để kiểm tra bit cờ bận để xem LCD có sẵn sàng nhận thơng tin Cờ bận D7 đọc R/W=1 RS=0 sau: Nếu R/W=1, RS=0 D7=1(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 bất khì liệu lên LCD Cờ báo bận BF: (Busy Flag) Khi thực hoạt động bên chíp, mạch nội bên cần khoảng thời gian để hoàn tất Khi thực thi hoạt động bên chip thế, LCD bỏ qua giao tiếp với bên bật cờ BF (thơng qua chân DB7 có thiết lập RS=0, R/W=1) lên để báo cho MPU biết “bận” Dĩ nhiên, xong việc, đặt cờ BF lại mức Bộ đếm địa AC: (Address Counter) Như sơ đồ khối, ghi IR không trực tiếp kết nối với vùng RAM (DDRAM CGRAM) mà thông qua đếm địa AC Bộ đếm lại nối với vùng RAM theo kiểu rẽ nhánh Khi địa lệnh nạp vào ghi IR, thông tin nối trực tiếp cho vùng RAM việc chọn lựa vùng RAM tương tác bao hàm mã lệnh Sau ghi vào (đọc từ) RAM, đếm AC tự động tăng lên (giảm đi) đơn vị nội dung AC xuất cho MPU thơng qua DB0-DB6 có thiết lập RS=0 R/W=1 (xem bảng tóm tắt RS - R/W) Lưu ý: Thời gian cập nhật AC không tính vào thời gian thực thi lệnh mà cập nhật sau cờ BF lên mức cao (not busy), lập trình hiển thị, bạn phải delay khoảng tADD khoảng 4uS-5uS (ngay sau BF=1) trước nạp liệu 23 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 Hình 2.3 Giản đồ xung cập nhật AC Vùng RAM hiển thị DDRAM : (Display Data RAM) Đây vùng RAM dùng để hiển thị, nghĩa ứng với địa RAM kí tự hình bạn ghi vào vùng RAM mã bit, LCD hiển thị vị trí tương ứng hình kí tự có mã bit mà bạn cung cấp Hình sau trình bày rõ mối liên hệ : Hình 2.4 Mối liên hệ địa DDRAM vị trí hiển thị LCD Vùng RAM có 80x8 bit nhớ, nghĩa chứa 80 kí tự mã bit Những vùng RAM cịn lại khơng dùng cho hiển thị dùng vùng RAM đa mục đích Lưu ý để truy cập vào DDRAM, ta phải cung cấp địa cho AC theo mã HEX Vùng ROM chứa kí tự CGROM: Character Generator ROM 24 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 Vùng ROM dùng để chứa mẫu kí tự loại 5x8 5x10 điểm ảnh/kí tự, định địa bit Tuy nhiên, có 208 mẫu kí tự 5x8 32 mẫu kí tự kiểu 5x10 (tổng cộng 240 thay 2^8 = 256 mẫu kí tự) Người dùng khơng thể thay đổi vùng ROM CHƯƠNG 3: THỰC HIỆN MƠ HÌNH ĐỒ ÁN 3.1 MẠCH NGUYÊN LÝ 25 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 3.2 MẠCH IN, 3D 26 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 27 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 3.3 CHƯƠNG TRÌNH CHÍNH #include #define lcd P0 sbit rs=P2^0; sbit e=P2^1; sbit sw=P3^0; sbit rst=P3^1; unsigned int i=0; void delay (int); void display (unsigned char); void cmd (unsigned char); void string (char *); void init (void); void int_lcd(unsigned int); void delay (int d) { unsigned char i=0; for(;d>0;d ) { for(i=250;i>0;i ); for(i=248;i>0;i ); } } void cmd (unsigned char c) 28 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 { lcd=c; rs=0; e=1; delay(5); e=0; } void display (unsigned char c) { lcd=c; rs=1; e=1; delay(5); e=0; } void string (char *p) { while(*p) { display(*p++); } } void init (void) { cmd(0x38); cmd(0x0c); cmd(0x01); cmd(0x80); } void int_lcd(unsigned int n) { char a[4]={0},i=0; if(n==0) 29 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 { display('0'); return; } else { while(n>0) { a[i++]=(n%10)+48; n/=10; } for( i;i>=0;i ) { display(a[i]); } } } void main() { sw=1; rst=1; init(); cmd(0x80); string(" Random Number "); cmd(0xc0); string(" Generator "); delay(2000); cmd(0x01); while(1) { cmd(0x80); string("Press the button"); while(sw!=0) { i=++i; 30 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 if(i==100) i=0; } cmd(0x80); string("RAND NUM: cmd(0x8a); int_lcd(i); while(rst!=0); //cmd(0x01); "); } } 31 Downloaded by tran quang (quangsuphamhoak35@gmail.com) lOMoARcPSD|9242611 KẾT LUẬN Ba chương đồ án thể mục tiêu đặt thực đồ án đạt Cụ thể: Chương hệ thống lại kiến thức tổng quan 8051 Chương hệ thống lại kiến thức tổng quan LCD 16x2 Chương thể chương trình minh họa hoạt động mạch đề tài thông qua mạch nguyên lý mạch in Ta thấy rõ nguyên lý, cách vận hành mạch tạo số ngẫu nhiên 32 Downloaded by tran quang (quangsuphamhoak35@gmail.com) ... AVR chẳng hạn) vào LCD Nếu R/W=1 liệu đọc từ LCD ngồi Tuy nhiên, có trường hợp mà liệu đọc từ LCD ra, đọc trạng thái LCD để biết LCD có bận hay khơng (cờ Busy Flag - BF) Do LCD thiết bị hoạt động... dùng để báo LCD bận, BF=1 phải chờ cho LCD xử lí xong nhiệm vụ tại, đến BF=0 thao tác gán cho LCD Vì thế, làm việc với Text LCD thiết phải có chương trình tạm gọi wait _LCD để chờ LCD rảnh Có... gửi liệu cần hiển thị LCD Chúng ta biết ghi IR ghi chứa mã lệnh cho LCD, muốn gửi mã lệnh đến LCD chân RS phải reset Ngược lại, muốn ghi mã ASCII ký tự cần hiển thị lên LCD set RS=1 để chọn ghi