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

📄 chengxu.lst

📁 单路带数码管可编程可调节延时模块
💻 LST
字号:
C51 COMPILER V9.00   CHENGXU                                                               05/13/2013 13:11:39 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE CHENGXU
OBJECT MODULE PLACED IN chengxu.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE chengxu.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /********************************************************************
   2                                      汇诚科技
   3          
   4          实现功能: AD值控制继电器延时断开时间
   5          使用芯片:STC12C5204AD
   6          晶振:11.0592MHZ
   7          编译环境:Keil
   8          硬件环境:四位数显两路输入三按键
   9          作者:yang
  10          QQ:790244909
  11          网站:www.ourhc.cn
  12          物联网测试网站:http://hualongelectron.eicp.net/
  13          日期:2013-04-02
  14          淘宝店:
  15                华龙电子直销:http://hlelectrony.taobao.com 
  16                电子开发直销:http://shop63233873.taobao.com 
  17                    汇诚科技网路购物:http://shop36330473.taobao.com
  18          【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!     
  19          ********************************************************************/       
  20          /********************************************************************
  21          采样AD的电压值作为继电器的延时断开时间  
  22           0到255秒可调
  23           注意:设定好后,需要断电重新上电
  24          ********************************************************************/
  25          
  26          #include<STC12C5A60S2.H>               //库文件
  27          #include <intrins.h>
  28          #include"SMG.H"
  29          #define uchar unsigned char//宏定义无符号字符型
  30          #define uint unsigned int  //宏定义无符号整型
  31          #define FOSC 11059200L
  32          #define BAUD  9600
  33          
  34          #define ADC_POWER   0x80            //ADC 电源控制位
  35          #define ADC_FLAG    0x10            //ADC 转换结束标志位
  36          #define ADC_START   0x08            //ADC 开始转换控制位
  37          #define ADC_SPEEDLL 0x00            //420个时钟周期转换一次
  38          #define ADC_SPEEDL  0x20            //280 个时钟周期转换一次
  39          #define ADC_SPEEDH  0x40            //140个时钟周期转换一次
  40          #define ADC_SPEEDHH 0x60            //70个时钟周期转换一次
  41          extern void t_to_dis(void);
  42          extern void display(void);           //显示函数
  43          sbit key1=P3^2;
  44          sbit key2=P3^3;
  45          sbit key3=P3^4;
  46          /********************************************************************
  47                                      延时函数
  48          *********************************************************************/
  49          void delay(uint x)//延时程序 0.1秒
  50          {
  51   1              uchar m,n,s;
  52   1              for(m=x;m>0;m--)
  53   1              for(n=20;n>0;n--)
  54   1              for(s=248;s>0;s--);
  55   1      }
C51 COMPILER V9.00   CHENGXU                                                               05/13/2013 13:11:39 PAGE 2   

  56                             
  57          /********************************************************************
  58                                   AD转换初始化程序
  59          *********************************************************************/
  60          
  61          void InitADC()
  62          {
  63   1          P1ASF|=0x10;        //设置P1口为开漏模式,使用AD功能
  64   1          ADC_RES=0;        //AD数据寄存器清空
  65   1          ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START;//打开AD电源,转换周期XX
  66   1          delay(10);                //延时
  67   1      }
  68          
  69          /********************************************************************
  70                                   AD转换控制程序
  71          *********************************************************************/
  72          uchar GetADCResult(uchar px)      //转换输出的数据 (PX为通道口)
  73          {
  74   1          ADC_CONTR = ADC_POWER | ADC_SPEEDLL |px| ADC_START;//开始转换
  75   1          _nop_();                        //延时一个机器周期
  76   1          _nop_();                                            //延时一个机器周期
  77   1          _nop_();                                            //延时一个机器周期
  78   1          _nop_();                                            //延时一个机器周期
  79   1          while (!(ADC_CONTR & ADC_FLAG));//等待转换结束
  80   1          ADC_CONTR &= ~ADC_FLAG;         //关闭AD转换
  81   1          return ADC_RES;                 //返回数据
  82   1      } 
  83          /********************************************************************
  84                                      主函数
  85          *********************************************************************/
  86          void main()
  87          {        
  88   1              P2M1=0;
  89   1              P2M0=0xff;
  90   1              P1M1=0;
  91   1              P1M0=0x0f;
  92   1              P3M1&=0x7f;
  93   1              P3M0|=0x80;
  94   1              P3=0xff;
  95   1               
  96   1              cshh();
  97   1              InitADC(); //AD转换初始化
  98   1              while(1)
  99   1              {       GetADCResult(4);
 100   2                      t_to_dis();
 101   2                      display();
 102   2           }
 103   1      }
 104                  
 105          /********************************************************************
 106                                        结束
 107          *********************************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    368    ----
   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     14    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
C51 COMPILER V9.00   CHENGXU                                                               05/13/2013 13:11:39 PAGE 3   

END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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