1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Báo cáo đồ án LED ma trận

45 144 0
Tài liệu đã được kiểm tra trùng lặp

Đ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ạch Hai Led Ma Trận Chạy Chữ Đơn Giản, Đa Dụng – 89S52 Lập Trình Keil Uvision 5
Tác giả Phùng Thanh Phương, Hoàng Bình Minh
Người hướng dẫn TS. Nguyễn Thị Kim Thu
Trường học Trường Đại Học Vinh
Thể loại Đồ án
Năm xuất bản 2021
Thành phố Nghệ An
Định dạng
Số trang 45
Dung lượng 3,54 MB

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

Nội dung

Báo cáo đồ án LED ma trận chạy chữ sử dụng KEIL C uVision 5 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, 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. Các mạch logic 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ộng rãi và phổ biến. 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ổ đề tài, trên cơ sở những kiến thức đã học được trong quá trình học, chúng em thống nhất và đi đến quyết định thiết kế một mạch điện tử với đề tài: MẠCH HAI LED MA TRẬN CHẠY CHỮ ĐƠN GIẢN, ĐA DỤNG – 89S52 LẬP TRÌNH KEIL UVISION 5. 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.

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH

ĐỒ ÁN 2

Đề tài: MẠCH HAI LED MA TRẬN CHẠY CHỮ ĐƠN GIẢN,

ĐA DỤNG – 89S52 LẬP TRÌNH KEIL UVISION 5

Giảng viên hướng dẫn: TS Nguyễn Thị Kim Thu

Sinh viên thực hiện: 1 Phùng Thanh Phương (NT)

MSSV: 1755252020700004

2 Hoàng Bình Minh MSSV:1755252020700001

Nghệ An, 2021

Trang 2

M C L C Ụ Ụ

MỤC LỤC 2

LỜI MỞ ĐẦU 1

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

CHƯƠNG 2: TỔNG QUAN VỀ PHƯƠNG PHÁP ĐIỂU KHIỂN LED MA TRẬN .4

CHƯƠNG 3: GIỚI THIỆU VỀ NGÔN NGỮ C VÀ PHẦN MỀM KEIL C 15

CHƯƠNG 4: THIẾT KẾ VÀ TIẾN HÀNH LẮP RÁP 24

TÀI LIỆU THAM KHẢO 43

Trang 3

LỜI MỞ ĐẦ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àonhiề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, dựatrê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 Các mạch logic sử dụng ma trận LED để hiển thị thông tin nhằm mục đíchthông báo, quảng cáo,… tại các nơi công cộng được sử dụng rộng rãi và phổ biến.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ổ đề tài, trên cơ sở những kiến thức đã họcđược trong quá trình học, chúng em thống nhất và đi đến quyết định thiết kế mộtmạch điện tử với đề tài: MẠCH HAI LED MA TRẬN CHẠY CHỮ ĐƠN GIẢN,

ĐA DỤNG – 89S52 LẬP TRÌNH KEIL UVISION 5 Mục đích của đề tài là tìmhiể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 nhiều nên đề tài củachúng em 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 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 em mong có sự giúp đỡ và sửa chữa để đề tài có tính khả thihơn về cả phương diện kinh tế cũng như kỹ thuật

Em xin tỏ lòng biết ơn đến cô giáo Nguyễn Thị Kim Thu đã hỗ trợ cho chúng

em trong việc lựa chọn đề tài cũng như hướng dẫn chúng em trong suốt quá trìnhthực hiện đồ án Em đã nhận được rất nhiều lời khuyên bổ ích cũng như những kiếnthức về chuyên môn đáng quý Đây là những kiến thức sẽ theo em trong suốt quátrình làm việc sau này

Em xin chân thành cảm ơn!

Trang 4

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

1.1 Đặ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ồmnhiề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àicủ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 đờicủ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 theomục đích ứng dụng cụ thể, mà việc trao đổi và điều khiển trở nên đơn giản, chúngphụ 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áytí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ùngtrong quang báo Nhờ vậy, việc thiết kế phần cứng cho quang báo trở thành ít phứctạ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 tathường dùng các kiểu chữ là các Ma Trận LED 8x32, 8x12, 8x14 tùy thuộc vàomục đích sử dụng và độ phân giải

Trên thị trường có nhiều hệ thống quang báo dùng các loại LED khác nhau nhưled 7 thanh, led đơn, led ma trận… Trong khuôn khổ đề tài, chúng em chỉ giới thiệu

về mạch mô phỏng hệ thống chạy chữ sử dụng led ma trận

Bảng hiển thị ma trận LED (dot – matrix display) có rất nhiều loại và đủ kích

cỡ to nhỏ khác nhau, mỗi bảng gồm có rất nhiều LED đơn được ghép lại với nhauthành một khối Trong khối đó các LED đơn được sắp xếp theo các hàng và các cột,tại mỗi giao điểm của hàng và cột là một LED đơn, và người ta thường phân biệtcá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à 7hàng ngang, tổng cộng sẽ có 5x7=35 led đơn được ghép lại Trong đề tài này chúng

em sử dụng 2 LED ma trận 8x8 tức là có 8 hàng và 16 cột, do đó có 8x16=128 ledđơn ghép lại

Trang 5

1.2 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ếnthứ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ể áo dụng vào thực tế để thiết kế các hệthống quảng cáo bằng các phương pháp khác nhau như giao tiếp máy tính,điều khiển từ xa,…

1.3 Đố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

Trang 6

CHƯƠNG 2: TỔNG QUAN VỀ PHƯƠNG PHÁP ĐIỂU KHIỂN LED MA TRẬN

2.1 Khái niệm chung về LED

1993, công ty hoá chất Nichia của Nhật Bản cho ra đời loại đèn LED xanhdương, là sự kết hợp giữa ánh sáng đỏ và xanh lá cây để cho ra ánh sáng trắng

Sự kiện này đã mở ra một lĩnh vực mới về công nghệ LED Đèn LED dựa trêncông nghệ bán dẫn ngày càng tăng về độ chiếu sáng, hiệu suất và tuổi thọ, giốngnhư bộ xử lý của máy tính, phát triển ngày càng nhanh và giá thành ngày cànggiảm theo thời gian

- Những năm 1960: Phát minh ra đèn Led ánh sáng đỏ

- Những năm 1970: Phát minh ra Led 7 đoạn

- Những năm 1980: Phát minh ra led xanh lá cây

- Những năm 1990: Phát minh ra led xanh dương là cơ sở để phát triển đèn ledánh sáng trắng

- Những năm 2000: Thời điểm bùng nổ đèn Led chiếu sáng

2.1.2 Khái niệm về LED

LED (viết tắt của Light Emitting Diode, có nghĩa là diode phát quang) là cácđiốt có khả năng phát ra ánh sáng hay tia hồng ngoại, tử ngoại Cũng giống như

Trang 7

điốt, LED được cấu tạo từ một khối bán dẫn loại p ghép với một khối bán dẫnloại n.

2.1.3 Hoạt động của đèn LED

Hoạt động của đèn LED giống với nhiều loại điốt bán dẫn Khối bán dẫn loại

p chứa nhiều lỗ trống tự do mang điện tích dương nên khi ghép với khối bán dẫn

n (chứa các điện tử tự do) thì các lỗ trống này có xu hướng chuyễn động khuếchtán sang khối n Cùng lúc khối p lại nhận thêm các điện tử (điện tích âm) từ khối

n chuyển sang Kết quả là khối p tích điện âm (thiếu hụt lỗ trống và dư thừa điệntử) trong khi khối n tích điện dương (thiếu hụt điện tử và dư thừa lỗ trống)

Ở biên giới hai bên mặt tiếp giáp, một số điện tử bị lỗ trống thu hút và khichúng tiến lại gần nhau, chúng có xu hướng kết hợp với nhau tạo thành cácnguyên tử trung hòa Quá trình này có thể giải phóng năng lượng dưới dạng ánhsáng (hay các bức xạ điện từ có bước sóng gần đó)

Tùy theo mức năng lượng giải phóng cao hay thấp mà bước sóng ánh sángphát ra khác nhau (tức màu sắc của LED sẽ khác nhau) Mức năng lượng (vàmàu sắc của LED) hoàn toàn phụ thuộc vào cấu trúc năng lượng của các nguyên

tử chất bán dẫn

LED thường có điện thế phân cực thuận cao hơn điốt thông thường, trongkhoảng 1,5 đến 3V Nhưng điện thế phân cực nghịch ở LED thì không cao Do

đó, LED rất dễ bị hư hỏng do điện thế ngược gây ra

Loại LED điện thế phân cực thuận:

Trang 8

+ Tuổi thọ cao: hiện tại đèn LED cho ánh sang trắng có tuổi thọ lên tới 50,000

giờ sử dụng liên tục gấp 50 lần so với bóng đèn 60W thông thường Nếu sửdụng 10 giờ mỗi ngày, thì bóng có thể sử dụng trong 23 năm

+ Lợi ích kinh tế: Đèn LED tiết kiệm 70-80% năng lượng so với các loại bóng

đèn thông thường

+ Tốt cho thị lực của người sử dụng: Ánh sáng của đèn LED dịu mát, hiệu ứngchói mắt thấp và hoàn toàn không nhấp nháy hư của bóng huỳnh quang, vốn

bị coi là nguyên nhân gây ra bệnh đau nửa đầu và động kinh

+ Ít ảnh hưởng tới môi trường: Do phần lớn năng lượng được chuyển hóathành quang năng, do đó hiệu ứng nhiệt của đèn LED rất thấp Nó hoàn toànkhông tỏa nhiệt vào môi trường Các nghiên cứu khoa học cho thấy một bóngLED trung bình tỏa ra một lượng nhiệt 3,4 btu/h (tương đương với 1W), trongkhi một bóng đèn dây tóc có độ sáng tương đương tỏa ra nhiệt lượng khoảng

85 btu/h (tương đương với 25W) Ngoài ra bóng đèn LED không chứa thủyngân và do đó sẽ ít gây hại cho môi trường hơn khi thải bỏ+ Thời gian khởi động nhanh: Không giống với bóng đèn huỳnh quang, đènLED gần như bật sáng ngay lập tức khi được cấp điện

+ Bền vững đặc biệt: Do được làm từ chất liệu nhựa cao cấp nên đèn LED cóthể chịu đựng các lực va đập mạnh, hoặc các ảnh hưởng bởi thời tiết như mưa,nắng …

Nhược điểm

+ Chi phí sản xuất cao, lắp đặt thi công phức tạp, tốn nhiều thời gian hơn các

loại bóng thông thường khác

+ Toả nhiệt ở chân đèn, gây ảnh hưởng đến các bộ phận liền kề

+ Chưa tiện dụng: Đèn LED vẫn là mặt hàng công nghệ cao phải mua từ đại lýcủa hãng, bộ điều khiển của hãng nào chỉ chạy với đèn LED của đúng hãngđấy mà thôi

Trang 9

- Các LED phát ra tia hồng ngoại được dùng trong các thiết bị điều khiển từ xacho đồ điện tử dân dụng.

- Ðèn LED có thể được sử dụng trong nhiều lĩnh vực như đèn đọc, chiếu sáng

bể bơi, nhất là cho chiếu sáng quảng cáo ngoài trời tại những nơi khó thay lắp,

do có tuổi thọ cao hơn nhiều lần so với bóng đèn neon, đồng thời có nhiềumầu sắc phong phú như: đỏ, xanh lá, xanh da trời, mầu hổ phách

Ở nước ta, đèn LED được ứng dụng để tiết kiệm năng lượng, phục vụ cho quảngcáo, chiếu sáng đô thị Ðiển hình là việc lắp đặt hệ thống đèn LED tại cầu sôngHàn và Thuận Phước (TP Ðà Nẵng)

2.2 Phương pháp điều khiển đèn LED

Theo yêu cầu của đồ án: Nghiên cứu xây dựng mạch hai led ma trận chạy chữ:

“K58-ĐTVT” Bảng hiển thị màu đỏ, với kích thước 8x16 Vì vậy ta chia ra làm 2modul nhỏ với kích thước mỗi modul là 8x8 LED tương đương với một LED matrận có kích thước 8x8 Sau đó ta điều khiển theo nguyên tắc của LED ma trận

Trang 10

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ạngthá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ớnhơ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 24hì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ị

Sơ đồ khối:

Hình 2.1 Sơ đồ khối dùng ma trận LED

Để thực hiện được quét hàng và quét cột thì ma trận LED được thiết kế nhưsau:

+ Các LED trên cùng một hàng sẽ được nối các chân dương với nhau

+ Các LED trên cùng một cột sẽ được nối các chân âm với nhau như hình vẽ

Ta có thể mô phỏng một ma trận LED đơn giản 4x4 như sau:

Trang 11

Hình 2.2 Sơ đồ thiết kế ma trận LED

Trạng thái của một LED sẽ được quyết định bởi tín hiệu điện áp đi vào đồngthời cả 2 chân Ví dụ để LED sáng thì điện áp 5v phải đưa vào chân dương vàchân âm phải được nối đất, LED sẽ tắt khi không có điện áp đưa vào chândương Với đề tài này, chúng em chia ra làm 2 modul nhỏ với kích thước mỗimodul là 8x8 LED để hiển thị

Ta có sơ đồ nguyên lý của ma trận LED 8x8:

Hình 2.3 Sơ đồ nguyên lý ma trận LED 8x8

2.2.2 Giới thiệu chung về hệ thống

Với mục đích tìm hiểu về cách thiết kế và xây dựng một bảng quảng cáo điện

tử bằng đèn LED đơn giản chúng em xây dựng một hệ thống quang báo với sơ

đồ khối như sau:

Khối điều khiển hiển thị: có chức năng xử lý các dữ liệu mà máy tính truyền

tới để tạo ra các dữ liệu về mức logic cần cấp cho các LED trong từng cột đồng

Trang 12

thời điều khiển quá trình cấp nguồn cho led ma trận Khối này được xây dựngbằng các thủ tục xử lý dữ liệu trên vi điều khiển Khi nhận được dữ liệu về chuỗi

ký tự cần hiển thị thì khối này sẽ tạo dữ liệu về mức logic cần cấp cho LED matrận Khi nhận được dữ liệu về màu sắc, hiệu ứng hiển thị thì khối này sẽ xácđịnh thủ tục gửi dữ liệu cho các khối chốt dữ liệu hàng và cột

2.2.3 Nhiệm vụ của các khối

Bộ vi điều khiển 89S52

Đây là nơi lưu giữ chương trình điều khiển chính và dữ liệu cho các mạch giải

mã hàng và cột 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ợpcao AT89S52 có các đặc trưng chuẩn sau: 8Kbyte Flash, 256 byte RAM, 32đường xuất nhập, ba bộ định thời/đếm 16 bit, một cấu trúc ngắt hai mức ưu tiên

và 6 nguyên nhân ngắt, một port nối tiếp song công, mạch tạo dao động và tạoxung 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 89S52:

Hình 2.4 Sơ đồ chân IC 89S52

Trang 13

- 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 khilậ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, các chân này được kéo lên mứccao 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 độngbê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ứcthấ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 2tạ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ìnhngoà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 caobở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 Khilà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 AT89C52:

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

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

Trang 14

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

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

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

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

P3.6 điều khiển ghi bộ nhớ dữ liệu ngoài

P3.7 đ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.

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

-Với bài này em thực hiện Reset bằng cách nối chân 9 của 89S52 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 ngõ vào xung lập trình (PROG) trong thời gian lậptrình cho FlashC

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ỏ quatrong mỗi chu kì truyxuấ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

Trang 15

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ẽ đượckéo lên mức cao Việc set bit không cho phéphoạ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 89C52 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

Hình 2.6 Kết nối của mạch dao động

2.2.4 Nguyên tắc hoạt động của bảng điện tử

Nguyên lý hoạt động của bảng điện tử dựa theo nguyên lý hoạt động của cácmàn hình, đó là sử dụng phương pháp quét hình theo từng dòng.Mỗi dòng gồmnhiều điểm ảnh, mỗi điểm ảnh có thể có một hoặc vài đèn, màu sắc khác nhau Mỗi

Trang 16

đèn được biểu diễn thông qua một bit dữ liệu, bit 1 tương ứng với đèn sáng, bit 0tương ứng với đèn tắt.

Tại một thời điểm, không phải tất cả các dòng trên màn hình đều sáng nhưng dotốc độ quét nhanh và sự lưu ảnh trên võng mạc tạo cho người nhìn thấy hình ảnhliên tục Trong quá trình quét, mạch điều khiển sẽ đưa dữ liệu ra Module hiển thị,chính dữ liệu này sẽ quyết định điểm ảnh nào sáng, điểm ảnh nào tắt, màu sắc củađiểm ảnh là gì Các điểm ảnh này sẽ tạo ra hình ảnh trên bảng điện tử

Hình 2.7 Nguyên tắc tạo ảnh trên ma trận LED

Chất lượng hình ảnh phụ thuộc vào tốc độ dòng quét, tỉ lệ thời gian sáng và thờigian tối của từng dòng Thời gian quét dòng phụ thuộc vào thời gian đẩy dữ liệu ra

và thời gian trễ sáng cho dòng đó Độ trễ sáng của dòng có ảnh hưởng đến mức độsáng tối cũng như màu sắc của hình ảnh, vì vậy, để tạo ra nhiều mức sáng tối vàtăng số màu hiển thị thì phải có khả năng thay đổi độ trễ sáng của dòng

Trang 17

CHƯƠNG 3: GIỚI THIỆU VỀ NGÔN NGỮ C VÀ PHẦN MỀM KEIL C 3.1 Giới thiệu ngôn ngữ C

Trong kỹ thuật lập trình vi điều khiển nói chung, ngôn ngữ lập trình được sửdụng thường chia làm 2 loại: Ngôn ngữ lập trình bậc thấp và ngôn ngữ lập trìnhbậc cao

Ngôn ngữ lập trình bậc cao là các ngôn ngữ gần vơi ngôn ngữ con người hơn,

do đó việc lập trình bằng các ngôn ngữ này trở nên dễ dàng và đơn giản hơn Cóthể kể đến một số ngôn ngữ lập trình bậc cao như C, Basic, Pascal… trong dó C làngônngữ thông dụng hơn cả trong kỹ thuật vi điều khiển Về bản chất, sử dụng cácngôn ngữ này thay cho ngôn ngữ bậc thấp là giảm tải cho lập trình viên trong việcnghiên cứu các tập lệnh và xây dựng các cấu trúc giải thuật Chương trình viết bằngngôn ngữ bậc cao cũng sẽ được một phần mềm trên máy tính gọi là trình biên dịch(Compiler) chuyển sang dạng hợp ngữ trước khi chuyển sang mã máy

Khi sử dụng ngôn ngữ C người lập trình không cần hiểu sâu sắc về cấu trúc của

bộ vi điều khiển Có nghĩa là với một người chưa quen với một vi điểu khiển chotrước sẽ xây dựng được chương trình một cách nhanh chóng hơn, do không phảimất thời gian tìm hiểu kiến trúc của vi điều khiển đó Và việc sử dụng lại cácchương trình đã xây dựng trước đó cũng dễ dàng hơn, có thể sử dụng toàn bộ hoặcsửa chữa một phần

Keil C uVision là một phần mềm hỗ trợ cho người dùng trong việc lập trình cho

vi điều khiển các dòng khác nhau (Atmet, AVR,…) Keil C giúp người dùng soạnthảo và biên dịch chương trình C hay cả ASM thành ngôn ngữ máy để nạp vào viđiều khiển giúp chúng ta tương tác giữa vi điều khiển và người lập trình

Hình 3.1 Phần mềm Keil C uVision 5

Trang 18

3.2 Ngôn ngữ C

3.2.1 Kiểu dữ liệu

Kiểu dữ liệu trong C

- Khai báo biến

+ Cú pháp: kiểu dữ liệu vùng nhớ tên biến

Vd: Unisigned char data x;

- Khi khai báo biến có thể gán luôn cho biến giá trị bạn đầu

Vd: thay vì Unisigned char x; x = 0;

Ta chỉ cần: Unisigned char x = 0;

- Có thể khai báo nhiều biến cùng một kiểu một lúc

Vd: unsigned int x,y,z,t;

Chỉ định vùng nhớ: từ khoá “Vùng_nhớ” cho phép người dùng có thể chỉ ravùng nhớ sử dụng để lưu trữ các biến sử dụng trong chương trình Các vùng nhớ cóthể sử dụng là: CODE, DATA, DATAB, IDATA, PDATA, XDTA Khi không khaibáo vùng nhớ trình dịch Keil C sẽ mặc định đó là vùng nhớ DATA

Vùng nhớ Ý nghĩa

CODE Bộ nhớ mã nguồn chương trình

DATA Bộ nhớ dữ liệu gồm 128 Byte thấp của RAM trong vi

điều khiểnBDATA Bộ nhớ dữ liệu có thê định địa chỉ bit, nằm trong vùng

nhớ DATAIDATA Bộ nhớ dữ liệu gồm 128 Byte cao của RAM trong vi

điều khiển chỉ có ở một số dòng vi điều khiển sau nàyPDATA Bố nhớ dữ liệu ngoài gồm 256 Byte, được truy cập bởi

địa chỉ đặt trên P0

Trang 19

XDATA Bộ nhớ dữ liệu ngoài có dung lượng có thể lên đến 64

KB, được truy cập bởi địa chỉ đặt trên P0 và P2Định nghĩa lại kiểu

- Cú pháp: typedef kiểu dữ liệu tên biến;

- Tên biến sau này sẽ được sử dụng như một kiểu dữ liệu mới và có thể dùng

để khai báo các biến khác

- sbit, sfr, sfr16: dùng để định nghĩa các cho các thanh ghi chức năng hoặc cáccổng trên vi điều khiển dùng để truy nhập các đoạn dữ liệu 1 bit, 8 bit, 16 bit

- Cú pháp: Tên kiểu vùng nhớ tên mảng [ số phần tử mảng];

Khi bỏ trống số phần tử mảng ta sẽ có mảng có số phần tử bất kì

Ví dụ Unsigned int data a[5],b[2] [3];

Trang 20

Với khai báo trên ta sẽ có: Mảng a là một mảng một chiều 5 phần tử Mảng b

là mảng 2 chiều, tổng số phần tử 6.Chỉ số của mảng bắt đầu từ số 0 Mảng cóbao nhiêu chiều phải cung cấp đầy đủ bấy nhiêu chỉ số

- Ví dụ: phần tử mảng b[0][1] là đúng Khi viết b[0] là sai

Con trỏ

- Khi ta khai báo một biến, biến đó sẽ được cấp phát một khoảng nhớ bao gồmmột số byte nhất định dùng để lưu trữ giá trị Địa chỉ đầu tiên của khoảngnhớ đó chính là địa chỉ của biến được khai báo

- Con trỏ là một biến dùng để chứa địa chỉ mà không chứa giá trị, hay giá trịcủa con trỏ chính là địa chỉ khoảng nhớ mà nó trỏ tới.Với các vùng nhớ cụthể con trỏ tới vùng nhớ đó chiếm dung lượng phụ thuộc vào độ lớn củavùng nhớ đó Con trỏ tổng quát khi không xác định trước vùng nhớ sẽ códung lượng lớn nhất vì vậy tốt nhất nên sử dụng con trỏ cụ thể

Loại con trỏ Kích thướcCon trỏ tổng quát 3 byteCon trỏ XDATA 2 byteCon trỏ CODE 2 byteCon trỏ DATA 1 byteCon trỏ IDATA 1 byteCon trỏ PDATA 1 byte

Kiểu dữ liệu cấu trúc

- Kiểu dữ liệu cấu trúc là một tập hợp các biến, các mảng và cả các kiểu cấutrúc khác được biểu thị bởi một tên duy nhất kiểu dữ liệu cấu trúc dùng đểlưu trữ các giá trị, thông tin có liên quan đến nhau

- Khai báo biến cấu trúc: typedef struct { Khai báo các biến thành phần;} Tênkiểu cấu

3.2.2 Phép toán

Phép toán số học

Trang 21

% Phép chia lấy phần dư a%b

Trang 22

~' Lấy bù theo bit —a

1 Khai báo chỉ thị tiền xử lý

2 Khai báo các biến toàn cục

3 Khai báo nguyên mẫu các hàm

+ Khai báo biến toàn cục

Unsigned char code Led_arr[3];

Unsigned char data dem;

Unsigned int xdata X;

Ngày đăng: 22/07/2021, 09:37

TỪ KHÓA LIÊN QUAN

w