BÀI TẬP LỚN NGOẠI VI GHÉP NỐIĐề tài:TÌM HIỂU VỀ LED MATRIX (MẠCH QUẢNG BÁ)
Trang 1ĐẠI HỌC THÁI NGUYÊN TRƯỜNG CAO ĐẲNG KINH TẾ - KĨ THUẬT
BÀI TẬP LỚN NGOẠI VI GHÉP NỐI
Vũ Đình Thanh
Tháng 12 Năm 2012
Trang 2MỤC LỤC
LỜI NÓI ĐẦU 2
CHƯƠNG I: Giới thiệu đề tài mạch quảng bá 4
CHƯƠNG II: Linh kiện cơ bản sử dụng trong mạch 6
2.1 Giới thiệu về vi điều khiển 89C51 6
2.1.1 Các đặc điểm của hệ vi xử lý 89C51 6
2.1.2 Cơ bản về cấu tạo của AT89C51 7
2.1.3 Các thanh ghi chức năng đặc biệt (SFR) 12
2.2 Giới thiệu về Led Ma trận 16
2.2.1 Sơ đồ cấu tạo của Led Ma trận 16
2.2.2 Nguyên tắc làm sáng đèn trên bảng Led Matrix 18
2.2.3 Nguyên tắc quét bảng ma trận led 18
2.2.4 Nguyên tắc tạo hiệu ứng chạy từ phải sang trái 21
3.1 Sơ đồ mạch 23
3.1.2 Giới thiệu về phần mềm hỗ trợ 23
3.1.3 Phần mềm giới thiệu viết code 26
3.1.4 Sản phẩm mạch trên mô phỏng 27
KẾT LUẬN 29
Trang 3LỜI NÓI ĐẦU
Ngày nay nền công nghệ ứng dụng vi sử lý vào đời sống ngày càng khá phổbiến và không ngừng được phát truyển trong nhiều lĩnh vực như điều khiển tựđộng, trang trí quảng cáo, các đèn giao thông…đặc biệt chúng ta hay bắt gặp nhất
là ứng dụng trong quảng cáo của vi sử lý Những biển quảng bá rất nổi bật làmchúng ta không khỏi tò mò đó chính là thành công của người thiết kế.Tính ưu việtcủa nó thể hiện ở chỗ:
- Dễ dàng sử dụng trong các thiết bị điện tử hoặc hệ thống điện tử số
- Chi phí nâng cấp thấp và cần rất ít linh kiện cho việc bảo dưỡng bảo hành
- Mang lại hiệu quả kinh tế cao
Vi điều khiển mang lại nhiều lợi nhuận lại có sức cạnh tranh cao do chấtlượng cao mang lại được sử dụng rộng dãi, càng tăng tính hấp dẫn về người dùngđồng thời cũng mang lại nhiều lợi nhuận cho các nhà sản xuất Đó là động lực để viđiều khiển tăng trưởng cả về số lượng và chất lượng
Trong thời gian làm đồ án, chúng em đã nhận được sự giúp đỡ nhiệt tình củathầy cô cùng với sự nỗ lực của cả nhóm chúng em đã hoàn thành được để tài củamình và về cơ bản đã đáp ứng được yêu cầu của đề tài Đó là tìm hiểu về led matrix(mạch quảng bá) chúng em rất mong nhận được sự gióp ý của các thầy cô và cácbạn để đề tài được hoàn thiện hơn
Chúng em xin chân thành cảm ơn!
Nhóm sinh viên thực hiện: Hà Anh Dũng
Trang 4CHƯƠNG I:
GIỚI THIỆU ĐỀ TÀI ĐÈN LED MATRIX (MẠCH QUẢNG BÁ)
Trong thời buổi khoa hoc công nghệ phát triện không ngừng với sức sangtạo không giới hạn con người đã làm ra những cuộc đại cách mạng về côngnghệ.Đã tạo ra những phát minh thành quả trong sản xuất và đời sống nhàmphục vụ những nhu cầu của con người được thỏa mãn.Ngành điện tử cũng làmột ngành khoa học nên cũng không thể nằm ngoài sự phát triển đó Các thiết
bị điện tử không còn quá xa vời với con người mà nó ngày càng được sử dụngvào các nhu cầu của con người.Chúng ta sẽ không phải thấy những biển quảngcáo thô cứng thụ động bằng việc cắt dán chữ mà thay vào đó là những biểnquảng cáo sinh động,bắt mắt và đặc biệt có thể linh động trong quảng cáo
Để thiết kế một mạch quảng bá thì có nhiều phương án để lựa chọn như:dùng EEPROM, dùng máy tính điều khiển trực tiếp, dùng vi xử lý, vi điềukhiển
Khi sử dụng EEPROM để lưu trữ thông tin hiển thị kết hợp với các IC giải
đa hợp (Demultiplexer) để điều khiển quá trình hiển thị trên màn hình ưu điểmcủa EEPROM là thông tin không bị mất khi không có nguồn cấp và khi muốnthay đổi nội dung bản tin ta chỉ việc lập trình lại cho EEPROM (thay đổi phầnmềm) Việc thay đôi như vậy xem ra có vẻ đơn giản, nhưng ta cần có mạch nạp
và phần mềm điều khiển Việc tháo lắp nhiều sẽ dẫn đến hỏng hóc không đáng
Trang 5các hiệu ứng đặc biệt về màu sắc cũng được thực hiện dễ dàng Tuy nhiên như
đã nói ở trên, do vấn đề giá thành cao nên phương án này không được chọn Dùng máy tính để điều khiển bảng tin cũng là một phương án Nhưng dokích thước máy tính lớn chiếm nhiều diện tích, lại đắt tiền nên ta không sửdụng
Phương án được lựa chọn là dùng Vi Điều Khiển Vì sao lại chọn Vi ĐiềuKhiển?
Thứ nhất: Ngày nay Vi Điều Khiển được sử dụng rộng rãi trong các ứng
dụng hướng điều khiển do kích thước gọn, khả năng tích hợp cao nhiều tínhnăng trong một con Vi Điều Khiển khiến cho mạch điện tử trở nên đơn giảnhơn nhiều
Thứ hai: Giá thành của Vi Điều Khiển không quá đắt như Vi xử lý Trên
thế giới hiện có rất nhiều nhà sản xuất Vi Điều Khiển (ATMEL, ZILOG,MicroChip, Motorola, Cypress…) Sự cạnh tranh của các nhà sản xuất về giáthành và khả năng tích hợp đem lại lợi ích cho người sử dụng
Thứ ba: Vi Điều Khiển được coi như một “small computer” hay System
On Chip (SoC) Bên trong vi điều khiển bao gồm CPU, ROM , RAM, EEPOM,các giao tiếp ngoại vi, các khối số học và tương tự (ADC,DAC, op-amp, bộ sosánh…) tuỳ theo từng loại
Tại Viêt Nam, thị trường Vi Điều Khiển khá sôi động Chỉ cần vào một củahàng điện tử bất kỳ ta đều có thể mua được một con Vi Điều Khiển ưng ý Vềcông cụ phát triển cho Vi Điều Khiển ta có thể tìm thấy rất nhiều trên mạngInternet, trên các diễn đàn về điện tử trong và ngoài nước, hầu hết đều là cáctiện ích miễn phí dành cho người sử dụng …
Sau một thời gian nghiên cứu về Vi Điều Khiển, mà cụ thể là dòng Vi ĐiềuKhiểnAT89CXX Nhóm Em quyết định chọn Vi Điều Khiển AT89C51 để thựchiện đề tài “thiết kế , chế tạo mạch Quảng Bá”
Trang 6CHƯƠNG II: LINH KIỆN CƠ BẢN SỬ DỤNG TRONG MẠCH
2.1.GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 89C51
+ Mạch giao tiếp nối tiếp
+ Không gian nhớ Data ngoài 64k byte
+ Bộ xử lý bit thao tác trên các bit riêng
+ 210 vị trí nhớ định địa chỉ, mỗi vị trí một bit
+ Các thanh ghi chức năng, cơ chế điều khiển ngắt
+ Các bộ thời gian dùng trong limh vực chia tần số và tạo thời gian thực
+ Bộ vi điều khiển có thể nạp chương trình để điều khiển các thiết bị thông tin,viễn thông thiết bị đo lường,thiết bị điều chỉnh cũng như các ứng dụng trong côngnghệ thông tin và kỹ thuật điều khiển tự động có thể xem bộ VĐK như một hệVXL on-chíp đối với AT89C51, nó có đầy đủ chức năng của một hệ VXL 8 bit,được điều khiển bởi một hệ lệnh, có số lệnh đủ mạnh, cho phép lập trình bằnghợp ngữ (Assemply)
Trang 72 1.2 CƠ BẢN VỀ CẤU TẠO CỦA AT89C51
Hình 1.1 : Sơ đồ chân của 89C51
Trang 8Hình 1.2 : Sơ đồ khối của 89C51 + GND(chân 20): Chân nối với 0v
+ Port 0(chân 32 – chân 29)
Trang 9+ Port 0 là port xuất nhập 8 bit hai chiều Port 0 còn được cấu hình làm bus địachỉ( byte thấp) và 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 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 ( các điện trở kéo lênbên ngoài được cần đến trong khi kiểm tra chương trình)
+ Port 1( chân 1- 8): port 1 là port xuất nhập 8 bit hai chiều Port1 cũng nhận byteđịa chỉ thấp trong thời gian lập trình cho Flash
+ Port 2 ( chân 21 – 28): Port 2 là port xuất nhập 8 bit hai chiều Port 2 tạo ra cácbyte 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 Trongthời gian truy xuất bộ nhớ dữ liệu ngoài sử dụng các địa chỉ 8 bit, port 2 phát cácnội dung của các thanh ghi đặc biệt, port 2 cũng nhận các bits địa chỉ cao và vài tínhiệu điều khiển trong thời gian lập trình cho Flash và kiểm tra chương trình
+ Port 3 ( chân 10- 17): Port 3 cũng nhận một vài tín hiêu điều khiển cho việc lậptrình Flash và kiểm tra chương trình Port 3 là port xuất nhập 8 bit hai chiều, port 3cũng còn làm các chức năng khác của AT89C51 các chức năng này được nêu nhưsau:
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
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 0
P3.6 WR Điều khiển ghi bộ nhớ dữ liệu ngoài
P3.7 RD Điều khiển đọc bộ nhớ dữ liệu ngoài
+ RST ( chân 9) Ngõ vào reset Mức cao trên chân này trong hai chu kỳ máy trongkhi bộ dao động đang hoạt động sẽ reset AT89C51
+ ALE/PROG( chân 30) ALE là một xung ngõ ra để chốt byte thấp của địa chỉtrong khi xuất bộ nhớ ngoài Chân này cũng làm ngõ vào chân lập trình (PROG)
Trang 10trong thời gian lạp trình cho Flash Khi hoạt động bình thường xung ngõ ra luôn cótần số không đổi là 1/6 tần số của mạch dao động, có thể được dùng cho các mụcđích định thời bên ngoài Khi cần, hoạt động chân ALE có thể đượ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ỉ 8Eh Khi bit nàyđược set, ALE chỉ tích cực trong thời gian thực hiện lệnh MOVX hoặc MOVC.Ngược lại chân này sẽ được kéo lên cao Việc set bit không cho phép hoạt độngchô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.
+ PSEN(chân 29): PSEN (program Store Enable) là xung điều khiển truy xuấtchương trình ngoài Khi AT89C51 đang thực thi chương trình từ bộ nhớ chươngtrình ngoài, PSEN được kích hoạt hai lần mỗi chu kỳ máy, nhưng hai hoạt độngPSEN sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ liệu ngoài
+ EA vpp(chân 31): Là chân cho phép truy xuất bộ nhớ chương trình ngoài ( địa chỉ
từ 0000h tới FFFFH) EA = 0 cho phép truy xuát bộ nhớ chương trình ngoài, ngượclại EA = 1 sẽ thực thi chương trình bên trong chip Tuy nhiên, lưu ý rằng nếu bítkhoá 1 được lập trình EA được chốt bên trong khi reset
+ XTAL1& XTAL2: Là hai ngõ vào ra của hai bộ khuyếch đại đảo của mạch daođộng, được cấu hình để dùng như một bộ tạo dao động trên chip
Hình1.3: Bộ tạo dao động
Trang 11Bộ nhớ bên trong chip bao gồm ROM, RAM va EPROM RAM trên chipbao gồm vùng RAM đa chức năng, vùng RAM với từng bit được định địa chỉ, cácdây thanh ghi (bank) và các thanh ghi chức năng đặc biệt.
+ Kiểu định địa chỉ trực tiếp:
MOV A,5FH ;Đọc nội dung tại địa chỉ 5FH của RAM
+ Kiểu định địa chỉ gián tiếp: (Qua các thanh ghi R0,R1)
MOV R0,#5FH ; Di chuyển giá trị5FH vào thanh ghi R0
MOV A,@R0 ; Di chuyển dữ liệu trỏ tới R0 và thanh chứa A
Vùng RAM định địa chỉ:
Chip 8951 chứa 210 vi trí định địa chỉ in đó có 128 byte chứa trong các byte ở địachỉ 20H đến 2FH (16 byte x 8 = 128 bits), phần còn lại chứa trong các thanh ghichức năng đặc biệt
Công dụng: + Truy xuất các bit riêng rẽ thông qua các phần mền
+ Các port có thể địng địa chỉ từng bit, làm đơn giản việc giao tiếpbăng phần mền với các thiết bị xuất nhập đơn bit
Ví dụ:
+ Set bit trực tiếp:
SETB 67H; lệnh làm nhiệm vụ set bit 67H bằng 1
Trang 12+ Hoặc ta có thẻ sử dụng lệnh sau để set bít 67H là bit lớn nhất của byte 2CH: ORL A,#10000000B ; Tác dụng set bit
2.1.3 Các thanh ghi chức năng đặc biệt (SFR)
Không phải tất cả 128 địa chỉ từ 80H đến FFH đều được định nghĩa mà chit có 21địa chỉ được định nghĩa
Các thanh ghi chức năng đặc biệt bao gồm:
+ Tử trạng thái chương trình PSW: có địa chỉ là D0H
+ Thanh ghi B: Có địa chỉ F0Hđược dùng chung với thanh chứa A trong các phéptoán nhân và chia
+ Con trỏ Stack (SP) : là thanh ghi 8 bit ở địa chỉ 81H, nó chứa địa chỉ của dữ liệuhiện đang ở đỉnh của stack
+ Con trỏ dữ liệu DPTR:
Dùng để truy xuất bộ nhớ chương trình ngoài hoặc bộ nhớ dữ liệu ngoài
DPTR là thanh ghi 16 bit có địa chỉ 82H (byte thấp ) và 83H (byte cao)
Ví dụ:
MOV A,#55H ;Nạp hằng dữ liệu 55H và thanh chứa A
MOV DPTR,%1000 ;Nạp hằng địa chỉ 16 bit 1000H cho con trỏ DPTR
MOV @DPTR,A ;Chuyển dữ liệu từ A vao RAM ngoài tai địa chỉ DPTR trỏ tới + Các thanh ghi port:
- Port 0 : địa chỉ 80H
- Port 1 : địa chỉ 90H
- Port 2 : địa chỉ A0H
- Port 3 : địa chỉ B0H
+ Các thanh ghi định thời:
IC 8951 có 2 bộ định thời/đếm dùng để định khoảng thời gian hoặc đếm các sựkiện
- Bộ định thời 0: địa chỉ 8AH (TL0 ) va 8CH (TH0)
- Bộ định thời 1: địa chỉ 8bH (TL1 ) va 8DH (TH1)
Trang 13Hoạt động của bộ định thời được thiết lậpbởi thanh ghi chế độ định thời TMOD ởđịa chỉ 89H và thanh ghi đieèu khiển bộ định thời TCON ở địa chỉ 88H (chỉ cóTCON được định địa chỉ từng bit)
+ Các thanh ghi của port nối tiếp: Chip 8951 có 1 port nối tiếp để truyền thông vớicác thiết bị như các thiết bị đầu cuối hoặc model
+ Các thanh ghi ngắt: có một cấu trúc ngắt với 2 mức ưu tiên và 5 nguyên nhânngắt Các ngắt bị vô hiệu hoá sau khi Reset hệ thống và được phép bằng cách vàothanh ghi IE ở địa chỉA8H Mức ưu tiên ngắt được thiết lập bơit thanh ghi IP ở địachỉ B8H
+ Thanh ghi điều khiển nguồn: PCON có địa chỉ 87H
Khi reset thì tất cả mọi ngắt bị cấm, có nghĩa là không có ngắt nào được bộ
vi điều khiển đáp ứng nếu chúng được kích hoạt các ngắt phải được cho phép bằngphần mềm để bộ vi điều khiển có thể đáp ứng được Có 1 thanh ghi được gọi là chophép ngắt IE (Interrup Enable), chịu trách nhiệm về việc cho phép ngắt và cấm các ngắt IE là thanh ghi có thể định địa chỉ bit
Trang 14Tín hiệu RESET.
89C51 có ngõ vào RESET (RST) tác động ở mức cao trong khoảng thời gian
2 chu kỳ sau đó xuống mức thấp để 89C51 bắt đầu làm việc RST có thể kích tay bằng một phím nhấn thường mở sơ đồ mạch RESET như hình 2.8
Sau khi RESET hệ thống được tóm lược như sau :
Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC đượcRESET tại địa chỉ 0000H Nội dung của RAM trong chip không bị thay đổi bởi tácđộng của ngõ vào RESET
9 RST
INTEL 89C51
R1 10K
R2 100
C1 10/16
+ 5V
RESET
H×nh 1a : M¹ch RESET cho 89C51Hình 1.4: Mạch RESET
Trang 15Bảng giá trị của các thanh ghi sau khi RESET hệ thống :
Bảng 2: Bảng giá trị của các thanh ghi sau khi RESET hệ thống
2.2 GIỚI THIỆU VỀ LED MA TRẬN
2.2.1 SƠ ĐỒ CẤU TẠO CỦA LED MA TRÂN
Bảng hiển thị ma trận LED (diot-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 nhautrong một khối Trong khối đó các LED đơn được sắp sếp theo các hàng và các cột,tại mỗi giao điểm của hàng với 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 Cũng như vậy mộtbảng 8x8 là có 8 hàng và 8 cột, do 64 LED đơn ghép lại Và nhiều loại cỡ to hơn
Trang 16Hình 2.1: Minh họa một bảng led matrix 8x8:
Sơ đồ cấu tạo: một ma trận led có 16 chân được sắp xếp theo thứ tự 8 hàng
8 cột được đánh số từ 1 đến 8, số chân của led được đánh từ 1 đến 16 theo sơ đồhình vẽ
Trang 17Hình 2.2: Sơ đồ ghép nối của bảng led matrix 8x8:
Khi đóng vỏ, sự phân bố chân các hàng và cột là không theo thứ tự (do tínhphức tạp trong ghép nối), do đó ta cần tìm hiểu kỹ để mắc mạch cho đúng, nêntheo thứ tự đó ta có các chân số cột gồm: 13,3,4,10,6,11,15,16;các chân số hangtheo thứ tự là: 9,14,8,12,1,7,2,5 Bảng ma trận LED có hai loại, loại có các cột làcác chân Anode, còn hàng là các chân Cathode và loại kia thì ngược lại các cột làCathode, hàng là Anode Khi sử dụng LED ta cần chú ý điều này để điều khiểncho đúng
2.2.2 NGUYÊN TẮC LÀM SÁNG ĐÈN TRÊN BẢNG LED MATRIX
Khi muốn làm sáng LED đơn, ta cần đưa điên áp dương vào chân Anode
và điện áp âm vào chân Cathode với giá trị thích hợp, khi đó LED sáng Giá trịđiện áp và dòng điện tuỳ thuộc vào màu sắc từng loại LED Dòng chảy qua cácLED để đảm bảo độ sáng bình thường là từ 10mA cho đến 25mA Khi ta muốnlàm sáng một điểm trên bảng ma trận LED ta cũng làm tương tự
Trang 182.2.3 NGUYÊN TẮC QUÉT BẢNG MA TRẬN LED MATRIX
Trong đề tài này em sử dụng 4 bảng LED 8x8 ghép lại thành một bảng cỡ 8x32(8 hàng và 32 cột) Để hiển thị ký tự lên bảng LED, ở đây ta dùng phương phápquét cột và xuất dữ liệu hàng Quá trình quét cột là ta gửi tín hiệu cho phép đếntừng cột trong từng thời điểm Cùng lúc đó ta gửi dữ liệu hàng đến 7 hàng Trong
đề tài này tín hiệu cho phép cột là mức logic ‘0’, và dữ liệu hàng tương ứng là mức
‘1’ hay ‘1’ của từng hàng, mức ‘0’ ứng với LED sáng (on) và mức ‘1’ là tắt (off)
- Đầu tiên ta đưa dữ liệu cần hiển thị đến 7 hàng, ví dụ 11100110
- Kích hoạt cột thứ nhất và các LED tương ứng sẽ sáng Tạo một thời gian trễ, sau
Dữ liệu hiển thị của hàng được lấy từ EEPROM hoặc từ Flash ROM của Vi ĐiềuKhiển hay từ ROM ngoài
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 mass, LED sẽ tắt khi chân âm nối với điện áp mức cao.Với đề tài này, chúng em chọn loại ma trận LED 8x8 để hiển thị.Ta có sơ đồnguyên lý của Ma trận LED 8x8: