Đồ án Hiển thị đèn LED dùng vi điều khiển

Sơ lược về VĐK 8051 ● Là bộ vi điều khiển lâu đời nhất và có lẽ được sử dụng phổ biến nhất (Intel MCS-51 năm 1981). Và có nhiều nhà cung cấp bộ VĐK này ● Các đặc điểm chủ yếu - Bộ xử lý 8 bit - 4 cổng I/O mỗi cổng 8 bit - Tối đa có 64K ROM on-chip - Bộ nhớ dữ liệu ngoài tối đa 64K - Bộ nhớ mã lệnh bên ngoài tối đa 64K - 2 bộ định thời, một cỗng nối tiếp - 128 byte RAM on-chip - Tốc độ thay đổi từ 12MHz

docx41 trang | Chia sẻ: ngtr9097 | Lượt xem: 2558 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đồ án Hiển thị đèn LED dùng vi điều khiển, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Đại Học Thái Nguyên Khoa Công Nghệ Thông Tin ----------(---------- / BÀI TẬP LỚN Môn: Kỹ thuật lập trình nhúng Đề Tài: Hiển thị đèn LED dùng vi điều khiển Giáo viên hướng dẫn: Phạn Quốc Thịnh Nhóm SV thực hiện: 1. Nguyễn Thọ Khang 2. Đinh Văn Toàn 3. Đỗ Trung Hiếu 4. Nguyễn Thị Thu 5. Lâm Thị Hương 6. Nguyễn Thị Thanh In Thái Nguyên, tháng 5 năm 2010 MỤC LỤC Phần 1 : Lý thuyết cơ sở Sơ lược về VĐK 0851…………………………………………....... 3 Sơ đồ chân của 8051…………………………………….………… 4 Các linh kiện cơ bản và sơ đồ của chúng trong mạch………….. 7 89S52………………………………………………...…… 7 Tụ…………...………………………………………….…. 8 Điện trở………………………………………….........……10 16 tranzitor H1061………………………...………… … . 10 LED đơn……………………………………………......... 11 Phần 2: Sơ đồ nguyên lý 2.1 Sơ đồ tượng trưng……………………………………………..…… 12 Phần 3: Chương trình điều khiển bài toán 3.1 Code điều khiển mạch chạy chữ ICTU-TN………….…………. .. 13 PHẦN I: LÝ THUYẾT CƠ SỞ 1.1 Sơ lược về VĐK 8051 ● Là bộ vi điều khiển lâu đời nhất và có lẽ được sử dụng phổ biến nhất (Intel MCS-51 năm 1981). Và có nhiều nhà cung cấp bộ VĐK này ● Các đặc điểm chủ yếu - Bộ xử lý 8 bit - 4 cổng I/O mỗi cổng 8 bit - Tối đa có 64K ROM on-chip - Bộ nhớ dữ liệu ngoài tối đa 64K - Bộ nhớ mã lệnh bên ngoài tối đa 64K - 2 bộ định thời, một cỗng nối tiếp - 128 byte RAM on-chip - Tốc độ thay đổi từ 12MHz 89C51 của Atmel / 8051 của Intel 1.2 Sơ đồ chân của 8051: / ♣Nhóm chân nguồn: - VCC: chân 40, điện áp cung cấp 5VDC - GND: chân 20 ♣ Chân RESET: chân 9, tác động cao (trong thời gian tối thiểu 2 chu kì máy) cho phép khởi động lại hệ thống. ♣ Nhóm chân dao động: gồm chân 18 và chân 19, cho phép ghép nối thạch anh vào mạch dao động bên trong vi điều khiển ♣ Chân chọn bộ nhớ chương trình: chân 31 (EA/VPP - Chân 31 nối mass: sử dụng bộ nhớ chương trình bên ngoài vi điều khiển - Chân 31 nối VCC: sử dụng bộ nhớ chương trình (4Kb) bên trong vi điều khiển. ♣Nhóm chân điều khiển vào/ ra: ♦ Port 01: - Kí hiệu P1, gồm 8 chân I/O từ 1 đến 8. Các chân port 1 được kí hiệu là P1.0, P1.1,…., P1.7 và được dùng để giao tiếp với thiết bị bên ngoài khi có yêu cầu. ♦ Port 02: - Kí hiệu P2, gồm 8 chân đa hợp I/O và địa chỉ cao, từ chân 21 đến 28. Khi không sử dụng bộ nhớ ngoài, P2 sử dụng như các I/O; khi sử dụng bộ nhớ ngoài, P2 thay thế 8 chân địa chỉ cao để giao tiếp với IC nhớ. ♦Port 0: - Kí hiệu P0, gồm 8 chân đa hợp I/O, địa chỉ thấp và dữ liệu, từ chân 39 đến 32. Port 0 làm nhiệm vụ xuất nhập trong các thiết kế tối thiểu thành phần. Trong các thiết kế lớn, có bộ nhớ ngoài, port 0 trở thành bus địa chỉ và bus dữ liệu đa hợp ♦ Port 03: Kí hiệu P3, gồm 8 chân đa hợp I/O và các tín hiệu khác, từ chân 10 đến 18. Khi không hoạt động thì Port 3 có những chức năng riêng. ♦RST Ngõ vào reset (thiết lập lại trạng thái ban đầu). Tất cả các chân I/O được reset đến mức logíc ngay sau khi RST lên mức cao. Việc duy trì chân RST ở mức cao trong 2 chu kỳ máy trong khi mạch dao động đang hoạt động sẽ reset chip. ♦XTAL 1 Ngõ vào đến mạch khuếch đại dao động đảo và ngõ vào đến mạch tạo xung clock bên trong. ♦XTAL 2 Ngõ ra từ mạch khuếch đại dao động đảo. / Sơ đồ khối của 89C51 1.3 Các linh kiện cơ bản và vai trò của chúng trong mạch: 1.3.1 89S52 / Chức năng: Là vi điều khiển chính của mạch. 8 KB EPROM bên trong. 256 Byte RAM nội. 4 Port xuất /nhập I/O 8 bít. 3 bộ định thời 16 bit Watch dog timer Các đặc điểm khác giống AT89C51 1.3.2 Tụ + 1 Tụ hóa : C3(10μF) Khi cắm điện thì ngay lập tức phóng được vào chân RST, và khởi động lại toàn bộ hệ thống. Khi đang chạy thì ngăn dòng vào RST. + 1 Thạch anh // Chức năng: Là nguồn tạo xung nhịp dao động clock ổn định (12 MHz) cho dao động của 8051. + 2 tụ gốm C1, C2: Chức năng: Lọc nhiễu cho dao động thạch anh. 2 tụ gốm 22pF sẽ được nối một đầu với chân của thạch anh, đầu còn lại đấu ra mass. / 1.3.3 Điện trở: + R1: Trở đệm chân RST,để hạ dòng vào chân RST. +R2: Phân cực tranzitor. +R3: Trở đệm LED có tác dụng hạn dòng cho Led (mỗi Led cần 10mA, dòng IB =0.45mA tùy thuộc vào hệ số khuếch đại của tranzitor và dòng IC). 1.3.4 16 Tranzitor H1061: Có chức năng như là một khóa (dùng H1061 công suất lớn, thông số cơ bản là: UCE=50V, ICsat =1.0 A, IB =0.2 A, IC=2.0A) // 1.3.5 LED đơn / LED trên thực tế / Cấu tạo và kí hiệu của LED đơn PHẦN II: SƠ ĐỒ NGUYÊN LÝ 2.1 Sơ đồ tượng trưng  Chú thích: Tất cả các cổng P2, P3 đều được nối với trở, tranzitor và LED  Đối với LED thì các chân dương được nối với nhau và nối tới trở R3 và nối với cực E của tranzitor, các chân âm được nối với nhau và nối về đất  Trong sơ đồ, với mỗi con LED tương ứng với một chữ , ngoài thực tế các LED được nối song song với nhau để tạo thành một chữ. Hoạt động: Khi phân cực thuận (ở mức cao 1) thì tranzitor cho phép dòng từ C qua E làm LED sáng. Khi phân cực ngược (ở mức thấp 0) thì tranzitor đóng. Ngược lại nếu dùng mức tích cực âm thì mắc ngược lại / PHẦN III: CHƯƠNG TRÌNH ĐIỀU KHIỂN BÀI TOÁN 3.1 Code điều khiển mạch chạy chữ ICTU- TN ///////////////////KHAI BAO HANG//////////////////////////////// #include // // #define led3 P3 // #define led2 P2 // // #define Ido P3_4 // #define Cdo P3_7 // #define T1do P3_2 // #define Udo P3_0 // #define daudo P3_1 // #define T2do P3_3 // #define Ndo P2_4 // // #define Itrang P2_1 // #define Ctrang P2_3 // #define T1trang P2_0 // #define Utrang P2_2 // #define dautrang P2_5 // #define T2trang P2_6 // #define Ntrang P2_7 // int i; // //============================================================// ////////////////////CHUONH TRINH PHU TRO//////////////////////// //Chuong trinh xoa led // void xoa() // { // led2=0; // led3=0; // } // //Chuong trinh Delay // void delay(int x) // { // int i; // for (i=0;i<x;i++) {} // } // //============================================================// ///////////////////////NHAY SANG DAN//////////////////////////// //Nhay vong nho 1 // void nhayvongnho1(x) // { // xoa(); // delay(x); // Ido=1; // delay(x); // Cdo=1; // delay(x); // T1do=1; // delay(x); // Udo=1; // delay(x); // daudo=1; // delay(x); // T2do=1; // delay(x); // Ndo=1; // delay(x); // // } // // //Nhay vong to 1 // void nhayvongto1(x) // { // led3=255; // delay(x); // Itrang=1; // delay(x); // Ctrang=1; // delay(x); // T1trang=1; // delay(x); // Utrang=1; // delay(x); // dautrang=1; // delay(x); // T2trang=1; // delay(x); // } // // //Nhay ca 2 vong duoi nhau // void nhay2vong(x) // { // xoa(); // delay(x); // Ido=1; //i // delay(x); // Cdo=1; //c // Ido=0; // Itrang=1; //I // delay(x); // T1do=1; //t // Cdo=0; // Ido=1; //i // Itrang=0; // Ctrang=1; //C // delay(x); // Udo=1; // T1do=0; // Cdo=1; // Itrang=1; // T1trang=1; // Ctrang=0; // Ctrang=1; // delay(x); // daudo=1; // Udo=0; // T1do=1; // Utrang=1; // T1trang=0; // Ctrang=1; // delay(x); // T2do=1; // daudo=0; // Udo=1; // dautrang=1; // Utrang=0; // T1trang=1; // delay(x); // Ndo=1; // T2do=0; // daudo=1; // T2trang=1; // dautrang=0; // Utrang=1; // delay(x); // Ndo=0; // T2do=1; // Ntrang=1; // T2trang=0; // dautrang=1; // delay(x); // led2=255; // led3=255; // delay(x); // } // //============================================================// //////////////////////////NHAY CHU DON////////////////////////// //Nhay chu don // void chudon1(x) // { // xoa(); // delay(x); // Ido=1; // delay(x); // Cdo=1; // Ido=0; // Itrang=1; // delay(x); // T1do=1; // Cdo=0; // Ctrang=1; // Itrang=0; // delay(x); // Udo=1; // T1do=0; // T1trang=1; // Ctrang=0; // delay(x); // daudo=1; // Udo=0; // Utrang=1; // T1trang=0; // delay(x); // T2do=1; // daudo=0; // dautrang=1; // Utrang=0; // delay(x); // Ndo=1; // T2do=0; // T2trang=1; // dautrang=0; // delay(x); // } // // // //Nhay chu don2 // void chudon2(x) // { // delay(x); // Ntrang=1; // T2trang=0; // T2do=1; // Ndo=0; // delay(x); // daudo=1; // T2do=0; // T2trang=1; // Ntrang=0; // delay(x); // Udo=1; // daudo=0; // dautrang=1; // T2trang=0; // delay(x); // T1do=1; // Udo=0; // Utrang=1; // dautrang=0; // delay(x); // Cdo=1; // T1do=0; // T1trang=1; // Utrang=0; // delay(x); // Ido=1; // Cdo=0; // Ctrang=1; // T1trang=0; // delay(x); // Ido=0; // Itrang=1; // Ctrang=0; // delay(x); // led3=0; // led2=0; // delay(x); // } // //============================================================// //////////////////////////XEP CHU/////////////////////////////// //Xep chu N // void chun(x) // { // delay(x); // T2trang=0; // Ndo=1; // Ntrang=1; // delay(x); // } // // //Xep chu T // void chut(x) // { // delay(x); // Ndo=1; // Ntrang=1; // delay(x); // Ido=1; // delay(x); // Cdo=1; // Ido=0; // Itrang=1; // delay(x); // T1do=1; // Cdo=0; // Ctrang=1; // Itrang=0; // delay(x); // Udo=1; // T1do=0; // T1trang=1; // Ctrang=0; // delay(x); // daudo=1; // Udo=0; // Utrang=1; // T1trang=0; // delay(x); // T2do=1; // daudo=0; // dautrang=1; // Utrang=0; // delay(x); // T2trang=1; // dautrang=0; // delay(x); // } // //Xep dau // void dau(x) // { // delay(x); // Ndo=1; // T2do=1; // Ntrang=1; // T2trang=1; // delay(x); // Ido=1; // delay(x); // Cdo=1; // Ido=0; // Itrang=1; // delay(x); // T1do=1; // Cdo=0; // Ctrang=1; // Itrang=0; // delay(x); // Udo=1; // T1do=0; // T1trang=1; // Ctrang=0; // delay(x); // daudo=1; // Udo=0; // Utrang=1; // T1trang=0; // delay(x); // dautrang=1; // Utrang=0; // delay(x); // } // // //Xep chu U // void chuu(x) // { // delay(x); // dautrang=1; // daudo=1; // delay(x); // Ido=1; // delay(x); // Cdo=1; // Ido=0; // Itrang=1; // delay(x); // T1do=1; // Cdo=0; // Ctrang=1; // Itrang=0; // delay(x); // Udo=1; // T1do=0; // T1trang=1; // Ctrang=0; // delay(x); // Utrang=1; // T1trang=0; // } // // //Xep chu T2 // void chut2(x) // { // delay(x); // Utrang=1; // Udo=1; // delay(x); // Ido=1; // delay(x); // Cdo=1; // Ido=0; // Itrang=1; // delay(x); // T1do=1; // Cdo=0; // Ctrang=1; // Itrang=0; // delay(x); // T1trang=1; // Ctrang=0; // delay(x); // } // // //Xep chu C // void chuc(x) // { // delay(x); // T1do=1; // T1trang=1; // delay(x); // Ido=1; // delay(x); // Cdo=1; // Ido=0; // Itrang=1; // delay(x); // Itrang=0; // Ctrang=1; // delay(x); // } // //Xep chu i // void chui(x) // { // delay(x); // Ctrang=1; // Cdo=1; // delay(x); // Ido=1; // delay(x); // Ido=0; // Itrang=1; // delay(x); // led2=255; // delay(x); // } // // //============================================================// ////////////////////////////XEN KE////////////////////////////// //Nhay cheo // void nhaycheo(x) // { // xoa(); // delay(x); // Ido=1; // Ntrang=1; // delay(x); // Cdo=1; // T2trang=1; // delay(x); // T1do=1; // dautrang=1; // delay(x); // Udo=1; // Utrang=1; // delay(x); // daudo=1; // T1trang=1; // delay(x); // T2do=1; // Ctrang=1; // delay(x); // Ndo=1; // Itrang=1; // delay(x); // } // // //Nhay xem ke trong ngoai //

Các file đính kèm theo tài liệu này:

  • docxbáo cáo nhung2.doc.docx
  • pptbai tap nhung 2.ppt
  • rarMach nguyen ly.rar