//последует чтение регистра данных H_rez_AD7705 = AD7705rx_tx_byte(0x00); //чтение регистра данных
//(старший байт АЦП) L_rez_AD7705 = AD7705rx_tx_byte(0x00); //чтение регистра данных
//(младший байт АЦП) H_rez_AD7705 = (H_rez_AD7705 « 8) I L_rez_AD7705; //формирование результата Res_AD7705_V = (H_rez_AD7705 * Uref_V) / 65536; //вычисление результата АЦП
// в вольтах/10000 (0.1 мВ) //преобразование в десятичный вид и индикация результата АЦП в дискретах rlOOOO = H_rez_AD7705 / 10000; H_rez_AD7705 = H_rez_AD7705 % 10000; rlOOO = H_rez_AD7705 / 1000; H_rez_AD7705 = H_rez_AD7705 % 1000; rlOO = H_rez_AD7705 / 100; H_rez_AD7705 = H_rez_AD7705 % 100; rlO = H_rez_AD7705 / 10; rl = H_rez_AD7705 % 10; lcd_pro_data(rlOOOO, Q)j. lcd_tek_data(rl000) ; '-lcd_tek_data(rl00); Icd_tek_data(rl0); lcd_tek_data(rl);
//преобразование в десятичное представление и индикация результата АЦП в вольтах rlOOOO = Res_AD7705_V / 10000; Res_AD7705_V = Res_AD7705_V % 10000; rlOOO = Res_AD7705_V / 1000; Res_AD7705_V = Res_AD7705_V % 1000;
rlOO = Res_AD7705_V / 100; Res_AD7705_V = Res_AD7705_V % 100; rlO = Res_AD7705_V / 10; rl = Res_AD7705_V % 10; lcd_pro_data(rlOOOO,64); lcd_tek_data(','); lcd_tek_data(rlOOO); lcd_tek_data(rl00); lcd_tek_data(rl0); lcd_tek_data(rl); lcd_pro_data('B',71); }
Файл AD7705.h
//------------------------------------------------------------------------
//Заголовки и определения обслуживания AD7705
//------------------------------------------------------------------------
tinclude "hardware.h" //подключение специальных заголовков и определений tinclude "spi.h" //подключение специальных заголовков и определений
//Макросы сброса и установки выходов, производящих сброс (RES) и выбор (CS) AD7705 tdefine OUT_CS_AD7705_DOWN IO0CLR_bit.P0_8=l tdefine OUT_CS_AD7705_UP IO0SET_bit.P0_8=l
tdefine OUT_RES_AD7705_DOWN IO0CLR_bit.P0_9=l tdefine OUT_RES_AD7705_UP IO0SET_bit.P0_9=l //Объявление функции инициализации линий CS и RES AD7705 void AD7705_CS_RES();
//Объявление функции сброса AD7705 через SPIO void AD7705reset();
//Объявление функции передачи байта и приема байта через SPI0 для AD7705 U8 AD7705rx_tx_byte(U8);
//Объявление функции инициализации AD7705 через SPI0 void AD7705init();
//Объявление функции одного измерения AD7705 через SPI0 и индикации результата //в десятичном виде, в дискретах АЦП и вольтах void AD7705izm_ind();
Файл main.c программы обслуживания SPI
//--------------------------------------------------г----------------------
// Основна^Гугрограмма обслуживания SPI
//------------------------------------------------------------------------
tinclude <iolpc2129.h> //подключение стандартных заголовков и определений tinclude "hardware.h" //подключение специальных заголовков и определений tinclude "spi.h" //подключение специальных заголовков и определений tinclude "AD7705.h" //подключение специальных заголовков и определений volatile extern U8 flagn_kn0, flagn_knl, flagn_kn2, flagn_kn3; //------------------------------------------------------------------------
| НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |