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

📄 chengxu.lst

📁 单路带数码管可编程可调节延时模块
💻 LST
字号:
C51 COMPILER V9.00   CHENGXU                                                               05/13/2013 13:08:45 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          #include<STC12C5A60S2.H>               //库文件
  26          #include <intrins.h>
  27          #include"SMG.H"
  28          #define uchar unsigned char//宏定义无符号字符型
  29          #define uint unsigned int  //宏定义无符号整型
  30          #define FOSC 11059200L
  31          #define BAUD  9600
  32          
  33          #define ADC_POWER   0x80            //ADC 电源控制位
  34          #define ADC_FLAG    0x10            //ADC 转换结束标志位
  35          #define ADC_START   0x08            //ADC 开始转换控制位
  36          #define ADC_SPEEDLL 0x00            //420个时钟周期转换一次
  37          #define ADC_SPEEDL  0x20            //280 个时钟周期转换一次
  38          #define ADC_SPEEDH  0x40            //140个时钟周期转换一次
  39          #define ADC_SPEEDHH 0x60            //70个时钟周期转换一次
  40          extern void t_to_dis(void);
  41          extern void display(void);           //显示函数
  42          sbit key1=P3^2;
  43          sbit key2=P3^3;
  44          sbit key3=P3^4;
  45          /********************************************************************
  46                                      延时函数
  47          *********************************************************************/
  48          void delay(uint x)//延时程序 0.1秒
  49          {
  50   1              uchar m,n,s;
  51   1              for(m=x;m>0;m--)
  52   1              for(n=20;n>0;n--)
  53   1              for(s=248;s>0;s--);
  54   1      }
  55                             
C51 COMPILER V9.00   CHENGXU                                                               05/13/2013 13:08:45 PAGE 2   

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


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    364    ----
   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     14    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.

C51 COMPILER V9.00   CHENGXU                                                               05/13/2013 13:08:45 PAGE 3   


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

⌨️ 快捷键说明

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