//----------------------------------------------------------------------------// Прототипыфункций.
//----------------------------------------------------------------------------void vWait25 (unsigned char); // n * 25ms задержка
extern void vHardwareInit (void); // инициализацияоборудования
extern void vSoftwareInit (void); // инициализацияпеременных
//----------------------------------------------------------------------------// Глобальныепеременные
//----------------------------------------------------------------------------volatile unsigned char bTimer1Flag; // Статус Flag Timer1
volatile unsigned char bWatchTimer; // Статус Flag Watch Timer
volatile unsigned char bKey3Flag; // Статус Key3
volatile unsigned char bKey2Flag; // Статус Key2
unsigned int ACP; //ИнициализацияАЦП
__no_init unsigned char set_done;
__no_init unsigned short temperature_max;
long temperature_out;
long temperature;
unsigned char menu;
//----------------------------------------------------------------------------// Константы
//----------------------------------------------------------------------------const char *text01="NEC K_Line ";
const char *text02="Taste it!-2 ";
const char *text03="Temperature ";
const char *text04="Measurement ";
const char *text05="max Temperature";
const char *text06="is already set";
const char *text07="is needed to set";
const char bgpat0[8] = {0x04,0x0a,0x04,0x00,0x00,0x00,0x00,0x00};
const char bgpat1[8] = {0x00,0x00,0x1f,0x1f,0x0e,0x04,0x00,0x00};
const char bgpat2[8] = {0x00,0x00,0x04,0x0e,0x1f,0x1f,0x00,0x00};
//----------------------------------------------------------------------------// Название: vWait10
// Описание: Модуль задержки программы в течении 10с.
//----------------------------------------------------------------------------void vWait10(unsigned char Number)
{
bTimer1Flag = FALSE; // Сброс Timer1
STARTTIMER1; // Запуск Timer1
while(Number > 0) {
while(bTimer1Flag == FALSE){ // Ожиданиепрерываний
__no_operation();
__no_operation();
}
bTimer1Flag = FALSE; // Сброс Timer2
Number--;
}
STOPTIMER1; // Остановка Timer1
return;
}
//----------------------------------------------------------------------------// Название: Output_result
// Описание: Вывод на экран данных
//----------------------------------------------------------------------------void Output_result(unsigned short data)
{
unsigned char bcd0,bcd1,bcd2,bcd3;
bcd0 = data / 1000;
data = data % 1000;
bcd1 = data / 100;
data = data % 100;
bcd2 = data / 10;
bcd3 = data % 10;
LCD_cursor(0x41);
if(temperature_neg)LCD_char(0x2d);
else LCD_char(0x20);
if(bcd0) LCD_char(0x31);
if(!bcd0&!bcd1)LCD_char(0x20);
else LCD_data(bcd1);
LCD_data(bcd2);
LCD_char(0x2e);
LCD_data(bcd3);
LCD_char(0x20);
LCD_char(0x00);
LCD_char(0x43);
LCD_char(0x20);
}
//----------------------------------------------------------------------------// Название: Main Function
// Описание: Расчёт и вывод температуры на дисплей
//----------------------------------------------------------------------------void main( void )
{
temperature_max=0;
__disable_interrupt(); // Отключение всех прерываний
vHardwareInit(); // Настройка периферии
vSoftwareInit(); // Инициализация переменных
LCD_init(); // Инициализация ЖКИ
LCD_inst(0x01); // Очистка дисплея
LCD_write_CGRAM(0x00,&bgpat0[0]);
LCD_write_CGRAM(0x01,&bgpat1[0]);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.