smproc2.c

来自「A Digital Thermometer Using the AT89C205」· C语言 代码 · 共 107 行

C
107
字号
@CODE_TAB = Listing 3.

@CODE_TAB = 

@CODE_TAB = /*  Simple Digital Thermometer using the AT89C2051 <R>
    J. Dybowski - 1995 <R>
*/

@CODE_TAB = 

@CODE_TAB = /* 8051 definitions */ <R>
#include sreg.h <R>
#include sbit.h 

@CODE_TAB = 

@CODE_TAB = /* I/O bits */ <R>
#define Led P3.7

@CODE_TAB = /* Global register (IRAM) data */ <R>
unsigned char register TempData[3];

@CODE_TAB = 

@CODE_TAB = main() <R>
{ <R>
<N>  unsigned char register *p; <R>
<N>  unsigned char c; <R>
<N>  unsigned int i;

@CODE_TAB = 

@CODE_TAB = <N>  serinit(9600);

@CODE_TAB = 

@CODE_TAB = <N>  TempConfigure(); <R>
<N>  TempConvert();

@CODE_TAB = 

@CODE_TAB = <N>  InitLcd(); <R>
<N>  PutString ("Mid-Tech"); <R>
<N>  putstr ("\nMid-Tech\n"); 

@CODE_TAB = 

@CODE_TAB = <N>  i = 0;

@CODE_TAB = 

@CODE_TAB =    for(;;) <R>
<N>  { <R>
<N>      p = TempData; <R>
<N>      c = TempRead(); <R>
<N>      c = (((c/2) * 9/5) + 32);

@CODE_TAB = <N>      if (c >><N>99) <R>
<N>      { <R>
<N>          *p++ = ((c / 100)  | '0'); <R>
<N>          c %= 100; <R>
<N>      } <R>
<N>      else <R>
<N>          *p++ = ('0');

@CODE_TAB = 

@CODE_TAB =        if (c >><N>9)        <R>
       { 

@CODE_TAB = <N>          *p++ = ((c / 10) | '0'); <R>
<N>          c %= 10;     

@CODE_TAB =        } <R>
<N>      else <R>
<N>          *p++ = ('0');

@CODE_TAB = 

@CODE_TAB = <N>      *p++ = (c | '0');

@CODE_TAB = 

@CODE_TAB =        PositionLcd(12);<R>
       for (c = 0; c  3; c++) <R>
<N>      PutChar(TempData[c]); <R>
<N>      PutChar(0xdf);

@CODE_TAB = 

@CODE_TAB = <N>      if (++i == 100) <R>
<N>      { <R>
<N>         i = 0; <R>
<N>         cplbit(Led) 

@CODE_TAB = 

@CODE_TAB = <N>         for (c = 0; c  3; c++) <R>
<N>            putch(TempData[c]); <R>
<N>         putch('\n'); <R>
<N>      }

@CODE_TAB = <N>   }

@CODE_TAB = }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?