1. Trang chủ
  2. » Luận Văn - Báo Cáo

Mô phỏng mạch led ma trận trên phần mềm Proteus

30 2K 4

Đ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

Định dạng
Số trang 30
Dung lượng 1,17 MB

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

Nội dung

Mô phỏng mạch led ma trận trên phần mềm Proteus

Trang 1

Lời nói đầu

Trong sự phát triển của kỹ thuật điện tử ngày nay, kỹ thuật số đang dần chiếm ưu thế về số lượng các ứng dụng của nó trên nhiều thiết bị điện tử từ dân dụng cho đến chuyên động, trong nhiều lĩnh vực như đo lường, điều khiển, v v… nhờ vào nhiều ưu điểm của nó Có thể nói, nền tảng của kỹ thuật

số là các mạch logic sè dựa trên sự kết hợp của các cổng logic cơ bản mà ngày nay đã được tích hợp trong các IC sè Các mạch logic sè sử dụng ma trận LED

để hiển thị thông tin nhằm mục đích thông báo, quảng cáo, … tại các nơi công cộng đã được sử dụng rất rộng rãi

Việc thiết kế hoàn thiện một mạch quảng cáo cần nhiều công sức cũng như kiến thức nhất định Trong khuôn khổ của đề tài, trên cơ sở những kiến thức đã được học trong môn học, chúng em đã thiết kế một mạch điện tử với

tên đề tài đầy đủ là: Mô phỏng mạch led ma trận trên phần mềm Proteus Mục đích của đề tài là tìm hiểu thêm về lĩnh vực kỹ thuật số, nâng

cao kiến thức của mình

Do kiến thức còn hạn hẹp và thời gian thực hiện không được nhiều nên đề tài của chúng tôi còn rất nhiều sai sót, hạn chế Mặc dù đã cố gắng phần nào thiết kế và tính toán một các chi tiết các mạch, các thông số nhưng đôi khi còn mang tính lý thuyết, chưa thực tế Chúng tôi mong có sự góp ý và sửa chữa để

đề tài này có tính khả thi hơn về cả phương diện kinh tế cũng như kỹ thuật.Chúng em xin chân thành cảm ơn thầy giáo Nguyễn Nam Quân đã hướng dẫn và giúp đỡ chúng em thiết kế và hoàn thành đề tài này

Hà Nội 12/ 2001 Nhóm sinh viên thực hiện:

CHƯƠNG I: ĐẶT VẤN ĐỀ VÀ NHIỆM VỤ THƯ

Trang 2

I Đặt vấn đề.

Quang báo là hình thức thông báo trên bảng đèn Bảng đèn quang báo gồm nhiều ma trận LED ghép lại, mỗi một ma trận biểu diễn một kí tự Tùy chiều dài của bảng đèn mà có thể hiển thị những bản tin có độ dài khác nhau.Với sự ra đời của máy tính điện tử đặc biệt là máy vi tính, chúng có những tính năng ưu việt như khả năng xử lý dữ liệu nhanh chóng, độ tin cậy cao, lưu trữ lượng thông tin lớn và quan trọng hơn cả là máy tính có thể kết hợp với nhiều thiết bị ngoại vi tùy theo mục đích ứng dụng cụ thể, mà việc trao đổi và điều khiển trở nên đơn giản, chúng phụ thuộc vào phần mềm điều khiển Dựa vào tính đa dạng và mềm dẻo của máy tính người ta tìm cách ứng dụng nó vào mục đích quảng cáo, chẳng hạn như dùng trong quang báo Nhờ vậy, việc thiết kế phần cứng cho quang báo trở thành ít phức tạp hơn, nhưng

độ tin cậy cao hơn Trong thực tế để hiển thị các văn bản, người ta dùng các kiểu chữ là các Ma Trận LED 8x32, 8x12 hoặc 8x14 tuỳ thuộc vào mục đích

ta thường phân biệt các loại bảng LED theo số hàng và cột Môt bảng led 5x7 tức là có 5 cột dọc và 7 hàng ngang, tổng cộng sẽ có 5x7=35 led đơn được ghép lại.Cũng như vậy một bảng led 8x8 là có 8 hàng và 8 cột,do đó có 64 led đơn ghép lại.Và nhiều loại cỡ to hơn như 16x16 hay 32x32.Trong đề tài này chúng em sử dụng 2 led ma trận 2 màu 8x8 tức là có 8 hàng và 16 cột, do

đó có 8x16x2 = 256 led đơn ghép lại

Trang 3

II TẦM QUAN TRỌNG CỦA ĐỀ TÀI

-Đây là một đề tài nghiên cứu mang tính thực tiễn trong việc vận dụng các kiến thức đã được học vào trong thực tế

-Về mặt khoa học, đề tài sẽ giúp cho nhóm sinh viên thực hiện hiểu rõ thêm về cấu tạo led ma trận và nguyên lí điều khiển led ma trận trong thực tế

-Về mặt thực tiễn, đề tài này có thể áp dụng vào thực tế để thiết kế các

hệ thống quang báo với kích thước lớn hơn, mở rộng điều khiển hệ thống quang báo bằng các phương pháp khác như giao tiếp máy tính, điều khiển từ xa v v

III GIỚI HẠN ĐỀ TÀI

Do thời gian thực hiện đề tài có hạn và kiến thức còn hạn chế nên nhóm sinh viên thực hiện đã đưa ra những giới hạn sau:

1.Điều khiển 2 led ma trận 2 màu xanh đỏ, việc kết hợp đồng

thời hai màu xanh đỏ để tạo thành màu thứ 3

2.Mạch phải hoạt động tốt không bị nhiễu khi quét led và bàn phím

3.Mạch phải chạy ổn định trong quá trình làm việc

IV ĐỐI TƯỢNG NGHIÊN CỨU

Đối tượng nghiên cứu của đề tài này chính là:

- Cách thức giao tiếp giữa vi điều khiển và led ma trận

- Cách thức giao tiếp giữa vi điều khiển và ma trận phím

- Cách lập trình cho vi điều khiển để lưu dữ liệu và hiển thị lên led ma trận

V PHƯƠNG PHÁP NGHIÊN CỨU

Trong quá trình nghiên cứu, nhóm sinh viên thực hiện chủ yếu dựa vào hai phương pháp chính:

- Phương pháp tham khảo tài liệu: Thu thập các tài liệu liên quan đến

vi điều khiển, Kỹ thuật mạch điện tử, Thiết kế mạch điện tử và

Trang 4

Phương pháp nghiên cứu khoa học Sau đó, nhóm sinh viên vận dụng các kiến thức hiện có để tổng hợp các tài liệu, sau cùng thiết

kế ra mạch điện phù hợp với các yêu cầu mà ban đầu nhóm đã đề ra

- Phương pháp quan sát và thực nghiệm: Sau khi đã có mạch theo tính toán lý thuyết, nhóm sinh viên thực hiện đã thi công mạch thực tế theo đúng sơ đồ nguyên lý đã vạch ra Do có hạn chế trong việc tính toán lí thuyết nên nhóm đã sử dụng kết quả chạy thực tế để điều chỉnh lại lý thuyết một cách hợp lý

PHẦN II: TỔNG QUAN VỀ PHƯƠNG PHÁP ĐIỀU KHIỂN

I Cơ sở lí thuyết chung.

Dựa trên nguyên tắc như quét màn hình, ta có thể thực hiện việc hiển thị ma trận đèn bằng cách quét theo hàng và quét theo cột Mỗi Led trên ma trận LED

có thể coi như một điểm ảnh Địa chỉ của mỗi điểm ảnh này được xác định đồng thời bởi hàng và cột, điểm ảnh này sẽ được xác định trạng thái nhờ dữ liệu đưa ra

từ bộ vi điều khiển 8951

Như vậy tại mỗi thời điểm chỉ có trạng thái của một điểm ảnh được xác định Tuy nhiên khi xác định địa chỉ và trạng thái của điểm ảnh tiếp theo thì các điểm ảnh còn lại sẽ chuyển về trạng thái tắt (nếu LED đang sáng thì sẽ tắt dần)

Vì thế để hiển thị được toàn bộ hình ảnh của ma trận đèn, ta có thể quét ma trận nhiều lần với tốc độ quét rất lớn, lớn hơn nhiều lần thời gian kịp tắt của đèn Mắt người chỉ nhận biết được tối đa 24 hình/s do đó nếu tốc độ quét rất lớn thì sẽ không nhận ra được sự thay đổi nhỏ của đèn mà sẽ thấy được toàn bộ hình ảnh cần hiển thị

II Nguyên lí phần cứng.

1 Vi điều khiển At89s52

1.1 Tổng quan vè họ vi điều khiển 8051

AT8951 là phiên bản 8051 có ROM trên chip là bộ nhớ Flash Phiên bản này rất thích hợp cho các ứng dụng nhanh vì bộ nhớ Flash có thể được xóa trong vài giây Dĩ nhiên là để dùng AT8951 cần phải có thiết bị lập trình

Trang 5

PROM hổ trợ bộ nhớ Flash nhưng không cần đến thiết bị xóa ROM vì bộ nhớ Flash được xóa bằng thiết bị lập trình PROM.

Mặc dù các thành viên của họ 8051 đều có các kiểu đóng vỏ khác nhau, chẳng hạn như hai hàng chân DIP, dạng vỏ dẹp vuông QFP, và dạng chíp không có chân đỡ LLC thì chúng đều có 40 chân cho các chức năng khác nhau như vào, ra I/O, đọc RD, ghi WR,địa chỉ, dữ liệu và ngắt Cần phải lưu

ý rằng một số hãng cung cấp một phiên bản 8051 có 20 chân với số cổng vào

ra ít hơn cho các ứng dụng yêu cầu thấp hơn Tuy nhiên vì hầu hết các nhà phát triển chính sử dụng chíp đóng vỏ 40 chân với 2 hàng chân DIP nên ta chỉ tập trung mô tả phiên bản này

1.2 Vi điều khiển At89S52

AT89C52 là một hệ vi tính 8 bit đơn chip CMOS có hiệu suất cao, công

suất nguồn tiêu thụ thấp và có 4Kbyte bộ nhớ ROM Flash xoá được/lập trình được Chip này được sản xuất dựa vào công nghệ bộ nhớ không mất nội dung

có độ tích hợp cao

AT89S52 có các đặc trưng chuẩn sau: 4Kbyte Flash, 128 byte RAM, 32 đường xuất nhập, hai bộ định thời/đếm 16 bit, một cấu trúc ngắt hai mức ưu tiên và 5 nguyên nhân ngắt, một port nối tiếp song công, mạch tạo dao động

và tạo xung Clock trên Chip

Chế độ nghỉ dừng CPU trong khi vẫn cho phép RAM, các bộ định thời/đếm, Port nối tiếp và hệ thống ngắt hoạt động

Mô tả các chân của IC 8951:

- Vcc: Chân cung cấp điện.

- GND: Chân nối đất.

- Port 0: Port 0 là port xuất nhập 8 bit 2 chiều cực D hở Port 0 còn

được cấu hình làm bus địa chỉ (byte thấp) và làm bus dữ liệu đa hợp trong khi truy xuất bộ nhớ dữ liệu ngoài và bộ nhớ chương trình ngoài Port 0 cũng nhận các byte mã trong khi lập trình cho Flash và xuất các byte mã trong khi kiểm tra chương trình

- Port 1: Port 1 là port xuất nhập 8 bit hai chiều có các điện trở kéo

lên bên trong Khi các logic 1 được ghi lên các chân của port 1,

Trang 6

các chân này được kéo lên mức cao bởi các điện trở kéo lên bên trong và có thể được sử dụng như là các ngõ vào Khi làm nhiệm

vụ là các port nhập, các chân của port 1 đang được kéo xuống mức thấp do tác động bên ngoài sẽ cấp dòng do có các điện trở kéo lên bên trong

- Port 2: Port 2 là port xuất nhập 8 bit hai chiều có các điện trở kéo

lên bên trong Khi các logic 1 được ghi lên các chân của port 2, các chân này được sử dụng như là các ngõ vào Khi làm nhiệm vụ port nhập, các chân của port 2 đang được kéo xuống mức thấp do tác động bên ngoài sẽ cấp dòng do có các điện trở kéo lên bên trong Port 2 tạo ra byte cao của bus địa chỉ trong thời gian tìm nạp lệnh từ bộ nhớ chương trình ngoài, và trong thời gian truy xuất bộ nhớ dữ liệu ngoài sử dụng các địa chỉ 16 bit

- Port 3: Là port xuất nhập 8 bit hai chiều có các điện trở kéo lên

bên trong Khi các logic 1 được ghi lên các chân của port 3, các chân này được kéo lên mức cao bởi các điện trở kéo lên bên trong

và có thể được sử dụng như là các ngõ vào Khi làm nhiệm vụ port nhập, các chân của port 3 đang được kéo xuống mức thấp do tác động bên ngoài sẽ cấp dòng do có các điện trở kéo lên bên trong Port 3 còn được sử dụng làm các chức năng khác của AT89S52:

Châ

n

Tên Chức năng

P3.0 RxD Ngõ vào Port nối tiếp

P3.1 TxD Ngõ ra Port nối tiếp

P3.2 INT0 Ngõ vào ngắt ngoài 0

Trang 7

P3.3 INT1 Ngõ vào ngắt ngoài 1

P3.4 T0 Ngõ vào bên ngoài của bộ định thời

1

P3.5 T1 Ngõ vào bên ngoài của bộ định thời

0P3.6 WR Điều khiển ghi bộ nhớ dữ liệu ngoàiP3.7 RD Điều khiển đọc bộ nhớ dữ liệu ngoài

- RST: Ngõ vào Reset Mức cao trên chân này trong 2 chu kỳ máy

trong khi bộ dao động đang hoạt động sẽ Reset AT89S52

Mạch Reset tự động khi khởi động máy

“Với bài này chúng em thực hiện Reset bằng cách nối chân 9 của 8951 với nguồn 5V”

ALE: ALE là một xung ngõ ra cho phép chốt địa chỉ ALE

(Address Latch Enable) cho phép chốt byte thấp của địa chỉ trong thời gian truy xuất bộ nhớ ngoài Chân này cũng được dùng làm

Trang 8

ngõ vào xung lập trình (PROG) trong thời gian lập trình cho Flash.

Khi hoạt động bình thường, xung của ngõ ra ALE luôn luôn có tần số

bằng 1/6 tần số của mạch dao động trên chip, có thể được sử dụng cho các mục đích định thời từ bên ngoài và tạo xung Clock Tuy nhiên cần lưu ý là

một xung ALE sẽ bị bỏ qua trong mỗi chu kì truy xuất của bộ nhớ dữ liệu ngoài

Khi cần, hoạt động cho phép chốt byte thấp của địa chỉ sẽ được vô hiệu

hoá bằng cách set bit 0 của thanh ghi chức năng đặc biệt có địa chỉ byte là

8E(h) Khi bit này được set, ALE chỉ tích cực trong thời gian thực thi lệnh

MOVX hoặc MOVC Ngược lại chân này sẽ được kéo lên mức cao Việc set

bit không cho phép hoạt động chốt byte thấp của địa chỉ sẽ không có tác dụng nếu bộ vi điều khiển đang ở chế độ thực thi chương trình ngoài

- XTAL1: Ngõ vào đến mạch khuếch đại đảo của mạch dao động

và ngõ vào đến mạch tạo xung Clock bên trong chip

- XTAL2: Ngõ ra từ mạch khuếch đại đảo của mạch dao động.

Để tạo mạch dao động cho vi điều khiển 8951 hoạt động, chúng em chọn mạch tạo dao động như hình vẽ dưới đây, với các giá trị của linh kiện là: C1 = C2 =30pF;

Thạch anh dao động có tần số 12MHz

Trang 9

Kết nối của mạch dao dộng

Sơ đồ chân của IC AT89C51:

2 Module led ma trận Led Ma Trận thực ra bao gồm nhiều Led đơn ghép

lại mà thành

Trang 10

Nhìn vào hình ta thấy rằng: các Anode của các đèn Led đơn được mắc nối với nhau, và các Cathode cũng vậy, tạo thành môt bảng Led Ma Trận Kích cở của Led Ma Trận còn tùy thuộc vào người thiết kế Chúng ta có thể ghép các Led đơn lại với nhau để tạo được Bảng Led ma trận, nhưng công việc này gây mất nhiều thời gian nên để đơn giản thì ta mua trên thị trường các con Led Ma Trận đã được đóng gói sẵn.

*) Nguyên lí quét led ma trận 8x8

Để ma trận có thể sáng như hình vẽ (hiển thị một phần của chữ ADIDAS):

Đèn LED thứ nhất Đèn LED thứ hai Đèn Led thứ ba

Thực hiện quét dòng và cột:

- Chọn cột 1, đưa điện áp cột 1 về 0

- Sau đó chọn và quét lần lượt các hàng 1,2,3,4,5,6,7,8 như sau:

+ Đèn 1 tắt => Điện áp đưa vào hàng 1 là 0V

+ Đèn 2 tắt => Điện áp đưa vào hàng 2 là 0V

+ Đèn 3 sáng => Điện áp đưa vào hàng 3 là 5V

+ Đèn 4 sáng => Điện áp đưa vào hàng 4 là 5V

Trang 11

+ Đèn 5 sáng => Điện áp đưa vào hàng 5 là 5V.

+ Đèn 6 sáng => Điện áp đưa vào hàng 6 là 5V

+ Đèn 7 sáng => Điện áp đưa vào hàng 7 là 5V

+ Đèn 8 sáng => Điện áp đưa vào hàng 8 là 5V

Chọn cột 2, nối đất Sau đó quét lần lượt các hàng 1,2,3,4,5,6,7,8

+ Đèn 1 tắt => Điện áp đưa vào hàng 1 là 0V

+ Đèn 2 sáng => Điện áp đưa vào hàng 2 là 5V

+ Đèn 3 tắt => Điện áp đưa vào hàng 3 là 0V

+ Đèn 4 sáng => Điện áp đưa vào hàng 4 là 5V

+ Đèn 5 tắt => Điện áp đưa vào hàng 5 là 0V

+ Đèn 6 tắt => Điện áp đưa vào hàng 6 là 0V

+ Đèn 7 tắt => Điện áp đưa vào hàng 7 là 0V

+ Đèn 8 tắt => Điện áp đưa vào hàng 8 là 0V

- Tiếp tục quét với các cột từ 3 đến 8 bằng cách như trên, sau đó chuyển sang quét đèn LED thứ hai và thứ ba một cách tương tự

- Để mắt người nhận biết được toàn bộ hình ảnh của ma trận ta phải tiến hành quét nhiều lần Do mắt người không phân biệt được sự thay đổi ảnh nếu ảnh đó được quét với tốc độ 24 hình/s nên nếu ta quét ảnh với tốc độ lớn hơn hoặc bằng 24 hình/s thì ảnh sẽ chạy liên tục và không bị giật

CHƯƠNG IV: THIẾT KẾ PHẦN MỀM

I) Phần mềm lập trình Keil C

Các bước tạo Project

Ta thực hiện 6 bước:

Trang 12

1.Tạo mới 1 project.

2.Tạo File.C.

3.Add File.C vào Project.

4.Biên dịch và tạo File Hex.

5.Gỡ lỗi chương trình (nếu có).

6.Nạp chương trình cho Vi điều khiển.

1. 1 Tạo mới 1 Project

Chạy chương trình Keil C:

Vào Project->New Project:

Trang 13

Chọn đường dẫn để lưu và đặt tên cho project:

Trang 14

Sau đó ấn Save.

Tiếp theo ta chọn loại Chip: ở đây ta lựa chọn Atmel->chọn AT89C51

Trang 17

Ấn Yes và ta đã hoàn thành bước 1 – tạo 1 project mới.

Trang 18

2. 2 Tạo File.C

Tiếp theo ta cần tạo 1 File.C để viết chương trình cho Chip lên file đó Vào File->New:

Trang 20

Sau đó chọn Save:

Trang 21

Chọn đường dẫn vào cùng thư mục với Project vừa tạo ở bước 1 Sau đó đặt tên, với phần đuôi mở rộng là C:

Trang 22

Chọn Save, và ta đã hoàn thành xong bước 2 – Tạo File.C.

3. 3 Add File.C vào Project

Ta cần phải liên kết File.C với Project vừa tạo với nhau:

Trong giao diện Keil C, ở không gian làm việc của Project: Chuột phải vào phần “Source Group 1” -> Add files to Group “Source Group 1”:

Trang 23

Chọn đường dẫn đến thư mục Project -> chọn file.C vừa tạo ở bước 2 -> Add:

Trang 24

Và ta đã hoàn tất giai đoạn tạo Project, chuẩn bị viết code nào 

Trang 25

4. 4 Biên dịch và tạo file Hex

Sau khi tạo xong project ta tiến hành soạn thảo chương trình.

Trang 26

{ 0x7f, 0x41, 0x41, 0x22, 0x1c }, /* D - 0x44 - 68 */ { 0x7f, 0x49, 0x49, 0x49, 0x41 }, /* E - 0x45 - 69 */ { 0x7f, 0x09, 0x09, 0x09, 0x01 }, /* F - 0x46 - 70 */ { 0x3e, 0x41, 0x49, 0x49, 0x7a }, /* G - 0x47 - 71 */ { 0x7f, 0x08, 0x08, 0x08, 0x7f }, /* H - 0x48 - 72 */ { 0x00, 0x41, 0x7f, 0x41, 0x00 }, /* I - 0x49 - 73 */ { 0x20, 0x40, 0x41, 0x3f, 0x01 }, /* J - 0x4a - 74 */ { 0x7f, 0x08, 0x14, 0x22, 0x41 }, /* K - 0x4b - 75 */ { 0x7f, 0x40, 0x40, 0x40, 0x40 }, /* L - 0x4c - 76 */ { 0x00, 0x42, 0x7f, 0x40, 0x00 }, /* 1 - 0x31 - 49 */ { 0x42, 0x61, 0x51, 0x49, 0x46 }, /* 2 - 0x32 - 50 */ { 0x21, 0x41, 0x45, 0x4b, 0x31 }, /* 3 - 0x33 - 51 */ { 0x18, 0x14, 0x12, 0x7f, 0x10 }, /* 4 - 0x34 - 52 */ { 0x27, 0x45, 0x45, 0x45, 0x39 }, /* 5 - 0x35 - 53 */ { 0x3c, 0x4a, 0x49, 0x49, 0x30 }, /* 6 - 0x36 - 54 */ { 0x01, 0x71, 0x09, 0x05, 0x03 }, /* 7 - 0x37 - 55 */ { 0x36, 0x49, 0x49, 0x49, 0x36 }, /* 8 - 0x38 - 56 */ { 0x06, 0x49, 0x49, 0x29, 0x1e }, /* 9 - 0x39 - 57 */ };

void timer0(void) interrupt 1 //thoi gian ngat tran la 5ms

Ngày đăng: 10/03/2015, 16:42

HÌNH ẢNH LIÊN QUAN

Sơ đồ chân của IC AT89C51: - Mô phỏng mạch led ma trận trên phần mềm Proteus
Sơ đồ ch ân của IC AT89C51: (Trang 9)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w