Đề tài: Thiết kế mô hình bảng LED điện tử dùng 01 LED ma trận đa sắc

Chia sẻ: NguyễnThanh Hiếu | Ngày: | Loại File: DOC | Số trang:22

0
230
lượt xem
100
download

Đề tài: Thiết kế mô hình bảng LED điện tử dùng 01 LED ma trận đa sắc

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo luận văn - đề án 'đề tài: thiết kế mô hình bảng led điện tử dùng 01 led ma trận đa sắc', luận văn - báo cáo, điện - điện tử - viễn thông phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Đề tài: Thiết kế mô hình bảng LED điện tử dùng 01 LED ma trận đa sắc

  1. Đồ Án Môn Vi Điều khiển LỜI MỞ ĐẦU Ngày nay bộ vi điều khiển (Micro-controller) đã rất phổ biến trong các thiết bị điện và điện tử dân dụng, các bộ vi điều khiển kh ống ch ế ho ạt động của các thiết bị như TV, máy giặt, đầu đọc laser, điện thoại…Trong hệ thống sản xuất tự động, bộ vi điều khiển được sử dụng trong robot, dây chuyền tự động. Các hệ thống càng thông minh thì vai trò của vi điều khiển càng quan trọng. Nhưng bộ vi điều khiển là gì, nó có tác dụng và hoạt động như thế nào? Thực ra bộ vi điều khiển (Micro-controller) là một mạch tích hợp trên một bộ Chíp có thể lập trình được, dùng để điều khiển hoạt đ ộng c ủa hệ thống. Bộ vi điều khiển tiến hành đọc, lưu trữ thông tin, xử lý thông tin, đo lường thời gian và tiến hành đọc mở một cơ cấu nào đó.Người l ập trình có thể sử dụng nhiều ngôn ngữ để lập trình cho vi điều khiển. Nhưng thông thường người ta thường sử dụng hai ngôn ngữ chính để lập trình là: ngôn ngữ lập trình C và Assembly. Trong qúa trình học tập và đặc biệt được sự giúp đỡ tận tình của thầy Nguyễn Anh Dũng - Giảng viên bộ môn Vi điều khiển - nhóm sinh viên chúng tôi đã quyết định làm đồ án kết thúc môn vi điều khiển là thi ết kế mạch “Thiết kế mô hình bảng LED điện tử dùng 01 LED ma tr ận đa sắc”. Nội dung đồ án gồm 2 phần: Phần I : cơ sở lý thuyết liên quan đến nội dung đồ án Trường ĐHCN Hà Nội Điện Tử 2 – 1 K9
  2. Đồ Án Môn Vi Điều khiển Phần II : trình tự thiết kế và hoàn chỉnh đồ án Tuy đã rất cố gắng tìm hiểu,nghiên cứu và hoàn thiện bài tập l ớn nhưng có thể vẫn còn có những sai sót. Chúng tôi rất mong nhận được sự góp ý của thầy giáo và các bạn để có thêm những ki ến th ức v ững ch ắc trong lĩnh vực điện tử đang theo học. Chắc chắn những kiến th ức đó s ẽ giúp chúng tôi rất nhiều trong việc nghiên cứu học tập và công tác sau này. Xin chân thành cảm ơn ! Giáo viên hướng dẫn : Nguyễn Anh Dũng Sinh viên thực hiện : Nguyễn Đăng Kỳ Nguyễn Thanh Tùng Phương Văn Tuấn Lớp điện tử 2 – K9 Trường ĐHCN Hà Nội Điện Tử 2 – 2 K9
  3. Đồ Án Môn Vi Điều khiển I. CƠ SỞ LÝ THUYẾT LIÊN QUAN NỘI DUNG ĐỒ ÁN A. IC 89S52 1.Giới thiệu về IC 89S52: IC 89S52 là phiên bản 8051 có ROM trên chip ở dạng bộ nhớ Flash. Phiên bản này là lý tưởng với những phát triển nhanh vì bộ nhớ Flash có thể xóa trong vài giây. Ta gọi IC này là bộ vi đi ều khi ển vì trong chúng chứa ROM, RAM, các cổng nối tiếp và song song. 89S5 không được s ử dụng trong máy tính nhưng được sử dụng rộng rãi trong công nghi ệp và trong sản phẩm máy móc tiêu dùng. Cùng với họ 89S52 có một số vi điều khiển khác. Về cơ bản chúng đều giống nhau, chúng chỉ khác nhau ở vùng nhớ nội bao gồm vùng nhớ mã lệnh, vùng nhớ dữ liệu và một số Timer. Sự khác nhau đó được mô tả bằng bảng dưới đây: Vùng mã lệnh Vi điều khiển Vùng dữ liệu nội Số Timer nội 8051 4K ROM 128 bytes 2 8031 0K 128 bytes 2 8751 4K EPROM 128 bytes 2 8052 8K ROM 256 bytes 3 8032 0K 256 bytes 3 8732 4K EPROM 256 bytes 3 Trường ĐHCN Hà Nội Điện Tử 2 – 3 K9
  4. Đồ Án Môn Vi Điều khiển Bảng 1. Giới thiệu một số IC họ 8951 2.Cấu trúc của IC 89S52: Trung tâm của 89S52 vẫn là vi xử lý trung tâm (CPU). Để kích thích cho toàn bộ hệ thống hoạt động, 89S52 có bộ tạo dao động nội với thạch anh được ghép từ bên ngoài với tần số khoảng từ vài Mhz đến 24 Mhz. Liên kết các phần tử với nhau là hệ thống BUS nội, gồm có BUS d ữ li ệu, BUS địa chỉ và BUS điều khiển. 89S52 có 8K ROM, 256 bytes RAM và một số thanh ghi bộ nhớ… Nó giao tiếp với bên ngoài qua 3 cổng song song và một cổng nối tiếp có thể thu, phát dữ liệu nối tiếp với t ốc đ ộ l ập trình được. Hai bộ định thời 16 bit của 89S52 còn có 2 ngắt ngoài cho phép nó đáp ứng và xử lý điều kiện bên ngoài theo cách ngắt quãng, rất hiệu quả trong các ứng dụng điều khiển. Thông qua các chân điều khiển và các c ổng song song 89S52 có thể mở rộng bộ nhớ ngoài lên đến 64Kbs dữ liệu. Sau đây là sơ đồ khối vi điều khiển: Trường ĐHCN Hà Nội Điện Tử 2 – 4 K9
  5. Đồ Án Môn Vi Điều khiển Hình 1. Sơ đồ khối Vi điều khiển họ 89S52 3. Sơ lược về các chân IC 89S52: Trường ĐHCN Hà Nội Điện Tử 2 – 5 K9
  6. Đồ Án Môn Vi Điều khiển IC 89S52 có 40 chân. Có đến 32 chân làm nhiệm vụ xuất nh ập, truyền dữ liệu. Các chân phục vụ ngắt, các chân Timer, trong đó 24 chân làm 2 nhiệm vụ khác nhau. Mỗi chân có thể là đường xuất nh ập, đường điều khiển hoặc là một phần của địa chỉ hay dữ liệu. Thiết kế thường có bộ nhớ ngoài hay các thiết bị ngoại vi sử dụng những Port để xuất nhập dữ liệu. Tám đường trong mỗi Port được sử dụng như một dơn vị giao tiếp song song như máy in, bộ biến đổi tương tự số…. Hoặc mỗi đường cũng có thể hoạt động độc lập trong giao tiếp với các thi ết b ị đơn bit khác nh ư: transistor, LED, switch…. Sau đây là hình dạng sơ đồ của IC 89S52: Trường ĐHCN Hà Nội Điện Tử 2 – 6 K9
  7. Đồ Án Môn Vi Điều khiển Hình 2. Hình dạng sơ đồ IC 89S52 4. Chức năng các chân IC 89S52: Trường ĐHCN Hà Nội Điện Tử 2 – 7 K9
  8. Đồ Án Môn Vi Điều khiển Sau đây là phần giới thiệu chức năng các chân , các Port tương ứng, chân PSEN, chân ALE, chân REST… a. Port 0 Port 0 là cổng song song dùng cho 2 mục đích, nó là các chân từ 32. Trong những thiết kế nhỏ nó được dùng trong các cổng xuất nh ập bình thường. Ở những thiết kế có sử dụng bộ nhớ ngoài, nó vừa là Bus d ữ li ệu vừa là bytes thấp của Bus địa chỉ. Nó còn được dùng chứa nh ững bytes mã khi nạp ROM nội. b. Port 1 Port 1 dành cho cổng xuất nhập và chỉ dành cho mục đích này mà thôi. Nó dùng để giao tiếp với các thiết bị ngoại vi theo từng bit hoặc bytes . Port 1 chiếm các chân từ 1 đến 8. c. Port 2 Port 2 (chân 21÷ 28) là Port có 2 chưc năng. Ngoài mục đích dành cho xuất nhập thông thường nó còn dùng làm bytes cao cho các địa chỉ bộ nh ớ ngoài. d. PSEN (cho phép nạp chương trình) 89S52 có 4 chân tín hiệu điều khiển. PSENT là tín hiệu đi ều khi ển được xuất ra ở chân 29. Tín hiệu điều khiển này cho phép lập trình ở bộ nhớ ngoài và thường được nối với các chân OE của EPROM để đọc mã lệnh từ bộ nhớ ngoài vào thanh ghi đệm của 89S52. Nó xuống mức th ấp nhất trong khi đọc lệnh. Mã lệnh đọc từ EPROM, qua Bus dữ liệu, được chốt vào thanh ghi của 89S52. Khi thi hành chương trình từ ROM nội PSEN được giữ ở mức cao (trạng thái không tác động). e. EA (truy xuất vùng nhớ ngoài) EA là một tín hiệu vào có thể ở mức cao hay thấp. Nếu ở mức cao 89S52 thi hành chương trình ở ROM nội, 4K/8K chương trình. Nếu ở m ức Trường ĐHCN Hà Nội Điện Tử 2 – 8 K9
  9. Đồ Án Môn Vi Điều khiển thấp, chương trình chỉ được thi hành ở bộ nhớ ngoài. Đối với 80431/ 8231 EA phải được giữ ở mức thấp vì chúng không có ROM nội. EA cũng chính là chân nhận điện áp mức cao để nạp EPROM nội. f. ALE ( cho phép chốt địa chỉ) ALE là tín hiệu được xuất ra ở chân 20, rất quen thuộc v ới nh ững ai đã tùng làm việc với vi xử lý 8085, 8086 của Intel. 89S52 dùng ALE đ ể phân kênh cho từng Bus địa chỉ và Bus dữ liệu. Khi Port 0 được dùng làm Bus dữ liệu và bytes thấp của Bus địa chỉ - ALE là tín hiệu dùng đ ể ch ốt địa chỉ vào thanh ghi chốt bên ngoài trong nửa đầu của một chu kỳ máy. Sau đó Port 0 sẵn sàng để truy xuất dữ liệu trong nửa chu kỳ còn lại. Xung ALE có tần số bằng 1/6 lần tần số bộ dao động nội và có th ể dùng như một xung clock cho mục đích nào đó khi hệ thống không làm việc. Nếu tần số của 89S52 là 12MHz thì tần số xung ALE là 2MHz. Một xung ALE bị mất khi có một lệnh MOVX được thi hành. g. Ngõ vào dao động nội Ngõ vào đao động nội được mô tả như dưới hình hai, có một thạch anh được nối vào chân 19 (XTAL1) và 18 (XTAL2). Có thể mắc thêm tụ để ổn định dao động. Thạch anh 12MHz thường dùng cho họ IC MCs-51, trừ IC 80C31BH có thể dùng thạch anh lên đến 16MHz. Tuy nhiên, không nh ất thiết phải dùng thạch anh mà ta có th ể dùng m ạch dao đ ộng TTL t ạo xung Clock đưa vào chân XTAL1 và lấy đảo của nó đưa vào XTAL2. h. RST (RESET) Ngõ vào chân RST (chân 19) là chân master reset của 89S52. Khi nó ở mức cao nhất (trong khoảng ít nhất 2 chu kỳ máy ) các thanh ghi nội đ ược nạp với giá trị tương ứng theo thứ tự khởi động hệ thống. i. Nguồn cung cấp Trường ĐHCN Hà Nội Điện Tử 2 – 9 K9
  10. Đồ Án Môn Vi Điều khiển 89S52 sử dụng nguồn cung cấp Vcc=5V được cấp vào chân 40,GND được nối vào chân 20. Chức năng Bit Tên Nhận dữ liệu P3.0 RXD Phát dữ liệu P3.1 TXD Ngắt ngoài 0 P3.2 INT0 Ngắt ngoài 1 P3.3 INT1 P3.4 T0 Ngõ vào Timer/couter 0 P3.5 T1 Ngõ vào Timer/ couter 1 Đọc dữ liệu từ bộ nhớ ngoài P3.6 W/R Đọc dữ liệu vào bộ nhớ ngoài P3.7 RD Ngõ vào của Timer/ couter P1.0 T2 P1.1 T2EX Bảng 2. Giới thiệu một số chân IC họ 8951 5. Các thanh ghi có chức năng đặc biệt Các thanh ghi nội của 89S52 chiếm một phần của vùng nhớ nội, vì vậy mỗi thanh ghi đều có một địa chỉ. Các thanh ghi ch ức năng (FSRs) trong vùng nhớ cao từ 80H đến FFH. Lưu ý có một s ố bytes trong vùng này không được định nghĩa. Chỉ có 21 địa chỉ thanh ghi chức năng được đ ịnh nghĩa (26 địa chỉ đối với 8052/8032). a. Các thanh ghi chương trình Trường ĐHCN Hà Nội Điện Tử 2 – 10 K9
  11. Đồ Án Môn Vi Điều khiển b. Thanh ghi B c. Con trỏ ngăn sắp xếp d. Con trỏ dữ liệu e. Các thanh ghi Port f. Các thanh ghi bộ định thời g. Các thanh ghi cổng nối tiếp h. Các thanh ghi ngắt i. Thanh ghi PCON 6. Bộ nhớ ngoài Mở rộng bộ nhớ là một khả năng quan trọng đói với vi điều khiển nhằm tránh gặp bế tắc trong vấn đề thiết kế. Họ MCs-51 có th ể m ở r ộng 64Kbs và bộ nhớ mã lệnh 64Kbs dữ liệu. Các IC giao tiếp ngo ại vi cũng có thể thêm vào để tăng năng xuất nhập. Các chân cho phép giao tiếp với bộ nhớ ngoài RD, WR, PSEN, OE… B. Ma trận LED 8x8 Ma trận LED 8x8 là linh kiện hiển thị được dùng rất rộng rãi trong thực tế.Có hai loại ma trận LED 8x8 là ma trận LED đ ơn s ắc và ma tr ận LED đa sắc. Một ma trận LED 8x8 đơn sắc bao gồm 64 LED được b ố trí thành 8 hàng x 8 cột, trong đó các anốt cửa 8 LED trong cùng một hàng được nối với nhau để tạo thành một đường dây hàng và các katốt cửa 8 LED trong cùng một cột được nối với nhau để tạo thành một đường dây cột. Như vậy một ma trận LED 8x8 đơn sắc có tám đường dây hàng và tám đường dây cột, muốn 1 LED trong ma trận sáng ta cần cấp nguồn cho LED và đường dây hàng và đường dây cột tương ứng với LED đó. Trường ĐHCN Hà Nội Điện Tử 2 – 11 K9
  12. Đồ Án Môn Vi Điều khiển Một ma trận LED 8x8 đa sắc bao gồm 64 điểm sáng được bố trí thành 8 hàng x 8 cột trong đó mỗi điểm sáng có thể gồm 1 LED màu xanh lục + 1 LED màu đỏ hoặc 1LED màu xanh lục + 1 LED màu xanh l ơ + 1 LED màu đỏ hoặc 1 LED màu xanh lục + 1 LED màu xanh l ơ + 2 LED màu đỏ. Với loại LED ma trận mà mỗi điểm sáng gồm 1 LED màu xanh lục + 1 LED màu đỏ thì điểm sáng hiển thị màu xanh nếu LED đ ỏ tắt, màu đ ỏ nếu LED màu xanh tắt, màu vàng nếu cả 2 LED sáng và t ắt n ếu c ả 2 LED cùng tắt trong cùng 1 hàng, các Katot của các LED màu xanh được nối v ới nhau để tạo thành 1 đường dây hàng thứ nhất và các Katot của các LED màu đỏ được nối với nhau để tạo thành 1 đường dây hàng th ứ 2. Các Anot của 16 LED trong cùng 1 cột được nối với nhau để t ạo thành 1 đ ường dây cột. Như vậy 1 LED trong ma trận sáng ta cần c ấp ngu ồn cho LED vào đường dây hàng và đường dây cột tương ứng với LED đó. II. TRÌNH TỰ THIẾT KẾ VÀ HOÀN CHỈNH ĐỒ ÁN Trường ĐHCN Hà Nội Điện Tử 2 – 12 K9
  13. Đồ Án Môn Vi Điều khiển 1. Lập trình lập trình cho IC 89S52 bằng ngôn ngữ C và viết trên phần mềm KeilC Version 3. Sau đây là toàn bộ chương trình viết bằng C được nạp vào IC. #include #include unsigned char mangcot[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; unsigned int m,n,z,k; unsigned char congtac; void delay(unsigned int t) { unsigned int i; for(i=0;i
  14. Đồ Án Môn Vi Điều khiển { for(m=1;m
  15. Đồ Án Môn Vi Điều khiển 0x39,0xD7,0xEF,0xD7,0x39,0xFF, //chu X 0xF9,0xF7,0x0F,0xF7,0xF9,0xFF, //chu Y 0x3D,0x5D,0x6D,0x75,0x79,0xFF, //chu Z 0xFF,0xFF}; z=0; while(z
  16. Đồ Án Môn Vi Điều khiển 0xBB,0x7D,0x6D,0x6D,0x93,0xFF, //so 3 0xDF,0xCF,0xD7,0xDB,0x01,0xFF, //so 4 0x61,0x6D,0x6D,0x6D,0x9D,0xFF, //so 5 0x83,0x6D,0x6D,0x6D,0x9B,0xFF, //so 6 0x7D,0xBD,0xDD,0xED,0xF1,0xFF, //so 7 0x93,0x6D,0x6D,0x6D,0x93,0xFF, //so 8 0xB3,0x6D,0x6D,0x6D,0x83,0xFF, //so 9 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; z=0; while(z
  17. Đồ Án Môn Vi Điều khiển unsigned char mangchu[97]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x81,0x7F,0x8F,0x7F,0x81,0xFF, //chu W 0x01,0x6D,0x6D,0x6D,0x6D,0xFF, //chu E 0x01,0x7F,0x7F,0x7F,0xFF, //chu L 0x83,0x7D,0x7D,0x7D,0xBB,0xFF, //chu C 0x83,0x7D,0x7D,0x7D,0x83,0xFF, //chu O 0x01,0xFB,0xF7,0xFB,0x01,0xFF, //chu M 0x01,0x6D,0x6D,0x6D,0x6D,0xFF, //chu E 0xFF,0xFF,0xFF, 0xFD,0xFD,0x01,0xFD,0xFD,0xFF, //chu T 0x83,0x7D,0x7D,0x7D,0x83,0xFF, //chu O 0xFF,0xFF,0xFF, 0x01,0xEF,0xEF,0xEF,0x01,0xFF, //chu H 0x07,0xEB,0xED,0xEB,0x07,0xFF, //chu A 0x81,0x7F,0x7F,0x7F,0x81,0xFF, //chu U 0x7D,0x01,0x7D,0xFF, //chu I 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; z=0; while(z
  18. Đồ Án Môn Vi Điều khiển delay(200); xoa(); } } ++z; } } void main(void) { congtac=1; IE=0x85; IT0=1; IT1=1; k=1; while(1) { if(k==1) { chaychu1(); chaychu2(); chayso(); } if(k==2) { chaychu(); } } } void ngatngoai0(void) interrupt 0 { if (congtac
  19. Đồ Án Môn Vi Điều khiển k=1; } 2. Mô phỏng Sau khi lập trình xong để kiểm tra xem chương trình của mình chạy đã chính xác chưa chúng tôi tiến hành mô phỏng mạch điện trên phần mềm Proteus version 7.5 SP3 Hình 8. mạch điện mô phỏng 3. Test mạch trên bo đồng và vẽ sơ đồ nguyên lý Sau khi đã kiểm tra thấy lập trình và mô phỏng chính xác chúng tôi tiến hành mua linh kiện về cắm trên bo đồng để kiểm tra trên thực tế mạch có chạy chính xác giống mô phỏng hay không vì trong mô phỏng chúng ta luôn có mọi yếu tố là lý tưởng nhưng trên thực tế có rất nhiều yếu tố tạo nên sai số cho một mạch điện. Ngoài ra mạch điện còn kèm theo một mạch phát xung 555 nhằm tạo ra 3 dải tần khác nhau theo yêu cầu đề Trường ĐHCN Hà Nội Điện Tử 2 – 19 K9
  20. Đồ Án Môn Vi Điều khiển bài giúp mọi người có thể trực tiếp kiểm tra mạch mà không cần thiết bị tạo tần số ngoài. Khi cắm trên bo chúng ta sẽ nhìn thấy mạch điện chạy giống như mạch điện hoàn chỉnh. Khi nhận thấy mọi thứ đều tốt chúng tôi tiến hành vẽ mạch nguyên lý trên Orcad 9.2. VCC VC C VCC 19 18 13 20 17 16 15 14 12 11 U5 VCC 19 18 14 13 20 17 16 15 12 11 U4 Q0 Q1 Q4 Q5 Q6 Q2 Q3 Q7 LE VCC Q0 Q1 Q4 Q5 Q6 Q2 Q3 Q7 LE VCC GND OE D0 D1 D4 D5 D6 D2 D3 D7 GND OE D0 D1 D4 D5 D6 D2 D3 D7 74573 10 74573 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 VCC R 14 9 8 7 6 13 14 18 19 23 24 15 16 17 20 21 22 5 U1 4 H5 D6 H7 H8 D8 X5 D5 H6 X6 X7 D7 X8 3 1 2 R E S IS T O R S IP 9 VCC VC C 0 SW 1 VCC R9 39 37 34 32 22 24 27 29 11 38 36 35 33 21 23 25 26 28 17 16 30 10 SW 2 U3 R R 10 0 .2 0 .7 2 .3 0 .0 0 .1 0 .3 0 .4 0 .5 0 .6 2 .0 2 .1 2 .2 2 .4 2 .5 2 .6 2 .7 A L E /P RD WR PSEN TXD RXD R eset 89S52 P P P P P P P P P P P P P P P P 20 19 15 14 18 17 16 13 12 11 U6 D4 H3 D2 D1 H1 H4 D3 H2 X4 X3 X2 X1 Q0 Q3 Q4 Q5 Q1 Q2 Q6 Q7 LE VCC R S W R 5e s e t R 15 12 11 10 9 8 7 6 5 4 3 2 1 1 .1 /T 2 X 1 .0 /T 2 RESET R E S IS T O R R e s e t E A /V P IN T 1 IN T 0 1 .6 1 .2 1 .3 1 .4 1 .5 1 .7 VC C X1 X2 T0 T1 GND P P P P P P P P OE D0 D3 D4 D5 D1 D2 D6 D7 7805 31 19 18 13 12 14 15 74573 9 1 2 3 4 5 6 7 8 V C C _ IN P U T 10 1 2 3 4 5 6 7 8 9 VCC J2 Y1 3 2 1 1 2 1 C M1 H z 2 C2 CON2 33p 33p Hình 9. Sơ đồ nguyên lý mạch điện 4. Vẽ mạch in và tiến hành làm mạch Trường ĐHCN Hà Nội Điện Tử 2 – 20 K9

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản