ساعت دیجیتال توسط 8051 و اسمبلی
تاریخ : چهارشنبه، 3 شهريور ماه ، 1389 موضوع : مدارات ميكروكنترولر
قطعات مورد نياز :
- 8عدد اي سي 4543
- 6 عدد سون سگمنت آند مشترك
- 1ميكرو 8051
- 8 عدد مقاومت 10K
- بورد سوراخ دار
در اين پروژه ما قصد داريم يك مدار ساعت
ديجيتالي با دقت بالا و دكمه هاي تنظيم دقيقه و ساعت ببنديم.
در نمونه شبيه سازي شده ما مي توانيم از سون سگمنت هاي BCD(ورودي BCD ) استفاده
كنيم اما در محيط واقعي چنين 7SEGMENT هايي در بازار وجود ندارد.
pre.asmcode
{
background: #FFFFFF;
color: #000000;
border:2px dashed #0000FF;
font: 10pt;
font-family: Lucida Console , DejaVu Sans Mono;
direction: ltr;
}
.asm01{
color: #007F00;
}
.asm02{
color: #007F7F;
}
.asm03{
color: #7F007F;
}
.asm05{
color: #7080FF;
}
.asm06{
color: #0000EF;
}
.asm07{
color: #0000EF;
font-weight: bold;
}
.asm08{
color: #46AA03;
font-weight: bold;
}
.asm09{
color: #0000EF;
}
.asm10{
color: #0000EF;
}
.asm12{
color: #7F007F;
}
.asm13{
background: #E0C0E0;
}
.asm14{
color: #B00040;
}
.asm32{
}
.asm34{
color: #0000EE;
font-weight: bold;
}
.asm35{
color: #EE0000;
font-weight: bold;
}
.asm36{
color: #808080;
}
به همين دليل ما از اي سي 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,#00H
ALI: 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 A
DDD: CJNE A,#1AH,EEE
DA A
EEE: CJNE A,#2AH,FFF
DA A
FFF: CJNE A,#3AH,GGG
DA A
GGG: CJNE A,#4AH,HHH
DA A
HHH: DJNZ R7,ALI
DAGH: INC R6
MOV A,R6
CJNE A,#0AH,III
DA A
III: CJNE A,#1AH,JJJ
DA A
JJJ: CJNE A,#2AH,KKK
DA A
KKK: CJNE A,#3AH,LLL
DA A
LLL: CJNE A,#4AH,MMM
DA A
MMM: CJNE A,#5AH,NNN
DA A
NNN: MOV R6,A
MOV P2,R6
CJNE A,#60H,AAA
MOV R6,#00H
MOV P2,R6
SAAT: INC R5
MOV A,R5
CJNE A,#0AH,OOO
DA A
OOO: CJNE A,#1AH,PPP
DA A
PPP: MOV R5,A
MOV P3,R5
CJNE R5,#24H,AAA
MOV R5,#00H
MOV P3,R5
JMP AAA
SAAT1: DEC R5
MOV A,R5
CJNE A,#1FH,OOOO
MOV A,#19H
OOOO: CJNE A,#0FH,PPPP
MOV A,#09H
PPPP: CJNE A,#0FFH,SSSS
MOV A,#24H
SSSS: JMP PPP
DAGH1: DEC R6
MOV A,R6
CJNE A,#5FH,IIII
MOV A,#59H
IIII: CJNE A,#4FH,JJJJ
MOV A,#49H
JJJJ: CJNE A,#3FH,KKKK
MOV A,#39H
KKKK: CJNE A,#2FH,LLLL
MOV A,#29H
LLLL: CJNE A,#1FH,MMMM
MOV A,#19H
MMMM: CJNE A,#0FH,NNNN
MOV A,#09H
NNNN: CJNE A,#0FFH,QQQQ
MOV A,#59H
QQQQ: JMP NNN
DELAY: MOV R4,#4D
LEEP3: MOV R3,#199D
LEEP2: MOV R2,#250D
LEEP1: NOP
NOP
DJNZ R2,LEEP1
DJNZ R3,LEEP2
DJNZ R4,LEEP3
RET
END
جهت دانلود نقشه و سورس برنامه به همراه توضیحات بیشتر از لینک
زیر استفاده کنید.
http://www.hlachini.com/download-file-19.html
همچنین برای تماس با آقای علیرضا نخعی
از ایمیل ar_nakhaee2000[at]yahoo[dot]com
استفاده کنید.
ساعت دیجیتال توسط 8051 و اسمبلی clock 7segment نخعی
|