48697 (608740), страница 2
Текст из файла (страница 2)
txd_bufer[2]=table_ascii[bufer_led[2]]; // параметр
txd_bufer[3]=table_ascii[bufer_led[3]]; //параметр
txd_index=0;
}
void transmit(void)
{
if (txd_bufer[txd_index]){
UDR=txd_bufer[txd_index++];
}
}
void measure_a(void)
{
ADMUX=num_ch; // номер канала в мультиплексор АЦП
adc_start;
}
void display_parm(void)
{// отображение на терминале значения параметра
bufer_led[1]=num_ch+1; // выдать номер канала (1...6 вместо 0...5)
d2_bcd(ampl);//вызов программы обработки числа
}// end of display_parm
void d2_bcd(long val)
{// 2-10
bufer_led[2]=val/10;
if (!bufer_led[2]) bufer_led[2]=blank_symb;
bufer_led[3]=val%10;
}// end of d2_bcd
term.h
void count_time_gen_init(void){
count_time_gen=time_gen;
}
void count_time_ind_init(void){
count_time_ind=time_ind;
}
#define tcnt1_freq 4000000 // частота тактирования таймера
#define bufer_led_size 5 // длина буфера индикатора
#define blank_symb 0x0F // символ гашения
#define txd_buf_len 8 // äдлина буфера передачи RS232
#define CR 13 // перевод строки
#define LF 10 // в начало строки
#define TAB 9 // табуляция
#define ubr19200 12 // 19200 бит/с при 4МГц кварце
#define t0_init (256-125) // для загрузки в таймер диспетчера
#define t0_ext_init 5 // 125*5=625
#define count_50_init 50 // для загрузки в счетчик 500 ms
#define MAX_CH 6
#define a_term 0.4883//коэффициент пересчета
#define b_term -559// коэффициент пересчета
#define time_gen 10 //5 сек время переключения каналов
#define time_ind 10 //5 сек время индикации
Описание программы
Работа программы основывается на решении следующих задач:
-
общая настройка портов ввода/вывода, таймеров, конфигурация и т.д.
-
настройка АЦП.
1) внутренний источник напряжения 5V
2) прерывания от компаратора
3) коэффициент деления 128(частота 31 250 ГЦ)
4) непрерывное преобразование
-
настройка UART
-
асинхронный режим
-
прерывания по передаче вкл.
-
скорость обмена 9600 Бод(бит в секунду)
-
прерывания по таймеру, формирование задержки 500мс.
-
прерывание АЦП от компаратора
-
формирование буфера передачи данных (3 байта – 1-й байт- №канала, 2-й, 3-й байт - данные), отправка буфера передачи данных
Содержимое буфера передачи данных отображается на экране ,с помощью программы Hiper Terminal.
Описание применения программы.
Программа позволяет обрабатывать данные ,полученные с термодатчика и выводить их на экран через последовательный RS-232. В очередном порядке выводится номер канала и температура и ,измеренную данным каналом.
ПРИЛОЖЕНИЕ 3
Копия экрана
ПРИЛОЖЕНИЕ 4
Реальная модель устройства