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

📄 signalgen.lst

📁 51系列单片机的函数信号发生器的c语言的原代码
💻 LST
字号:
C51 COMPILER V7.02b   SIGNALGEN                                                            12/10/2005 20:16:16 PAGE 1   


C51 COMPILER V7.02b, COMPILATION OF MODULE SIGNALGEN
OBJECT MODULE PLACED IN SignalGen.OBJ
COMPILER INVOKED BY: E:\EDATOOLS\KEILC7.0\C51\BIN\C51.EXE SignalGen.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*****************************************/
   2          /* Copyright (c) 2005, 通信工程学院      */
   3          /* All rights reserved.                  */
   4          /* 作    者:戴 佳                                       */
   5          /*****************************************/
   6          
   7          #include "SignalGen.h"
   8          
   9          /* 用于键消抖的延时函数 */
  10          void delay()
  11          {
  12   1              uchar i;
  13   1              for (i=400;i>0;i--);
  14   1      }
  15          
  16          /* 键扫描函数 */
  17          uchar keyscan(void)
  18          {
  19   1              uchar scancode,tmpcode;
  20   1              P1 = 0xf0;                                                              // 发全0行扫描码
  21   1              if ((P1&0xf0)!=0xf0)                                    // 若有键按下
  22   1              {
  23   2                      delay();                                                        // 延时去抖动
  24   2                      if ((P1&0xf0)!=0xf0)                            // 延时后再判断一次,去除抖动影响
  25   2                      {
  26   3                              scancode = 0xfe;
  27   3                              while((scancode&0x10)!=0)               // 逐行扫描
  28   3                              {
  29   4                                      P1 = scancode;                          // 输出行扫描码
  30   4                                      if ((P1&0xf0)!=0xf0)            // 本行有键按下
  31   4                                      {
  32   5                                              tmpcode = (P1&0xf0)|0x0f;
  33   5      
  34   5                                              /* 返回特征字节码,为1的位即对应于行和列 */
  35   5                                              return((~scancode)+(~tmpcode));
  36   5                                      }
  37   4                                      else scancode = (scancode<<1)|0x01;             // 行扫描码左移一位
  38   4                              }
  39   3                      }
  40   2              }
  41   1              return(0);                                                              // 无键按下,返回值为0  
  42   1      }
  43          
  44          /* 主程序 */
  45          void main()
  46          { 
  47   1              uchar key;
  48   1      
  49   1              while(1)
  50   1          {
  51   2                      key = keyscan();                        // 调用键盘扫描函数
  52   2      
  53   2                      delay();
  54   2      
  55   2                      switch(key)
C51 COMPILER V7.02b   SIGNALGEN                                                            12/10/2005 20:16:16 PAGE 2   

  56   2                      {
  57   3                      case 0x11:                              // 第1行第1列,选择正弦波输出
  58   3                                      A0 = 0;                         
  59   3                                      A1 = 1;
  60   3                                      break;
  61   3                              case 0x21:                              // 第1行第2列,选择矩形波输出
  62   3                                      A0 = 0;                         
  63   3                                      A1 = 0;
  64   3                                      break;                  
  65   3                              case 0x41:                              // 第1行第3列,选择三角波输出
  66   3                                      A0 = 1;                         
  67   3                                      A1 = 0;
  68   3                                      break;                  
  69   3                              default:break;
  70   3                       }
  71   2              }
  72   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    106    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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