Đồ án Kỹ thuật Vi xử lý: Mạch máy tính cộng trừ nhân chia dùng 8051 và LCD

Đồ án vi xử lý máy tính bỏ túi dùng AT89C51, hiển thị LCD. Tài liệu gồm sơ đồ nguyên lý, mô phỏng Proteus và code Assembly chi tiết cho sinh viên.

Chuyên ngành

Kỹ Thuật Vi Xử Lý

Người đăng

Ẩn danh

Thể loại

Đồ án môn học

2023

71
1
0

Phí lưu trữ

30 Point

Tóm tắt

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 AT89C51mà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ứ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à ResetClock, các chân P0-P3cổ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 16x2bà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, DPTRcon 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ínhlị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 MCUkế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.

28/12/2025

Trích đoạn nội dung tài liệu

LỜI MỞ ĐẦU Máy tính bỏ túi là một công cụ học tập quen thuộc của học sinh, sinh viên, đặt biệt là sinh viên kỹ thuật. Trong đời sống hàng ngày, nó là một vật cần thiết cho việc tính tiền trong các vụ mua bán. Trong sản xuất, nó được dùng để tính toán số sản phẩm làm ra. Và còn rất nhiều ứng dụng khác của máy tính bỏ túi, cho thấy sự phổ biến, cần thiết của nó.

Nhận thấy vai trò của máy tính bỏ túi trong học tập, lao động và đời sống nên nhóm em quyết định chọn đề tài “ Máy tính cộng trừ nhân chia, hiện lên màn hình LCD”. Em xin chân thành cảm ơn giảng viên Lê Công Danh đã giúp đỡ nhóm em trong suốt quá trình làm đồ án. Một lần nữa nhóm em xin chân thành cảm ơn Thầy. Thành phố Hồ Chí Minh, tháng 01 năm 2023 1 CHƢƠNG 1: GIỚI THIỆU ĐỀ TÀI 1.

Giới thiệu về máy tính bỏ túi Với mỗi gia đình, cơ quan, xí nghiệp, trường học hay bất cứ nơi đâu ta cũng bắt gặp được máy tính bỏ túi. Hiện nay trên thị trường có rất nhiều các nhà sản xuất máy tính bỏ túi khác nhau, với nhiều chức năng, kiểu dáng đa dang. Máy tính bỏ túi nói chung là một thiết bị dùng để tính toán các công thức toán học mà người lập trình đã lập trình sẵn cho nó. Nhìn chung thì máy tính đước sản xuất từ các nhà sản xuất lớn như TOSHIBA, VNC,CASIO 1.

Các giải pháp và cách xác định bài toán 1.1 Yêu cầu của hệ thống Qua tham khảo các sản phẩm máy tính bỏ túi trên thị trường thì yêu cầu của một bộ sản phẩm máy tính bỏ túi thông thường: Dao diện người dung dễ sử dụng. Thực hiện một số phép tính đơn giản như cộng trừ nhân chia. Yêu cầu kết quả luôn luôn đúng. Điện áp hoạt động của hệ thống không gây nguy hiểm đến người sử dụng.2 Lựa chọn phương án Với yêu cầu về tính năng như trên, chúng em chọn các thiết bị chính: 2 Vi điều khiển AT89C51 Màn hình LCD 16x2 với mục đích hiển thị thông tin, giao tiếp vi điều khiển với người dùng.

Bàn phím 16 phím có các phím số và phím chức năng đưa đầu vào là các số và các phép tính. GIỚI THIỆU VI ĐIỀU KHIỂN 8051 VÀ CÁC LINH KIỆN TRONG MẠCH 2. Vi điều khiển AT89C51.1 Giới thiệu tổng quan về họ vi điều khiển 8051 AT89C51 là một vi điều khiển 8 bit, chế tạo theo công nghệ CMOS chất lượng cao, công suất thấp với 4 KB PEROM ( Flash Programeable and erasable read only memory).  Các đặc điểm của 8951 được tóm tắt như sau:  4 KB PEROM (Flash Programmable and Erasable Read Only Memory), có khả năng tới 1000 chu kỳ ghi xoá  Tần số hoạt động từ: 0Hz đến 24 MHz  mức khóa bộ nhớ lập trình  128 Byte RAM nội.

 4 Port xuất /nhập I/O 8 bit.  bộ Timer/counter 16 Bit.  Giao tiếp nối tiếp điều khiển bằng phần cứng.  64 KB vùng nhớ mã ngoài  64 KB vùng nhớ dữ liệu ngoài.

 Cho phép xử lý bit.  210 vị trí nhớ có thể định vị bit.  chu kỳ máy (4 µs đối với thạch anh 12MHz) cho hoạt động nhân hoặc chia.  Ngoài ra, một số IC khác của họ MCS-51 có thêm bộ định thời thứ 3 và 256 byte RAM nội.1 Sơ đồ khối và sơ đồ chân của AT89C51 Hình 2.

1 Sơ đồ khối của AC89C51 Hình 2. 2 Sơ đồ chân của AC89C51 5 Chip AT89C51 có các tín hiệu điều khiển cần phải lưu ý như sau: Tín hiệu vào /EA trên chân 31 thường đặt lên mức cao ( +5V) hoặc mức thấp (GND). Nếu ở mức cao, 8951 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp (4K hoặc tối đa 8k đối với 89C52). Nếu ở mức thấp, chương trình được thi hành từ bộ nhớ mở rộng (tối đa đến 64Kbyte).

Ngoài ra người ta còn dùng /EA làm chân cấp điện áp 12V khi lập trình EEPROM trong 8051.2 Chức năng các chân của AT89C51 ™ Chân PSEN (Program store enable): PSEN là chân tín hiệu ra trên chân 29. Nó là tín hiệu điều khiển cho phép chương trình mở rộng, PSEN thường được nối đến chân /OE (Output Enable) của một EPROM hoặc ROM để cho phép đọc các bytes mã lệnh. Hãy nhớ rằng : bình thường chân /PSEN sẽ được thả trống ( No Connect).Chỉ khi nào cho /EA ở mức thấp thì lúc đó: /PSEN sẽ ở mức thấp trong thời gian lấy lệnh. Các mã nhị phân của chương trình được lấy từ EPROM qua bus dữ liệu và được chốt vào thanh ghi lệnh của 8951 để giải mã lệnh.

/PSEN ở mức thụ động (mức cao) nếu thành chương trình trong ROM nội của 8951. ™ Các chân nguồn: AT89C51 hoạt động ở nguồn đơn +5V. Vcc được nối vào chân 40, và Vss (GND) được nối vào chân 20 Cổng vào/ra Tất cả các vi điều khiển 8051 đều có 4 cổng vào/ra 8 bit có thể thiết lập như cổng vào hoặc ra. Như vậy có tất cả 32 chân I/O cho phép vi điều khiển có thể kết nối với các thiết bị ngoại vi.

3 Cổng vào/ra Hình 2. 4 Xuất mức 0 7 Chân vào/ra (I/O) Hình trên mô tả sơ đồ đơn giản của mạch bên trong các chân vi điều khiển trừ cổng P0 là không có điện trở kéo lên (pull-up). 5 Trở treo nội tại chân Chân ra Một mức logic 0 đặt vào bit của thanh ghi P làm cho transistor mở, nối chân tương ứng với đất. 6 Xuất mức 1 Chân vào Một bit 1 đặt vào một bit của thanh ghi cổng, transistor đóng và chân tương ứng được nối với nguồn Vcc qua trở kéo lên Port 0 Port 0 là port có 2 chức năng ở các chân 32 – 39 của AT89C51: 8 - Chức năng I/O (xuất/nhập): dùng cho các thiết kế nhỏ.

Tuy nhiên, khi dùng chức năng này thì Port 0 phải dùng thêm các điện trở kéo lên (pull-up), giá trị của điện trở phụ thuộc vào thành phần kết nối với Port. - Khi dùng làm ngõ vào, Port 0 phải được set mức logic 1 trước đó. - Chức năng địa chỉ / dữ liệu đa hợp: khi dùng các thiết kế lớn, đòi hỏi phải sử dụng bộ nhớ ngoài thì Port 0 vừa là bus dữ liệu (8 bit) vừa là bus địa chỉ (8 bit thấp). Ngoài ra khi lập trình cho AT89C51, Port 0 còn dùng để nhận mã khi lập trình và xuất mã khi kiểm tra (quá trình kiểm tra đòi hỏi phải có điện trở kéo lên).

Port 1: Port1 (chân 1 – 8) chỉ có một chức năng là I/O, không dùng cho mục đích khác (chỉ trong 8032/8052/8952 thì dùng thêm P1.1 cho bộ định thời thứ 3). Tại Port 1 đã có điện trở kéo lên nên không cần thêm điện trở ngoài. Port 1 có khả năng kéo được 4 ngõ TTL và còn dùng làm 8 bit địa chỉ thấp trong quá trình lập trình hay kiểm tra. Khi dùng làm ngõ vào, Port 1 phải được set mức logic 1 trước đó.

Port 2: Port 2 (chân 21 – 28) là port có 2 chức năng: - Chức năng I/O (xuất / nhập) - Chức năng địa chỉ: dùng làm 8 bit địa chỉ cao khi cần bộ nhớ ngoài có địa chỉ 16 bit. Khi đó, Port 2 không được dùng cho mục đích I/O. - Khi dùng làm ngõ vào, Port 2 phải được set mức logic 1 trước đó. - Khi lập trình, Port 2 dùng làm 8 bit địa chỉ cao hay một số tín hiệu điều khiển.

Port 3: Port 3 (chân 10 – 17) là port có 2 chức năng: - Chức năng I/O. Khi dùng làm ngõ vào, Port 3 phải được set mức logic 1 trước đó. - Chức năng khác: mô tả như sau: 9 Bit Tên Chức năng chuyển đổi P3.0 RXD Dữ liệu nhận cho port nối tiếp P3.1 TXD Dữ liệu truyền cho port nối tiếp P3.2 INT0 Ngắt bên ngoài 0 P3.3 INT1 Ngắt bên ngoài 1 P3.4 T0 Ngõ vào của Timer/Counter 0 P3.5 T1 Ngõ vào của Timer/ Couter1 P3.6 WR Xung ghi bộ nhớ dữ liệu ngoài P3.7 RD Xung đọc bộ nhớ dữ liệu ngoài Bảng 2. 1 Các chức năng đặc biệt của port 3 Chân RST RST (Reset – chân 9): mức tích cực của chân này là mức 1, để reset ta phải đưa mức 1 (5V) đến chân này với thời gian tối thiểu 2 chu kỳ máy (tương đương 2µs đối với thạch anh 12MHz.

Chân XTAL XTAL 1, XTAL 2: AT89S52 có một bộ dao động trên chip, nó thường được nối với một bộ dao động thạch anh có tần số lớn nhất là 33MHz, thông thường là 12MH Chân EA EA (External Access): EA thường được mắc lên mức cao (+5V) hoặc mức thấp (GND). Nếu ở mức cao, bộ vi điều khiển thi hành chương trình từ ROM nội. Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng. Chân ALE ALE (Address Latch Enable): ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên ngoài trong nửa đầu của chu kỳ bộ nhớ.

Sau đó các đường port 0 dùng để xuất hoặc nhập dữ liệu trong nửa chukỳ sau của bộ nhớ. Chân PSEN PSEN (Program Store Enable): PSEN là chân điều khiển cho phép bộ nhớ chương trình mở rộng và thường được nối với đến chân OE (Output Enable) của 10 một EPROM để cho phép đọc các bytes mã lệnh. PSEN sẽ ở mức thấp trong thời gian đọc lệnh. Các mã nhị phân của chương trình được đọc từ EPROM qua Bus và được chốt vào thanh ghi lệnh của bộ vi điều khiển để giải mã lệnh.

Khi thi hành chương trình trong ROM nội, PSEN sẽ ở mức thụ động (mức cao). Chân nguồn Vcc, GND: AT89S52 dùng nguồn một chiều có dải điện áp từ 4V – 5.5V được cấp qua chân 40 (Vcc) và chân 20 (GND).2 Hoạt động định thời, cổng nối tiếp ,ngắt và xử lý ngắt của họ 8051 2.1 Hoạt động định thời Với 8051 ta chỉ có 2 timer đó là timer 0 và timer 1 còn đối với 8052 thì có thêm bộ định thời thứ 3 là timer 2,các timer này có rất nhiều ứng dụng quan trọng trong các lĩnh vực như đo lường, điều khiển.2 Cổng nối tiếp AT89S52 có một cổng nối tiếp trên chip có thể hoạt động ở nhiều chế độ khác nhau. Chức năng chủ yếu của cổng nối tiếp là chuyển đổi song song sang nối tiếp và chuyển đổi nối tiếp sang song song với dữ liệu nhập để có thể giao tiếp với máy tính qua cổng nối tiếp hoặc các thiết bị tương tự.3 Ngắt và xử lý ngắt Để tận dụng khả năng của cpu chúng ta phải sử dụng đến ngắt, ngắt giúp ta tạm ngừng công việc của CPU để phục vụ việc trao đổi giữ liệu.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ