Chính việc hữu dụng cũng nhưphổ biến của các bảng quảng cáo mà trong đồ án này chúng em đã lựa chọn đề tàinghiên cứu, tìm hiểu về cách tạo chữ chạy sử dụng led ma trận 8x8
Trang 1KHOA CÔNG NGHỆ THÔNG TIN ỨNG DỤNG
2 Lưu Thành Trung
LỚP : CCVT03A
Đà Nẵng, tháng 12 năm 2012
Trang 2MỤC LỤC i
DANH MỤC HÌNH VẼ i
DANH MỤC BẢNG ii
LỜI MỞ ĐẦU 1
Chương I: GIỚI THIỆU VỀ IC 89C52 2
1.1Giới Thiệu Chung về VĐK AT89C52: 2
1.2.Khảo sát sơ đồ chân 3
1.3 Bộ nhớ dử liệu- Bộ nhớ Ram 6
1.4 Các bank thanh ghi 8
1.5 Vùng RAM truy xuất từng bit 9
1.6.Vùng RAM bình thường 9
1.7.Các thanh ghi có chức năng đặc biệt 9
1.8.Tìm hiểu một số ô nhớ có chức năng đặc biệt 9
1.8.1Các thanh ghi có địa chỉ 80H, 90H, A0H, B0H: 9
1.8.2Thanh ghi A 9
1.8.3.Thanh ghi B 9
1.8.4 Con trỏ sắp xếp SP :địa chỉ 81H 10
1.8.5 Con trỏ dữ liệu DPTR 10
1.8.6.Thanh ghi trạng thái chương trình PSW (địa chỉ byte D0H) 10
Chương II: GIỚI THIỆU VỀ CÁC LINH KIỆN KHÁC 12
2.1 Giới thiệu về ma trận LED 12
2.1.1 Cấu tạo 12
2.1.2 Cơ sở lý thuyết 12
2.1.3 Nguyên lý hoạt động 12
2.2 Các linh kiện sử dụng trong mạch 13
CHƯƠNG III: THIẾT KẾ MẠCH 15
3.1 Sơ đồ nguyên lý 15
3.2 Mạch in 15
3.3 Chương trình (code) 16
3.4 Mạch thực tế 21
21
KẾT LUẬN 22
DANH MỤC HÌNH VẼ Hình 2.1: IC AT89c52 2
Hình 2.2: Sơ đồ chân 3
Hình 2.3: sơ đồ khối bên trong của 89c52 5
Trang 3Hình 2.1 Sơ đồ ghép nối của ma trận led 8x8 12
Hình 2.2 Tranzito A1015 13
Hình 2.3 Hình dạng thực tế của tụ gốm (a) và tụ hóa (b) 14
Hình 2.4 Hình dạng thực tế của thạch anh tạo dao động 14
Hình 3.1 Sơ đồ nguyên lý của mạch 15
Hinh 3.2: Mạch in led ma trận 15
Hình 3.3: mạch led ma trận đã hoàn thành 21
DANH MỤC BẢNG Bảng 2.1: Cấu trúc bộ nhớ RAM bên trong vi điều khiển 8
Bảng 2.2: Chức năng từng bit trong thanh trạng thái PSW 10
Trang 4LỜI MỞ ĐẦU
Trong thời đại khoa học kỹ thuật phát triển hiện nay, nhu cầu về thông tin là yếutố quan trọng hàng đầu giúp tất cả các lĩnh vực trong xã hội tồn tại và phát triển Việcnắm bắt thông tin càng sớm và chính xác sẽ giúp cho cơ hội thành công trong côngviệc sẽ càng cao hơn Nhu cầu thiết yếu là đưa thông tin đến với mọi người để mọingười cùng biết và nắm bắt nó Quảng cáo là một công cụ giúp cho thông tin đến vớixã hội một cách nhanh nhất
Do thực tế của các bảng quảng cáo chỉ thể hiện các chương trình đã được lậptrình cố định trong các vùng nhớ của chương trình nên việc thay đổi nội dung quảng
cáo sẽ rất khó khăn cho người có nhu cầu sử dụng Quảng cáo tốt sẽ đem lại nhiều lợi
ích to lớn Cũng chính vì vậy mà không ngạc nhiên khi hàng năm các doanh nghiệp đãđầu tư rất nhiều vào vấn đề này Một trong những biện pháp được ưa dùng hiện nay đó
là sử dụng bảng quảng cáo bằng đèn LED, vì sự đơn giản, hiện đại, bắt mắt, chi phíhợp lý cũng như tính hiệu quả của nó Những bảng thông tin, cổng chào hay nhữngbảng LED quảng cáo với màu sắc sặc sỡ, bắt mắt, gây nhiều chú ý chắc hẳn đã khôngcòn xa lạ đối với người dân, nhất là người dân đô thị Chính việc hữu dụng cũng nhưphổ biến của các bảng quảng cáo mà trong đồ án này chúng em đã lựa chọn đề tàinghiên cứu, tìm hiểu về cách tạo chữ chạy sử dụng led ma trận 8x8 Trong bài làmkhông thể tránh khỏi những sai sót Rất mong được sự giúp đỡ, góp ý của thầy cô vàcác bạn
Xin chân thành cảm ơn!
Đà Nẵng, tháng 12 năm 2011
Trang 5Chương I: GIỚI THIỆU VỀ IC 89C521.1Giới Thiệu Chung về VĐK AT89C52:
Hình 2.1: IC AT89c52.Cấu trúc chung về VĐK AT89C52
VĐK 89C52 mà chúng ta sử dụng có những đặc điểm sau:
· 4KB ROM bên trong
· 256 Byte ngoài
· 4 Port xuất nhập dữ liệu I/O
· Giao tiếp nối tiếp
· 64 KB vùng nhớ mã ngoài
· 64 KB vùng nhớ dữ liệu ngoài
· Xử lý Boolean
Trang 61.2.Khảo sát sơ đồ chân.
Hình 2.2: Sơ đồ chân Trên sơ đồ chân trên có các nhóm chân sau:
1 Nhóm chân nguồn nuôi.
+ nguồn nuôi 5V (chân số 40)
+ nối đất (chân số 20)
2 Nhóm chân điều khiển.
Nhóm này còn phân biệt các tín hiệu vào, ra
a Nhóm tín hiệu vào điều khiển
+ Xtal1 (chân số 18), Xtal2 (chân số 19): nối tinh thể thạch anh cho mày phátxung nhịp chu trình
+ RST(Reset): (chân số 9): nối chuyển mạch để xóa về trạng thái ban đầu haykhởi động lại
+ /EA/CPP: (chân số 31) chọn nhớ ngoài (nối đất) hay chọn nhớ trong (nối
Trang 7nguồn nuôi 5V).
+ T2 hay P1.0: (chân số 1) tín hiệu vào đếm cho Timer2/ Counter2 của 8952+ T2EX: (chân số 2) tín hiệu vào ngắt ngoài 2 cho 8950
+ /INT0 hay P3.2: (chân số 12) tín hiệu vào gây ngắt ngoài 0 cho 8051
+ /INT1 hay P3.3: (chân số 13) tín hiệu vào gây ngắt ngoài 1 cho 8051
+ T0 hay P3.4: (chân số 14) tín hiệu vào đếm cho Timer0/ Counter0
+ T1 hay P3.5: (chân số 15) tín hiệu vào đếm cho Timer1/ Counter1
b Nhóm tín hiệu ra điều khiển
+ ALE//PROG: (chân số 30) dùng để đưa tín hiệu chốt dịa chỉ (ALE) khi cónhớ ngoài hay điều khiển ghi chương trình /PROG
+ /PSEN: (chân số 29) dùng để đưa tín hiệu điều khiển đọc bộ nhớ chươngtrình ROM ngoài
+ /WR hay P3.6: (chân số 16) để đưa tín hiệu ghi dữ liệu vào bộ nhớ ngoài + /RD hay P3.7: (chân số 17) để đưa tín hiệu đọc dữ liệu từ bộ nhớ ngoài
c Nhóm các tín hiệu địa chỉ, dữ liệu
+ cổng vào, ra địa chỉ/ dữ liệu P0 hay P0.0-P0.7: (chân số 39-32) dùng để traođổi tin về dữ liệu D0-D7, hoặc đưa ra các địa chỉ thấp (A0-A7) theo chế độ dồn kênh(kết hợp với tín hiệu chốt địa chỉ ALE)
+ cổng vào ra địa chỉ/ dữ liệu P2 hay P2.0-P2.7: (chân số 21-28) dùng để trao đổi tin song song về dữ liệu (D0-D7) hoặc đưa ra địa chỉ cao (A8-A15)
+ cổng vào ra dữ liệu P1 hay P1.0-P1.7: (chân số 1-8) dùng để trao đổi tinsong song dữ liệu (D0-D7)
+ cổng vào, ra P3 hay P3.0-P3.7: (chân số 10-17)
- P3.0: (chân số 10) đưa vào tín hiệu nhận tin nối tiếp RXD
- P3.1: (chân số 11) đưa ra tín hiệu truyền tin nối tiếp TXD
- /INT0 hay P3.2: (chân số 12) tín hiệu vào gây ngắt 0 của VĐK
- /INT1 hay P3.3: (chân số 13) tín hiệu vào gây ngắt 1 của VĐK
- T0 hay P3.4: (chân số 14) tín hiệu vào đếm cho Timer0/ Counter0 cho VĐK8051/8052
- T1 hay P3.5: (chân số 15) tín hiệu vào đếm cho Timer1/ Counter1 choVĐK 8051/8052
- /WR hay P3.6: (chân số 16) để đưa tín hiệu ghi dữ liệu vào bộ nhớ ngoài
- /RD hay P3.7: (chân số 17) để đưa tín hiệu đọc dữ liệu từ bộ nhớ ngoài
Trang 8T2 hay P1.0: (chân số 1)tín hiệu vào đếm cho Timer2/ Counter2 cho VĐK8052.
- T2EX: (chân số 2) tín hiệu vào gây ngắt 2 của VĐK 8052
Ngoài các tín hiệu chuyên dùng trên, cổng vào/ ra P3 này còn dùng để traođổi tin về dữ liệu D7-D0
• Cấu trúc bên trong của 89C52 :
• Sơ đồ khối bên trong 89C52:
Hình 2.3: sơ đồ khối bên trong của 89c52
• Bộ nhớ chương trình- Bộ nhớ Rom:
Bộ nhớ ROM dùng để lưu chương trình do người viết chương trình viết ra.Chương trình là tập hợp các câu lệnh thể hiện các thuật toán để giải quyết các côngviệc cụ thể,chương trình do người thiết kế viết trên máy vi tính, sau đó được đưa vàolưu trong ROMcủa vi điều khiển, khi hoạt động, vi điều khiển truy xuất từng câu lệnhtrong ROM đểthực hiện chương trình ROM còn dùng để chứa số liệu các bảng, cáctham số hệ thống, các số liệu cố định của hệ thống Trong quá trình hoạt động nộidung ROM là cố định, không thể thay đổi, nội dung ROM chỉ thay đổi khi ROM ở chếđộ xóa hoặc nạp chương trình (do các mạch điện riêng biệt thực hiện)
Bộ nhớ ROM được tích hợp trong chip Vi điều khiển với dung lượng 89c52 là
Trang 98KByte
Bộ nhớ bên trong Vi điều khiển 89Sxx là bộ nhớ Flash ROM cho phép xóa bộnhớ ROM bằng điện và nạp vào chương trình mới cũng bằng điện và có thể nạp xóanhiều lần
Bộ nhớ ROM được định địa chỉ theo từng Byte, các byte được đánh địa chỉ theosố hex-số thập lục phân, bắt đầu từ địa chỉ0000H, khi viết chương trình cần chú ý đếnđịa chỉ lớn nhất trên ROM, chương trình được lưu sẽ bị mất khi địa chỉ lưu vượt quavùng này Ngoài ra Vi điều khiển còn có khả năng mở rộng bộ nhớ ROM với việc giaotiếp với bộ nhớ ROM bên ngoài lên đến 64KByte(địa chỉ từ0000H đếnFFFFH)
1.3 Bộ nhớ dử liệu- Bộ nhớ Ram
Bộ nhớ RAM dùng làm môi trường xử lý thông tin, lưu trữ các kết quả trung gian
và kết quả cuối cùng của các phép toán, xử lí thông tin Nó cũng dùng để tổ chức cácvùng đệm dữ liệu, trong các thao tác thu phát, chuyển đổi dữ liệu
RAM nội trong Vi điều khiển được tổ chức như sau:
Các vị trí trên RAM được định địa chỉ theo từng Byte bằng các số thập lục phân(số Hex)Các bank thanh ghi có địa chỉ 00H đến 1FH210 vị trí được định địa chỉ bit cácvị trí RAM bình thường Các thanh ghi có chức năng đặc biệt có địa chỉ từ 80H đếnFFH.Các byte RAM 8 bit của vi điều khiển được gọi là "ô nhớ" , nếu các ô nhớ cóchức năng đặc biệt thường được gọi là "thanh ghi" , nếu là bit thì được gọi là "bit nhớ"
Trang 10chỉ
byte
Địa chỉ bit địa chỉ
7 B
7 A
7 9
7 8 7
7 0 6
6 B
6 A
6 9
6 8 6
6 0 5
5 B
5 A
5 9
5 8 5
5 0 4
4 B
4 A
4 9
4 8 4
4 0 3
3 B
3 A
3 9
3 8 3
3 0 2
2 B
2 A
2 9
2 8 2
2 0 1
1 B
1 A
1 9
1 8 1
1 0 0
0 B
0 A
0 9
0 8
FF F0
90
8D 8C 8B 8A 89 88 87
83 82 81 80
F7 F6 F5 F4 F3 F2 F1 F0
E
7 E6 E5 E4 E3 E2 E1 E0
D 7
D 6
A C
A B
A A
A
A 7
A 6
P1
TH1 TH0 TL1 TL0 TMO D TCON PCON
DPH DPL SP P0
Trang 110 0 Bank 3
Các lệnh dùng các thanh ghi từ R0 đến R7 mất khoảng không gian lưu trữ ít hơn
và thời gian thực hiện nhanh hơn so với các lệnh dùng các ô nhớ RAM khác, ngoài racác thanh ghi này còn có thêm một số chức năng đặc biệt khác, vì lí do này các dữ liệusử dụng thường thường được người viết chương trình đưa vào lưu trong các thanh ghinày
Ngoài ra, có thể truy xuất thanh ghi trên các bank thanh ghi như với các ô nhớbình thường khác Ví dụ: nguời dùng có thể truy xuất đến thanh ghi R7 bằng ô nhớ07H
Trang 121.5 Vùng RAM truy xuất từng bit
Trên RAM nội có 210 ô nhớ bit được định địa chỉ và có thể truy xuất đến từngbit, các bit nhớ này cũng được định địa chỉ bằng các số thập lục phân- số Hex Trong
đó có 128 bit nằm trong các ô nhớ có địa chỉ byte từ 20H đến 2FH, các bit nhớ còn lạichứa trong nhóm thanh ghi có chức năng đặc biệt
Mặc dù các bit nhớ và ô nhớ (byte) cùng được định bằng số Hex, tuy nhiênchúng sẽ được nhận dạng là địa chỉ bit hay địa chỉ byte thông qua các câu lệnh tươngứng dành cho các bit nhớhoặc các ô nhớ này
1.7.Các thanh ghi có chức năng đặc biệt
Các thanh ghi này được định địa chỉ byte, một số được định thêm địa chỉ bit, cóđịa chỉ của các thanh ghi này nằm trong khoảng 80H đến FFH Các thanh ghi đặc biệtnày này được dùng để xác lập trạng thái hoạt động cần thiết cho Vi điều khiển
1.8.Tìm hiểu một số ô nhớ có chức năng đặc biệt
1.8.1Các thanh ghi có địa chỉ 80H, 90H, A0H, B0H:
Đây là các thanh ghi kiểm tra và điều khiển mức logic của các Port, có thể truyxuất và xác lập các thanh ghi này với địa chỉ byte hoặc tên riêng lần lượt là P0, P1, P2,P3 tương ứng với các Port xuất Chẳng hạn để tất cả các chân của Port 0 lên mức logic
1, cần làm cho các bit của thanh ghi có địa chỉ 80H lên mức 1
Trang 13dữ liệu DPTR thường được sử dụng khi truy xuất dữ liệu từ bộ nhớ ROM hoặc bộ nhớtừ bên ngoài
1.8.6.Thanh ghi trạng thái chương trình PSW (địa chỉ byte D0H)
Bảng 2.2: Chức năng từng bit trong thanh trạng thái PSW
Cờ nhớ C:
Cờ được sử dụng trong các lệnh toán học:
C=1 nếu phép toán cộng xảy ra tràn hoặc phép trừ có mượn
C=0 nếu phép toán cộng không tràn hoặc phép trừ không có mượn
Cờ nhớ phụ AC:
Cờ AC được dùng trong các phép toán cộng hai số BCD
Khi cộng số BCD:
Nếu kết quả 4 bit lớn hơn 09H thì AC=1
Nếu kết quả 4 bit dưới 09H thì AC=0
Cờ 0 hay cờ nhớ Z:
Cờ Z = 0 khi thanh ghi A có giá trị khác 0
Cờ Z =1 khi A thanh ghi A có giá trị là 0
Các bit chọn bank thanh ghi:
Hai bit RS1 và RS2 dùng để xác lập bank thanh ghi được sử dụng, mặc định RS1=0
Trang 14Cờ tràn OV
Được sử dụng trong các phép toán cộng có dấu, với các phép toán cộng khôngdấu cờ tràn OV được bỏ qua, không cần quan tâm đến OV
Nếu: Phép cộng hai số có dấu lớn hơn +127 thì OV=1
Hoặc phép trừ hai số có dấu nhỏ hơn -127 thì OV=1
Các trường hợp còn lại OV=0
Cờ chẵn lẻ
Cờ chẵn lẻ P tự động được đặt bằng 1 hoặc 0 sao cho tổng số bit mang giá trị 1 trên thanh ghi A với cờ P luôn là một số chẵn Cờ chẵn lẻ được dùng để xử lí dữ liệu trước khi truyền đi theo kiểu nối tiếp hoặc xử lí dữ liệu trước khi nhận vào theo kiểu nối tiếp (hạn chế lỗi phát sinh trong quá trình truyền)
Trang 15Chương II: GIỚI THIỆU VỀ CÁC LINH KIỆN KHÁC
2.1 Giới thiệu về ma trận LED
2.1.1 Cấu tạo
Ma trận led bao gồm nhiều led đơn bố trí thành hàng và cột trong một vỏ Các tínhiệu điều khiển hàng được nối với A nôt trên tất cả các led trên cùng một hàng Các tínhiệu điều khiển cột cũng được nối với Ca tôt của tất cả các led trên cùng một cột
Hình 2.1 Sơ đồ ghép nối của ma trận led 8x8
2.1.2 Cơ sở lý thuyết
Dựa trên nguyên tắc quét hình, ta có thể thực hiện việc hiển thị ma trận led bằngcách quét theo hàng Mỗi led trên ma trận có thể coi như một điểm ảnh Địa chỉ củamỗi điểm này được xác định đồng thời bởi bộ đệm hàng và bộ đệm cột, điểm ảnh nàysẽ xác định trạng thái nhờ dữ liệu đưa ra từ bộ vi điều khiển 89C51
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 ảnhcòn lại sẽ chuyển về trạng thía tắt nếu led đang sáng thì sẽ tắt dần Vì thế để hiển thịtoàn bộ hình ảnh của ma trận led, ta có thể quét ma trận nhiều lần với tốc độ quét rấtlớn, lớn hơn nhiều lần so với thời gian kịp tắt của đèn
2.1.3 Nguyên lý hoạt động
Khi có một tín hiệu điều khiển ở cột và hàng, các chân A nôt của các led trênhàng tương ứng được cấp điện áp cao, đồng thời các chân Ca tôt của các led trên cột
Trang 16tương ứng được cấp điện áp thấp Tuy nhiên lúc đó chỉ có một led sáng , vì nó có đồngthời điện thế cao trên A nôt và điện thế thấp trên Ca tôt Như vậy khi có tín hiệu điềukhiển hàng và cột thì tại một thời điểm chỉ có duy nhất một led tại chỗ giao nhau giữahàng và cột là sáng Các bảng quang báo với số led lớn hơn cũng được kết nối theo cấutrúc như vậy.
Trong trường hợp ta muốn cho sáng đồng thời một số led rời rạc trên ma trận đểhiển thị một ký tự nào đó, nếu trong hiển thị tĩnh ta phải cấp áp cao cho Anôt và ápthấp cho Catôt cho led tương ứng mà ta muốn sáng Nhưng khi đó một số led ta khôngmong muốn cũng sẽ sáng, miễn là nó nằm tại vị trí giao nhau giữa hàng và cột mà tamuốn cấp nguồn Vì vậy trong điều khiển led ma trận ta không thể sử dụng phươngpháp hiển thị tĩnh mà phải sử dụng phương pháp quét (hiển thị động) Có nghĩa là taphải tiến hành cấp tín hiệu điều khiển theo dạng xung quét trên các hàng và cột cầnhiển thị Để cho mắt nhìn thấy các led không bị nháy, thì tần số quét nhỏ nhất cho mỗichu kỳ khoảng 20Hz (50ms) Trong lập trình điều khiển led ma trận bằng vi xử lý tacũng phải sử dụng bằng phương pháp quét như vậy
Ma trận led có thể là loại chỉ hiển thị được một màu hoặc hiển thị được hai màutrên một điểm, khi đó led có số chân ra tương ứng: đối với ma trận led 8x8 hiển thịmột màu thì số chân ra là 16, trong đó 8 chân dùng để điều khiển hàng và 8 chân cònlại dùng để điều khiển cột
2.2 Các linh kiện sử dụng trong mạch
+ Tranzito A1015: Làm nhiệm vụ khuếch đại đảo dữ liệu hàng khi đi qua Ví dụkhi ta đưa dữ liệu hàng mức 0 qua tranzito A1015 thì dữ liệu sẽ được đảo thành mức 1ở ngõ ra
Hình 2.2 Tranzito A1015
+ Tụ điện: Tụ điện có chức năng chính là phóng và nạp điện Trong mạch có sử
dụng tụ gốm dùng trong mạch tạo dao động bằng thạch anh cấp cho IC và một tụ hóa10µF