bao cao mach dong ho so

Post on 17-Jan-2016

23 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

dong ho so

TRANSCRIPT

ĐẠI HỌC BÁCH KHOA HÀ NỘIVIỆN ĐIỆN TỬ - VIỄN THÔNG

-----------o0o-----------

Đề tài :

ĐỒNG HỒ SỐ

Sinh viên thực hiện : Th.S LớpSHSV

::

CỦ CHUỐIC9999999

Giảng viên hướng dẫn : GS.TS NGUYỄN XUÂN CƯỜNG

Hà Nội , 11 / 2011

BÁO CÁO THIẾT KẾ MẠCH

Các linh kiện của mạch bao gồm:

(1)ic 8051 (ic lập trình) (1)ic 74ls47 (ic giải mã ) (1)tụ 10uF 50V, (2) tụ 33 , (2)tụ 104 , (1)thạch anh 12M (1)trở băng , (3)công tắc , (6)led 7 thanh (6)transisto C828 , (2)trở 100 , (1) trở 10k , (6) trở 1k

NGUYÊN LÝ VẼ BẰNG PROTUES và mô phỏng :

DÚNG KEIL-C DỂ LẬP TRÌNH CHO IC 8051 :

#include<at89x51.h>sfr P00=0x80;sfr P10=0x90;sfr P20=0xa0;int x,y,h,z,i,j,n,m=225; //225 //xy gio: hz phut : ij giayint c=0,d=0,e=0,f=0,g=0,k=0;//cd gio: ef phut : gk giay tuong ung khi dieu chinh gio unsigned char a=60,b=60,l,s=0,w;////////////////void tre (unsigned char time) { while (time--) { for(n=0;n<=m;n++)

{}}}

/////////////////////////

void dcphut (void)

{ tre(100); while(1) {P0=0xc4,P2=e,tre(2),P0=0xc8,P2=f,tre(2);////-co dong tren de cho man hinh LUON hien thi gio phut ra led-////////////if (P1_1==0)

{tre(50); if(e<5){if(f<9) {f++;tre(50);} //0->9;11->19;21->29;31->39;41->49;

else {f=0,e++;tre(50);}}//10;20;30;40;50 else {if(f<9) {f++;tre(50);} //51->59 else f=0,e=0;tre(50);} //neu la 60 thi tro ve 00 }

else if (P1_0==0) {break;} }}void dcgio (void){tre(100);

while(1) {P0=0xc1,P2=c,tre(2),P0=0xc2,P2=d,tre(2);////-co dong tren de cho man hinh LUON hien thi gio phut ra led-////////////

if (P1_1==0) {tre(50);

if(c<1){if(d<9){d++;tre(50);}// 1->9 else {d=0,c++;tre(50);}}// 10 else {if(d<2) {d++;tre(50);} // 11;12 else {d=1,c=0;tre(50);}}// neu la 13 thi tro ve 1 } else if (P1_0==0) {break;} }

}/////////////////////////void delay (void){w=0;while(1) {for(l=0;l<=1;l++){P0=0xc1,P2=x,tre(1),P0=0xc2,P2=y,tre(1),P0=0xc4,P2=h,tre(1),P0=0xc8,P2=z,tre(1),P0=0xd0,P2=i,tre(1),P0=0xe0,P2=j,tre(1); if (P1_0==0) c=x,d=y,e=h,f=z,g=i,k=j; break;tre(2);}if (P1_0==0)break;tre(2); w++; if(w==45) break; }}///////////////////////////////////////////////void giaythap (void) {switch (a%b)

{case 0:{ delay(); j++;}

case 1:{ delay(); j++;}

case 2:{ delay(); j++;}

case 3:{ delay(); j++;}

case 4:{ delay(); j++;}

case 5:{ delay(); j++;}

case 6:{ delay(); j++;}

case 7:{ delay(); j++;}

case 8:{ delay(); j++;}

case 9:{ delay(); j++;}}

s=1;}///////////////////////////void chedo12h (void){if (c<1) {if(s==1) c=1; for (x=c;x<=1;x++) {if(s==1) d=0; for (y=d;y<=9;y++) {if(s==1) e=0; for (h=e;h<=5;h++) {if(s==1)f=0; for (z=f;z<=9;z++) {for (i=g;i<=5;i++)

{for (j=k;j<=9;j++) {giaythap();

if (P1_0==0) break ; } if (P1_0==0) break ;} if (P1_0==0)break ;} if (P1_0==0) break ;} if (P1_0==0) break ;} } } //else {if(s==1)c=0; for (x=c;x<=1;x++) {if(s==1)d=1; for (y=d;y<=2;y++) {if(s==1)e=0; for (h=e;h<=5;h++)

{if(s==1)f=0; for (z=f;z<=9;z++) {for (i=g;i<=5;i++)

{for (j=k;j<=9;j++) { giaythap();

if (P1_0==0) break ; } if (P1_0==0) break ;} if (P1_0==0) break ;} if (P1_0==0) break ;} if (P1_0==0) break ;} }}

}/////////////////////////////////////////////// void main (void) { while(1) {tre(50); dcphut();

tre(50);dcgio();tre(50);while(1){chedo12h(); if (P1_0==0) break;}//end ();}break;}

}

NGUYÊN LÝ :-Ta dùng cổng P0 để quét dương led 7 thanh,ta kết hợp với transistor để bảo vệ ic đỡ bị hỏng.-Ta dùng cổng P2 để quét hiển thị số qua ic giải mã 74ls47-Khi cấp nguồn ,ta nhấn nút nối với cổng P1.1 (sw0) để điều chỉnh phút.Khi điều chỉnh xong phút thì ta nhấn công tắc nối với cổng P1.0(sw1) để chuyển sang điều chỉnh giờ, sau đó ta nhấn nút (sw0) để điều chỉnh giờ. .Khi điều chỉnh xong phút thì ta nhấn công tắc(sw1) để cho đồng hồ hoạt động.-Trong khi đồng hồ đang hoạt động ,nếu ta lại muốn điều chỉnh thì ta nhấn công tắc (sw0) hoặc ta nhấn công tắc nối với chân reset của ic đẻ bước vào quá trình điều chỉnh. Rồi ta lại làm các bước giống như điều chỉnh khi cấp nguồn

VẼ MẠCH NGUYÊN LÝ VÀ MẠCH IN BẰNG ORCAD :a/mạch nguyên lý:

Cách để chuyer sang mạch in:

Kiểm tra xem mạch đẫ vẽ dúng hay chưa nếu ko báo gì thì là mạch dẫ vẽ dúng :

Tạo file .mnl để vẽ mach in

Cứ như thế này là ok ko lỗi Hoàn toàn chuyển được sang vẽ mạch inb/chuyển sang mạch in :

Ta xóa những chữ màu xanh đi để dễ nhìn:

Ta chọn kich thước của lưới:

Ta chọn vẽ mạch in 1 lớp :

ta kích vào đây để loại bỏ các lớp khác.

Ta chọn bề rộng của đường mạch in :

NOTE:Khi ta muốn tự tạo chân linh kiện thì nhấn Ctrl+I

1/ nhấn Creat New Footprint để tạo chân linh kiện2/ta đặt tên cho linh kiện ta muốn tạo

3/ta xóa những chữ màu xanh đi

rồi ta nhấn chuột vào chũ mà ta muốn xóa +delete ở trên bàn phím 4/ta điều chỉnh chân linh kiện;

5/ta điều chỉnh lưới để kiểm tra xem ta đã vẽ đúng theo ý muốn của ta chưa thì ta nhấn Ctrl+G :

Ta chọn cỡ mm và các kích thước 0.635 để dễ vẽ hơn ,thường ta chọn kích cỡ này khi ta tạo 1 con IC để dẽ điều chỉnh chân của IC hơn.6/ta sẽ dùng thước đo dẻ ta kiểm tra xem linh kiện ta vẽ đã chuẩn chưa:

Nếu đã chuẩn thì ta sẽ vẽ đường bao cho nó rồi dùng chuột để vẽ lên màn hình

7/ta có thể cho chân linh kiện là hình vuông ,oval ,tròn ,hình chữ nhật.v.v.. cùng với kích thước to nhỏ tùy ta chọn

Hình dạng chân kích thước Chân

Khi vẽ xong thì ta nhấn save :

rồi ta chọn nơi để lưu là xong .rồi đóng thư viện lại:

ĐẶC BIỆT KHI TA MUỐN CHO LINH KIỆN NẰM ẨN Ở TRONG IC THÌ

+Sau khi xong ,thì ta sẽ cho phàn mềm tự động đi dây :

Chuyển sang mach in :

Đi dây xong thì ta in mạch ra file pdf để đem đi in

top related