Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «ВстраиваСмыС систСмы. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… сСмСйства 68HC12/HCS12 с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ языка Π‘Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 108

Автор Π‘Ρ‚ΠΈΠ²Π΅Π½ Π‘Π°Ρ€Ρ€Π΅Ρ‚Ρ‚

#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 ΠΊΠΎΠ΄ для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° Π–Πš дисплСй.