Основы программирования микроконтроллеров ATMega128 и 68hc908. Китаев Ю.В. - 102 стр.

UptoLike

Составители: 

102
while(*s!=0)LCDNchar(*s++);//== выводить символы, пока *s не равно 0
}
LCDNclr(){LCDNctrl(1);Delay(200);}//== очистка дисплея
LCDNxy(char x,char y){//== позиционирование курсора
//== x = 0..15 позиция символа в строке, y=0/1 - верхн./нижн. строка
LCDNctrl(0x80+(x+((y)?0x40:0)));
}
Send_SPI_Byte(char c){//== передача байта от ведущего к ведомому
SPDR=c;//== при записи в регистр SPDR, байт передается по линии MOSI
//== в ведомое устройство (термодатчик)автоматически
while((SPSCR & (1<<SPCRF))==0)continue;//== проверяем бит готовности
c=SPDR;//== нужно обязательно прочитать !!!! (и отбросить)
//== т.к. регистры данных ведущего и ведомого SPI устр-в замкнуты в
кольцо
}
LCDN_ReadSPIValue(){//== чтение и отображение принятого байта
char c,s[10];
c=SPDR; //== читаем принятый байт из внутр. буфера SPI
sprintf(s,"%d",(signed char)c);//== преобразуем целый тип со знаком в
строку ASCII
LCDNstrn(s);//== отображаем температуру на ЖКИ
}
SPIctrl(){//== передаем адрес регистра управления и управляющий байт
DS1722
PTD|=1<<SS;//== активируем термодатчик (ТД) по входу CE (он же
ChipSelect)
Send_SPI_Byte(0x80);//== 80-адрес рег-ра управл. ТД для записи (00-для
чтения)
Send_SPI_Byte(0xF1);//==
1SHOT=SD=1(однокр.пуск),R2=R1=R0=0(точность t-ры 8 бит)
//== |1|1|1|1SHOT|R2|R1|R0|SD| - формат управл. байта ТД
PTD&=~(1<<SS);//== деактивируем термодатчик по входу CE
Delay(150);//== необходимая задержка
}
SPIdata(){//== передаем адреса регистров температуры
PTD|=(1<<SS);//== активируем термодатчик (ТД) по входу CE
Send_SPI_Byte(0x02);//== передаем адрес регистра старшего байта t-ры
Send_SPI_Byte(0x02);//== при 8-ми битной t-ре СНОВА ст.байт
//== при 9..12-ти битной t-ре СНАЧАЛА 0x01(мл.байт), ЗАТЕМ 0x02(ст.)
PTD&=~(1<<SS);//== снова деактивируем термодатчик по входу CE
}
KBDinit(){//== установка интерфейса клавиатуры в исходное состояние
DDRA=0x0E;//== 4 ст. бита - на ввод (линии возврата),3 бита PTA1..3 - на
вывод
PTAPUE=0xF0;//== включаем 4 подтягивающих резистора (PullUp) на