Advertisement
Guest User

Untitled

a guest
May 25th, 2010
371
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.32 KB | None | 0 0
  1. #include <mega16.h>
  2.  
  3. #include <delay.h>
  4.  
  5. #asm
  6.  
  7. .equ __lcd_port=0x12;PORTD
  8.  
  9. #endasm
  10.  
  11. #include <lcd.h>
  12.  
  13. #include <stdio.h>
  14.  
  15. flash unsigned char keypad [16]={0xee,0xed,0xeb,0xe7,0xde,0xdd,0xd7,0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77};
  16.  
  17. flash unsigned char menu [16]={1,2,3,50,4,5,6,60,7,8,9,70,80,0,90,100};
  18.  
  19.  
  20.  
  21. int s,m,h;
  22.  
  23. char str[20];
  24.  
  25. unsigned char key,i,a,b;
  26.  
  27. unsigned char getkbd (void){
  28.  
  29. DDRA=0x0f;
  30.  
  31. PORTA=0xf0;
  32.  
  33. delay_us(10);
  34.  
  35. key=PINA;
  36.  
  37. DDRA=0xf0;
  38.  
  39. PORTA=0x0f;
  40.  
  41. delay_us(10);
  42.  
  43. key=key | PINA ;
  44.  
  45. delay_ms(5);
  46.  
  47. for (i=0;i<16;i++)
  48.  
  49. if (keypad[i]==key) break;
  50.  
  51. return i ;
  52.  
  53. }
  54.  
  55. interrupt [TIM2_OVF] void z(void)
  56.  
  57. {
  58.  
  59. s++;
  60.  
  61. }
  62.  
  63. void main(void)
  64.  
  65. {
  66.  
  67. TCCR2=0X05;
  68.  
  69. TCNT2=0;
  70.  
  71. ASSR=0X08;//MOSHAKH KARDANE MANBBA CLOCK AZ PAYEHAYE 28 29
  72.  
  73. // AGAE KHASTWE BASHIM VAGHFE RO FAAL KONIM
  74.  
  75. TIMSK=0X40; //VAGHFE SSAR RIZ TIMER 2
  76.  
  77. #asm ("sei") // faal sazi vaghfe omumi
  78.  
  79.  
  80.  
  81. lcd_init(16);
  82.  
  83. lcd_clear();
  84.  
  85. lcd_putsf ("avr");
  86.  
  87. delay_ms(1000);
  88.  
  89. lcd_clear();
  90.  
  91. while (1){
  92.  
  93. a=getkbd();
  94.  
  95. if (a<16){
  96.  
  97. if( menu[a]==80)
  98.  
  99. {lcd_clear();
  100.  
  101. lcd_putsf("menu");
  102.  
  103. delay_ms(1000);
  104.  
  105. lcd_clear();
  106.  
  107. }}
  108.  
  109. if (s>59)
  110.  
  111. {s=0;
  112.  
  113. m++;
  114.  
  115. }
  116.  
  117. if (m>59){
  118.  
  119. m=0;
  120.  
  121. h++;
  122.  
  123. }
  124.  
  125. if (h>23) h=0;
  126.  
  127.  
  128.  
  129. sprintf (str,"TIME:%02d:%02d:%02d",h,m,s);
  130.  
  131. lcd_gotoxy (0,0);
  132.  
  133. lcd_puts(str);
  134.  
  135. }
  136.  
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement