Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <mega16.h>
- #include <delay.h>
- #asm
- .equ __lcd_port=0x12;PORTD
- #endasm
- #include <lcd.h>
- #include <stdio.h>
- flash unsigned char keypad [16]={0xee,0xed,0xeb,0xe7,0xde,0xdd,0xd7,0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77};
- flash unsigned char menu [16]={1,2,3,50,4,5,6,60,7,8,9,70,80,0,90,100};
- int s,m,h;
- char str[20];
- unsigned char key,i,a,b;
- unsigned char getkbd (void){
- DDRA=0x0f;
- PORTA=0xf0;
- delay_us(10);
- key=PINA;
- DDRA=0xf0;
- PORTA=0x0f;
- delay_us(10);
- key=key | PINA ;
- delay_ms(5);
- for (i=0;i<16;i++)
- if (keypad[i]==key) break;
- return i ;
- }
- interrupt [TIM2_OVF] void z(void)
- {
- s++;
- }
- void main(void)
- {
- TCCR2=0X05;
- TCNT2=0;
- ASSR=0X08;//MOSHAKH KARDANE MANBBA CLOCK AZ PAYEHAYE 28 29
- // AGAE KHASTWE BASHIM VAGHFE RO FAAL KONIM
- TIMSK=0X40; //VAGHFE SSAR RIZ TIMER 2
- #asm ("sei") // faal sazi vaghfe omumi
- lcd_init(16);
- lcd_clear();
- lcd_putsf ("avr");
- delay_ms(1000);
- lcd_clear();
- while (1){
- a=getkbd();
- if (a<16){
- if( menu[a]==80)
- {lcd_clear();
- lcd_putsf("menu");
- delay_ms(1000);
- lcd_clear();
- }}
- if (s>59)
- {s=0;
- m++;
- }
- if (m>59){
- m=0;
- h++;
- }
- if (h>23) h=0;
- sprintf (str,"TIME:%02d:%02d:%02d",h,m,s);
- lcd_gotoxy (0,0);
- lcd_puts(str);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement