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

📄 spy_lcd.lst

📁 此程序主要测试50HZ~3KHZ音频范围幅频特性测试程序.程序包含主控程序和显示程序.
💻 LST
📖 第 1 页 / 共 5 页
字号:
  30      =1  extern char putchar (char);
  31      =1  extern int printf   (const char *, ...);
  32      =1  extern int sprintf  (char *, const char *, ...);
  33      =1  extern int vprintf  (const char *, char *);
  34      =1  extern int vsprintf (char *, const char *, char *);
  35      =1  extern char *gets (char *, int n);
  36      =1  extern int scanf (const char *, ...);
  37      =1  extern int sscanf (char *, const char *, ...);
  38      =1  extern int puts (const char *);
  39      =1  
  40      =1  #pragma RESTORE
C51 COMPILER V7.06   SPY_LCD                                                               04/22/2007 11:06:48 PAGE 5   

  41      =1  
  42      =1  #endif
  43      =1  
  10          
  11          #define uchar unsigned char
  12          #define uint unsigned int
  13          
  14          sbit DENG=P3^5;  //定义调试测试灯
  15          
  16           /*将字节A中的第B位置C,C为1或0 */
  17          #define SETBIT(A,B,C) ((C)?(A=A|(1<<B)):(A=A&(~(1<<B))))
  18          
  19          /*测试字节A中第B位,是1返回1,是0返回0*/
  20          #define GETBIT(A,B) ((A&(1<<B))?1:0)
  21          
  22          /*将A,B中较小的返回*/
  23          #define MIN(A,B) ((A<=B)?A:B)
  24          
  25          /*将A,B中较大的返回*/
  26          #define MAX(A,B) ((A>=B)?A:B)
  27          
  28          #define co_sel 1        /*商标显示选择1为世通科技,0为RYCOM*/
  29          
  30          typedef struct  //使用typedef别名来定义结构类型变量
  31          {
  32                  uchar x;
  33                  uchar y;
  34          }point;   //point为结构体的类型别名,然后在利用point来定义结构体变量。
  35          
  36          point p1,p2;  //定义结构体变量p1,p2
  37          
  38          void iwlr(uchar);               /*指令同时写入左右半屏*/
  39          void dwlr(uchar);               /*显示数据同时写入左右半屏*/
  40          void iwl(uchar);                /*指令写入左半屏*/
  41          void iwr(uchar);                /*指令写入右半屏*/
  42          void dwl(uchar);                /*显示数据写入左半屏*/
  43          void dwr(uchar);                /*显示数据写入右半屏*/
  44          uchar drl();                    /*显示数据从左半屏读入*/
  45          uchar drr();                    /*显示数据从右半屏读入*/
  46          void offlcd();                  /*关闭LCD*/
  47          void onlcd();                   /*打开LCD*/
  48          
  49          uchar pf;                               /*校验和*/
  50          point cursor;                   /*光标点全局变量*/
  51          bit zf_ovx;                             /*显示字符超出水平边界标志*/
  52          bit zf_ovy;                             /*显示字符超出垂直边界标志*/
  53          //bit tx_ovx;                           /*显示图形超出垂直边界标志*/
  54          //bit tx_ovy;                           /*显示图形超出垂直边界标志*/
  55          //bit zf_fs;                            /*0为西文方式,1为中文方式*/
  56          //bit sec;                              /*秒信号,由定时器周期取反*/
  57          
  58          //uchar bdata flag=0;           /*显示状态字节*/
  59          //sbit flash=flag^7;            /*闪烁标志,0为不闪烁,1为闪烁,只要以下任一有便为1*/
  60          //sbit fref=flag^6;             /*频率闪烁标志,0为不闪烁,1为闪烁*/
  61          //sbit batf=flag^5;             /*电量闪烁标志,0为不闪烁,1为闪烁*/
  62          //sbit bandf=flag^4;            /*频带闪烁标志,0为不闪烁,1为闪烁*/
  63          //sbit mutef=flag^3;            /*静音闪烁标志,0为不闪烁,1为闪烁*/
  64          //sbit prof=flag^1;             /*提示闪烁标志,0为不闪烁,1为闪烁*/
  65          //sbit bufov=flag^0;            /*命令缓冲区满标志,1为满*/
  66          
  67          
  68          //uchar ffpos=0;                        /*频率选种位置,从0到5*/
C51 COMPILER V7.06   SPY_LCD                                                               04/22/2007 11:06:48 PAGE 6   

  69          
  70          uchar idata r_in=1;                                     /*入队列指针*/
  71          uchar idata r_out=0;                            /*出队列指针*/
  72          bit r_full;                                                     /*接收命令缓冲区满标志*/
  73          uchar cmd_cnt=0;                                        /*命令计数器,每一个完整的命令加1,命令结束标志为0xff*/
  74          bit cmd_st=0;                                           /*命令开始标志*/
  75          bit cmd_fin=0;                                          /*命令结束标志*/
  76          
  77          uchar lbarnum=0;                                        /*水平条形图宽度数据*/
  78          uchar batnum=0;                                         /*电池电量数据*/
  79          uchar counter=0;                                        /*计数器*/
  80          uchar vol_bar_num=0;                            /*音量条形图宽度数据*/
  81          
  82          uint idata shuju[4];//{0x1b,0x11,0xaf,0x20}; //shuju[0]:为空内容 shuju[1]:数据命令类型  shuju[2]:数据低8位
             - shuju[3]:数据高8位
  83          uchar idata shuju_y[100]; //定义记录扫频过曲线点的坐标
  84          uchar idata qxzz; //定义扫频时数据更新记录指针
  85          uchar idata direction=0; //定义查询时光标移动方向 =0为向左移方向,=1为向右移方向.
  86          
  87          uchar sum=0,istart=0,iend=0;  //初始化状态标志位
  88          uint fre_sp,bre_sp; //定义扫频时显示变量
  89          uint fre_cx,bre_cx;  //定义查询时显示变量
  90          uint fre_cx0; //用来记录前一个查询时的频值
  91          uint fre_cx1; //用来记录第二一个查询时的频值
  92          uint voltaga_sp=0;   //扫频仪固定输出电压值
  93          
  94          uchar idata  counter_cx=0;//查询时竖线移动计数标志
  95          uchar pdlx;   //频段号标志
  96          uchar spgs;  //扫频格式标志
  97          uint tally;  //定义查询键按下次数标值
  98          
  99          bit sp_fre=0;  //扫频时频率值处理标志
 100          bit sp_bre=0;  //扫频时幅值处理标志
 101          bit cx_fre=0;   //查询时频率值处理标志
 102          bit cx_bre=0;  //查询时幅值处理标志
 103          bit st_st=0;   //开始键按下标志
 104          
 105          
 106          
 107          
 108          /*以下字模格式为:   取模方式为: 纵向取模
 109                              字节为倒序
 110                              保留文字字模数据后的最后一个逗号
 111                              任何时候都加o
 112          */
 113          
 114          
 115          /*小字体数字*/
 116          uchar code numeric[]={
 117          /*--  文字:  0  --*/
 118          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=5x10   --*/
 119          /*--  高度不是8的倍数,现调整为:宽度x高度=5x16  --*/
 120          0x00,0x78,0x84,0x84,0x78,0x00,0x00,0x00,0x00,0x00,
 121          
 122          /*--  文字:  1  --*/
 123          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=5x10   --*/
 124          /*--  高度不是8的倍数,现调整为:宽度x高度=5x16  --*/
 125          0x00,0x00,0x08,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,
 126          
 127          /*--  文字:  2  --*/
 128          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=5x10   --*/
 129          /*--  高度不是8的倍数,现调整为:宽度x高度=5x16  --*/
C51 COMPILER V7.06   SPY_LCD                                                               04/22/2007 11:06:48 PAGE 7   

 130          0x00,0xC8,0xA4,0xA4,0x98,0x00,0x00,0x00,0x00,0x00,
 131          
 132          /*--  文字:  3  --*/
 133          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=5x10   --*/
 134          /*--  高度不是8的倍数,现调整为:宽度x高度=5x16  --*/
 135          0x00,0x48,0x84,0x94,0x68,0x00,0x00,0x00,0x00,0x00,
 136          
 137          /*--  文字:  4  --*/
 138          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=5x10   --*/
 139          /*--  高度不是8的倍数,现调整为:宽度x高度=5x16  --*/
 140          0x00,0x60,0x58,0xFC,0x40,0x00,0x00,0x00,0x00,0x00,
 141          
 142          /*--  文字:  5  --*/
 143          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=5x10   --*/
 144          /*--  高度不是8的倍数,现调整为:宽度x高度=5x16  --*/
 145          0x00,0x9C,0x94,0x94,0x64,0x00,0x00,0x00,0x00,0x00,
 146          
 147          /*--  文字:  6  --*/
 148          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=5x10   --*/
 149          /*--  高度不是8的倍数,现调整为:宽度x高度=5x16  --*/
 150          0x00,0x78,0x94,0x94,0x60,0x00,0x00,0x00,0x00,0x00,
 151          
 152          /*--  文字:  7  --*/
 153          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=5x10   --*/
 154          /*--  高度不是8的倍数,现调整为:宽度x高度=5x16  --*/
 155          0x00,0x04,0xE4,0x14,0x0C,0x00,0x00,0x00,0x00,0x00,
 156          
 157          /*--  文字:  8  --*/
 158          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=5x10   --*/
 159          /*--  高度不是8的倍数,现调整为:宽度x高度=5x16  --*/
 160          0x00,0x68,0x94,0x94,0x68,0x00,0x00,0x00,0x00,0x00,
 161          
 162          /*--  文字:  9  --*/
 163          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=5x10   --*/
 164          /*--  高度不是8的倍数,现调整为:宽度x高度=5x16  --*/
 165          0x00,0x18,0xA4,0xA4,0x78,0x00,0x00,0x00,0x00,0x00,
 166          
 167          /*--  文字:  小数点 --*/
 168          /*--  宽度x高度=5x16  --*/
 169          0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x01,0x00,0x00,
 170          };
 171          
 172          /*大写字母*/
 173          uchar code letter[]={
 174          /*--  文字:  A  --*/
 175          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 176          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 177          0x00,0xC0,0x30,0x2C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
 178          
 179          
 180          /*--  文字:  B  --*/
 181          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 182          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 183          0x00,0xFC,0x94,0x94,0x94,0x68,0x00,0x00,0x00,0x00,0x00,0x00,
 184          
 185          /*--  文字:  C  --*/
 186          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 187          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 188          0x00,0x78,0x84,0x84,0x84,0x48,0x00,0x00,0x00,0x00,0x00,0x00,
 189          
 190          /*--  文字:  D  --*/
 191          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
C51 COMPILER V7.06   SPY_LCD                                                               04/22/2007 11:06:48 PAGE 8   

 192          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 193          0x00,0xFC,0x84,0x84,0x84,0x78,0x00,0x00,0x00,0x00,0x00,0x00,
 194          
 195          /*--  文字:  E  --*/
 196          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 197          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 198          0x00,0xFC,0x94,0x94,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 199          
 200          /*--  文字:  F  --*/
 201          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 202          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 203          0x00,0xFC,0x14,0x14,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 204          
 205          /*--  文字:  G  --*/
 206          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 207          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 208          0x00,0x78,0x84,0x84,0xA4,0xE8,0x00,0x00,0x00,0x00,0x00,0x00,
 209          
 210          /*--  文字:  H  --*/
 211          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 212          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 213          0x00,0xFC,0x10,0x10,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 214          
 215          /*--  文字:  I  --*/
 216          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 217          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 218          0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 219          
 220          /*--  文字:  J  --*/
 221          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 222          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 223          0x00,0xC0,0x80,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 224          
 225          /*--  文字:  K  --*/
 226          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 227          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 228          0x00,0xFC,0x30,0x48,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 229          
 230          /*--  文字:  L  --*/
 231          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/

⌨️ 快捷键说明

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