//преобразование в десятичное представление и индикация результата АЦП в мВ
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 ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |