Guest User

Untitled

a guest
Jan 21st, 2020
69
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