ساعت دیجیتال توسط 8051 و اسمبلی
پنجشنبه, ۲۶ آبان ۱۳۹۰، ۰۲:۰۸ ب.ظ
قطعات مورد نیاز : 8عدد ای سی 4543
6 عدد سون سگمنت آند مشترک 1میکرو 8051 8 عدد مقاومت 10K بورد سوراخ دار
در این پروژه ما قصد داریم یک مدار ساعت
دیجیتالی با دقت بالا و دکمه های تنظیم دقیقه و ساعت ببندیم.
در نمونه شبیه سازی شده ما می توانیم از سون سگمنت های BCD(ورودی BCD ) استفاده
کنیم اما در محیط واقعی چنین 7SEGMENT هایی در بازار وجود ندارد.
به همین دلیل ما از ای سی 4543 برای تبدیل کد ارسالی از میکرو (BCD ) به کد قابل
فهم برای سون سگمنت استفاده می کنیم . این ای سی از 16 پایه تشکیل شده است.
از پایه 2 تا 5 برای ورودی و از پایه 9 تا 15 برای خروجی استفاده شده است.
همانطور که در شکل بالا مشاهده می کنید این مدار با ای سی 4543 بسته شده است
البته هدف از این کار صرفه جویی در مصرف بیت پورت های خروجی می باشد اما می توان از
7SEG های 2 تایی یا 4 تایی و یا 6 تایی هم استفاده کرد که البته به دلیل زیاد شدن
خطوط برنامه و سخت تر شدن ان باعث خطاهای میلی ثانیه ای می شود که در استفاده دراز
مدت از ساعت می توان مشاهده کرد .
در این مدار ما از پورت صفر برای ثانیه و از پورت دو برای دقیقه و از پورت سه برای
ساعت استفاده کردیم و با دو عدد دکمه (BUTTON ) ساعت (P1.0) و دقیقه (P1.1) را
تنظیم می کنیم .
و برای کسانی که تاکنون بصورت سخت افزاری با میکرو 80C51 کار نکرده اند قابل ذکر
است که برای راه اندازی میکرو پایه شماره 31 باید به VCC وصل شود و پایه 18 و 19
باید به یک کریستال 12 مگاهرتز وصل شوند که هر پایه باید به یک خازن 30 پیکو فاراد
وصل شود و سر دیگر خازن هم به زمین متصل می گردد.
و همچنین برای استفاده از پورت صفر باید تک تک بیت ها به مقاومت10KΩ وصل شوند.
ORG 0000H MOV P0,#00H MOV P1,#0FFH MOV P1,#00H MOV P2,#00H MOV P3,#00H MOV R0,#00H MOV R1,#00H MOV R2,#00H MOV R3,#00H MOV R4,#00H MOV R5,#00H MOV R6,#00H MOV R7,#00H AAA: MOV R7,#60D MOV A,#00HALI: MOV P0,A CALL DELAY JB P1.0,DAGH JB P1.1,DAGH1 JB P1.2,SAAT JB P1.3,SAAT1 INC A CJNE A,#0AH,DDD DA ADDD: CJNE A,#1AH,EEE DA AEEE: CJNE A,#2AH,FFF DA AFFF: CJNE A,#3AH,GGG DA AGGG: CJNE A,#4AH,HHH DA A HHH: DJNZ R7,ALIDAGH: INC R6 MOV A,R6 CJNE A,#0AH,III DA AIII: CJNE A,#1AH,JJJ DA AJJJ: CJNE A,#2AH,KKK DA AKKK: CJNE A,#3AH,LLL DA ALLL: CJNE A,#4AH,MMM DA AMMM: CJNE A,#5AH,NNN DA ANNN: MOV R6,A MOV P2,R6 CJNE A,#60H,AAA MOV R6,#00H MOV P2,R6SAAT: INC R5 MOV A,R5 CJNE A,#0AH,OOO DA AOOO: CJNE A,#1AH,PPP DA APPP: MOV R5,A MOV P3,R5 CJNE R5,#24H,AAA MOV R5,#00H MOV P3,R5 JMP AAASAAT1: DEC R5 MOV A,R5 CJNE A,#1FH,OOOO MOV A,#19HOOOO: CJNE A,#0FH,PPPP MOV A,#09HPPPP: CJNE A,#0FFH,SSSS MOV A,#24HSSSS: JMP PPPDAGH1: DEC R6 MOV A,R6 CJNE A,#5FH,IIII MOV A,#59HIIII: CJNE A,#4FH,JJJJ MOV A,#49HJJJJ: CJNE A,#3FH,KKKK MOV A,#39HKKKK: CJNE A,#2FH,LLLL MOV A,#29HLLLL: CJNE A,#1FH,MMMM MOV A,#19HMMMM: CJNE A,#0FH,NNNN MOV A,#09HNNNN: CJNE A,#0FFH,QQQQ MOV A,#59HQQQQ: JMP NNNDELAY: MOV R4,#4DLEEP3: MOV R3,#199DLEEP2: MOV R2,#250DLEEP1: NOP NOP DJNZ R2,LEEP1 DJNZ R3,LEEP2 DJNZ R4,LEEP3 RET END
جهت دانلود نقشه و سورس برنامه به همراه توضیحات به اینجا بروید!
۹۰/۰۸/۲۶