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

📄 lumin555.lst

📁 压缩包中包括多个常用的汇编
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.12  LUMIN555                                                               09/11/2005 14:24:59 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE LUMIN555
OBJECT MODULE PLACED IN E:\C51PRJ\LUMINLED\LUMIN555.OBJ
COMPILER INVOKED BY: d:\keil\c51\BIN\C51.EXE E:\C51PRJ\LUMINLED\LUMIN555.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          /* 文件名:lumin555.c                                                       */
  12          /* 版  本:Version 1.0                                                      */
  13          /* 描  述:利用光敏电阻与tlc555检测光强的代码                               */
  14          /*                                                                          */
  15          /* 作  者:spot                                                             */
  16          /* 函  数:                                                                 */
  17          /*         time0_over_int                                                   */
  18          /*         ext1_int_proc                                                    */
  19          /*         system_init                                                      */
  20          /*         get_lumin                                                        */
  21          /*                                                                          */
  22          /* 历史记录:                                                               */
  23          /*  spot          2005-06-25     Creat Inital version. (Version 1.0)        */
  24          /****************************************************************************/
  25          
  26          #include <reg52.h>
  27          #include <absacc.h>
  28          #include <intrins.h>
  29          #include "../includes/types.h"
  30          
  31          /* 函数声明 */
  32          void time0_over_int(void); /* 定时器0中断服务程序 ,使用第1组寄存器  */
  33          void ext1_int_proc(void);  /* 外部中断1中断服务程序,使用第2组寄存器 */
  34          void system_init(void);    /* 系统上电初始化 */
  35          u_char get_lumin(u_int fhz);/* 计算当前光强  */
  36          extern void load_number(u_char number, bit dp);
  37          extern void send_latch_clock(void);
  38          extern void clear_led(void);
  39          /* 声明结束 */
  40          
  41          u_int fhz_tlc555;    /* tlc555输出频率 */
  42          u_char timer_count;  /* 定时计数       */
  43          bit timer_int;       /* 定时标志       */
  44          
  45          /* 定时器0中断服务程序 ,使用第1组寄存器 */
  46          void time0_over_int(void) interrupt 1 using 1
  47          {
  48   1          TF0=0;
  49   1          timer_int=1;
  50   1          TH0 = -(46080 / 256);
  51   1          TL0 = -(46080 % 256);
  52   1      }
  53          
  54          /* 外部中断1中断服务程序,使用第2组寄存器 */
  55          void ext1_int_proc(void) interrupt 2 using 2
C51 COMPILER V6.12  LUMIN555                                                               09/11/2005 14:24:59 PAGE 2   

  56          {
  57   1          fhz_tlc555++;
  58   1      }
  59          
  60          /* 系统上电初始化 */
  61          void system_init(void)
  62          {
  63   1          EA = 0;
  64   1          timer_int = 0;
  65   1          timer_count = 0;
  66   1      
  67   1          TMOD = 0x01;           /*定时器0工作于方式1*/
  68   1          TCON = 0x04;           /*外部中断下降沿触发*/
  69   1          TH0 = -(46080 / 256);  /*定时50毫秒*/
  70   1          TL0 = -(46080 % 256);
  71   1          PT0 = 1;               /*定时器0高优先级*/
  72   1          TR0 = 1;               /*定时器0启动计数*/
  73   1          IE = 0x86;             /*定时器0,外部中断1,CPU开中断*/
  74   1      }
  75          
  76          /* 计算当前光强 */
  77          u_char get_lumin(u_int fhz)
  78          {
  79   1          u_char lumin = 0;
  80   1      
  81   1          if (fhz <= 2000)/* 光强为0 */
  82   1          {
  83   2              return 0;
  84   2          }
  85   1          else if ( (fhz > 2000) && (fhz <= 4770) )/* 光强为0~10 */
  86   1          {
  87   2              lumin = fhz / 277 - 7.2;
  88   2              return lumin;
  89   2          }
  90   1          else if ( (fhz > 4770) && (fhz <= 5400) )/* 光强为10~20 */
  91   1          {
  92   2              lumin = fhz / 63 - 65.7;
  93   2              return lumin;
  94   2          }
  95   1          else if ( (fhz > 5400) && (fhz <= 8200) )/* 光强为20~30 */
  96   1          {
  97   2              lumin = fhz / 280 + 0.7;
  98   2              return lumin;
  99   2          }
 100   1          else if ( (fhz > 8200) && (fhz <= 9600) )/* 光强为30~40 */
 101   1          {
 102   2              lumin = fhz / 140 - 28.6;
 103   2              return lumin;
 104   2          }
 105   1          else if ( (fhz > 9600) && (fhz <= 10100) )/* 光强为40~50 */
 106   1          {
 107   2              lumin = fhz / 50 - 152;
 108   2              return lumin;
 109   2          }
 110   1          else if ( (fhz > 10100) && (fhz <= 12100) )/* 光强为50~60 */
 111   1          {
 112   2              lumin = fhz / 200;
 113   2              return lumin;
 114   2          }
 115   1          else if ( (fhz > 12100) && (fhz <= 12900) )/* 光强为60~100 */
 116   1          {
 117   2              lumin = fhz / 20 - 546;
C51 COMPILER V6.12  LUMIN555                                                               09/11/2005 14:24:59 PAGE 3   

 118   2              return lumin;
 119   2          }
 120   1          else if (fhz > 12900)
 121   1          {
 122   2              lumin = 99;
 123   2              return lumin;
 124   2          }
 125   1      }
 126          
 127          /* 在数码管上显示当前光强 */
 128          void display_lumin(u_int current_lumin)
 129          {

⌨️ 快捷键说明

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