#include <912b32.h>
#include <stdio.h>
void delay_100us(void);
void ADC_convert(void);
void delay_5ms(void);
void main(void) {
asm(" .area vectors (abs)\n" /*ΠΊΠΎΠ΄ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²Π΅ΠΊΡΠΎΡΠ° reset B32 */
" .org 0xFFF8\n"
" .word 0x8000, 0x8000, 0x8000, 0x8000\n"
" .text");
initialize_LCD(); /*ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΠ Π΄ΠΈΡΠΏΠ»Π΅Ρ */
ATDCTL2 = 0x80; /*ΠΏΠΎΠ΄Π°ΡΠ° ΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π° ΠΠ¦Π, ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ */
delay_5ms(); /*ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π²Ρ ΠΎΠ΄Π° ΠΠ¦Π Π² ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ */
ATDCTL3 = 0x00;
ATDCTL4 = 0x01; /*8-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π²ΡΠ΅ΠΌΡ Π²ΡΠ±ΠΎΡΠΊΠΈ 2 ΠΠ¦Π */
/*clk, ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ Π΄Π΅Π»Π΅Π½ΠΈΡ 4 */
ADC_convert(); /*ΠΠ¦Π ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ */
}
/********************************************************************/
/* void ADC_convert(void): ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠ°Ρ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ΅ΠΎΠΎΠ±ΡΠ°Π·ΠΎ- */
/* Π²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡΠ°Ρ Π΄ΠΎΡΡΡΠΏ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊ Π½Π΅ΠΌΡ. ΠΠ°ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ */
/* ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΡΠΈΡΡΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ */
/* ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΎ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΎ Π² ASCII*/
/* ΠΊΠΎΠ΄ ΠΈ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π° ΠΠΠ */
void ADC_convert() {
unsigned int sumadr;
unsigned int avg_bin_voltage;
unsigned int int_voltage;
unsigned int tens_int;
unsigned int ones_int;
unsigned int tenths_int;
unsigned int hundredths_int;
double voltage, abs_voltage;
char tens;
char ones;
char tenths;
char hundredths;
ATDCTL5 = 0x06; /*ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡ 4 ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠ°Π½Π°Π» 6 */
while((ATDSTAT & 0x8000)!= 0x8000) {
/*ΠΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ */
}
/*ΡΡΡΠ΅Π΄Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ΅ΡΡΡΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ */
sumadr = ADR0H + ADR1H + ADR2H + ADR3H;
avg_bin_voltage = sumadr/4;
/* ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π² Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅, Π»Π΅ΠΆΠ°ΡΠ΅Π΅ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ */
/* 0.00 Π΄ΠΎ 5.00 Π */
voltage = (avg_bin_voltage/256)*5;
/*ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΊ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ ΠΎΡ -10.00 Π΄ΠΎ +10.00 Π */
/*ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ */
abs_voltage = (fabs)((voltage - 2.5) * 4);
/*ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π² ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ -1000 */
/* Π΄ΠΎ +1000 */
int_voltage = (100*voltage);
/*ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅ΠΉ Π·Π½Π°ΡΠ°ΡΠ΅ΠΉ ΡΠΈΡΡΡ Π² */
/* ASCII ΠΊΠΎΠ΄ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ 48, */
/* ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π°Π΅Ρ ASCII ΠΊΠΎΠ΄ */
tens_int = int_voltage/1000;
tens = (char)(tens_int + 48);
/*ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅ΠΉ Π·Π½Π°ΡΠ°ΡΠ΅ΠΉ ΡΠΈΡΡΡ Π² */
/* ASCII ΠΊΠΎΠ΄ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ 48, */
/* ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π°Π΅Ρ ASCII ΠΊΠΎΠ΄*/
ones_int = int_voltage/100;
ones = (char)(ones_int + 48);
/*ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅ΠΉ Π·Π½Π°ΡΠ°ΡΠ΅ΠΉ ΡΠΈΡΡΡ Π² */
/* ASCII ΠΊΠΎΠ΄ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ 48, */
/* ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π°Π΅Ρ ASCII ΠΊΠΎΠ΄ */
tenths_int = (int_voltage - ones_int*100)/10;
tenths = (char)(tenths_int + 48);
/*ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅ΠΉ Π·Π½Π°ΡΠ°ΡΠ΅ΠΉ ΡΠΈΡΡΡ Π² */
/* ASCII ΠΊΠΎΠ΄ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ 48, */
/* ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π°Π΅Ρ ASCII ΠΊΠΎΠ΄ */
hundredths_int = (int_voltage - ones_int*100 - tenths_int*10)/1;
hundredths = (char)(hundredths_int + 48);
/*ΠΡΠ²ΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π½Π° ΠΠΠ */
if (voltage < 0) putchars('-'); /*ΠΡΠ²Π΅ΡΡΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π½Π°ΠΊ*/
else putchars('+'); /*ΠΡΠ²Π΅ΡΡΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π½Π°ΠΊ*/
putchars(tens);
putchars(ones);
putchars('.');
putchars(tenths);
putchars(hundredths);
putchars(' ');
putchars('V');
}
/********************************************************************/
/********************************************************************/
/*Π·Π°Π΄Π΅ΡΠΆΠΊΠ° Π² 100 ΠΌΠΊΡ, Π½Π° Π±Π°Π·Π΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Ρ ΡΠ°ΡΡΠΎΡΠΎΠΉ 8 ΠΠΡ */
/********************************************************************/
void delay_100us(void) {
int i;
for (i=0; i<50; i++) {
asm("nop");
}
}
/********************************************************************/
/*Π·Π°Π΄Π΅ΡΠΆΠΊΠ° Π² 5 ΠΌΡ, Π½Π° Π±Π°Π·Π΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Ρ ΡΠ°ΡΡΠΎΡΠΎΠΉ 8 ΠΠΡ */
/********************************************************************/
void delay_5ms(void) {
int i;
for (i=0; i<50; i++) {
delay_100us();
}
}
/********************************************************************/
/*Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΡΠ»Π°ΡΡ Π½Π° ΠΠΠ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΡΠ°ΡΡΠΎΠ²ΡΡ */
/* ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. Π€ΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈ-*/
/* Π·Π°ΡΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π΄ΠΈΡΠΏΠ»Π΅Ρ. */
/********************************************************************/
void initialize_lcd(void) {
delay_5ms();
delay_5ms();
delay_5ms(); /*Π·Π°Π΄Π΅ΡΠΆΠΊΠ° Π½Π° 15 ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΠΠ */
putcommands(0x38); /*ΡΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ */
delay_5ms();
putcommands(0x38);
delay_100us();
putcommands(0x38);
putcommands(0x38);
putcommands(0x0C);
putcommands(0x01); /*ΠΡΠΈΡΡΠΈΡΡ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ */
putcommands(0x06); /*Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ*/
putcommands(0x0E); /*ΠΠΊΠ»ΡΡΠΈΡΡ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ,Π²ΡΠ²Π΅ΡΡΠΈ ΠΌΠΈΠ³Π°ΡΡΠΈΠΉ ΠΊΡΡΡΠΎΡ */
putcommands(0x02); /*ΠΠΎΠ·Π²ΡΠ°Ρ */
}
/********************************************************************/
/* Π€ΡΠ½ΠΊΡΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠΎΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΈΠ³Π½Π°Π»Ρ RS ΠΈ */
/* ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΠΈΡ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΠΎΡΡ */
/********************************************************************/
void putchars(unsigned char c) {
DDRP = 0xFF; /*ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Port P ΠΊΠ°ΠΊ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ */
DDRDLC = DDRDLC | 0x0C; * ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ PORTDLC[3:2] ΠΊΠ°ΠΊ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ */
PORTP = c; /* ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΠΊ Π‘ ΠΏΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ */
PORTDLC= PORTDLC|0x08 /* ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ RS Π² 1 Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ */
PORTDLC= PORTDLC|0x04 /* ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ E Π² 1 ( PORTDLC[5] = 1) */
PORTDLC = 0; /* ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ E ΠΈ RS Π² 0 */
delay_5ms(); /* ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°ΡΡ 5ΠΌΡ */
}
/********************************************************************/
/*Π€ΡΠ½ΠΊΡΠΈΡ putcommand ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π½Π° ΠΠ Π΄ΠΈΡΠΏΠ»Π΅Ρ */
/********************************************************************/
void putcommands(unsigned char d) {
DDRP = 0xFF; /*ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΡΡ PORTP Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ */
DDRDLC = DDRDLC|0x0C; /*ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄Ρ PORTDLC[3:2] */
/* Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΡ ΠΎΠ΄Π½ΡΡ */
PORTDLC = PORTDLC & 0xF7; /* ΠΊΠΎΠΌΠ°Π½Π΄Π° RS = 0 */
PORTP = d; /*ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° Π½Π° ΠΠΠ */
PORTDLC = PORTDLC|0x04; /*E = 1 */
PORTDLC =0; /*E = 0 */
delay_5ms(); /*ΠΏΠ°ΡΠ·Π° 5 ΠΌΡ */
}
/********************************************************************/
/*Π€ΡΠ½ΠΊΡΠΈΡ lcd_print ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΡΡΡΠΎΠΊΡ Π½Π° ΠΠ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ */
/********************************************************************/
void lcd_print(char *string) {
putcommands(0x02); /*ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΡΡΡΠΎΡΠ° Π½Π° ΠΏΠ΅ΡΠ²ΡΡ ΡΡΡΠΎΠΊΡ */
/*putcommand Π΄Π»Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ */
while(*(string) != '\0') {
putchars(*string);
string++;
}
}
/********************************************************************/
/*Π·Π°Π΄Π΅ΡΠΆΠΊΠ° Π² 5 ΠΌΡ, Π½Π° Π±Π°Π·Π΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Ρ ΡΠ°ΡΡΠΎΡΠΎΠΉ 8 ΠΠΡ */
/********************************************************************/
void delay_5ms(void) {
int i;
for (i=0; i<50; i++) {
delay_100us();
}
}
/********************************************************************/
/********************************************************************/
/*Π·Π°Π΄Π΅ΡΠΆΠΊΠ° Π² 100 ΠΌΠΊΡ, Π½Π° Π±Π°Π·Π΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Ρ ΡΠ°ΡΡΠΎΡΠΎΠΉ 8 ΠΠΡ */
/********************************************************************/
void delay_100us(void) {
int i;
for(i=0; i<50; i++) {
asm("nop");
}
}
/********************************************************************/
7.3.6. ΠΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²Π΅Π»ΠΈΡΠΈΠ½
Π ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ»ΡΡΠΌΠ΅ΡΡΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΏΡΠΎΡΡΠΎ Π² ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Ρ Π²ΡΡ ΠΎΠ΄Π° Π΄Π°ΡΡΠΈΠΊΠ° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°.
ΠΠ°ΡΡΠΈΠΊ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ ΠΠ 68HC12 Π³ΡΠ°Π΄ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎ ΡΠΊΠ°Π»Π΅ Π€Π°ΡΠ΅Π½Π³Π΅ΠΉΡΠ° ΠΏΡΠ΅ΡΠΈΠ·ΠΈΠΎΠ½Π½ΡΠΉ Π΄Π°ΡΡΠΈΠΊ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ LM34, Π²ΡΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ National Semiconductor. ΠΡΠΎΡ Π΄Π°ΡΡΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π² +10 ΠΌΠ Π½Π° Π³ΡΠ°Π΄ΡΡ Π€Π°ΡΠ΅Π½Π³Π΅ΠΉΡΠ°, Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ β50 Π΄ΠΎ +300 Π€. Π‘Ρ Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ LM34 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° ΡΠΈΡ. 7.14. ΠΠ½Π° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π΄Π°ΡΡΠΈΠΊΠ° LM34 ΠΈ ΡΠ΅ΠΏΠΈ ΡΠΈΠ»ΡΡΡΠ°, ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ΅Π·ΠΈΡΡΠΎΡΠΎΠΌ ΠΈ ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΠΎΠΌ. Π’Π°ΠΊΠ°Ρ ΡΡ Π΅ΠΌΠ° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΡΠΌΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΠΌΠΎΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ 70 Π€, LM34 ΡΠΎΠ·Π΄Π°Π΅Ρ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΠ³Π½Π°Π» Π² 700 ΠΌΠ. ΠΡΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠΌΠ½ΠΎΠΆΠ°Π΅ΡΡΡ Π½Π° 100, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΏΡΡΠΌΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π² Π²ΠΎΠ»ΡΡΠ°Ρ Π² ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ, Π²ΡΡΠ°ΠΆΠ΅Π½Π½ΡΡ Π² Π³ΡΠ°Π΄ΡΡΠ°Ρ Π€Π°ΡΠ΅Π½Π³Π΅ΠΉΡΠ° Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ. ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΡΠ΅ΠΌ Π±ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΎ Π² ASCII ΠΊΠΎΠ΄ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° ΠΠ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ.