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

📄 jzht.lst

📁 利用高速da通过查表法进行正弦波,方波,三角波产生的stc89c51程序和波形码表生成的c程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.50   JZHT                                                                  09/05/2007 18:16:47 PAGE 1   


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

line level    source

   1          #include <reg52.H>  //77E58库函数
   2          #include <absacc.h>
   3          #include <intrins.h>
   4          #define uint unsigned int
   5          #define uchar unsigned char
   6          sfr T2MOD =0xc9;
   7          #define COM XBYTE[0x6000]   //8279命令口
   8          #define DAT XBYTE[0x4000]   //8279数据口
   9          #define DAA 0x01
  10          #define DBB 0x02
  11          #define DCC 0x04
  12          #define DDD 0x08
  13          #define DEE 0x10
  14          #define DFF 0x20
  15          #define DGG 0x40
  16          unsigned char code table[]=
  17                {DAA+DBB+DCC+DDD+DEE+DFF,//0
  18                          DBB+DCC,//1
  19                          DAA+DBB+DDD+DEE+DGG,//2
  20                          DAA+DBB+DCC+DDD+DGG,//3
  21                          DFF+DGG+DBB+DCC,//4
  22                          DAA+DFF+DGG+DCC+DDD,//5
  23                          DAA+DFF+DEE+DDD+DCC+DGG,//6
  24                          DAA+DBB+DCC+DFF,//7
  25                          DAA+DBB+DCC+DDD+DEE+DFF+DGG,//8
  26                          DAA+DBB+DCC+DDD+DFF+DGG,//9
  27                          DAA+DBB+DCC+DEE+DFF+DGG,//A
  28                          DCC+DDD+DEE+DFF+DGG,//B
  29                          DAA+DDD+DEE+DFF,//C
  30                          DBB+DCC+DDD+DEE+DGG,//D
  31                          DAA+DDD+DEE+DFF+DGG,//E
  32                          DAA+DEE+DFF+DGG,//F
  33                          DAA+DBB+DEE+DFF+DGG,//16
  34                          0x00,//17
  35                          DBB+DCC+DDD,//18
  36                          DDD};//19
  37          unsigned char data cont0[16]={0x00,0x02,0x04,0x07,0x09,
  38          0x0b,0x0c,0x0e,0x01,0x03,0x05,0x06,0x0a,16,0x0d,17};//键表
  39          uchar data keynum;//按键数值和临时单元
  40          uchar display_table[8];
  41          uchar disp_statu=8;//=0 设定频率 =1 设定幅值 8 显示频率 2 显示幅值
  42          uchar wave_kind=0;
  43          uchar wave_aa=10;//默认幅值为1V
  44          uchar wave_add;//波形起始地址
  45          unsigned long disp_temp1;
  46          unsigned long wave_ff=100;//默认频率为100
  47          //uchar wave_fw=0;//默认步进为10Hz
  48          void dispz(void);//点亮所有八位数据
  49          void delay_1s(void);
  50          void service_int0(void) interrupt 0
  51          {
  52   1              unsigned char j;
  53   1              union uuu
  54   1              {
  55   1                      unsigned long lword;
C51 COMPILER V7.50   JZHT                                                                  09/05/2007 18:16:47 PAGE 2   

  56   1                      unsigned char byte[4];
  57   1              } set_f;
  58   1      
  59   1              j=DAT;
  60   1              keynum=cont0[j];
  61   1              j=keynum;
  62   1              if(j==4)//选择方波
  63   1              {
  64   2                                      display_table[0]=0x0f;
  65   2                       display_table[1]=0x0f;
  66   2                       display_table[2]=19;
  67   2                       display_table[3]=17;
  68   2                       display_table[4]=17;
  69   2                       display_table[5]=17;
  70   2                       display_table[6]=17;
  71   2                       display_table[7]=17;
  72   2                       dispz();
  73   2                                      wave_kind=1;
  74   2                                              wave_ff=100;
  75   2                                      disp_statu=0;
  76   2              }
  77   1              else if(j==0)//选择正弦波
  78   1              {
  79   2                       display_table[0]=5;
  80   2                       display_table[1]=0x0f;
  81   2                       display_table[2]=19;
  82   2                       display_table[3]=17;
  83   2                       display_table[4]=17;
  84   2                       display_table[5]=17;
  85   2                       display_table[6]=17;
  86   2                       display_table[7]=17;
  87   2                       dispz();
  88   2                                      wave_kind=0;
  89   2                                              wave_ff=100;
  90   2                                      disp_statu=0;
  91   2              }
  92   1              else if(j==9)//选择三角波
  93   1              {
  94   2                       display_table[0]=0x0a;
  95   2                       display_table[1]=0x0f;
  96   2                       display_table[2]=19;
  97   2                       display_table[3]=17;
  98   2                       display_table[4]=17;
  99   2                       display_table[5]=17;
 100   2                       display_table[6]=17;
 101   2                       display_table[7]=17;
 102   2                       dispz();
 103   2                                      wave_kind=2;
 104   2                                              wave_ff=100;
 105   2                                      disp_statu=0;
 106   2              }
 107   1              else if(j==12)//选择锯齿波
 108   1              {
 109   2                       display_table[0]=18;
 110   2                       display_table[1]=0x0f;
 111   2                       display_table[2]=19;
 112   2                       display_table[3]=17;
 113   2                       display_table[4]=17;
 114   2                       display_table[5]=17;
 115   2                       display_table[6]=17;
 116   2                       display_table[7]=17;
 117   2                       dispz();
C51 COMPILER V7.50   JZHT                                                                  09/05/2007 18:16:47 PAGE 3   

 118   2                                              wave_ff=100;
 119   2                                      wave_kind=3;
 120   2                                      disp_statu=0;
 121   2              }
 122   1              else if(j==1)//设定频率
 123   1              {
 124   2                         disp_statu=0;
 125   2                              switch(wave_kind)
 126   2                              {
 127   3                                      case 0://显示正弦频率
 128   3                                      display_table[1]=0x0f;
 129   3                                      display_table[2]=wave_ff/100000;
 130   3                                      disp_temp1=wave_ff%100000;
 131   3                                      display_table[3]=disp_temp1/10000;
 132   3                                      disp_temp1=disp_temp1%10000;
 133   3                                      display_table[4]=disp_temp1/1000;
 134   3                                      disp_temp1=disp_temp1%1000;
 135   3                                      display_table[5]=disp_temp1/100;
 136   3                                      disp_temp1=disp_temp1%100;
 137   3                                      display_table[6]=disp_temp1/10;
 138   3                                      disp_temp1=disp_temp1%10;
 139   3                                      display_table[7]=disp_temp1;
 140   3                               dispz();
 141   3                                      break;
 142   3                                      case 1://显示方波
 143   3                                      display_table[1]=0x0f;
 144   3                                      display_table[2]=wave_ff/100000;
 145   3                                      disp_temp1=wave_ff%100000;
 146   3                                      display_table[3]=disp_temp1/10000;
 147   3                                      disp_temp1=disp_temp1%10000;
 148   3                                      display_table[4]=disp_temp1/1000;
 149   3                                      disp_temp1=disp_temp1%1000;
 150   3                                      display_table[5]=disp_temp1/100;
 151   3                                      disp_temp1=disp_temp1%100;
 152   3                                      display_table[6]=disp_temp1/10;
 153   3                                      disp_temp1=disp_temp1%10;
 154   3                                      display_table[7]=disp_temp1;
 155   3                               dispz();
 156   3                                      break;
 157   3                                      case 2://显示三角波
 158   3                                      display_table[1]=0x0f;
 159   3                                      display_table[2]=wave_ff/100000;
 160   3                                      disp_temp1=wave_ff%100000;
 161   3                                      display_table[3]=disp_temp1/10000;
 162   3                                      disp_temp1=disp_temp1%10000;
 163   3                                      display_table[4]=disp_temp1/1000;
 164   3                                      disp_temp1=disp_temp1%1000;
 165   3                                      display_table[5]=disp_temp1/100;
 166   3                                      disp_temp1=disp_temp1%100;
 167   3                                      display_table[6]=disp_temp1/10;
 168   3                                      disp_temp1=disp_temp1%10;
 169   3                                      display_table[7]=disp_temp1;
 170   3                               dispz();
 171   3                                      break;
 172   3                                      case 3://显示锯齿波
 173   3                                      display_table[1]=0x0f;
 174   3                                      display_table[2]=wave_ff/100000;
 175   3                                      disp_temp1=wave_ff%100000;
 176   3                                      display_table[3]=disp_temp1/10000;
 177   3                                      disp_temp1=disp_temp1%10000;
 178   3                                      display_table[4]=disp_temp1/1000;
 179   3                                      disp_temp1=disp_temp1%1000;
C51 COMPILER V7.50   JZHT                                                                  09/05/2007 18:16:47 PAGE 4   

 180   3                                      display_table[5]=disp_temp1/100;
 181   3                                      disp_temp1=disp_temp1%100;

⌨️ 快捷键说明

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