การเขียนโปรแกรม นาฬิกาจับเวลา
การเขียนโปรแกรม นาฬิกาจับเวลา จากรูปเป็นการเขียนโปรแกรมโดยไมโครคอนโทรเลอร์ MCS-51 ในกรณีที่ไม่กดสวิทช์ จะเกิดไฟสีเขียวแต่ถ้ากดสวิทช์จะเป็นไฟสีแดงตัวเลขจะนับจาก 0 ขึ้นไปเรื่อยๆจนครบ 10นาทีจะเปลี่ยนไฟเป็นสีเขียวแล้วตัวเลขจะหยุดทันที
#include
unsigned char segment[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned int a,b,c,d,e=0; unsigned char button_sw= 0 ;
sbit start =P0^0; sbit lamp_status = P0^1; sbit lamp_alarm = P0^2; void timer1_isr(void); void delay(void);
void main(void) { lamp_status = 1 ; lamp_alarm = 0; while(1) {
P1 = 0x05 ; P2=segment[a]; P3=segment[c]; delay(); P1 = 0x0a; P2=segment[b];
P3=segment[d]; delay(); if(start == 0 & button_sw == 0 ){ button_sw = 1; lamp_alarm =1; lamp_status = 0 ;
} if(button_sw==1) { TMOD=0x10; TH1=0xFC; TL1=0x17; TR1=1; ET1=1; EA=1; } } }
void timer1_isr(void) interrupt 3 {
e++; if(e>9) { d++; e=0; } else if(d>9) { c++; d=0; } else if(c>5) { b++; c=0; } else if(b>9) { a++; b=0; } else if(a>0) { a=0; lamp_alarm =0; lamp_status = 1 ; button_sw = 0; } TR1=0;
}
void delay(void) { unsigned int x; for(x=0;x<10000;x++); }
Create Date : 17 สิงหาคม 2553 |
|
0 comments |
Last Update : 21 กันยายน 2554 15:56:11 น. |
Counter : 1016 Pageviews. |
|
|
|