Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * lab7.c
- *
- * Created: 2018-04-18 09:32:14
- * Author: student
- */
- #include <avr/io.h>
- #include <lcd.h>
- #include <util/delay.h>
- #include <math.h>
- void
- lcd_clear(void)
- {
- pisz_com(0x01);
- }
- void
- lcd_home(void)
- {
- pisz_com(0x02);
- }
- void
- init_lcd(void)
- {
- MCUCR=_BV(SRE)|_BV(SRW10);
- XMCRA=_BV(SRW00)|_BV(SRW01)|_BV(SRW11);
- MMnet104_CONF=0x13;
- _delay_ms(15);
- COMM_LCD = 0x30;
- _delay_ms(5);
- COMM_LCD = 0x30;
- _delay_ms(0.2);
- COMM_LCD = 0x30;
- _delay_ms(30);
- COMM_LCD = 0x38; //Słowo danych 8-bitów, dwa wiersze, znak 7x5
- //pikseli
- test_bf();
- pisz_com(0x0C); //Włączenie wyświetlacza, bez kursora, bez
- //migotania
- lcd_clear();
- pisz_com(0x06); //Wpisywanie znaków od lewej, autoinkrementacja
- lcd_home();
- }
- void disp_txt(char* _adres)
- {
- volatile uint8_t al;
- for (int i = 0; i<16; i++)
- {
- al = _adres[i];
- if (al == 0x00) break;
- pisz_ws(al);
- }
- }
- void disp1(char* _adres)
- {
- pisz_com(0b10000000);
- disp_txt(_adres);
- }
- void disp2(char* _adres)
- {
- pisz_com(0b11000000);
- disp_txt(_adres);
- }
- int main(void)
- {
- init_lcd();
- ADMUX = 0b01000010;
- ADCSRA = ADCSRA | 128;
- ADCSRA = ADCSRA | 7;
- ADCSRA = ADCSRA | 32;
- ADCSRA = ADCSRA | 64;
- while(1)
- {
- char wynik[9];
- wynik[0]='V';
- wynik[1]='i';
- wynik[2]='n';
- wynik[3]='=';
- wynik[5]='.';
- wynik[7]='V';
- float vin = ADC*5.0/1024.0;
- wynik[4] = (int)(vin + 0.01) + '0';
- wynik[6] = (int)((vin + 0.01) * 10) % 10 + '0';
- wynik[8] = '\0';
- disp2(wynik);
- char wynik2[24];
- int adc = ADC;
- wynik2[0]='A';
- wynik2[1]='D';
- wynik2[2]='C';
- wynik2[3]='=';
- wynik2[4]='0';
- wynik2[5]='b';
- for(int i=6;i< 16;i++){
- if(adc&0b00000001)
- wynik2[21-i] = '1';
- else
- wynik2[21-i]='0';
- adc >>= 1;
- }
- wynik2[17] = '\0';
- disp1(wynik2);
- _delay_ms(250);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement