Файл: Курсова Кузьмич ІА-72.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 08.04.2024

Просмотров: 21

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

DDRB|=(1<<1);

PORTB&=~(1<<1);

DDRD|=(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7);//leds for out PORTD&=~((1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7));//voltage for leds 0

}

void ADCPreset(void)

{

DDRC&=~(1<<0);//FOR INPUT ADC

ADCSRA|=(1<<ADEN)//enable adc

|(1<<ADSC)//write this bit to one to start each conversion. |(1<<ADFR)//adc free running mode |(1<<ADPS2)|(1<<ADPS0);//division factor 32

ADMUX &= (~(1 << REFS1))&(~(1 << REFS0));//external //voltage reference

//read from ADC0 admux =0000;

}

void InterruptPreSet()

{

//increase this value to see diods blinking like old tv

TCCR0|=(1<<CS01);// p 72 (clkI/O)/8 (From prescaler)

TCCR0&=~((1<<0)|(1<<2));//same as previous set 0 bit

TIMSK|=(1<<TOIE0);//p 100 datasheep timer/counter 0 overflow interrupt TCNT0=0;//tccr0 counting register

//SREG|=(1<<7);//global interrupt enable sei();

}

void USART_Init( unsigned int ubrr)

{

/* Set baud rate */

//UBRRH = (unsigned char)(ubrr>>8);

UBRRL = 51;//(unsigned char)ubrr;set baud rate 9600 /* Enable receiver and transmitter */

UCSRB = (1<<RXEN)|(1<<TXEN);

/* Set frame format: 8data, 2stop bit */ UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0); //UCSRC&=~(1<<UMSEL);//Asynchronous Operation

}

void UART_Tchar(unsigned char data)

{

UDR=data; while(~UCSRA&(1<<TXC));//check flag txc

}

void UART_Tstring(char *p)

{

while(*p)

{

UART_Tchar(*(p++));

_delay_ms(100);

}

}

char UART_Rchar()

{

while(~UCSRA&(1<<RXC));


return UDR;

}

char *UART_Rstring(char *buffer)

{

char *str=buffer; do

{

*(buffer++)=UART_Rchar(); }while(*(buffer-1)!='\r');//enter or carrigeReturn

*buffer='\0'; return str;

}

int main(void)

{

PreSet(); ADCPreset(); InterruptPreSet();

USART_Init(MYUBRR); char strR[10];

char *number;

char *enter = "Enter number 100 to 500 included: "; DDRB=0xFF;

UART_Tstring(enter);

_delay_ms(1); //Rdata=UART_Rchar(); //PORTB=Rdata; number=UART_Rstring(strR); value=atoi(number);

while (1)

{

TunOnLed();

}

}