AngelovskiK

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

Dec 11th, 2019
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.43 KB | None | 0 0
  1. sbit LCD_RS at RA4_bit;
  2. sbit LCD_EN at RA5_bit;
  3. sbit LCD_D4 at RA0_bit;
  4. sbit LCD_D5 at RA1_bit;
  5. sbit LCD_D6 at RA2_bit;
  6. sbit LCD_D7 at RA3_bit;
  7. sbit LCD_RS_Direction at TRISA4_bit;
  8. sbit LCD_EN_Direction at TRISA5_bit;
  9. sbit LCD_D4_Direction at TRISA0_bit;
  10. sbit LCD_D5_Direction at TRISA1_bit;
  11. sbit LCD_D6_Direction at TRISA2_bit;
  12. sbit LCD_D7_Direction at TRISA3_bit;
  13. bit prikazuva;
  14. int counter; // broi do 3, odnosno bidejki 128 ni e preskaler, a brojacot ni broi 187 pati, 187 * 128 * 3 = 71808 ~~ 72k == 36ms
  15.  
  16. void interrupt(){
  17.   if (INTF_bit==1){
  18.      prikazuva = !prikazuva;
  19.      Lcd_Cmd(_LCD_CLEAR);
  20.      if(prikazuva){
  21.        Lcd_Out(1,1,"Kristijan");
  22.        INTCON = INTCON | 0x20;  // ovozmozi tajmerot
  23.        counter = 0;
  24.      }
  25.      INTF_bit = 0;
  26.    }
  27.    if(TMR0IF_bit){
  28.      TMR0 = 78;         // broi 187 pati do overflow -- reset
  29.      counter++;
  30.      if(counter == 2) {
  31.        Lcd_Out(2,1,"165025");
  32.        INTF_bit = 0;
  33.        INTCON= INTCON & 0xDF;  // iskluci go tajmerot
  34.      }
  35.      TMR0IF_bit = 0;
  36.    }
  37. }
  38. void main() {
  39.      int cekori = 0;
  40.      int povtoruvanja = 0;
  41.      ANSEL = 0;
  42.      ANSELH= 0;
  43.      C1ON_bit = 0;
  44.      C2ON_bit = 0;
  45.      TRISA = 0;
  46.      Lcd_Init();
  47.      INTCON=0x90;  // ovozmozi nadvoresen interrupt no ne i tajmer
  48.      OPTION_REG = 0x86; // preskaler 1;128
  49.      TMR0 = 78;         // broi 187 pati do overflow
  50.      PORTA.B4 = 0;
  51.      PORTA.B5 = 1;
  52.      while(1){
  53.      }
  54. }
Add Comment
Please, Sign In to add comment