Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
1,17 MB
Nội dung
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Ư 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 sử dụng và độ phân giải. Ngoài 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 mạch mô phỏng hệ thống quang báo 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 nhau thá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ệ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. 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à 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 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, 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 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: 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 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. 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. 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... 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... long k = 121; while(k ){} } } void main(void) { TMOD=0x01; TH0=-1000/256; TL0=-1000%256; TR0=1; ET0=1; //kich hoat ngat timer0 EA=1; //kich hoat ngat toan cuc while(1) { // Place your code here delay(400); stt++; if(stt>20) stt=0; } } Tùy chỉnh Options: -Sửa tần số thạch anh: -Tạo file Hex: Biên dịch chương trình: Ấn vào biểu tượng Build Nếu thành công sẽ có thông báo: “Creating hex file from …”, 0... Ta thực hiện 6 bước: 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: Chọn đường dẫn để lưu và đặt tên cho project: Sau đó ấn Save Tiếp theo ta chọn loại Chip: ở đây ta lựa chọn Atmel->chọn AT89C51 Ấn Yes và ta đã hoàn thành... Chọn đường dẫn đến thư mục Project -> chọn file.C vừa tạo ở bước 2 -> Add: Và ta đã hoàn tất giai đoạn tạo Project, chuẩn bị viết code nào 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 #include char count=0, stt=0; char font[21][5]= { { 0x7e, 0x11, 0x11, 0x11, 0x7e }, { 0x7f, 0x49, 0x49, 0x49, 0x36 }, { 0x3e, 0x41, 0x41, 0x41, 0x22 }, /* A - 0x41... viết chương trình cho Chip lên file đó Vào File->New: Sau đó chọn Save: 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: 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 . 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 mạch mô phỏng hệ thống quang báo sử dụng led ma trận. Bảng hiển thị ma trận LED (dot-matrix. 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ứ. 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