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

📄 main.lst

📁 单路带数码管可编程可调节延时模块
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V9.00   MAIN                                                                  05/08/2013 21:45:00 PAGE 1   


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

line level    source

   1          /********************************************************************
   2                                      汇诚科技
   3          
   4          实现功能:继电器通、断时间都可调控制程序(eeprom)
   5          使用芯片:STC12C5204AD
   6          晶振:11.0592MHZ
   7          编译环境:Keil
   8          硬件环境:四位数显两路输入三按键
   9          作者:yang
  10          QQ:790244909
  11          网站:www.ourhc.cn
  12          物联网测试网站:http://hualongelectron.eicp.net/
  13          日期:2013-05-08
  14          淘宝店:
  15                华龙电子直销:http://hlelectrony.taobao.com 
  16                电子开发直销:http://shop63233873.taobao.com 
  17                    汇诚科技网路购物:http://shop36330473.taobao.com
  18          【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!     
  19          /********************************************************************    
  20          /********************************************************************
  21          功能说明:继电器循环通断控制程序
  22          继电器通、断时间可调,
  23          key1功能键:调节模式与实时显示模式转换
  24          keynum=0:实时显示计时模式
  25          keynum=1:调整继电器设定闭合秒
  26          keynum=2:调整继电器设定闭合分
  27          keynum=3:调整继电器设定断开秒
  28          keynum=4:调整继电器设定断开分
  29          以上四个设定值设定好后都存入eeprom,掉电可记忆
  30          上电时,继电器吸合,数显开始计时,到达设定闭合时间后断开;数显清零,
  31                              数显开始计时,到设定时间,继电器闭合,数显清零。。。
  32                                                  循环下去。。
  33          
  34          设定断开时间最大是10分59秒
  35          设定闭合时间最大是10分59秒
  36          ********************************************************************/
  37          #include<STC12C5A60S2.H>               //库文件
  38          #include <intrins.h>
  39          #include"eprom.h"
  40          #define uchar unsigned char//宏定义无符号字符型
  41          #define uint unsigned int  //宏定义无符号整型
  42          
  43          #define DUAN P2   //P0口控制段
  44          #define WEI  P1   //P2口控制位
  45          sbit jdq= P3^7;
  46          sbit key1=P3^2; //功能按键
  47          sbit key2=P3^3; //增加
  48          sbit key3=P3^4; //减小
  49          /********************************************************************
  50                                      初始定义
  51          *********************************************************************/
  52          code uchar seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //显示段码 数码管字跟
  53          uchar wei[4]={0X01,0X02,0X04,0X08};                                 //位的控制端
  54          uchar numb[4];        //定义字符串
  55          uchar cnt,keynum;
C51 COMPILER V9.00   MAIN                                                                  05/08/2013 21:45:00 PAGE 2   

  56          uchar setfen,setmiao;
  57          uchar setdf,setdm;
  58          uchar miao,fen;
  59          void IapEraseSector(uint addr);
  60          void IapProgramByte(uint addr,uchar dat);
  61          uchar IapReadByte(uint addr);
  62          bit flag=1;     //闭合断开标志位
  63          /********************************************************************
  64                                      延时函数
  65          *********************************************************************/
  66          void delay(uchar x)    //延时程序 0.1秒
  67          {
  68   1              uchar m,n,s;
  69   1              for(m=x;m>0;m--)
  70   1              for(n=20;n>0;n--)
  71   1              for(s=248;s>0;s--);
  72   1      }
  73          /********************************************************************
  74                                      显示函数
  75          *********************************************************************/        
  76          void display(uchar a ,uchar b)   //显示函数
  77          {
  78   1            WEI&=0XF0;
  79   1                DUAN=seg7code[a/10];
  80   1                WEI=wei[0];
  81   1                delay(2);
  82   1      
  83   1                WEI&=0XF0;  
  84   1            DUAN=seg7code[a%10]&0x7f;
  85   1                WEI=wei[1];
  86   1                delay(2);
  87   1      
  88   1                WEI&=0XF0;  
  89   1                DUAN=seg7code[b/10];
  90   1                WEI=wei[2];
  91   1                delay(2);
  92   1      
  93   1                WEI&=0XF0;  
  94   1            DUAN=seg7code[b%10];
  95   1                WEI=wei[3];
  96   1                delay(2);
  97   1                 
  98   1                WEI&=0XF0;
  99   1      }
 100          /********************************************************************
 101                                      按键扫描
 102          *********************************************************************/
 103          void keyscan(void)
 104          {
 105   1       if(key1==0)
 106   1       {  delay(1);
 107   2          if(key1==0)
 108   2          {
 109   3                 while(!key1);
 110   3                 keynum++;
 111   3                 TR0=0;
 112   3                 jdq=0;
 113   3                 if(keynum>=5)
 114   3                 { 
 115   4                   keynum=0;
 116   4                       miao=fen=0;
 117   4                       TR0=1;
C51 COMPILER V9.00   MAIN                                                                  05/08/2013 21:45:00 PAGE 3   

 118   4                       jdq=1;
 119   4                }
 120   3          }
 121   2        }
 122   1        switch(keynum)
 123   1        {
 124   2          case 1: if(key2==0)
 125   2                      {
 126   3                                delay(5);
 127   3                                if(key2==0)
 128   3                        {
 129   4                                        while(!key2)display(setfen,setmiao);
 130   4                                        setmiao++;
 131   4                                        if(setmiao>59)
 132   4                                           setmiao=59;
 133   4                                        IapEraseSector(0);
 134   4                                        IapProgramByte(0,setmiao);  //写入函数
 135   4                                }
 136   3                               }
 137   2                              if(key3==0) 
 138   2                              {
 139   3                                delay(5);
 140   3                                if(key3==0)
 141   3                        {
 142   4                                  while(!key3)display(setfen,setmiao);
 143   4                                  setmiao--;
 144   4                                      if(setmiao==0||setmiao>=250)
 145   4                                        setmiao=0;
 146   4                                  IapEraseSector(0);
 147   4                                  IapProgramByte(0,setmiao);  //写入函数
 148   4                                }
 149   3                              }
 150   2                       display(setfen,setmiao);
 151   2                              break;
 152   2           case 2: if(key2==0)
 153   2                       {
 154   3                                        delay(5);
 155   3                                        if(key2==0)
 156   3                                {
 157   4                                                while(!key2)display(setfen,setmiao);
 158   4                                                setfen++;
 159   4                                                if(setfen>99)
 160   4                                               setfen=99;
 161   4                                                IapEraseSector(512);
 162   4                                                IapProgramByte(512,setfen);  //写入函数
 163   4                                }
 164   3                               }
 165   2                               if(key3==0) 
 166   2                               {
 167   3                                        delay(5);
 168   3                                        if(key3==0)

⌨️ 快捷键说明

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