Предыдущая Следующая

//преобразование в десятичное представление и индикация результата АЦП в мВ

rlOOO = ADCres_mV / 1000; ADCres_mV = ADCres_mV % 1000; rlOO = ADCres_mV / 100; ADCres_mV = ADCres_mV % 100; rlO = ADCres_mV / 10; rl = ADCresjmV % 10; lcd_pro_data(rl000,8); lcd_tek_data(rlOO); lcd_tek_data(rlO); lcd_tek_data(rl); lcd_pro_data(rus_m,13); lcd_tek_data(1B'); }

//-------------------------------------------------------------------

Файл adc.h

//------------------------------------------------------------------------

//Заголовки и определения обслуживания модуля АЦП

//------------------------------------------------------------------------

#include "hardware.h" // подключение специальных заголовков и определений //Объявление функции инициализации и включения модуля АЦП void ADCinit();

//Объявление функции запуска однократного преобразования модуля АЦП

//и индикации результата преобразования в десятичном виде в дискретах и мВ

void ADCstart_ind_rez();

//------------------------------------------------------------------------

Файл main.c программы обслуживания АЦП

//------------------------------------------------------------------------

// Основная программа обслуживания АЦП

//------------------------------------------------------------------------

#include <iolpc2129.h> // подключение стандартных заголовков и определений #include "hardware.h" // подключение специальных заголовков и определений #include "adc.h" // подключение специальных заголовков и определений

volatile extern U8 flagn_kn0, flagn_knl, flagn_kn2, flagn_kn3; static U8 adc_stat=0;

//------------------------------------------------------------------------

void main(void) {

CPUinitO; //инициализация системы

_disable_interrupt(); //запрет прерываний

INTERRUPTSinit(); //инициализация прерываний

TIMEROinitstart(); //инициализация ТО

_enable_interrupt(); //разрешение прерываний

delay(1000000); //задержка на сброс ЖКИ

lcd_init(); //инициализация ЖКИ

delay(lOOOOOO); //

lcd_clear(); //очистка экрана ЖКИ

ADCinit(); //инициализация и включение модуля АЦП

A_LEDl_OFF; //Погасить светодиод 1

A_LED2_OFF; //Погасить светодиод 2

while(1) //Начало основного цикла

{

if (adc_stat == 1) //производить циклические преобразования {

//запуск однократного преобразования модуля АЦП и индикация

// результата преобразования в десятичном виде в дискретах и мВ

ADC s t art_ind_rе z A_LED1_0N; delay(200000); A_LED1_0FF; delay(2000000); }

if (flagn_kn0==l) {

flagn_kn0=0; adc_stat=l; A_LED2_ON; }

if (flagn_knl==l) {

flagn_knl=0; adc_stat=0; A_LED2_OFF; }

} }

//-------------------

0;

// зажечь светодиод 1 // задержка (вспышка) // погасить светодиод 1 // задержка (пауза)

// нажималась ли кнопка 0

// да, сбросить флаг нажатия // разрешить преобразования // зажечь светодиод 2

// нажималась ли кнопка 1


Предыдущая Следующая



НА ГЛАВНУЮ | ЧТО ТАКОЕ PIC ? | ПРОГРАММАТОР | ПРОЕКТЫ | СТАТЬИ | ССЫЛКИ | КАРТА САЙТА
Hosted by uCoz