I. Giới thiệu về Đồ án Vi Xử Lý Máy Tính Bỏ Túi AT89C51
Máy tính bỏ túi là một công cụ không thể thiếu trong học tập và đời sống hàng ngày. Đồ án này tập trung vào việc thiết kế và chế tạo máy tính cộng trừ nhân chia sử dụng vi điều khiển AT89C51 và màn hình LCD 16x2. Đây là một dự án thực tế giúp sinh viên kỹ thuật điện tử hiểu rõ hơn về lập trình vi xử lý, giao tiếp phần cứng và ứng dụng thực tiễn của công nghệ nhúng. Máy tính bỏ túi này không chỉ thực hiện các phép tính cơ bản mà còn cải thiện kỹ năng thiết kế hệ thống điện tử cho sinh viên. Dự án được thực hiện tại Trường Đại học Giao thông Vận tải TP. Hồ Chí Minh, khoa Điện – Điện tử Viễn thông, dưới sự hướng dẫn của Th.S Lê Công Danh.
1.1. Ứng dụng Máy Tính Bỏ Túi trong Thực Tiễn
Máy tính bỏ túi AT89C51 có nhiều ứng dụng trong cuộc sống và sản xuất. Trong giáo dục, nó giúp học sinh và sinh viên thực hiện các phép tính nhanh chóng. Trong kinh doanh, máy tính cộng trừ nhân chia được dùng để tính toán tiền bán hàng, kế toán. Trong sản xuất, nó hỗ trợ tính toán sản lượng và kiểm kê hàng hóa. Sự phổ biến và cần thiết của thiết bị này chứng tỏ tầm quan trọng của việc nghiên cứu và phát triển công nghệ vi xử lý nhúng.
1.2. Mục Tiêu và Yêu Cầu Của Hệ Thống
Hệ thống máy tính bỏ túi LCD cần đáp ứng các yêu cầu chính: giao diện người dùng thân thiện và dễ sử dụng, khả năng thực hiện các phép tính cộng trừ nhân chia chính xác, hiển thị kết quả trên LCD 16x2 rõ ràng. Điện áp hoạt động phải an toàn (thường là 5V), bàn phím 16 phím để nhập dữ liệu và chọn hàm. Yêu cầu kết quả luôn chính xác và vi điều khiển AT89C51 phải xử lý nhanh chóng mọi tác vụ.
II. Vi Điều Khiển AT89C51 Trái Tim Của Hệ Thống
Vi điều khiển AT89C51 là bộ xử lý 8 bit hiện đại, sử dụng công nghệ CMOS tiết kiệm năng lượng, phù hợp cho các ứng dụng nhúng. Nó sở hữu 4 KB bộ nhớ Flash (PEROM) cho phép lập trình lại 1000 lần, 128 byte RAM nội bộ để lưu trữ dữ liệu tạm thời, 4 cổng I/O 8-bit để giao tiếp với ngoại vi. Tần số hoạt động từ 0 đến 24 MHz, hỗ trợ giao tiếp nối tiếp (UART) cho điều khiển phần cứng. AT89C51 còn có bộ Timer/Counter 16-bit, xử lý ngắt (interrupt) và cho phép xử lý bit cho các ứng dụng phức tạp. Đây là lựa chọn lý tưởng cho máy tính bỏ túi vì tính ổn định, hiệu suất cao và giá thành phải chăng.
2.1. Cấu Trúc và Sơ Đồ Chân AT89C51
Sơ đồ khối AT89C51 bao gồm CPU, RAM nội, ROM, các cổng I/O và bộ Timer. Sơ đồ chân có 40 chân, bao gồm: chân 31 là /EA (kích hoạt bộ nhớ ngoài), chân 9 và 10 là Reset và Clock, các chân P0-P3 là cổng vào/ra. Tín hiệu điều khiển quan trọng như RD, WR, ALE hỗ trợ giao tiếp với bộ nhớ ngoài. Cấu trúc này cho phép vi xử lý kết nối với LCD 16x2 và bàn phím 16 phím một cách linh hoạt.
2.2. Các Thanh Ghi Đặc Biệt SFR Và Hoạt Động Ngắt
Thanh ghi đặc biệt (SFR - Special Function Registers) như TCON, TMOD điều khiển bộ Timer/Counter. Thanh ghi PSW lưu trữ trạng thái chương trình, DPTR là con trỏ bộ nhớ dữ liệu. Hoạt động ngắt (interrupt) cho phép AT89C51 xử lý sự kiện khẩn cấp từ bàn phím hoặc LCD. Xử lý ngắt giúp máy tính phản ứng nhanh chóng với nhập liệu người dùng, tăng hiệu suất hệ thống.
III. Màn Hình LCD 16x2 Giao Diện Hiển Thị
LCD (Liquid Crystal Display) 16x2 là thiết bị hiển thị kết quả của máy tính bỏ túi, có khả năng hiển thị 16 ký tự trên 2 dòng. Màn hình LCD này được kết nối với vi điều khiển AT89C51 thông qua 8 chân dữ liệu (D0-D7) và các chân điều khiển RS, RW, E. Nguyên tắc hoạt động của LCD dựa trên công nghệ tinh thể lỏng, tiêu thụ điện năng thấp, hiển thị rõ ràng. Kết nối LCD với MCU sử dụng chế độ 8-bit để truyền dữ liệu nhanh chóng. Màn hình LCD 16x2 giúp người dùng dễ dàng theo dõi kết quả phép tính và lịch sử hoạt động, tạo trải nghiệm người dùng tốt.
3.1. Hình Dáng Kích Thước và Chức Năng Các Chân LCD
LCD 16x2 có hình dáng hình chữ nhật, kích thước khoảng 80mm x 36mm. Chân của LCD bao gồm: chân 1 (VSS - GND), chân 2 (VCC - nguồn dương), chân 3 (VEE - điều chỉnh độ tương phản), chân 4 (RS - chọn lệnh/dữ liệu), chân 5 (RW - chọn đọc/ghi), chân 6 (E - tín hiệu cho phép), chân 7-14 (D0-D7 - dữ liệu). Kết nối 8-bit giữa LCD và AT89C51 qua các chân dữ liệu.
3.2. Nguyên Tắc Hoạt Động và Cách Ghép Nối
Nguyên tắc hoạt động LCD bao gồm: gửi lệnh khởi tạo (initialization commands), sau đó gửi dữ liệu ký tự để hiển thị. Cách kết nối LCD với MCU là kết nối 8-bit: P0 hoặc P1 của AT89C51 nối với D0-D7 của LCD, các chân điều khiển RS, RW, E nối với các chân P2 hoặc P3. Ghép nối này cho phép vi xử lý gửi dữ liệu và lệnh điều khiển nhanh chóng.
IV. Bàn Phím 16 Phím và Hệ Thống Nhập Liệu
Bàn phím 16 phím là bộ phận nhập liệu chính của máy tính bỏ túi AT89C51, bao gồm các phím số 0-9 và các phím chức năng (+, -, ×, ÷, =, C). Mỗi phím là một nút bấm cơ học (push button) được ma trận hóa thành 4×4 để giảm số chân điều khiển. Ghép nối bàn phím với vi điều khiển sử dụng kỹ thuật quét ma trận: vi xử lý lần lượt quét từng dòng của ma trận, đọc trạng thái cột để xác định phím nào được nhấn. Hệ thống nhập liệu này cho phép người dùng nhập toán hạng và phép toán một cách dễ dàng, hỗ trợ các phép tính cộng trừ nhân chia liên tiếp.
4.1. Cấu Tạo Phím và Mã Phím Ma Trận
Mỗi phím gồm 1 nút bấm cơ học kết nối với ma trận 4×4, mã hóa từ 0x00 đến 0x0F. Bàn phím 16 phím được kết nối với cổng P1 hoặc P2 của AT89C51, 4 chân chọn dòng (row) và 4 chân chọn cột (column). Mã phím được xác định bằng phương pháp quét: khi một phím được nhấn, vi xử lý phát hiện tín hiệu điện thay đổi, giải mã phím để biết người dùng nhấn phím nào.
4.2. Quét Ma Trận và Xử Lý Tín Hiệu Phím
Kỹ thuật quét ma trận hoạt động như sau: vi điều khiển AT89C51 lần lượt kích hoạt từng dòng (row) của ma trận bàn phím, đồng thời đọc trạng thái cột (column). Khi phím được nhấn, tín hiệu điện từ dòng và cột tương ứng sẽ kích hoạt ngắt (interrupt) hoặc được đọc trong vòng lặp. Xử lý tín hiệu phím bao gồm loại bỏ nhiễu (debouncing) để đảm bảo chỉ ghi nhận một lần nhấn duy nhất.