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

📄 123.lst

📁 这是一个波形选择菜单
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V8.05a   123                                                                  04/16/2009 17:22:03 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE 123
OBJECT MODULE PLACED IN 123.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 123.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          
   3          
   4          #define uchar unsigned char
   5          #define uint unsigned int
   6          #define DATA_PORT P0    
   7          
   8          
   9          sbit BUSY=P3^4;
  10          sbit REQ=P3^5;
  11          sbit RESET=P3^6;
  12          sbit P10=P1^0;
  13          
  14          
  15          /*--------------------------------------------------------------------------------------------------------
             ----------         */
  16          uchar table0[]={0x30,0x25,0x1a,0x25,0x12,0x2e,0x2a,0x5d,0x31,0x01,0x34,0x51,0x12,0x2b,0x15,0x05};   //信号
             -参数选择菜单
  17          uchar table1[]={0x35,0x5d,0x2f,0x32,0x12,0x08};                                 //正弦波
  18          uchar table2[]={0x28,0x5d,0x1d,0x27,0x12,0x08};                                 //三角波
  19          uchar table3[]={0x17,0x1d,0x12,0x08,0x12,0x08};                                 //方波波
  20          uchar table4[]={0x29,0x08,0x23,0x48,0x12,0x08};                                 //扫描波         
  21          /*--------------------------------------------------------------------------------------------------------
             --------*/
  22          
  23          uchar set0[]={0x26,0x15,0x22,0x2a};                             // 频率
  24          uchar set1[]={0x17,0x59,0x16,0x28};                             //幅度
  25          uchar set2[]={0x35,0x1c,0x1f,0x35,0x11,0x28};   //占空比
  26          //uchar set3[]={0x2f,0x40,0x2e,0x1b};                           //相位
  27          
  28          /*--------------------------------------------------------------------------------------------------------
             --*/
  29          uchar num[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};         //数值0~9
  30          /*--------------------------------------------------------------------------------------------------------
             ---*/
  31          
  32          
  33          /*********************************************************************************************/
  34          uchar unit0[]={0x2e,0x30,0x30,0x48,0x7a};//.00Hz的ASC码
  35          uchar unit1[]={0x56,0x70,0x70};//Vpp的ASC码
  36          uchar unit2[]={0x2e,0x30,0x30,0x4b,0x48,0x7a};//.00KHz
  37          
  38          
  39          /*************************************************************************************************/
  40          
  41          
  42          /*************全局变量****************/
  43          uchar temp=0;   //主菜单选项选中标志
  44          uchar temp1=0;  //一级子菜单选项选中标志
  45          uint f=0;//频率
  46          uchar range=0;//幅度
  47          uchar duty=0;//占空比
  48          uchar w=0;//单位为HZ,当w=1时单位为KHZ
  49          uchar flag;//发送数据标志位
  50          
C51 COMPILER V8.05a   123                                                                  04/16/2009 17:22:03 PAGE 2   

  51          uchar   numf[5];                   //频率数值存放数组
  52          uchar   numr[4];                   //幅度数值存放数组
  53          uchar   numd[2];                   //占空比数值存放数组
  54          
  55          
  56          
  57          
  58          
  59          /******LCD初始化***********/
  60          void lcd_init()
  61          {
  62   1              BUSY=1;
  63   1              REQ=0;
  64   1              RESET=1;
  65   1      }
  66          
  67          /*********写入数据***********/
  68          void wr_lcd(uchar dat)
  69          {
  70   1              while(BUSY);
  71   1              DATA_PORT=dat;
  72   1              REQ=1;
  73   1              while(BUSY);
  74   1              REQ=0;
  75   1      }
  76          
  77          /*******写指令和坐标******/
  78          void wr_zhiling(uchar com,uchar addr_x,uchar addr_y)
  79          {
  80   1              wr_lcd(com);
  81   1              wr_lcd(addr_x);
  82   1              wr_lcd(addr_y);
  83   1      }
  84          void delay(uint z)
  85          {
  86   1               uint x;
  87   1               uchar y;
  88   1               for(x=z;x>0;x--)
  89   1                      for(y=110;y>0;y--);
  90   1      }
  91          void start()                      //开机画面
  92          {
  93   1              uchar i;
  94   1              for(i=0;i<8;i++)
  95   1                      {
  96   2                              wr_zhiling(0xf0,0x02+i,1);
  97   2                              wr_lcd(table0[2*i]);
  98   2                              wr_lcd(table0[2*i+1]); 
  99   2                      }
 100   1              
 101   1      
 102   1      }
 103          void  int_init()  // 中断初始化
 104          {
 105   1              EX0=1;
 106   1              IT0=0;
 107   1              EA=1;
 108   1      } 
 109          void  serial_init()     //串口初始化
 110          {
 111   1              TMOD=0X20;
 112   1              TH1=0XFD;
C51 COMPILER V8.05a   123                                                                  04/16/2009 17:22:03 PAGE 3   

 113   1              TL1=0XFD;
 114   1              TR1=1;
 115   1              SCON=0X50;
 116   1      
 117   1      }
 118          
 119          /******************************主菜单显示*******************************************/
 120          void main_menu(uchar a)            //主菜单显示
 121          {
 122   1              uchar i,p;
 123   1              p=a;
 124   1              switch(p)
 125   1                      {
 126   2                              case 0:                                                                                         //正弦波
 127   2                                      wr_lcd(0xf4);
 128   2                                      wr_lcd(0xfa);
 129   2                                      for(i=0;i<3;i++)
 130   2                                              {
 131   3                                                      wr_zhiling(0xf0,i,0);
 132   3                                                      wr_lcd(table1[2*i]);
 133   3                                                      wr_lcd(table1[2*i+1]);
 134   3                                              }
 135   2                                      wr_lcd(0xfa);
 136   2                                      for(i=0;i<3;i++)                                                                //三角波
 137   2                                              {
 138   3                                                      wr_zhiling(0xf0,i,1);
 139   3                                                      wr_lcd(table2[2*i]);
 140   3                                                      wr_lcd(table2[2*i+1]);
 141   3                                              }
 142   2                                      for(i=0;i<3;i++)                                                                //方波
 143   2                                              {
 144   3                                                      wr_zhiling(0xf0,i,2);
 145   3                                                      wr_lcd(table3[2*i]);
 146   3                                                      wr_lcd(table3[2*i+1]);
 147   3                                              }
 148   2                                      for(i=0;i<3;i++)                                                                //扫描波
 149   2                                              {
 150   3                                                      wr_zhiling(0xf0,i,3);
 151   3                                                      wr_lcd(table4[2*i]);
 152   3                                                      wr_lcd(table4[2*i+1]);
 153   3                                              }
 154   2                                      break;
 155   2      
 156   2      
 157   2                               case 1:
 158   2                                      wr_lcd(0xf4);
 159   2                                      for(i=0;i<3;i++)
 160   2                                              {
 161   3                                                      wr_zhiling(0xf0,i,0);
 162   3                                                      wr_lcd(table1[2*i]);
 163   3                                                      wr_lcd(table1[2*i+1]);
 164   3                                              }
 165   2                                      wr_lcd(0xfa);
 166   2                                      for(i=0;i<3;i++)
 167   2                                              {
 168   3                                                      wr_zhiling(0xf0,i,1);
 169   3                                                      wr_lcd(table2[2*i]);

⌨️ 快捷键说明

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