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

📄 led.lst

📁 利用单片机、HD7279、键盘
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   LED                                                                   04/15/2008 19:27:32 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE LED
OBJECT MODULE PLACED IN LED.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE LED.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "reg51.h"
   2          #include "define7279.h"
   3          #include "function.h"
   4          unsigned  int i,j,tmr,a=0;
   5          unsigned  int sg,ss,mg,ms,hg,hs;
   6          unsigned  char key_number=0,hour,min,sec,key_value[6];  //时,分,秒初值为23:59:30
   7          
   8          
   9          
  10          
  11          //**********************主函数中完成测试基本功能并进入等待键盘状态******************
  12          void main()
  13          {  
  14   1         for (tmr=0;tmr<0x2000;tmr++);       //测试
  15   1         send_byte(CMD_RESET);
  16   1         send_byte(CMD_TEST);
  17   1         
  18   1         for(i=0;i<3;i++)                    //延时测试时间为3秒
  19   1             delay10ms(100);
  20   1      
  21   1      
  22   1         send_byte(CMD_RESET);               //复位
  23   1         delay10ms(1);
  24   1      
  25   1      
  26   1      /*   write7279(0x86,0x08);               //最左位显8
  27   1         delay10ms(50);
  28   1         for(j=0;j<23;j++)                   //右循环3圈
  29   1             {
  30   1                send_byte(RTR_CYCLE);
  31   1                delay10ms(50);
  32   1             } 
  33   1      
  34   1      
  35   1         send_byte(CMD_RESET);               //复位
  36   1         delay10ms(1);
  37   1      
  38   1      
  39   1         write7279(0x80,0x07);               //最右位显7
  40   1         delay10ms(50);
  41   1         for(j=0;j<23;j++)
  42   1             {
  43   1                send_byte(RTL_CYCLE);        //左循环3圈
  44   1                delay10ms(50);
  45   1             } 
  46   1      */
  47   1      
  48   1      
  49   1         keycontrol();                      //进入等待键盘状态
  50   1      
  51   1      }
  52          
  53          
  54          
  55          
C51 COMPILER V7.50   LED                                                                   04/15/2008 19:27:32 PAGE 2   

  56          
  57          
  58          
  59          //***************************清空key_value中的函数值******************************
  60          
  61          void key_valueclean()         
  62          {
  63   1         char b;  
  64   1         for(b=0;b<6;b++)
  65   1            key_value[b]=0;
  66   1      }
  67          
  68          
  69          
  70          
  71          
  72          //*************************键盘控制程序*********************************
  73          
  74          void keycontrol()               
  75          {
  76   1      
  77   1         send_byte(CMD_RESET);               //复位
  78   1         delay10ms(1);
  79   1      
  80   1      
  81   1         
  82   1         key_valueclean();                   //清空key_value中的函数值
  83   1       
  84   1        
  85   1         while(1)                            //键盘控制程序
  86   1             { 
  87   2                    while(a<7)
  88   2                                {
  89   3                                if(!key)             //是否有键按下
  90   3                            {       
  91   4                                        
  92   4                            key_number=read7279(CMD_READ); 
  93   4                                switch(key_number)
  94   4                                            {
  95   5                                                      case KEY_0:               //0
  96   5                                                               key_value[a]=0;
  97   5                                           out();
  98   5                                                                               a++;
  99   5                                           break;
 100   5      
 101   5                                      case KEY_1:               //1
 102   5                                                           key_value[a]=1;
 103   5                                                                               out();
 104   5                                                                               a++;
 105   5                                           break;
 106   5      
 107   5                                                          case KEY_2:               //2
 108   5                                                               key_value[a]=2;
 109   5                                                                               out();
 110   5                                                                               a++;
 111   5                                           break;
 112   5                                                                                                    
 113   5                                                      case KEY_3:               //3
 114   5                                                               key_value[a]=3;
 115   5                                                                               out();
 116   5                                                                               a++;
 117   5                                           break;
C51 COMPILER V7.50   LED                                                                   04/15/2008 19:27:32 PAGE 3   

 118   5                                                         
 119   5                                                          case KEY_4:               //4
 120   5                                                               key_value[a]=4;
 121   5                                                                               out();
 122   5                                                                               a++;
 123   5                                                                               break;
 124   5      
 125   5                                                          case KEY_5:               //5
 126   5                                                               key_value[a]=5;
 127   5                                                                               out();
 128   5                                                                               a++;
 129   5                                                                               break;
 130   5      
 131   5                                       
 132   5                                                          case KEY_6:               //6
 133   5                                                               key_value[a]=6;
 134   5                                                                               out();
 135   5                                                                               a++;
 136   5                                                                               break;
 137   5      
 138   5                                                          case KEY_7:               //7
 139   5                                                               key_value[a]=7;
 140   5                                                                               out();
 141   5                                                                               a++;
 142   5                                                                               break;
 143   5      
 144   5                                                          case KEY_8:               //8
 145   5                                                               key_value[a]=8;
 146   5                                                                               out();
 147   5                                                                               a++;
 148   5                                                                               break;
 149   5      
 150   5                                                          case KEY_9:               //9
 151   5                                                               key_value[a]=9;
 152   5                                                                               out();
 153   5                                                                               a++;                   
 154   5                                                                               break;
 155   5      
 156   5                                                          case KEY_C:               //开始计时
 157   5                                                                           clock();
 158   5                                                                               break;
 159   5      
 160   5                                                                      case KEY_D:               //开始倒计时
 161   5                                                                   countdowntime();
 162   5                                                                               break;
 163   5                                      
 164   5                                      case KEY_F:               //操作错误时,重新操作
 165   5                                           a=0;
 166   5                                           keycontrol();        
 167   5                                           break;
 168   5      
 169   5                                                                      default: 
 170   5                                                                           break;
 171   5                                                                           
 172   5                                                                           
 173   5                                      }
 174   4                                     }
 175   3                                 }
 176   2                                 
 177   2                                 
 178   2                                 
 179   2            }
C51 COMPILER V7.50   LED                                                                   04/15/2008 19:27:32 PAGE 4   

 180   1      }
 181                    
 182                    
 183          
 184          
 185          //*****************************在LED上显示数值*************************************       
 186          //*********************************************************************************
 187          //                  因为要显示六位数,前五位左移,最后一位不移
 188          //*********************************************************************************
 189                                                  
 190          void out()               
 191          {
 192   1          if(a<5)
 193   1              {
 194   2                 write7279(DECODE1,key_value[a]);
 195   2                 send_byte(RTL_UNCYL);
 196   2          }
 197   1              else if(a==5)
 198   1              {      
 199   2                     write7279(DECODE1,key_value[a]);
 200   2              }
 201   1              while (!key);                              
 202   1      }
 203          
 204          
 205          

⌨️ 快捷键说明

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