Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. /*
  2. * lab7.c
  3. *
  4. * Created: 2018-04-18 09:32:14
  5. * Author: student
  6. */
  7.  
  8. #include <avr/io.h>
  9. #include <lcd.h>
  10. #include <util/delay.h>
  11. #include <math.h>
  12.  
  13. void
  14. lcd_clear(void)
  15. {
  16. pisz_com(0x01);
  17. }
  18. void
  19. lcd_home(void)
  20. {
  21. pisz_com(0x02);
  22. }
  23.  
  24. void
  25. init_lcd(void)
  26. {
  27. MCUCR=_BV(SRE)|_BV(SRW10);
  28. XMCRA=_BV(SRW00)|_BV(SRW01)|_BV(SRW11);
  29. MMnet104_CONF=0x13;
  30.  
  31. _delay_ms(15);
  32. COMM_LCD = 0x30;
  33. _delay_ms(5);
  34. COMM_LCD = 0x30;
  35. _delay_ms(0.2);
  36. COMM_LCD = 0x30;
  37. _delay_ms(30);
  38. COMM_LCD = 0x38; //Słowo danych 8-bitów, dwa wiersze, znak 7x5
  39. //pikseli
  40. test_bf();
  41. pisz_com(0x0C); //Włączenie wyświetlacza, bez kursora, bez
  42. //migotania
  43. lcd_clear();
  44. pisz_com(0x06); //Wpisywanie znaków od lewej, autoinkrementacja
  45.  
  46. lcd_home();
  47. }
  48.  
  49. void disp_txt(char* _adres)
  50. {
  51. volatile uint8_t al;
  52. for (int i = 0; i<16; i++)
  53. {
  54. al = _adres[i];
  55. if (al == 0x00) break;
  56. pisz_ws(al);
  57. }
  58. }
  59.  
  60. void disp1(char* _adres)
  61. {
  62. pisz_com(0b10000000);
  63. disp_txt(_adres);
  64. }
  65.  
  66. void disp2(char* _adres)
  67. {
  68. pisz_com(0b11000000);
  69. disp_txt(_adres);
  70. }
  71.  
  72. int main(void)
  73. {
  74. init_lcd();
  75. ADMUX = 0b01000010;
  76.  
  77. ADCSRA = ADCSRA | 128;
  78. ADCSRA = ADCSRA | 7;
  79. ADCSRA = ADCSRA | 32;
  80. ADCSRA = ADCSRA | 64;
  81. while(1)
  82. {
  83. char wynik[9];
  84.  
  85. wynik[0]='V';
  86. wynik[1]='i';
  87. wynik[2]='n';
  88. wynik[3]='=';
  89. wynik[5]='.';
  90. wynik[7]='V';
  91. float vin = ADC*5.0/1024.0;
  92. wynik[4] = (int)(vin + 0.01) + '0';
  93. wynik[6] = (int)((vin + 0.01) * 10) % 10 + '0';
  94. wynik[8] = '\0';
  95. disp2(wynik);
  96.  
  97. char wynik2[24];
  98. int adc = ADC;
  99. wynik2[0]='A';
  100. wynik2[1]='D';
  101. wynik2[2]='C';
  102. wynik2[3]='=';
  103. wynik2[4]='0';
  104. wynik2[5]='b';
  105. for(int i=6;i< 16;i++){
  106. if(adc&0b00000001)
  107. wynik2[21-i] = '1';
  108. else
  109. wynik2[21-i]='0';
  110. adc >>= 1;
  111. }
  112. wynik2[17] = '\0';
  113. disp1(wynik2);
  114.  
  115. _delay_ms(250);
  116. }
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement