1. Trang chủ
  2. » Giáo Dục - Đào Tạo

TÀI LIỆU THÍ NGHIỆM VI XỬ LÝ DÀNH CHO GIẢNG DẠY THEO HÌNH THỨC TRỰC TUYẾN

47 14 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 đề Tài Liệu Thí Nghiệm Vi Xử Lí Dành Cho Giảng Dạy Theo Hình Thức Trực Tuyến
Trường học Bộ Mễn Điện Tử
Thể loại tài liệu thí nghiệm
Định dạng
Số trang 47
Dung lượng 2,51 MB

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

Nội dung

VIẾT CHƯƠNG TRÌNH ASSEMBLY VỚI Keil µVision 4 Các hệ thống vi xử lý hoặc vi điều khiển đều cần có một phần mềm chương trình để điều khiển hoạt động của nó.. • Phần mềm giao tiếp: phần nà

Trang 1

BỘ MÔN ĐIỆN TỬ DEPARTMENT OF ELECTRONICS

TÀI LIỆU THÍ NGHIỆM VI XỬ LÝ DÀNH CHO GIẢNG DẠY THEO HÌNH THỨC TRỰC TUYẾN

Trang 3

CHƯƠNG 1 VIẾT CHƯƠNG TRÌNH ASSEMBLY VỚI Keil µVision 4

Các hệ thống vi xử lý hoặc vi điều khiển đều cần có một phần mềm (chương trình) để điều khiển hoạt động của nó Chương trình này được giữ trong bộ nhớ chương trình (program memory) của MCU Ở cấp thấp nhất, chương trình trong hệ thống là các bit nhị phân thường được gọi là mã máy

Tuy nhiên, người lập trình rất khó để thao tác với các bit nhị phân Trong thực tế, các chương trình sẽ được viết trên máy tính bằng hợp ngữ (assembly) hoặc các ngôn ngữ cấp cao khác như C/C++, Basic,… Các chương trình này sẽ cần phải qua bước biên dịch, liên kết để chuyển sang dạng mã máy phù hợp với loại MCU đang dùng Công cụ để thực hiện các bước này được gọi là chương trình dịch hợp ngữ (assembler), chương trình biên dịch (compiler), và chương trình liên kết (linker) Mỗi loại MCU thường có một chương trình dịch hợp ngữ của riêng nó

Trong tài liệu thí nghiệm này, người lập trình có thể sử dụng chương trình Keil µVision 4, với trình biên dịch C51 Bản dùng thử có thể được tải tại www.keil.com, cho phép biên dịch các chương trình assembly và C với giới hạn kích thước chương trình là 2KB Ngoài ra cũng có thể dùng chương trình biên dịch miễn phí SDCC (tại http://sdcc.sourceforge.net/) Đây cũng là một bộ công cụ rất hữu ích cho người lập trình

1.1 Tạo một project trong Keil µVision 4

Để tạo một project với Keil µVision 4 ta theo các bước sau:

• Khởi động chương trình Keil µVision 4

• Chọn Project-New Project Chọn thư mục phù hợp và gõ tên project vào cửa sổ Create New Project Chọn Save như ở Hình 1

Hình 1: Tạo project mới với µVision 4

Trang 4

Trong cửa sổ Select Device, chọn Atmel-AT89S52 Đây là CPU sử dụng trên kit thí nghiệm Click OK

Hình 2: Chọn vi điều khiển cho project Khi chương trình hiện cửa sổ hỏi: “Copy ‘STARTUP.A51’ to project folder and Add File

To Project”, chọn NO

Chọn File-New để tạo một file text mới

Chọn File-Save để lưu file này với tên file phù hợp và đuôi là A51

Hình 3: Tạo file mới với đuôi A51 Click chuột phải vào tab ‘Source Group 1’ chọn Add files to Group ‘Source Group 1’

Trang 5

Hình 4: Thêm file vào project Chọn Files of Type là Asm Source file Chọn file vừa tạo và click Add

Hình 5: Chọn file assembly để thêm vào project Chọn Project-Option for Target ‘Target 1’, chọn Tab Output, chọn Create Hex File

Trang 6

Hình 6: Cấu hình chương trình biên dịch để tạo file hex Giả sử chương trình được viết có tên main.A51 Để bắt đầu chương trình, người sử dụng

phải dùng dẫn xuất ORG tại địa chỉ 0000h như sau:

ORG 0000h

; phần thân chương trình

END

Trang 7

Hình 7: Biên soạn và biên dịch chương trình Chọn Project-Build Target Nếu chương trình không có lỗi, chương trình sẽ biên dịch thành công với số lỗi (error) là 0, đồng thời file kết quả biên dịch sẽ được tạo ra với đuôi hex

1.2 Tính năng debug (gỡ lỗi) trong Keil µVision 4

Người lập trình có thể mô phỏng chương trình bằng cách sử dụng simulator có sẵn của Keil µVision như sau:

Chọn Debug -> Start/Stop Debug Session

Hình 8: Tính năng Debug trong Keil Kết quả mô phỏng sẽ hiển thị như hình dưới đây:

Trang 8

Hình 9: Giao diện tính năng Debug

Màn hình Debug của Keil µVision bao gồm các thành phần chính sau:

1.2.1.Cửa sổ Disassembly

Hình 10: Cửa sổ Disassemply Cửa sổ Disassembly hiển thị việc thực thi chương trình trong mã assembly Khi cửa sổ Disassembly hoạt động, thì tất cả các lệnh gỡ lỗi-bước sẽ hoạt động ở cấp độ assembly (Nếu người lập trình chạy Debug nhưng không hiển thị cửa sổ Disassembly có thể mở bằng cách nhấn View

— Disassembly Window)

Như đa số các trình IDE khác, Keil hổ trợ người dùng tính năng Breakpoint Breakpoint

kích hoạt các điểm trong chương trình của người lập trình để ngừng thi hành hoặc thực hiện chức năng Debug Để có thể đặt các điểm Breakpoint, sinh viên có thể nhấp đôi chuột trái vào trước

Trang 9

một dòng lệnh, khi đó ngay tại trước dòng lệnh này sẽ xuất hiện một ô vuông màu đỏ để đánh dấu điểm Breakpoint Tương tự, người lập trình cũng có thể xóa điểm breakpoint này bằng cách nhấp đôi chuột một lần nữa vào dòng lệnh

Ngoài ra thanh bên trái của sổ Disassembly biểu thị hành vi của dòng lệnh thông qua một số màu như sau:

- No code: Các dòng không có mã được đánh dấu bằng một khối màu xám nhạt

- Unexecuted Code: Các dòng chưa thực hiện (instructions) được đánh dấu bằng một

khối màu xám đậm

- Executed Code: Các dòng được thực hiện đầy đủ (instructions) được đánh dấu bằng

một khối màu xanh lá cây Khối màu xanh lá cây trên lệnh rẽ nhánh cho biết rằng cả điều kiện đúng và sai đều đã được kiểm tra

- Branch Condition True: Một khối xanh lam chỉ ra rằng chỉ điều kiện này của một

nhánh là đúng và do đó luôn được thực thi

- Branch Condition False: Một khối màu cam chỉ ra rằng điều kiện này của một nhánh

không bao giờ đúng và do đó không bao giờ thực thi

1.2.2 Thanh công cụ Debug

- Reset CPU: Đặt CPU về trạng thái ban đầu

- Run: Tiếp tục thực hiện chương trình cho đến khi đạt đến điểm ngắt hoạt động tiếp theo

- Stop: Dừng chương trình ngay lập tức

- Step Into: thực hiện một lệnh duy nhất, thực hiện dòng lệnh hiện tại

- Step Over: Thực hiện một bước duy nhất trên một hàm

- Step Out: Hoàn tất việc thực thi hàm hiện tại và dừng sau đó

- Run to Cursor: Thực thi chương trình cho đến khi đạt đến điểm Breakpoint kế

tiếp

Trang 10

1.2.3 Thanh ghi

Cửa sổ Thanh ghi hiển thị và cho phép sửa đổi nội dung của các thanh ghi, liệt kê các chế độ hoạt động của vi điều khiển, các trạng thái hệ thống và bên trong

Hình 11: Cửa sổ thanh ghi

- Register: Liệt kê các thanh ghi của vi điều khiển 8051

- Value: Giá trị của thanh ghi Sinh viên có thể nhấp đôi chuột vào từng giá trị của

thanh ghi để có thể sửa đổi

1.2.4 Bộ nhớ của vi điều khiển:

Bảng dưới đây trình bày các lớp bộ nhớ sử dụng để lập trình kiến trúc 8051:

Bảng 1: lớp bộ nhớ sử dụng để lập trình kiến trúc 8051

Memory class Tầm địa chỉ Mô tả

DATA D:00 – D:7F Địa chỉ trực tiếp trên RAM (RAM nội)

BIT D:20 – D:2F Địa chỉ định vị BIT trên RAM (RAM nội); truy

cập bit instructions

Trang 11

IDATA I:00 – I:FF Định địa chỉ gián tiếp trên RAM (RAM nội); có

thể được truy cập bằng @R0 hoặc @R1

XDATA X:0000-X:FFFF Truy cập RAM 64 KB (RAM ngoại) Được truy

Mã Bank để mở rộng không gian mã chương trình lên 32 x 64KB ROM

Trang 12

CHƯƠNG 2 TỔNG QUAN VỀ PHẦN MỀM MÔ PHỎNG PROTEUS

2.1 Tổ chức tài liệu hướng dẫn

Kit thí nghiệm được mô phỏng trong cái bài thí nghiệm được thiết kế dựa trên họ vi điều khiển MCS-51 Tài liệu hướng dẫn thí nghiệm này giúp người sử dụng tiếp cận với các kiến thức

cơ bản về vi điều khiển 8051 nhanh chóng hơn Tài liệu thí nghiệm bao gồm tài liệu hướng dẫn sử dụng phần mềm mô phỏng Proteus, các bài thí nghiệm, và một số mã nguồn để tham khảo Tài liệu hướng dẫn sẽ giới thiệu các thành phần của kit thí nghiệm được mô phỏng, được tổ chức thành các phần như sau:

Lý thuyết cơ bản: phần này sẽ tóm tắt sơ lược các kiến thức lý thuyết có liên quan

đến bài thí nghiệm

Thiết kế phần cứng: nội dung của phần này sẽ giúp người sử dụng nắm được chi

tiết về sơ đồ và cách thức thiết kế phần cứng của kit thí nghiệm Người sử dụng cần hiểu rõ các nội dung được đề cập trong phần này Các thiết kế phần cứng này hoàn toàn có thể ứng dụng trong thực tế

Phần mềm giao tiếp: phần này sẽ giúp người sử dụng nắm được các kỹ thuật để xây

dựng phần mềm đáp ứng yêu cầu của bài thí nghiệm Các nội dung được đề cập trong phần này cũng sẽ rất hữu dụng trong thực tế

Mỗi bài thí nghiệm được tổ chức thành các phần như sau:

Mục tiêu: giúp người học nắm được mục tiêu cụ thể của bài thí nghiệm

Yêu cầu: phần này sẽ đưa ra yêu cầu cụ thể của bài thí nghiệm

Hướng dẫn: phần này nêu một số hướng dẫn để sinh viên có thể lập trình dễ dàng

hơn

Kiểm tra: giúp người sử dụng đáng giá mức độ đạt được các mục tiêu của bài thí

nghiệm, đồng thời gợi ý một số hiệu chỉnh nhằm làm phong phú nội dung thí nghiệm

2.2 Giới thiệu phần mềm mô phỏng Proteus

Phần mềm vẽ Proteus là phần mềm vẽ mạch điện tử được phát triển bởi công ty Lancenter Electronics Phần mềm có thể mô tả hầu hết các linh kiện điện tử thông dụng hiện nay Vì vậy trong phần thí nghiệm của môn Kỹ thuật số, sinh viên cần phải hiểu rõ nguyên lý sơ đồ mạch của từng bài thí nghiệm bằng cách sử dụng phần mềm Proteus để thực hiện mô phỏng trước các mạch này trước khi tiến hành thực hiện bài thí nghiệm

Cài đặt phần mềm mô phỏng Proteus

Phần mềm Proteus hiện nay khá phổ biến với nhiều người dùng đặc biệt là các kỹ sư điện

tử, vì vậy tài liệu hướng dẫn cài đặt Proteus có khá nhiều trên các diễn đàn Điện - Điện tử Sinh viên có thể tìm kiếm trên Google hoặc Youtube các tài liệu hướng dẫn hay các Video cài đặt một cách dễ dàng

Trang 13

Tài liệu thí nghiệm này được viết dựa trên phần mềm Proteus phiên bản 8.8 SP1

2.3 Tổng quan thí nghiệm được mô phỏng bằng Proteus

Mạch thí nghiệm được mô phỏng có hình dạng và các khối cơ bản như Hình 1

2.3.1 Vi điều khiển họ MCS-51

Mạch mô phỏng sử dụng vi điều khiển họ MCS-51 có tên mã AT89C51 bao gồm 4 Port (P0 -> P3)

Trang 14

Hình 12: Khối vi điều khiển Trong phần mềm mô phỏng Proteus, sinh viên có thể nạp chương trình để mô phỏng bằng cách sau:

- Nhấp đôi chuột vào vi điều khiển

Hình 13: Nạp chương trình cho vi điều khiển trong Proteus

- Nhấn vào biểu tượng và dẫn đến file HEX mà Keil µVision biên dịch được

- Nhấn OK

2.3.2 Nút nhấn

Trang 15

Khi giao tiếp với nút nhấn đơn, có hai dạng cơ bản thiết kế phần cứng:

- Trở kéo lên: Hay nhấn nút vi điều khiển đọc mức thấp và nhả nút vi điều khiển đọc ở mức cao

Hình 14: Thiết kế nút nhấn theo kiểu trở kéo lên

- Trở kéo xuống: Hay nhấn nút vi điều khiển đọc mức cao và nhả nút vi điều khiển đọc ở mức thấp

Hình 15: Thiết kế nút nhấn theo kiểu trở kéo xuống

Trong mạch mô phỏng của thí nghiệm vi xử lý (theo hình thức giảng dạy trực tuyến), các nút nhấn được thiết kế gồm 8 nút nhấn đơn kết nối với PORT 1 của vi điều khiển 8051 như các hình sau Trong hình, các đường tín hiệu có tên trùng nhau sẽ nối với nhau Từ sơ đồ thiết kế ta có thể thấy nút nhấn trong kit thí nghiệm là loại trở kéo xuống (nhấn vào mức thấp, nhả ra mức cao)

Trang 16

Hình 16: Khối nút nhấn trong mạch mô phỏng

Về lập trình, vì giá trị đọc được từ một nút nhấn đơn chỉ có độ rộng là 1 bit nên người lập trình nên sử dụng cờ C để chứa giá trị này, sau đó xét giá trị cờ C để nhận biết nút nhấn có được nhấn hay không bằng lệnh JC: nếu cờ C ở mức 0 tức là nút nhấn được nhấn thì chương trình sẽ nhảy đến nhãn CO_NHAN_NUT và thực thi các câu lệnh khi nút nhấn được nhấn; ngược lại nếu

cờ C ở mức 1 tức là nút nhấn không được nhấn thì chương trình sẽ thực thi các câu lệnh khi nút nhấn không nhấn Việc kiểm tra nút nhấn cần phải kiểm tra liên tục bằng cách đặt trong vòng lập (LOOP) Đây là đoạn chương trình tổng quát khi làm việc với nút nhấn bằng vòng lập, có thể viết gọn lại tùy đề bài

Trang 17

Trong kit thí nghiệm môn học vi xử lý có hai LED thanh (bar LED) được kết nối với PORT

1 và PORT 3 của 8051 thông qua IC 74HC245 LED sẽ sáng khi chân vi điều khiển nối với LED

Trang 18

2.3.4 Giải mã địa chỉ

Mạch giải mã địa chỉ được thiết kế dùng vi mạch giải mã 74LS138 Sơ đồ thiết kế như hình sau:

Hình 19: Khối giải mã địa chỉ

Bản đồ bộ nhớ được sắp xếp như sau:

Bảng 2: bản đồ bộ nhớ giải mã địa chỉ của mạch mô phỏng

1 Chốt 74LS573 của khối led 7 đoạn 0000H-1FFFH (nY0)

3 Ra lệnh bắt đầu chuyển đổi ADC và chốt kênh cần chuyển đổi 4000H – 5FFFH (nY2)

4 Đọc 8 bit dữ liệu từ ADC 4000H – 5FFFH (nY2)

5 Điều khiển chốt 74LS573 chốt 8 bit dữ liệu của khối LCD 6000H-7FFFFH (nY3)

6 Điều khiển chốt 74LS573 chốt 8 bit dữ

liệu của khối led matrix cột 8000H – 9FFFH (nY4)

Trang 19

7 Điều khiển chốt 74LS573 chốt 8 bit dữ liệu của khối led matrix hàng A000H – BFFFH (nY5)

8 Không sử dụng C000H – DFFFH (nY6)

9 Không sử dụng E000H – FFFFH (nY7)

Ví dụ: Tích cực cho chân ‘7SEG’

Hình 20: Tín hiệu chọn LED 7SEG

Khối LED 7 đoạn được thiết kế để hoạt động với cơ chế 3 bus Trong cơ chế này, Port0 và Port2 được dùng để làm bus dữ liệu và bus địa chỉ Hai tín hiệu đọc ghi của bus điều khiển nằm trên Port3 Mỗi ngoại vi hoặc bộ nhớ trong chế độ 3 bus sẽ được gán địa chỉ thông qua mạch giải

mã địa chỉ Một ngoại vi hoặc bộ nhớ dữ liệu ngoài (off-chip) được thiết kế để hoạt động với cơ chế 3 bus có thể được truy xuất bằng câu lệnh MOVX Câu lệnh này chứa các thông tin gồm địa chỉ của ngoại vi hoặc ô nhớ cần truy xuất, dạng lệnh là đọc hoặc ghi

MOVX A, @DPTR ; đọc ngoại vi tại địa chỉ trong DPTR vào A

Khi câu lệnh đọc được thực thi, 8051 sẽ thực hiện các bước sau:

- Đặt địa chỉ cần đọc lên bus địa chỉ A0-A15 (tức là Port0 và Port2), giá trị này sẽ làm cho tín hiệu giải mã địa chỉ tương ứng được phép tích cực

- Ra lệnh đọc bằng tín hiệu điều khiển nRD (bit P3.7)

- Đưa dữ liệu đọc được từ bên ngoài vào thanh ghi A thông qua bus dữ liệu (Port0)

MOVX @DPTR, A ; ghi A ra ngoại vi tại địa chỉ trong DPTR

Khi câu lệnh ghi được thực thi, 8051 sẽ thực hiện các bước sau:

- Đặt địa chỉ cần ghi lên bus địa chỉ A0-A15, giá trị này sẽ làm cho tín hiệu giải mã địa chỉ tương ứng được phép tích cực

- Đặt dữ liệu trong thanh ghi A lên bus dữ liệu

- Ra lệnh ghi bằng tín hiệu nWR (bit P3.6)

Trang 20

Hình 21: Giản đồ định thì của lệnh đọc/ghi ngoại vi trong chế độ 3 bus

Vì vậy có thể tóm tắt hoạt động của quá trình tích cực cho chân 7SEG như sau:

Bước 1: Đặt địa chỉ cần ghi lên bus địa chỉ A0-A15

Cụ thể theo như hình “Tín hiệu chọn LED” ta thấy đầu vào của IC 74LS138 chỉ có 3 chân

‘A13’, ‘A14’, ‘A15’ để chọn các ngõ ra tương ứng là từ ‘Y0’ đến ‘Y7’

Bên cạnh đó tín hiệu 7SEG = nWR NOR nY0 Do đó, để tích cực cho tín hiệu 7SEG thì cả

hai tín hiệu nWR và nY0 phải đều bằng 0 Một mặt, tín hiệu WR sẽ tích cực khi lệnh “MOVX

@DPTR, A” thực hiện để cho phép ghi giá trị được lưu trong thanh ghi A ra RAM ngoại tại địa chỉ được chứa trong thanh ghi DPTR Vì vậy ta cần xác định giá trị ‘A13 A14 A15’ là ‘0 0 0’ để tích cực cho tín hiệu Y0 tương ứng với tầm địa chỉ từ 0000H – 1FFFH

Trong ví dụ này, chúng ta chọn địa chỉ 1408H (nằm trong tầm 0000H – 1FFFH) để tích cực

cho tín hiệu Y0

MOV DPTR, #1408H

Bước 2: Xác định giá trị thanh ghi A

Ở bước này, đối với từng trường hợp mà đề bài đặt ra thì sinh viên xác định giá trị của A khác nhau

MOV A, #0XXXXH ;#0XXXXH là giá trị mà sinh viên cần đưa

vào

Bước 3: Ghi A ra bộ nhớ RAM ngoại, đồng thời kích chân 7SEG

MOVX @DPTR, A

2.3.5 LED bảy đoạn

LED 7 đoạn có cấu tạo gồm 8 LED đơn được nối chung cực anode (dạng LED anode chung) hoặc nối chung cực cathode (dạng LED cathode chung) Các LED trên LED 7 đoạn được đánh tên lần lượt là a, b, c, d, e, f, g tương ứng với 7 đoạn để hiển thị số hoặc các chữ cái, đồng thời còn có thêm một LED tên dp để hiển thị dấu chấm thập phân giữa các chữ số

Trang 21

Hình 22: LED 7 đoạn

Để điều khiển LED 7 đoạn hiển thị một chữ số, người lập trình cần điều khiển các đèn LED sáng, tắt tương ứng để hiển thị chữ số đó Ví dụ như muốn hiển thị chữ số 7 lên LED 7 đoạn loại cathode chung (hình dưới bên tay trái) ta cần làm sáng các đèn a, b, c bằng cách phân cực thuận cho các LED này (các chân a, b, c cần ở mức cao) và tắt tất cả các đèn còn lại (các chân còn lại ở mức thấp)

Hình 23: Led 7 đoạn dạng Cathode chung (bên trái) và Anode chung (bên phải)

Hình 24: Khối LED 7 đoạn bao gồm 4 LED 7 đoạn

Trang 22

Khối LED 7 đoạn gồm có 4 LED loại anode chung Tín hiệu đi vào bao gồm:

- 8 chân hiển thị LED: ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’ và chân ‘DP’ Tuy nhiên, như theo

sơ đồ thiết kế ta thấy chân ‘DP’ không được nối, vì vậy trong các bài thí nghiệm không thể hiển thị số thập phân (Nếu sinh viên có nhu cầu hiển thị số thập phân có thể thiết kế theo ý của sinh viên)

- 4 chân chọn LED: ‘LED1’, ‘LED2’, ‘LED3’, ‘LED4’ Tất cả chân này tích cực thấp Vì vậy nếu muốn hiển thị LED 3, sinh viên cần cấp tín hiệu là: ‘1011’ tương ứng với

‘LED1’, ‘LED2’, ‘LED3’, ‘LED4’

Các chân ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’ của LED 7 đoạn được nối từ ngõ ra của IC 74LS48 (IC này có chức năng giải mã BCD sang mã LED 7 đoạn, ngõ vào là mã BCD và ngõ ra là mã LED 7 đoạn)

Ngõ vào của IC 74LS48 được nối từ chân ‘Q0’, ‘Q1’, ‘Q2’, ‘Q3’ của IC 74HC573, như chúng ta đã biết, IC 74HC573 là một IC chốt, khi tín hiệu chốt LE (chân 7SEG, tầm địa chỉ 0000h

– 1FFFh, đã được đề cập ở phần “ 2.3.4 Khối giải mã địa chỉ”) thì các tín hiệu ‘Dn’ = ‘Qn’ (n từ

0 -> 7) Khi chân chốt LE hết tích cự thì giá trị tại chân ‘Qn’ được giữ nguyên trạng thái đã chốt trước đó dù cho ngõ vào ‘Dn’ có thay đổi Vì vậy các chân ‘D3’ -> ‘D0’ được dùng để truyền mã BCD cho LED 7 đoạn Và tương tự chân ‘D7’ -> ‘D4’ được dùng để chọn LED

Ví dụ: Hiển thị số 8 lên LED 7 đoạn thứ 3

Trước khi thực hiện viết chương trình, người lập trình cần phải xác định tất cả các giá trị đầu vào để có thể hiển thị theo đúng như yêu cầu:

Bước 1: Đầu tiên, cũng là bước quan trọng nhất, sinh viên cần xác định được giá trị truy xuất RAM ngoại để có thể kích được chân chốt tương ứng với mỗi khối

Theo như phần “2.3.4 Khối giải mã địa chỉ” để kích được chân chốt cho khối LED 7 đoạn, địa chỉ truy xuất phải nằm trong tầm 0000H cho đến 1FFFH, có nghĩa là sinh viên có thể chọn bất

kì giá trị nào nằm trong tầm này thì chân chốt sẽ được kích

Vì vậy trong ví dụ này, chúng ta chọn 1408H làm địa chỉ truy xuất để chốt LED 7 đoạn:

MOV DPTR, #1408H

Bước 2: Xác định giá trị đầu vào cho IC chốt 74HC573

Như đã phân tích ở trên, để hiển thị LED 7 đoạn chúng ta cần cấp 2 giá trị là giá trị BCD và giá trị chọn LED tương ứng với ‘D3 D2 D1 D0’ và ‘D7 D6 D5 D4’ Vì vậy để hiển thị số 8 lên LED thứ 3, chúng ta cần cấp cho ‘D7 D6 D5 D6’ có giá trị là ‘1 0 1 1’ và ‘D3 D2 D1 D0’ có giá trị là ‘1 0 0 0’

MOV A, #0B8H ; tương ứng với #10111000

Bước 3: Hiển thị giá trị đã xác định lên khối LED 7 đoạn

Trang 23

Sau khi chúng ta xác định được các giá trị đầu vào cho khối LED 7 đoạn Bước cuối cùng, chúng ta sẽ cấp các giá trị này cho khối LED 7 đoạn

Phương pháp quét LED:

Thiết kế phần cứng điều khiển các LED 7 đoạn đều có các chân a, b, …, g nối với nhau theo tên cùng tên, vì thế trong cùng một thời điểm chỉ có thể điều khiển LED 7 đoạn sáng cùng một kí tự Thiết kế phần cứng có thể thiết kế điều khiển các LED 7 đoạn một cách độc lập với nhau nhưng việc này sẽ lãng phí tài nguyên và không cần thiết Để hiển thị các chữ số khác nhau lên các LED 7 đoạn, ta vận dụng hiện tượng lưu ảnh của mắt Tần số quét một khung hình (tức một vòng lập) tối thiểu khoản 25 Hz Để dễ tính toán ta dùng tần số 50Hz, tức chu kì là 1/50 giây Trong 1/50 giây đó có 4 khối cần hiển thị thì độ trễ giữa các khối phải là 1/200 giây

2.3.6 LED Ma trận

LED ma trận dùng để hiển thị thông tin theo điểm ảnh, do đó LED ma trận có thể dùng để biểu diễn được chữ số, chữ cái, hình ảnh khác nhau tùy mong muốn của người lập trình LED ma trận có kích thước 8x8 để hiển thị hình ảnh LED ma trận 8x8 gồm có 64 đèn LED tạo thành các điểm ảnh, các chân anode và cathode của các LED này đều được đưa thành tín hiệu điều khiển LED ma trận có hai loại: loại anode hàng cathode cột và loại cathode cột anode hàng (không thể đổi vị trí giữa cột và hàng vì các chân cấu tạo của chúng là cố định) Trong mạch mô phỏng thí nghiệm vi xử lý, sinh viên được sử dụng loại LED ma trận có cột là Anode và hàng là Cathode

Hình 25: Hai loại LED ma trận, Anode hàng Cathode cột bên trái và Cathode cột, Anode hàng bên phải

Tương tự như cơ chế hoạt động của khối LED 7 đoạn, LED ma trận sử dụng hai IC chốt 74HC573 để chốt tín hiệu cho hàng và cột (Sinh viên có thể coi lại phần “2.3.4 Khối giải mã

địa chỉ” để xác định được địa chỉ truy xuất) Và do LED mà trận xử dụng trong bài thí nghiệm là

Ngày đăng: 14/12/2021, 10:47

HÌNH ẢNH LIÊN QUAN

Hỡnh 1: Tạo project mới với àVision 4. - TÀI LIỆU THÍ NGHIỆM VI XỬ LÝ DÀNH CHO GIẢNG DẠY THEO HÌNH THỨC TRỰC TUYẾN
nh 1: Tạo project mới với àVision 4 (Trang 3)
Hình 2: Chọn vi điều khiển cho project - TÀI LIỆU THÍ NGHIỆM VI XỬ LÝ DÀNH CHO GIẢNG DẠY THEO HÌNH THỨC TRỰC TUYẾN
Hình 2 Chọn vi điều khiển cho project (Trang 4)
Hình 3: Tạo file mới với đuôi .A51  Click chuột phải vào tab ‘Source Group 1’ chọn Add files to Group ‘Source Group 1’ - TÀI LIỆU THÍ NGHIỆM VI XỬ LÝ DÀNH CHO GIẢNG DẠY THEO HÌNH THỨC TRỰC TUYẾN
Hình 3 Tạo file mới với đuôi .A51 Click chuột phải vào tab ‘Source Group 1’ chọn Add files to Group ‘Source Group 1’ (Trang 4)
Hình 4: Thêm file vào project  Chọn Files of Type là Asm Source file. Chọn file vừa tạo và click Add - TÀI LIỆU THÍ NGHIỆM VI XỬ LÝ DÀNH CHO GIẢNG DẠY THEO HÌNH THỨC TRỰC TUYẾN
Hình 4 Thêm file vào project Chọn Files of Type là Asm Source file. Chọn file vừa tạo và click Add (Trang 5)
Hình 5: Chọn file assembly để thêm vào project  Chọn Project-Option for Target ‘Target 1’, chọn Tab Output, chọn Create Hex File - TÀI LIỆU THÍ NGHIỆM VI XỬ LÝ DÀNH CHO GIẢNG DẠY THEO HÌNH THỨC TRỰC TUYẾN
Hình 5 Chọn file assembly để thêm vào project Chọn Project-Option for Target ‘Target 1’, chọn Tab Output, chọn Create Hex File (Trang 5)
Hình 6: Cấu hình chương trình biên dịch để tạo file hex - TÀI LIỆU THÍ NGHIỆM VI XỬ LÝ DÀNH CHO GIẢNG DẠY THEO HÌNH THỨC TRỰC TUYẾN
Hình 6 Cấu hình chương trình biên dịch để tạo file hex (Trang 6)
Hình 7: Biên soạn và biên dịch chương trình - TÀI LIỆU THÍ NGHIỆM VI XỬ LÝ DÀNH CHO GIẢNG DẠY THEO HÌNH THỨC TRỰC TUYẾN
Hình 7 Biên soạn và biên dịch chương trình (Trang 7)
Hình 8: Tính năng Debug trong Keil  Kết quả mô phỏng sẽ hiển thị như hình dưới đây: - TÀI LIỆU THÍ NGHIỆM VI XỬ LÝ DÀNH CHO GIẢNG DẠY THEO HÌNH THỨC TRỰC TUYẾN
Hình 8 Tính năng Debug trong Keil Kết quả mô phỏng sẽ hiển thị như hình dưới đây: (Trang 7)
Hình 9: Giao diện tính năng Debug. - TÀI LIỆU THÍ NGHIỆM VI XỬ LÝ DÀNH CHO GIẢNG DẠY THEO HÌNH THỨC TRỰC TUYẾN
Hình 9 Giao diện tính năng Debug (Trang 8)
Hình 10: Cửa sổ Disassemply - TÀI LIỆU THÍ NGHIỆM VI XỬ LÝ DÀNH CHO GIẢNG DẠY THEO HÌNH THỨC TRỰC TUYẾN
Hình 10 Cửa sổ Disassemply (Trang 8)
Hình 11: Cửa sổ thanh ghi - TÀI LIỆU THÍ NGHIỆM VI XỬ LÝ DÀNH CHO GIẢNG DẠY THEO HÌNH THỨC TRỰC TUYẾN
Hình 11 Cửa sổ thanh ghi (Trang 10)
Hình 12: Khối vi điều khiển - TÀI LIỆU THÍ NGHIỆM VI XỬ LÝ DÀNH CHO GIẢNG DẠY THEO HÌNH THỨC TRỰC TUYẾN
Hình 12 Khối vi điều khiển (Trang 14)
Hình 13: Nạp chương trình cho vi điều khiển trong Proteus - TÀI LIỆU THÍ NGHIỆM VI XỬ LÝ DÀNH CHO GIẢNG DẠY THEO HÌNH THỨC TRỰC TUYẾN
Hình 13 Nạp chương trình cho vi điều khiển trong Proteus (Trang 14)
Hình 15: Thiết kế nút nhấn theo kiểu trở kéo xuống. - TÀI LIỆU THÍ NGHIỆM VI XỬ LÝ DÀNH CHO GIẢNG DẠY THEO HÌNH THỨC TRỰC TUYẾN
Hình 15 Thiết kế nút nhấn theo kiểu trở kéo xuống (Trang 15)
Hình 14: Thiết kế nút nhấn theo kiểu trở kéo lên. - TÀI LIỆU THÍ NGHIỆM VI XỬ LÝ DÀNH CHO GIẢNG DẠY THEO HÌNH THỨC TRỰC TUYẾN
Hình 14 Thiết kế nút nhấn theo kiểu trở kéo lên (Trang 15)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w