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

Đồ Án Môn Vxl Nhóm 8 Dc20B.pdf

71 5 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

Tiêu đề Máy Tính Cộng Trừ Nhân Chia Hiển Thị Trên LCD
Tác giả Nhóm 8
Người hướng dẫn Th.S Lê Công Danh
Trường học Trường Đại Học Giao Thông Vận Tải TP. Hồ Chí Minh
Chuyên ngành Kỹ Thuật Vi Xử Lý
Thể loại Đồ Án Môn Học
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 71
Dung lượng 1,54 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI (8)
    • 1.1. Giới thiệu về máy tính bỏ túi (8)
    • 1.2. Các giải pháp và cách xác định bài toán (8)
      • 1.2.1 Yêu cầu của hệ thống (8)
      • 1.2.2 Lựa chọn phương án (8)
  • CHƯƠNG 2. GIỚI THIỆU VI ĐIỀU KHIỂN 8051 VÀ CÁC LINH KIỆN (10)
    • 2.1. Vi điều khiển AT89C51 (10)
      • 2.1.2 Hoạt động định thời, cổng nối tiếp ,ngắt và xử lý ngắt của họ 8051 (17)
      • 2.1.3 Các thanh ghi đặc biệt của 89C51 (SFR – Special Function Registers) (18)
    • 2.2. LCD hiển thị (22)
      • 2.2.1. Hình dáng và kích thước (22)
      • 2.2.2. Chức năng các chân (22)
    • 2.3. Bàn phím (27)
      • 2.3.1 Số lượng và chức năng phím nhấn (28)
      • 2.3.2 Xác định cách kết nối với VĐK (28)
      • 2.3.3 Sơ đồ nguyên lý (28)
      • 2.3.4. Nguyên tắc hoạt động (29)
      • 2.3.5. Ghép nối vi điều khiển với bàn phím (31)
  • CHƯƠNG 3. CÁC SỐ ĐỒ MẠCH (32)
    • 3.1. Sơ đồ khối LCD (32)
    • 3.2. Khối bàn phím (32)
    • 3.3. Khối trung tâm (33)
    • 3.4. Mô phỏng trên Proteus (33)
  • CHƯƠNG 4. LẬP TRÌNH CHO VI XỬ LÝ (34)
    • 4.1. Lưu đồ thực toán (34)
    • 4.2. Chương trình hợp ngữ Assembly (58)
  • CHƯƠNG 5. Những kết quả thu được và hướng phát triển (69)

Nội dung

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 ĐỒ ÁN MÔN HỌC HỌC PHẦN KỸ THUẬT VI XỬ LÝ ĐỀ TÀI MÁY TÍNH CỘNG TRỪ NHÂN CHIA HIỂN THỊ TRÊN LCD Giảng viên hƣớng dẫn Th S[.]

Trang 1

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

ĐỒ ÁN MÔN HỌC HỌC PHẦN: KỸ THUẬT VI XỬ LÝ

ĐỀ TÀI: MÁY TÍNH CỘNG TRỪ NHÂN

CHIA HIỂN THỊ TRÊN LCD

Giảng viên hướng dẫn :Th.S Lê Công Danh Nhóm thực hiện : Nhóm 8

Lớp : DC20B

Tp Hồ Chí Minh, tháng 01 năm 2023

Trang 2

Danh sách thành viên nhóm

Lê Hữu Thoại DC20B 2051060204 Liêu Thành Tâm DC20B 2051060174 Huỳnh Hiếu Nghĩa DC20B 2051060142 Nguyễn Phúc Thiện DC20B 2051060200 Huỳnh Thị Quỳnh DC20B 2051060164

Trang 3

MỤC LỤC

Lời mở đầu .1

CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 2

1.1 Giới thiệu về máy tính bỏ túi 2

1.2 Các giải pháp và cách xác định bài toán 2

1.2.1 Yêu cầu của hệ thống 2

1.2.2 Lựa chọn phương án 2

CHƯƠNG 2 GIỚI THIỆU VI ĐIỀU KHIỂN 8051 VÀ CÁC LINH KIỆN TRONG MẠCH 4

2.1 Vi điều khiển AT89C51 .4

2.1.2 Hoạt động định thời, cổng nối tiếp ,ngắt và xử lý ngắt của họ 8051 11

2.1.3 Các thanh ghi đặc biệt của 89C51 (SFR – Special Function Registers) 12

2.2 LCD hiển thị 16

2.2.1 Hình dáng và kích thước 16

2.2.2.Chức năng các chân 16

2.3 Bàn phím 21

2.3.1 Số lượng và chức năng phím nhấn 22

2.3.2 Xác định cách kết nối với VĐK 22

2.3.3 Sơ đồ nguyên lý 22

2.3.4.Nguyên tắc hoạt động 23

2.3.5 Ghép nối vi điều khiển với bàn phím 25

CHƯƠNG 3 CÁC SỐ ĐỒ MẠCH 26

3.1 Sơ đồ khối LCD 26

3.2 Khối bàn phím 26

3.3 Khối trung tâm 27

3.4 Mô phỏng trên Proteus 27

CHƯƠNG 4 LẬP TRÌNH CHO VI XỬ LÝ 28

4.1 Lưu đồ thực toán 28

4.2.Chương trình hợp ngữ Assembly 51

CHƯƠNG 5 Những kết quả thu được và hướng phát triển 63

Trang 4

5.1 Những kết quả thu được 63 CHƯƠNG 6 KẾT LUẬN 64 Tài liệu tham khảo 65

Trang 5

MỤC LỤC HÌNH

Hình 1 1 Máy tính bỏ túi .2

Hình 2 1 Sơ đồ khối của AC89C51……… 5

Hình 2 2 Sơ đồ chân của AC89C51 5

Hình 2 3 Cổng vào/ra 7

Hình 2 4 Xuất mức 0 7

Hình 2 5 Trở treo nội tại chân 8

Hình 2 6 Xuất mức 1 8

Hình 2 7 Hình dạng của LCD 16

Hình 2 8 Sơ đồ chân của LCD 16

Hình 2 9 Kết nối 8 bit: chân D0 đến D7 của LCD sẽ kết nối với 8 chân của MCU 21 Hình 2 10 Cấu tạo của một phím 22

Hình 2 11 Bàn phím với mã phím 23

Hình 2 12 Cách ghép nối bàn phím trong mô phỏng – dùng module bàn phím 25

Hình 3 1 Sơ đồ khối LCD………26

Hình 3 2 Sơ đồ khối bàn phím 26

Hình 3 3 Khối trung tâm 27

Hình 3 4 Mô phỏng trên Proteus 27

Trang 6

MỤC LỤC BẢNG

Bảng 2 1 Các chức năng đặc biệt của port 3 10

Bảng 2 2 Chọn bank thanh ghi: 13

Bảng 2 3 chọn chế độ hoạt động của port nối tiếp 15

Bảng 2 4 Chức năng các chân LCD 18

Bảng 2 5 Bảng mã lệnh điều khiển 20

Trang 7

1

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

Trang 8

2

CHƯƠNG 1: GIỚI THIỆU ĐỀ 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ó

Hình 1 1 Máy tính bỏ túi

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.2.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

1.2.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:

Trang 9

3

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

Trang 10

4

CHƯƠNG 2 GIỚI THIỆU VI ĐIỀU KHIỂN 8051 VÀ

CÁC LINH KIỆN TRONG MẠCH

2.1.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

 chu kỳ máy (4 µs đối với thạch anh 12MHz) cho hoạt động nhân hoặc chia

 Có các chế độ nghỉ (Low-power Idle) và chế độ nguồn giảm (Power-down)

 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

Trang 11

5

2.1.1.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

Trang 12

6

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.1.1.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

Trang 13

7

Hình 2 3 Cổng vào/ra

Hình 2 4 Xuất mức 0

Trang 14

8

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)

Hình 2 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

Hình 2 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:

Trang 15

9

- 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.0 và 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:

Trang 16

10

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 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

Trang 17

11

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)

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.1.2.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ự

2.1.2.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 Sau khi hoàn thành việctrao đổi dữ liệu thì CPU phải quay về làm nốt công việc đang bị gián đoạn Điều này giúp cho CPU làm việc hiệu quả hơn rất nhiều

Với AT89S52 ta có 6 nguồn ngắt:

Ngắt ngoài đến từ chân #INT0

Ngắt ngoài đến từ chân #INT1

Ngắt do bộ timer 0

Ngắt do bộ timer 1

Ngắt do bộ timer 2

Trang 18

12

Ngắt do port nối tiếp

2.1.3 Các thanh ghi đặc biệt của 89C51 (SFR – Special Function Registers)

2.1.3.1 Thanh ghi tích luỹ (Accumulator)

Thanh ghi tích luỹ là thanh ghi sử dụng nhiều nhất trong AT89C51, được ký hiệu trong câu lệnh là A Ngoài ra, trong các lệnh xử lý bit, thanh ghi tích luỹ được ký hiệu là ACC

2.1.3.2 Thanh ghi B

Thanh ghi tích luỹ có thể truy xuất trực tiếp thông qua địa chỉ E0H (byte) hay truy xuất từng bit thông qua địa chỉ bit từ E0H đến E7H.

2.1.3.3 Thanh ghi từ trạng thái chương trình (PSW - Program Status Word)

Thanh ghi từ trạng thái chương trình PSW nằm tại địa chỉ D0H và có các địa chỉ bit từ D0H – D7H, bao gồm 7 bit (1 bit không sử dụng) có các chức năng như sau:

Bit 7 6 5 4 3 2 1 0 Chức

năng

CY AC FO RS1 RSO OV - P

CY (Carry): cờ nhớ, thường được dùng cho các lệnh toán học (C = 1 khi có nhớ

trong phép cộng hay mượn trong phép trừ)

AC (Auxiliary Carry): cờ nhớ phụ (thường dùng cho các phép toán BCD)

F0 (Flag 0): được sử dụng tuỳ theo yêu cầu của người sử dụng

RS1, RS0: dùng để chọn bank thanh ghi sử dụng Khi reset hệ thống, bank 0 sẽ

được sử dụng

OV (Overflow): cờ tràn Cờ OV = 1 khi có hiện tượng tràn số học xảy ra (dùng cho

số nguyên có dấu)

P (Parity): kiểm tra parity (chẵn) Cờ P = 1 khi tổng số bit 1 trong thanh ghi A là số

lẻ (nghĩa là tổng số bit 1 của thanh ghi A cộng thêm cờ P là số chẵn)

Trang 19

Bảng 2 2 Chọn bank thanh ghi:

Ví dụ như: A = 10101010b có tổng cộng 4 bit 1 nên P = 0 Cờ P thường được dùng

để kiểm tra lỗi truyền dữ liệu

2.1.3.4 Thanh ghi con trỏ stack (SP – Stack Pointer)

Con trỏ stack SP nằm tại địa chỉ 81H và không cho phép định địa chỉ bit SP dùng để chỉ đến đỉnh của stack Stack là một dạng bộ nhớ lưu trữ dạng LIFO (Last

In First Out) thường dùng lưu trữ địa chỉ trả về khi gọi một chương trình con Ngoài

ra, stack còn dùng như bộ nhớ tạm để lưu lại và khôi phục các giá trị cần thiết Đối với AT89C51, stack được chứa trong RAM nội (128 byte đối với 8031/8051 hay

256 byte đối với 8032/8052) Mặc định khi khởi động, giá trị của SP là 07H, nghĩa

là stack bắt đầu từ địa chỉ 08H (do hoạt động lưu giá trị vào stack yêu cầu phải tăng nội dung thanh ghi SP trước khi lưu

2.1.3.5 Con trỏ dữ liệu DPTR (Data Pointer)

Con trỏ dữ liệu DPTR là thanh ghi 16 bit bao gồm 2 thanh ghi 8 bit: DPH (High) nằm tại địa chỉ 83h và DPL (Low) nằm tại địa chỉ 82H Các thanh ghi này không cho phép định địa chỉ bit DPTR được dùng khi truy xuất đến bộ nhớ có địa chỉ 16 bit

2.1.3.6 Các thanh ghi Port

Gồm 4 thanh ghi tương ứng với 4 port:

P0 Port 0 : ở địa chỉ 80H đến dịa chỉ 87H

P1 Port 1 : ở địa chỉ 90H đến địa chỉ 97H

P2 Port 2 : ở địa chỉ A0H đến địa chỉ A7H

P3 Port 3 : ở địa chỉ B0H đến địa chỉ B7H

Trang 20

14

Nếu truy suất Port ta truy suất các thanh ghi Port tương ứng Các thanh ghi này được định địa chỉ từng Bit

2.1.3.7 Các thanh ghi bộ định thời (Timer)

AT89c51 có hai thanh ghi bộ định thời/đếm 16 bit được dùng cho định thời hoặc đếm sự kiên

Thanh ghi chế độ định thời (TMOD)

Không được định địa chỉ bit

Dùng để định chế độ hoạt động cho TIMER

Chức năng từng bit

Thanh ghi điều khiển định thời (TCON):

Chứa các bit điều khiển và trạng thái của Timer 0, 1 ở 4 bit cao, 4 bit thấp được dùng cho chức năng ngắt (interrupt)

Chức năng từng bit:

2.1.3.8 Các thanh ghi port nối tiếp (Serial port)

2.1.3.8.1 Thanh ghi SBUF (Serial Buffer)

Ở địa chỉ 99H là bộ đệm nhập/xuất nối tiếp, khi xuất dữ liệu thì ghi lên SBUF, khi nhập dữ liệu thì đọc từ SBUF

Các chế độ hoạt động khác nhau của port nối tiếp được lập trình thông qua thanh ghi điều khiển port nối tiếp SCON (Serial Control) ở địa chỉ 98H Đây là thanh ghi được địa chỉ từng bit

2.1.3.8.2 Thanh ghi điều khiển port nối tiếp SCON

Trang 21

15

Địa chỉ 99H

Định địa chỉ bit

Chức năng các bit

SM0, SM1: chọn chế độ hoạt động của port nối tiếp

Bảng 2 3 chọn chế độ hoạt động của port nối tiếp

SM2: chọn chế độ hoạt động của port nối tiếp

SM2 = 1: cho phép truyền thông đa xử lý ở các chế độ 2 và 3; bit

RI sẽ không được tích cực nếu bit thứ 9 nhận được là 0

REN: bit cho phép thu

REN = 1: cho phép thu

REN = 0: không cho phép thu

TB8: bit phát thứ 9 (ở chế độ 2 và 3), có thể đặt và xóa bằng phần mềm

RB8: bit thu thứ 9 (ở chế độ 2 và 3), có thể đặt và xóa bằng phần mềm. 2.1.3.9 Các Thanh Ghi Ngắt (Interrupt)

8031/8051 có 5 nguồn ngắt:

2 ngắt ngoài: ngắt ngoài 0: qua chân INT0 (P3.2)

ngắt ngoài 1: qua chân INT1 (P3.3)

3 ngắt trrong: ngắt timer 0, ngắt timer 1, ngắt port nối tiếp

2.1.3.10 Hoạt động reset

Trang 22

tự và đặt tên như bên dưới :

Hình 2 8 Sơ đồ chân của LCD

2.2.2.Chức năng các chân

Trang 23

VCC=5V của mạch điều khiển

3 Vee Chân này dùng để điều chỉnh độ tương phản của

chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ

“đọc” - read) + Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi

dữ liệu DR bên trong LCD

Trang 24

18

chuyển vào(chấp nhận) thanh ghi bên

trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu

bit DB7

+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường

từ DB4 tới DB7, bit MSB là DB7

Bảng 2 4 Chức năng các chân LCD

Để LCD hoạt động và hiển thị được dữ liệu thì ta phải điều khiển hai thanh ghi:

Thanh ghi lệnh và thanh ghi dữ liệu:

+ Thanh ghi IR lưu trữ mã lệnh: Như xóa hiện thị và dịch con trỏ, và chứa thông tin địa chỉ cho vùng RAM dữ liệu hiển thị (DDRAM) và vùng RAM tạo ký tự CGRAM IR chỉ có thể ghi từ vi điều khiển

+ Thanh ghi DR dùng để lưu trữ tạm thời dữ liệu để ghi đến DDRAM hoặc CGRAM và dữ liệu lưu trữ tạm thời có thể đọc từ DDRAM hoặc CGRAM

Dữ liệu được ghi đến thanh ghi DR, dữ liệu đó sẽ tự động được truyền đến DDRAM hoặc CGRAM một cách tự động Thanh ghi DR cũng là vùng lưu

Trang 25

19

trữ dữ liệu tạm thời khi ta muốn đọc dữ liệu DDRAM hoặc CGRAM Khi các thông tin về địa chỉ được ghi đến thanh ghi IR, dữ liệu được từ DDRAM hoặc CGRAM được đọc và lưu trữ vào DR một cách tự động bởi LCD Khi đó ta tiến hành đọc dữ liệu lưu trữ ở thanh ghi DR Sau khi đọc, dữ liệu trong

DDRAM hoặc CGRAM tại địa chỉ kế tiếp được đưa đến thanh ghi DR để sẳn sàng cho lần đọc kế tiếp từ vi điều khiển Nhờ tín hiệu lựa chọn thanh ghi (RS), khi đó ta thể lựa chọn giữa hai thanh ghi IR và DR

Gởi lệnh điều khiển thanh ghi lệnh LCD:

Bước 1: Kéo chân RW xuống mức thấp để chọn chế độ ghi (chân RW thường trong thiết kế người ta nói xuống GND)

Bước 2: Kéo chân RS xuống mức thấp cho LCD hiểu là chúng ta muốn ghi lệnh (chọn thanh ghi lệnh)

Bước 3: Gởi byte lệnh ra các chân D0 đến D7

Bước 4: Tạo một xung tại chân E, xung mức cao-thấp( E=1 rồi delay rồi E =0)

Gởi dữ liệu ra thanh ghi dữ liệu để hiển thị dữ liệu ra LCD

Sau khi gởi lệnh điều khiển LCD chúng ta sẽ gởi dữ liệu cần hiển thị lên màn hình LCD:

Bước 1: Kéo RW xuống mức thấp để chọn chế độ ghi (chân RW thường trong thiết

kế người ta nói xuống GND)

Bước 2: Kéo chân RS lên mức cao cho LCD hiểu là chúng ta muốn ghi dữ liệu ra màn hình (chọn thanh ghi dữu liệu)

Bước 3: Gởi ký tự cần hiểu thị ra chân D0 đến D7

Bước 4: Tạo một xung tại chân E, xung mức cao-thấp( E=1 rồi delay rồi E =0)

2.2.3 Các mã lệnh đều khiển thanh ghi lệnh của LCD:

Để điều khiển hoạt động của LCD người ta xây dựng các mã lệnh HEX để điều khiển LCD như sau:

2.2.3.1 Mã lệnh điều khiển: (Thanh ghi lệnh)

Trang 26

0x02 Di chuyển con trỏ về vị trí đầu của màn hình

0x04 Di chuyển con trỏ sang trái 1 đơn vị

0x06 Di chuyển con trỏ sang phải 1 đơn vị

0x18 Dịch toàn bộ nội dung sang trái

0x1C Dịch toàn bộ nội dung sang phải

0x08 Tắt hiển thị và tắt con trỏ

0x0A Tắt hiển thị và bậc con trỏ

0x0C Bậc hiển thị là tắt con trỏ

0x0E Bậc hiển thị và bậc con trỏ

0x80 Di chuyên con trỏ về đầu dòng thứ 1

0xC0 Di chuyển con trỏ về đầu dòng thứ 2

0x38 Chọn giao tiếp 8 bit(từ D0 đến D7), hiển thị 2 dòng, kích

thước font 5x7 0x28 Chọn giao tiếp 4 bit(từ D4 đến D7), hiển thị 2 dòng, kích

thước font 5x7

Bảng 2 5 Bảng mã lệnh điều khiển

2.2.3.2 Cách kết nối LCD 16x2 với vi điều khiển (MCU)

Trang 27

Khi ấn nút, tấm than sẽ tiếp xúc đóng tiếp điểm hàng và cột tương ứng với con số vừa ấn để báo cho mạch mã hóa trong IC phát số biết có phím được ấn Khi thôi ấn, nhờ sức đàn hồi của cao su, tấm than tách rời tiếp điểm về trạng thái nghỉ

Trang 28

22

Hình 2 10 Cấu tạo của một phím

2.3.1 Số lượng và chức năng phím nhấn

Bàn phím gồm các loại phím và số lượng như sau:

RST: khởi động lại hoạt động ban đầu

AC: xóa màn hình nhưng còn lại kết quả

Để giảm bớt số chân của VĐK kết nối với nút nhấn khi số lượng nút nhấn nhiều,

ta cần kết nối nút nhấn dưới dạng ma trận và dùng phương pháp quét phím để xác

định phím nào được nhấn

Với ma trận phím 4*4 ta có vừa đủ số phím cần dùng

2.3.3 Sơ đồ nguyên lý

Trong bàn phím ma trận 4*4 sẽ có 4 hàng H[0:3] đóng vai trò là các ngõ vào

bình thường ở mức cao H và có 4 cột dùng để xuất mã quét 4 hàng và 4 cột được

Trang 29

Để xác định phím nào được nhấn, ta kết nối 4 hàng với một port của VĐK, 5 cột với port khác, VĐK xuất mã quét (mã quét là mã nhị phân có một bit 0, còn lại là các bit 1) ra các cột và sau đó đọc dữ liệu từ các hàng, nếu có hàng nào xuống mức thấp thì có phím được nhấn trong hàng đó, dựa vào mã quét hiện thời, ta xác được cột nào có phím được nhấn Như vậy, ta có thể xác định được phím nhấn Nếu không có phím được nhấn thì tất cả các hàng đều ở mức cao Các bước như sau:

Bước 1: Đưa cột 0 C0=0V và các cột còn lại có mức cao “H”, thực hiện đọc dữ

liệu trên các hàng H[0:3] Ta có thể xác định được sw0, sw1, sw2, sw3

Bước 2: Đưa cột 1 C1=0V và các cột còn lại có mức cao “H”, thực hiện đọc dữ liệu trên các hàng H[0:3] Ta có thể xác định được sw4, sw5, sw6, sw7

Bước 3: Đưa cột 2 C2=0V và các cột còn lại có mức cao “H”, thực hiện đọc dữ liệu trên các hàng H[0:3] Ta có thể xác định được sw8, sw9, swA, swB

Bước 4: Đưa cột 3 C3=0V và các cột còn lại có mức cao “H”, thực hiện đọc dữ

Trang 30

24

liệu trên các hàng H[0:3] Ta có thể xác định được swC, swD, swE, swF

Các chân rs, rw, e dùng để điểu khiển việc đọc ghi dữ liệu

Bốn chân D4-D7 dùng để truyền dữ liệu giữa LCD và VĐK theo chế độ 4 bit

Trang 31

25

2.3.5 Ghép nối vi điều khiển với bàn phím

Hình 2 12 Cách ghép nối bàn phím trong mô phỏng – dùng module bàn

Trang 33

27

Hình 3 3 Khối trung tâm

Hình 3 4 Mô phỏng trên Proteus

Trang 34

 Lưu đồ chương trình đầu vào

 Lưu đồ chương trình đầu ra

 Lưu đồ chương trình dấu cộng

 Lưu đồ chương trình dấu trừ

 Lưu đồ chương trình dấu nhân

 Lưu đồ chương trình dấu chia

 Lưu đồ chương trình quét bàn phím

 Lưu đồ chương trình hiển thị LCD

 Lưu đồ nạp các lệnh vào thanh ghi LCD

 Lưu đồ chương trình xuất kí tự

Trang 35

STOP

Ngày đăng: 21/02/2023, 12:00

w