Tiểu luận Thiết kế mô hình Khóa điện tử hiển thị 6 led 7 đoạn

Ngày nay khoa học công nghệ ngày càng phát triển. Cùng với sự phát triển đó công nghệ tự động hóa ngày càng được ưu tiên đầu tư nghiên cứu phát triển. Đại đa số các lĩnh vực sản xuất, điều khiển, giám sát, đo lường, đều được trang bị hệ thống điều khiển hệ thống tự động hóa. Một trong số vi mạch được sử dụng đó là Kĩ thuật vi điều khiển. Nhờ this năng ưu việt của bộ vi điều khiển như: khả năng lập trình phù hợp với thiết kế nhỏ và lớn cũng như giao tiếp với các thiết bị ngoại vi và máy tính sẽ đem lại sự hoàn hảo, độ chính xác và tính mềm dẻo cao. Vi điều khiển quản lý và điều khiển hoạt động của hệ thống thông qua phần mềm, nhờ vậy ta có thể thay đổi và mở rộng hoạt động một cách dễ dàng. Vi điều khiển hoạt động theo chương trình đã nạp sẵn, đọc các tín hệu từ bên ngoài đưa vào sau lưu trữ và xử lí, trên cơ sở đó đưa ra các thông báo, tín hiệu điều khiển các thiết bị bên ngoài hoạt đông theo đúng thong số và yêu cầu của hệ thống. Ngoài ra vi điều khiển cũng có mặt nhiều trong các sản phẩm công nghiệp và tiêu dùng. Để hiểu được phần nào về chức năng và ứng dụng của vi điều khiển nhóm em chọn đề tài Thiết kế mô hình Khóa điện tử hiển thị 6 led 7 đoạn để nghiên cứu và thực hiện. Nội dung báo cáo gồm 3 phần: I – Cơ sở lý thuyết II – Nội dung thiết kế III – Kết luận

doc17 trang | Chia sẻ: lvbuiluyen | Lượt xem: 2407 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Tiểu luận Thiết kế mô hình Khóa điện tử hiển thị 6 led 7 đoạn, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Tiểu luận Thiết kế mô hình Khóa điện tử hiển thị 6 led 7 đoạn Lời nói đầu Ngày nay khoa học công nghệ ngày càng phát triển. Cùng với sự phát triển đó công nghệ tự động hóa ngày càng được ưu tiên đầu tư nghiên cứu phát triển. Đại đa số các lĩnh vực sản xuất, điều khiển, giám sát, đo lường,… đều được trang bị hệ thống điều khiển hệ thống tự động hóa. Một trong số vi mạch được sử dụng đó là Kĩ thuật vi điều khiển. Nhờ this năng ưu việt của bộ vi điều khiển như: khả năng lập trình phù hợp với thiết kế nhỏ và lớn cũng như giao tiếp với các thiết bị ngoại vi và máy tính sẽ đem lại sự hoàn hảo, độ chính xác và tính mềm dẻo cao. Vi điều khiển quản lý và điều khiển hoạt động của hệ thống thông qua phần mềm, nhờ vậy ta có thể thay đổi và mở rộng hoạt động một cách dễ dàng. Vi điều khiển hoạt động theo chương trình đã nạp sẵn, đọc các tín hệu từ bên ngoài đưa vào sau lưu trữ và xử lí, trên cơ sở đó đưa ra các thông báo, tín hiệu điều khiển các thiết bị bên ngoài hoạt đông theo đúng thong số và yêu cầu của hệ thống. Ngoài ra vi điều khiển cũng có mặt nhiều trong các sản phẩm công nghiệp và tiêu dùng. Để hiểu được phần nào về chức năng và ứng dụng của vi điều khiển nhóm em chọn đề tài Thiết kế mô hình Khóa điện tử hiển thị 6 led 7 đoạn để nghiên cứu và thực hiện. Nội dung báo cáo gồm 3 phần: I – Cơ sở lý thuyết II – Nội dung thiết kế III – Kết luận Trong quá trình thực hiện đề tài, tuy đã rất cố gắng song do những hạn chế về thời gian, kiến thức cũng như kinh ngiệm thực tế nên chúng em không tránh khỏi nhiều thiếu sót. Chúng em rất mong nhận được những ý kiến đóng góp của thầy cô và các bạn để đề tài của chúng em được hoàn thiện hơn. Cuối cùng chúng em xin chân thành cảm ơn cô Vũ Thị Thu Hương cùng các thầy cô giáo bộ môn đã hươngs dẫn tận tình, giúp đỡ chúng em hoàn thiện đề tài này. Thiết kế mô hình khóa điện tử hiển thị 6 led 7 đoạn. I – Cơ sở lý thuyết 1 – Giới thiệu tổng quan về họ Vi điều khiển 8051 AT89S52 là một vi điều khiển 8 bit, chế tạo theo công nghệ CMOS chất lượng cao, công suất thấp với 4 KB PEROM (Flash Programeable and erasable read only memory). Các đặc điểm của 89S52 được tóm tắt như sau: - 4KB bộ nhớ, có thể lập trình lại nhanh, có khả năng ghi xóa tới 1000 chu kỳ - Tần số hoat động từ 0 Hz đến 24 MHz - 3 mức khóa bộ nhớ lập trình - 2 bộ Timer/Counter 16 bit - 128 Byte RAM nội - 4 Port xuất/nhập (I/O) 8 bit - 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 (hoạt động trên bit đơn) - 210 vị trí nhớ có thể định vị bit - 4μs cho hoạt động nhân hoặc chia a – Sơ đồ khối và sơ đồ chân của AT89S52 OTHER REGISTER 128 byte RAM 128 byte RAM 8032\8052 ROM 0K: 8031\8032 4K:8951 8K:8052 INTERRUPT CONTROL INT1\ INT0\ SERIAL PORT TEMER0 TEMER1 TEMER2 8032\8052 CPU OSCILATOR BUS CONTROL I/O PORT SERIAL PORT EA\ RST ALE\ PSEN\ P0 P1 P2 P3 Address\Data TXD RXD TEMER2 8032\8052 TEMER1 TEMER1 Hình 1 – Sơ đồ khối của AT89S52 Hình 2 – Sơ đồ chân của AT89S52 b – Chức năng các chân của AT89S52 + Port 0 (P0.0 – P0.7 hay chân 32 – 39): Ngoài chức năng xuất nhập ra, port 0 còn là bus đa hợp dữ liệu và địa chỉ (AD0 – AD7), chức năng này sẽ được sử dụng khi AT89S52 giao tiếp với thiết bị ngoài có kiến trúc bus. Hình 3 – Port 0 + Port 1 (P1.0 – P1.7 hay chân 1 – 8): có chức năng xuất nhập theo bit và byte. Ngoài ra, 3 chân P1.5, P1.6, P1.7 được dùng để nạp ROM theo chuẩn ISP, 2 chân P1.0 và P1.1 được dùng cho bộ Timer 2. Hình 4 – Port 1 + Port 2 (P2.0 – P2.7 hay chân 21 – 28): là một port có công dụng kép. Là đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết kế dùng bộ nhớ mở rộng. Hình 5 – Port 2 + Port 3 (P3.0 – P3.7 hay chân 10 – 17): mỗi chân trên port 3 ngoài chức năng xuất nhập ra còn có một số chức năng đặc biệt sau: Bit Tên Chức năng chuyển đổi P3.0 RXD Dữ liệu nhận cho port nối tiếp P3.1 TXD Dữ liệu truyền cho port nối tiếp P3.2 INT0 Ngắt bên ngoài 0 P3.3 INT1 Ngắt bên ngoài 1 P3.4 T0 Ngõ vào của Timer/Counter 0 P3.5 T1 Ngõ vào của Timer/Counter 1 P3.6 WR Xung ghi bộ nhớ dữ liệu ngoài P3.7 RD Xung đọc bộ nhớ dữ liệu ngoài Hình 6 – Port 3 + RST (Reset – chân 9): mức tích cực của chân này là mức 1, để reset ta phải đưa mức 1 (5V) đến chân này với thời gian tối thiểu 2 chu kỳ máy (tương đương 2µs đối với thạch anh 12MHz. + XTAL 1, XTAL 2: AT89S52 có một bộ dao động trên chip, nó thường được nối với một bộ dao động thạch anh có tần số lớn nhất là 33MHz, thôn thường là 12MHz. + EA (External Access): EA thường được mắc lên mức cao (+5V) hoặc mức thấp (GND). Nếu ở mức cao, bộ vi điều khiển thi hành chương trình từ ROM nội. Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng. + ALE (Address Latch Enable): ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên ngoài trong nửa đầu của chu kỳ bộ nhớ. Sau đó các đường port 0 dùng để xuất hoặc nhập dữ liệu trong nửa chu kỳ sau của bộ nhớ. + PSEN (Program Store Enable): PSEN là điều khiển để cho phép bộ nhớ chương trình mở rộng và thường được nối với đến chân /OE (Output Enable) của một EPROM để cho phép đọc các bytes mã lệnh. PSEN sẽ ở mức thấp trong thời gian đọc lệnh. Các mã nhị phân của chương trình được đọc từ EPROM qua Bus và được chốt vào thanh ghi lệnh của bộ vi điều khiển để giải mã lệnh. Khi thi hành chương trình trong ROM nội, PSEN sẽ ở mức thụ động (mức cao). + Vcc, GND: AT89S52 dùng nguồn một chiều có dải điện áp từ 4V – 5.5V được cấp qua chân 40 (Vcc) và chân 20 (GND). II Nội Dung 1 – Phần lập trình và mô phỏng a – Phần lập trình # include "regx51.h" #define C1 P1_0 #define C2 P1_1 #define C3 P1_2 #define C4 P1_3 #define H1 P1_4 #define H2 P1_5 #define H3 P1_6 #define H4 P1_7 #define led6 P2_2 #define led5 P2_3 #define led4 P2_4 #define led3 P2_5 #define led2 P2_6 #define led1 P2_7 #define dung P3_6 #define sai P3_7 char key; long int number_key,key_true; unsigned char led_code[10]={0x81,0xb7,0xc2,0x92,0xb4,0x98,0x88,0xb3,0x80,0x90}; unsigned char h[6]={0,0,0,0,0,0}; char index =0,set=0,enter =0,clear =0; void delay(); void ghep_so(); void scan_key(); void ht1(long int number); void scan_key() { C1 = 0; C2= 1; C3= 1; C4= 1; delay(); if( H1 ==0) { while( H1 ==0){}; key =1; h[index] = key; index = index +1; } else if( H2 ==0) {while( H2 ==0){}; key =5; h[index] = key;index = index +1; } else if( H3 ==0) {while( H3 ==0){}; key =9;h[index] = key;index = index +1; } else if( H4 ==0) {while( H4 ==0){}; set=1; } //key =13; C1 = 1; C2 = 0; C3= 1; C4= 1; delay(); if( H1 ==0) {while( H1 ==0){};key =2; h[index] = key;index = index +1; } else if( H2 ==0) {while( H2 ==0){};key =6; h[index] = key;index = index +1;} else if( H3 ==0) {while( H3 ==0){};key =10; h[index] = key;index = index +1;} else if( H4 ==0) {while( H4 ==0){};key =0; h[index] = key;index = index +1;} //key =14; C1 = 1; C2 = 1; C3= 0; C4= 1; delay(); if( H1 ==0) {while( H1 ==0){};key =3; h[index] = key;index = index +1;} else if( H2 ==0){while( H2 ==0){}; key =7; h[index] = key;index = index +1;} else if( H3 ==0) {while( H3 ==0){}; key =11; h[index] = key;index = index +1;} else if( H4 ==0) {while( H4 ==0){}; clear =1;} //key =15; C1 = 1; C2 = 1; C3= 1; C4= 0; delay(); if( H1 ==0) {while( H1 ==0){};key =4; h[index] = key;index = index +1; } else if( H2 ==0){while( H2 ==0){}; key =8; h[index] = key;index = index +1;} else if( H3 ==0) {while( H3 ==0){}; key =12; h[index] = key;index = index +1;} else if( H4 ==0) {while( H4 ==0){}; enter =1; } //key =16; //number_key = key; //h[index] = key; // index = index +1; if( index > 5) index =0; } void ghep_so() { number_key = h[0]*100000 + h[1]*10000+ h[2]*1000 +h[3]*100 + h[4]*10 +h[5] ; } void ht1(long int number) { char tramnghin, chucnghin, nghin, tram, chuc, donvi; tramnghin = number/100000; chucnghin = (number%100000)/10000; nghin = (((number%100000)%10000))/1000; tram = ((((number%100000)%10000))%1000)/100; chuc = (((((number%100000)%10000))%1000)%100)/10; donvi = (((((number%100000)%10000))%1000)%100)%10; P0 = led_code[tramnghin]; led6 =0; delay(); led6 =1; P0 = led_code[chucnghin]; led5 =0; delay(); led5 =1; P0 = led_code[nghin]; led4 =0; delay(); led4 =1; P0 = led_code[tram]; led3 =0; delay(); led3 =1; P0 = led_code[chuc]; led2 =0; delay(); led2 =1; P0 = led_code[donvi]; led1 =0; delay(); led1 =1; } void main() { P1 = 0xFF; P0 = 0xff; P2 = 0xff; P3 = 0x00; number_key =0; key_true = 123456; dung =0; sai =1; while(1) { scan_key(); ghep_so(); ht1(number_key); if (set ==1) { ghep_so(); key_true = number_key; set =0; } if (enter ==1) { if(number_key == key_true) { dung =1; sai =0; } else { dung =0; sai =1; } enter =0; } if(clear ==1) { h[0] =0; h[1] =0;h[2] =0;h[3] =0;h[4] =0; h[5] =0; number_key=0; clear=0; index=0; } } } void delay() { unsigned int i; for( i=0; i< 500; i++); } b – Phần mô phỏng 3 – Mạch nguyên lý và mạch in Hình 9 – Sơ đồ mạch nguyên lý Hình 10 – Sơ đồ mạch in III – Kết luận 1 – Ưu điểm - Hiển thị đầy đủ rõ nét các kí tự yêu cầu - Bàn phím linh hoạt - Có thể thay đổi được mật khẩu - Mạch có tín hiệu chuông khi đóng mở khóa - Mạch hiển thị LED 7 đoạn nên dễ dàng cho người sử dụng theo dõi các kí tự hiển thị dù trong điều kiện thiếu ánh sáng. - Mạch được thiết kế nhỏ gọn, dễ sử dụng, tiện lợi và có thể dùng nhiều loại nguồn: pin, acquy, nguồn điện xoay chiều,… nên rất cơ động. 2 – Nhược điểm - Mật khẩu bị giới hạn ở 6 kí tự - Các kí tự hiển thị chưa được linh hoạt như trên màn hình LCD 3 – Hướng cải tiến, phát triển - Nghiên cứu, ứng dụng trên các họ vi điều khiển khác - Tích hợp thêm nhiều tính năng khác như: báo cháy, báo rò khí gas, tiết kiệm điện năng… Mục lục Trang I – Cơ sở lý thuyết 3 1 – Giới thiệu tổng quan về họ Vi điều khiển 8051 3 a – Sơ đồ khối và sơ đồ chân của AT89S52 3 b – Chức năng các chân của AT89S52 5 II – Nội dung 11 1– Phần lập trình và mô phỏng 13 a – Phần lập trình 13 b – Phần mô phỏng 16 2 – Mạch nguyên lý và mạch in 17 III – Kết luận 19 1 – Ưu điểm 19 2 – Nhược điểm 19 4 – Hướng cải tiến, phát triển 20
Luận văn liên quan