Проектування мікропроцесорної метеостанції

Загальна характеристика метеорологічних приладів: термометрів, барометрів, психрометрів, гігрометрів. Розробка електричної принципової схеми мікропроцесорної метеостанції, розрахунок її надійності. Вибір мікроконтролера і датчиків, монтаж друкованих плат.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид дипломная работа
Язык украинский
Дата добавления 13.06.2012
Размер файла 3,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

uart_puts(buffer);

uart_puts_P("°C");

}

void DS18X20_show_id_uart(uint8_t *id, size_t n)

{

size_t i;

for(i = 0; i < n; i++) {

if (i == 0) uart_puts_P("FC:");

else if (i == n-1) uart_puts_P("CRC:");

if (i == 1) uart_puts_P("SN: ");

uart_puthex_byte(id[i]);

uart_puts_P(" ");

if (i == 0) {

if (id[0] == DS18S20_ID) uart_puts_P ("(18S)");

else if (id[0] == DS18B20_ID) uart_puts_P ("(18B)");

else uart_puts_P ("(?)");

}

}

if (crc8(id, OW_ROMCODE_SIZE))

uart_puts_P(" CRC FAIL ");

else

uart_puts_P(" CRC O.K. ");

}

void show_sp_uart(uint8_t *sp, size_t n)

{

size_t i;

uart_puts_P("SP:");

for(i = 0; i < n; i++) {

if (i == n-1) uart_puts_P("CRC:");

uart_puthex_byte(sp[i]);

uart_puts_P(" ");

}

}

/* verbose output rom-search follows read-scratchpad in one loop */

uint8_t DS18X20_read_meas_all_verbose(void)

{

uint8_t id[OW_ROMCODE_SIZE], sp[DS18X20_SP_SIZE], diff;

uint8_t i;

uint16_t meas;

uint8_t subzero, cel, cel_frac_bits;

for(diff = OW_SEARCH_FIRST; diff != OW_LAST_DEVICE;)

{

diff = ow_rom_search(diff, &id[0]);

if(diff == OW_PRESENCE_ERR) {

uart_puts_P("No Sensor found\r");

return OW_PRESENCE_ERR;

}

if(diff == OW_DATA_ERR) {

uart_puts_P("Bus Error\r");

return OW_DATA_ERR;

}

DS18X20_show_id_uart(id, OW_ROMCODE_SIZE);

if(id[0] == DS18B20_ID || id[0] == DS18S20_ID) { // temperature sensor

uart_putc ('\r');

ow_byte_wr(DS18X20_READ); // read command

for (i=0 ; i< DS18X20_SP_SIZE; i++)

sp[i]=ow_byte_rd();

show_sp_uart(sp, DS18X20_SP_SIZE);

if (crc8(&sp[0], DS18X20_SP_SIZE))

uart_puts_P(" CRC FAIL ");

else

uart_puts_P(" CRC O.K. ");

uart_putc ('\r');

meas = sp[0]; // LSB Temp. from Scrachpad-Data

meas |= (uint16_t) (sp[1] << 8); // MSB

uart_puts_P(" T_raw=");

uart_puthex_byte((uint8_t)(meas>>8));

uart_puthex_byte((uint8_t)meas);

uart_puts_P(" ");

if(id[0] == DS18S20_ID) { // 18S20

uart_puts_P("S20/09");

}

else if (id[0] == DS18B20_ID) { // 18B20

i=sp[DS18B20_CONF_REG];

if ((i & DS18B20_12_BIT) == DS18B20_12_BIT) {

uart_puts_P("B20/12");

}

else if ((i & DS18B20_11_BIT) == DS18B20_11_BIT) {

uart_puts_P("B20/11");

}

else if ((i & DS18B20_10_BIT) == DS18B20_10_BIT) {

uart_puts_P(" B20/10 ");

}

else { // if ((i & DS18B20_9_BIT) == DS18B20_9_BIT) {

uart_puts_P("B20/09");

}

}

uart_puts_P(" ");

DS18X20_meas_to_cel(id[0], sp, &subzero, &cel, &cel_frac_bits);

DS18X20_uart_put_temp(subzero, cel, cel_frac_bits);

uart_puts("\r");

} // if meas-sensor

} // loop all sensors

uart_puts_P("\r");

return DS18X20_OK;

}

void LCDsendChar(uint8_t ch) //Sends Char to LCD

{

LDP=((ch&0b11110000)>>2);

LCP|=1<<LCD_RS;

LCP|=1<<LCD_E;

_delay_ms(5);

LCP&=~(1<<LCD_E);

LCP&=~(1<<LCD_RS);

_delay_ms(5);

LDP=((ch&0b00001111)<<2);

LCP|=1<<LCD_RS;

LCP|=1<<LCD_E;

_delay_ms(5);

LCP&=~(1<<LCD_E);

LCP&=~(1<<LCD_RS);

_delay_ms(5);

}

void LCDsendCommand(uint8_t cmd) //Sends Command to LCD

{

LDP=((cmd&0b11110000)>>2);

LCP|=1<<LCD_E;

_delay_ms(5);

LCP&=~(1<<LCD_E);

_delay_ms(5);

LDP=((cmd&0b00001111)<<2);

LCP|=1<<LCD_E;

_delay_ms(5);

LCP&=~(1<<LCD_E);

_delay_ms(5);

}

void LCDinit(void)//Initializes LCD

{

_delay_ms(10);

LDP=0x00;

LCP=0x00;

LDDR|=1<<LCD_D7|1<<LCD_D6|1<<LCD_D5|1<<LCD_D4;

LCDR|=1<<LCD_E|1<<LCD_RS;

//---------one------

LDP=0<<LCD_D7|0<<LCD_D6|1<<LCD_D5|1<<LCD_D4; //4 bit mode

LCP|=1<<LCD_E|0<<LCD_RS;

_delay_ms(5);

LCP&=~(1<<LCD_E);

_delay_ms(5);

//-----------two-----------

LDP=0<<LCD_D7|0<<LCD_D6|1<<LCD_D5|1<<LCD_D4; //4 bit mode

LCP|=1<<LCD_E|0<<LCD_RS;

_delay_ms(5);

LCP&=~(1<<LCD_E);

_delay_ms(5);

//-------three-------------

LDP=0<<LCD_D7|0<<LCD_D6|1<<LCD_D5|0<<LCD_D4; //4 bit mode

LCP|=1<<LCD_E|0<<LCD_RS;

_delay_ms(5);

LCP&=~(1<<LCD_E);

_delay_ms(5);

//--------4 bit--dual line---------------

LCDsendCommand(0b00101000);

//-----increment address, cursor shift------

LCDsendCommand(0b00001110);

}

void LCDclr(void) //Clears LCD

{

LCDsendCommand(1<<LCD_CLR);

}

void LCDhome(void) //LCD cursor home

{

LCDsendCommand(1<<LCD_HOME);

}

void LCDstring(uint8_t* data, uint8_t nBytes) //Outputs string to LCD

{

register uint8_t i;

// check to make sure we have a good pointer

if (!data) return;

// print data

for(i=0; i<nBytes; i++)

{

LCDsendChar(data[i]);

}

}

void LCDGotoXY(uint8_t x, uint8_t y) //Cursor to X Y position

{

register uint8_t DDRAMAddr;

// remap lines into proper order

switch(y)

{

case 0: DDRAMAddr = LCD_LINE0_DDRAMADDR+x; break;

case 1: DDRAMAddr = LCD_LINE1_DDRAMADDR+x; break;

case 2: DDRAMAddr = LCD_LINE2_DDRAMADDR+x; break;

case 3: DDRAMAddr = LCD_LINE3_DDRAMADDR+x; break;

default: DDRAMAddr = LCD_LINE0_DDRAMADDR+x;

}

// set data address

LCDsendCommand(1<<LCD_DDRAM | DDRAMAddr);

}

Размещено на Allbest.ru


Подобные документы

  • Техніко-економічне обґрунтування доцільності розробки структурної та електропринципової схеми мікропроцесорної метеостанції. Обґрунтування вибору мікроконтролера, перетворювача рівня сигналу, датчиків відносної вологості, атмосферного тиску, температури.

    дипломная работа [940,1 K], добавлен 06.03.2010

  • Загальна характеристика мікроконтролерів сімейства AVR фірми Atmel, складання структурної схеми електронних годинників та інформаційного табло. Розробка мікропроцесорної системи для багатоканального інформаційного табло на основі даного мікроконтролера.

    дипломная работа [2,7 M], добавлен 12.12.2010

  • Розробка мікропроцесорної системи управління роботом з контролем переміщення на базі мікроконтролера AT89C51. Розробка і опис структурної схеми мікропроцесорної системи. Відстань між світлодіодом і фототранзистором. Розробка алгоритмів програми.

    курсовая работа [2,3 M], добавлен 13.04.2013

  • Розробка структурної схеми мікропроцесора. Узгодження максимальної вхідної напруги від датчиків з напругою, що може обробити МПСза допомогою дільника напруги та аналогового буферного повторювача. Система тактування та живлення. Організація виводу даних.

    курсовая работа [354,3 K], добавлен 14.12.2010

  • Місце та основні характеристики пристрою в архітектурі мікропоцесорної системи. Розробка схеми електричної принципової малогабаритного двохпроменевого осцилографу-мультиметру. Схема електричної принципової електричного дзвоника. Принцип роботи пристрою.

    курсовая работа [1,3 M], добавлен 20.03.2009

  • Пристрої захисту офісу. Аналіз мікропроцесорних охоронних датчиків. Апаратна частина та принципова схема. Вибір типу контролера, наведення його технічних характеристик. Підбір елементів схеми, калькуляція виробу. Вибір середовища та мови програмування.

    курсовая работа [982,3 K], добавлен 15.02.2012

  • Короткий огляд систем автоматизації проектування електроніки: Quartus II, KiCad, MAX + PLUS II. Розробка охоронного пристрою на основі мікроконтролера за допомогою пакету Proteus VSM. Розрахунок споживаної потужності, пошук і усунення несправностей.

    курсовая работа [990,9 K], добавлен 10.05.2014

  • Мікросхемні та інтегральні стабілізатори напруги широкого використання. Розробка принципової електричної схеми. Розрахунок схеми захисту компенсаційного стабілізатора напруги від перевантаження. Вибір і аналіз структурної схеми та джерел живлення.

    курсовая работа [294,4 K], добавлен 06.03.2010

  • Розробка електричної схеми оптичної охоронної системи. Дослідження можливої реалізації структурних блоків. Вибір елементної бази та розрахунок параметрів елементів схеми. Характеристика особливостей сервісних датчиків і пристроїв охоронної сигналізації.

    курсовая работа [358,0 K], добавлен 12.03.2014

  • Характеристика структур систем мікропроцесорної централізації, їх порівняний аналіз. Розробка структурної схеми та оцінка її функціональних можливостей, сфери використання. Розробка схем включення обладнання. Розрахунок модулів введення-виведення.

    курсовая работа [3,2 M], добавлен 17.03.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.