SHARE
TWEET

Untitled

a guest Jan 21st, 2020 62 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  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. char cifra;
  16. int zbir = 0, zbir1=0;
  17. int chuvajCifra = 0;
  18. char *niza;
  19. int i;
  20.  
  21. void main() {
  22.   ANSEL = 0; //za postavuvanje na digitalni bitovi
  23.   ANSELH = 0;
  24.  
  25.   C1ON_bit = 0; //se iskluchuvaat komparatorite
  26.   C2ON_bit = 0;
  27.  
  28.   TRISA = 0;
  29.   Lcd_Init();
  30.   UART1_Init(9600); //inicijalizacija na komunikacijata so dadenata brzina od 9600bps
  31.   Delay_ms(50); //chekanje na modulot da se sgtabilizira
  32.  
  33.   while (1) {      //beskonechen ciklus
  34.         if (UART1_Data_Ready()) {  //ako ima podatoci za primanje
  35.            cifra = UART1_Read();   //se prezemaat
  36.            if(cifra == '$'){
  37.                     if(chuvajCifra == 0) {  //ako e vnesen samo znak $
  38.                        break; //izlez od programata so $$
  39.                     }
  40.                     niza = "   ";
  41.                     for(i = 2; zbir > 0; i--, zbir/=10){
  42.                        int c = zbir%10;
  43.                        niza[i] = c + '0';
  44.                     }
  45.                     Lcd_Cmd(_LCD_CLEAR); //zbrishi go ekranot
  46.                     Lcd_Out(1,1, niza);  //ispechati ja prvata vrednost od nizata
  47.                     chuvajCifra = 0; // se resetira prom chuvajCifra
  48.            }
  49.            else if(chuvajCifra == 16) {
  50.                     chuvajCifra = 0;
  51.                     zbir = 0;
  52.                     Lcd_Cmd(_LCD_CLEAR);
  53.                     Lcd_Out(1,1,"Greska!");
  54.            }
  55.            else if(cifra < '0' || cifra > '9'){ //ako se vnese broj so povekje cifri
  56.                     chuvajCifra = 0;
  57.                     zbir = 0;
  58.                     Lcd_Cmd(_LCD_CLEAR);
  59.                     Lcd_Out(1,1,"Greska!");
  60.            }
  61.            
  62.            else {   zbir1 = cifra - '0';
  63.                     zbir = zbir + zbir1;
  64.                     chuvajCifra++;
  65.            }
  66.         }
  67.   }
  68. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top