AngelovskiK

[МПС] Лабораториска 6 - Микропроцесорски Системи

Dec 20th, 2019
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.77 KB | None | 0 0
  1. char keypadPort at PORTD;
  2. sbit LCD_RS at RB4_bit;
  3. sbit LCD_EN at RB5_bit;
  4. sbit LCD_D4 at RB0_bit;
  5. sbit LCD_D5 at RB1_bit;
  6. sbit LCD_D6 at RB2_bit;
  7. sbit LCD_D7 at RB3_bit;
  8. sbit LCD_RS_Direction at TRISB4_bit;
  9. sbit LCD_EN_Direction at TRISB5_bit;
  10. sbit LCD_D4_Direction at TRISB0_bit;
  11. sbit LCD_D5_Direction at TRISB1_bit;
  12. sbit LCD_D6_Direction at TRISB2_bit;
  13. sbit LCD_D7_Direction at TRISB3_bit;
  14.  
  15. short int x = 0;
  16. char merenja[9];
  17.  
  18. void meri() {
  19.      int i;
  20.      PORTA = 0x2;
  21.      for(i =0; i<x; i++){
  22.              merenja[i] = ADC_Read(7);
  23.              Delay_ms(15);
  24.      }
  25. }
  26.  
  27. void prikazi() {
  28.      int i;
  29.      PORTA = 0x3;
  30.      for(i =0; i<x; i++)
  31.      {
  32.            Lcd_Out(1,1,merenja[i]);
  33.            Delay_ms(35);
  34.      }
  35. }
  36.  
  37. void prikaziMax() {
  38.      int i;
  39.      char max = 0;
  40.      PORTA = 0x4;
  41.      for(i = 0; i < x; i++) {
  42.            if(merenja[i] > max){
  43.                          max = merenja[i];
  44.            }
  45.      }
  46.      Lcd_Out(1,1,"MAX e");
  47.      Lcd_Out(6, 1,  merenja[i]);
  48. }
  49.  
  50. char kp;
  51.  
  52. void main() {
  53.        Keypad_Init();
  54.        ANSEL = 0b00000100;
  55.        ANSELH = 0;
  56.        Lcd_Init();
  57.        Lcd_Cmd(_LCD_CLEAR);
  58.        Lcd_Cmd(_LCD_CURSOR_OFF);
  59.        TRISE = 1;
  60.        while(1) {
  61.                 do{
  62.                   kp = Keypad_Key_Click();
  63.  
  64.                   PORTA=kp;
  65.                 }while (!kp);
  66.                 switch (kp)
  67.                 {
  68.                   case 1:
  69.                        x = 1;
  70.                        break; // 1
  71.                   case 2:
  72.                        x = 2;
  73.                        break; // 2
  74.                   case 3:
  75.                        x = 3;
  76.                        break; // 3
  77.                   case 4:
  78.                        meri();
  79.                        PORTA = 0x1    ;
  80.                        break; // MERI
  81.                   case 5:
  82.                        x = 4;
  83.                        break; // 4
  84.                   case 6:
  85.                        x = 5;
  86.                        break; // 5
  87.                   case 7:
  88.                        x = 6;
  89.                        break; // 6
  90.                   case 8:
  91.                        prikazi();
  92.                        PORTA = 0x1    ;
  93.                        break; // PRIKAZI SITE
  94.                   case 9:
  95.                        x = 7;
  96.                        break; // 7
  97.                   case 10:
  98.                        x = 8;
  99.                        break; // 8
  100.                   case 11:
  101.                        x = 9;
  102.                        break; // 9
  103.                   case 12:
  104.                        prikaziMax();
  105.                        PORTA = 0x1    ;
  106.                        break; // MAKSIMUM
  107.                   case 14:
  108.                        x = 0;
  109.                        break; // 0
  110.                 }
  111.        }
  112. }
Add Comment
Please, Sign In to add comment