⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 humidity.lst

📁 压缩包中包括多个常用的汇编
💻 LST
字号:
C51 COMPILER V3.20,  SN-50203013  HUMIDITY                                                 08/06/05  10:52:39  PAGE 1   


DOS C51 COMPILER V3.20, COMPILATION OF MODULE HUMIDITY
OBJECT MODULE PLACED IN E:\C51PRJ\HUMIDITY\HUMIDITY.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE E:\C51PRJ\HUMIDITY\HUMIDITY.C DB SB OE

stmt level    source

   1          /****************************************************************************/
   2          /*                                                                          */
   3          /*                Copyright (c) 2005, 老树工作室                            */
   4          /*                     All rights reserved.                                 */
   5          /*                                                                          */
   6          /*      http://www.saintone.net      Email:hxm0902@163.com                  */
   7          /*      QQ:112431149                 Tel:010-62966630                       */
   8          /*                                                                          */
   9          /****************************************************************************/
  10          /****************************************************************************/
  11          /* 文件名:humidity.c                                                       */
  12          /* 版  本:Version 1.0                                                      */
  13          /* 描  述:利用hs1101与tlc555检测湿度的代码                                 */
  14          /*         根据数据手册,简化湿度计算公式如下:                             */
  15          /*         humidity = (hum_const - 0.702*(fhz_tlc555-40)) / 10              */
  16          /*         fhz_tlc555>=7000:       hum_const=5143.7                         */
  17          /*         6700<=fhz_tlc555<7000:  hum_const=5183.7                         */
  18          /*         fhz_tlc555<6700:        hum_const=5203.7                         */
  19          /*                                                                          */
  20          /* 作  者:spot                                                             */
  21          /* 函  数:                                                                 */
  22          /*         time0_over_int                                                   */
  23          /*         ext1_int_proc                                                    */
  24          /*         system_init                                                      */
  25          /*                                                                          */
  26          /* 历史记录:                                                               */
  27          /*  spot          2005-06-25     Creat Inital version. (Version 1.0)        */
  28          /****************************************************************************/
  29          
  30          #include <reg52.h>
  31          #include <absacc.h>
  32          #include <intrins.h>
  33          #include "../includes/types.h"
  34          
  35          /* 函数声明 */
  36          void time0_over_int(void); /* 定时器0中断服务程序 ,使用第1组寄存器  */
  37          void ext1_int_proc(void);  /* 外部中断1中断服务程序,使用第2组寄存器 */
  38          void system_init(void);    /* 系统上电初始化 */
  39          void display_humidity(u_int current_humidity);/* 在数码管上显示当前湿度 */
  40          extern void load_number(u_char number, bit dp);
  41          extern void send_latch_clock(void);
  42          extern void clear_led(void);
  43          /* 声明结束 */
  44          
  45          u_int fhz_tlc555;    /* tlc555输出频率 */
  46          u_char timer_count;  /* 定时计数       */
  47          bit timer_int;       /* 定时标志       */
  48          float hum_const;     /* 计算湿度的常数 */
  49          
  50          /* 定时器0中断服务程序 ,使用第1组寄存器 */
  51          void time0_over_int(void) interrupt 1 using 1
  52          {
  53   1          TF0=0;
  54   1          timer_int=1;
  55   1          TH0 = -(46080 / 256);
C51 COMPILER V3.20,  SN-50203013  HUMIDITY                                                 08/06/05  10:52:39  PAGE 2   

  56   1          TL0 = -(46080 % 256);
  57   1      }
  58          
  59          /* 外部中断1中断服务程序,使用第2组寄存器 */
  60          void ext1_int_proc(void) interrupt 2 using 2
  61          {
  62   1          fhz_tlc555++;
  63   1      }
  64          
  65          /* 系统上电初始化 */
  66          void system_init(void)
  67          {
  68   1          EA = 0;
  69   1          timer_int = 0;
  70   1          timer_count = 0;
  71   1      
  72   1          TMOD = 0x01;           /*定时器0工作于方式1*/
  73   1          TCON = 0x04;           /*外部中断下降沿触发*/
  74   1          TH0 = -(46080 / 256);  /*定时50毫秒*/
  75   1          TL0 = -(46080 % 256);
  76   1          PT0 = 1;               /*定时器0高优先级*/
  77   1          TR0 = 1;               /*定时器0启动计数*/
  78   1          IE = 0x86;             /*定时器0,外部中断1,CPU开中断*/
  79   1      }
  80          
  81          /* 计算当前湿度 */
  82          u_int get_humidity(u_int fhz) /* 输入fhz为tlc555的频率计数 */
  83          {
  84   1          u_int humidity = 0;
  85   1          
  86   1          if ( (fhz > 7400) || (fhz < 6000) )
  87   1          {
  88   2              return 0;
  89   2          }
  90   1          else if (fhz >= 7000)
  91   1          {
  92   2              hum_const = 5143.7;
  93   2          }
  94   1          else if ( (fhz >= 6700) && (fhz < 7000) )
  95   1          {
  96   2              hum_const = 5183.7;
  97   2          }
  98   1          else if(fhz < 6700)
  99   1          {
 100   2              hum_const = 5203.7;
 101   2          }
 102   1          humidity = (u_int)( (hum_const - 0.702*(fhz - 40)) / 10);
 103   1          return humidity;
 104   1      }
 105          
 106          /* 在数码管上显示当前湿度 */
 107          void display_humidity(u_int current_humidity)
 108          {
 109   1          load_number( (current_humidity %10), 0);
 110   1          load_number( (current_humidity /10), 0);
 111   1          send_latch_clock();
 112   1      }
 113          
 114          main()
 115          {
 116   1          u_int real_hum;
 117   1      
C51 COMPILER V3.20,  SN-50203013  HUMIDITY                                                 08/06/05  10:52:39  PAGE 3   

 118   1          system_init();
 119   1          while(1)
 120   1          {
 121   2              if (timer_int == 1) /* 50毫秒定时到 */
 122   2              {
 123   3                  timer_int = 0;
 124   3                  timer_count++;
 125   3      
 126   3                  if (timer_count == 100)  /* 5秒定时到 */
 127   3                  {
 128   4                     timer_count = 0;
 129   4                     fhz_tlc555 /= 5;
 130   4                     real_hum = get_humidity(fhz_tlc555);
 131   4                     clear_led();
 132   4                     display_humidity(real_hum);
 133   4                     fhz_tlc555 = 0;
 134   4                  }
 135   3              }
 136   2          }
 137   1      }
C51 COMPILER V3.20,  SN-50203013  HUMIDITY                                                 08/06/05  10:52:39  PAGE 4   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
T2 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
u_long . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_LONG   -----  4
u_short. . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
send_latch_clock . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
fhz_tlc555 . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0000H  2
T2IE . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CDH  1
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
BGEN . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CBH  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
INT1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
T2IP . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CEH  1
clear_led. . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
u_int. . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
T2EX . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     -----  -----
  real_hum . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0000H  2
C_T2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C9H  1
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
_display_humidity. . . . . . . . . . .  PUBLIC   CODE   PROC     -----  -----
  current_humidity . . . . . . . . . .  AUTO     DATA   U_INT    0000H  2
time0_over_int . . . . . . . . . . . .  PUBLIC   CODE   PROC     -----  -----
timer_count. . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0002H  1
TMOD . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0089H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
system_init. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     -----  -----
CP_RL2 . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C8H  1
ext1_int_proc. . . . . . . . . . . . .  PUBLIC   CODE   PROC     -----  -----
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
ET2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ADH  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
TF2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CFH  1
RB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009AH  1
TH0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008CH  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
IT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0088H  1
TB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009BH  1
EX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AAH  1
IT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008AH  1
P. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D0H  1
SM0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009FH  1
TL0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008AH  1
timer_int. . . . . . . . . . . . . . .  PUBLIC   DATA   BIT      0000H  1
C51 COMPILER V3.20,  SN-50203013  HUMIDITY                                                 08/06/05  10:52:39  PAGE 5   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


SM1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009EH  1
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
hum_const. . . . . . . . . . . . . . .  PUBLIC   DATA   FLOAT    0003H  4
PT2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BDH  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
TR2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CAH  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
_load_number . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
T2RSE. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CCH  1
_get_humidity. . . . . . . . . . . . .  PUBLIC   CODE   PROC     -----  -----
  fhz. . . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0004H  2
  humidity . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0000H  2
u_char . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_CHAR   -----  1
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    325    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      7       6
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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