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

📄 1335c51.lst

📁 这是一个成熟的用于驱动步进马达的程序,我们用于调试螺钉的.
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V8.15   1335C51                                                               10/29/2008 21:06:48 PAGE 1   


C51 COMPILER V8.15, COMPILATION OF MODULE 1335C51
OBJECT MODULE PLACED IN 1335c51.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 1335c51.c COMPACT BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #include <stdlib.h>
   3          #include <intrins.h>
   4          #include <stdio.h>
   5          #include "TypeDefines.h"
   6          #include "1335c51.h"
   7          #include "delay.h"
   8          
   9          
  10          
  11          
  12          
  13          extern uchar code Cdotlib[][16];
  14          extern int idata hight_limit;
  15          extern int idata sensitive_limit;
  16          extern int idata delay_value;                   //延时值(ms)
  17          
  18          
  19          
  20          
  21          
  22          
  23          //============================ 1335 常用指令列表 ===============================
  24          
  25          //初始化设置。A0=1..写指令/0...读写参数。后续8字节参数串ParaSysTable8[]
  26          #define SystemSet       0x40                                                    // 时序要求:/WR=0;/RD=1        
  27          
  28          uchar code ParaSysTable8[]= {
  29                          0x32,0x87,0x07,0x27,0x42,0xf0,0x28,0x00                         // P1-P8参数
  30                          };
  31          //              30H,87H,07H,27H,42H,0F0H,30H,00H
  32          /*SystemSet初始化设置参数表,共八字节具体定义如下:
  33          P1     [ DR | 0 | IV | 1 | W/S | M2 | M1 | M0 ] = 0x30
  34                           0    0   1    1    0    0    0    0
  35          
  36                  DR.... 辅助位移时钟周期的选择位。DR=0为正常运行;DR=1为使用辅助位移时钟周期。
  37                          通常=0
  38                    [说明]在控制双屏显示时需要液晶模块一行像素为64的整倍数,如果不是则控制器自
  39                                  动通过填充数据'0'来凑齐64位,此时就需要增加辅助位移时钟周期。
  40                  IV.... 负向字符显示时屏面边界选择位。=0为首行作为边界;=1则无边界。通常=1
  41                          [说明]在文本方式下,第一行显示的字符是顶天的,没有天头。所以在制作负向字
  42                                  符显示时的效果就不太理想。此时使用IV参数位在显示控制时制造出一行空行
  43                                  作为天头,以达到理想的显示效果。
  44                  W/S... 适配驱动系统选择位。改为将选择产生驱动时序信号的类型。0为单屏结构液晶
  45                                  显示驱动系统;1为双屏结构液晶显示驱动系统
  46                  M2.... 外部字符发生器的字体选择位。0=8*8;1=8*16
  47                  M1.... 外部字符发生器Cgram代码区选择位。0选择Cgram1字符代码为0x80~0x9f;1选择
  48                                  Cgram1 + Cgram2,字符代码为0x80~9f和0xe0~0xff
  49                  M0.... 字符发生器选择位. 0为内部字符发生器;1为外部字符发生器。
  50                          [说明]M2,M1,M0组合设置了字符发生器的结构
  51          
  52          P2              [ WF | 0 | 0 | 0 | 0 |    FX     ] = 0x87
  53                     1   0   0   0   0   1   1   1
  54          
  55                  WF.... 交流驱动波形选择位。0为C型驱动波形,行翻转驱动波形,交流驱动波形输出
C51 COMPILER V8.15   1335C51                                                               10/29/2008 21:06:48 PAGE 2   

  56                                  WF每16行翻转1次;1为B型驱动波形,交流驱动波形输出每一帧翻转1次,通常
  57                                  取1
  58                  FX.... 字符体宽度设置参数(点列数)。若FX大于实际字符体的宽度,则余出的部分
  59                                  作为空点置于字符体的右侧,形成字符字间距。FX取值在0~7范围内,代表1~8
  60                                  列/字符体。
  61          
  62          P3              [ WF | 0 | 0 | 0 |       FY      ] = 0x07
  63                     0   0   0   0   0   1   1   1
  64          
  65                  WF.... 同上;
  66                  FY.... 字符体高度设置参数(点行数)。若FY大于实际字符体的宽度,则余出的部分
  67                                  作为空点置于字符体的下方,形成字符行间距。FY取值在0~0xf之间,代表1-16
  68                                  点行/字符体
  69          
  70          P4              [            C/R                 ] = 0x27
  71          
  72                  C/R... 有效显示窗口宽度设置参数。C/R值设置了显示屏上一行显示所占显示存储器的
  73                                  单元数(字节数)。C/R取值在0~0xef范围内,表示显示屏上一个显示行所占
  74                                  显示存储器的单元数为1~240个字节。
  75                          [说明]C/R值可以选择得比显示屏的实际长度值小,但是余留部分不能超过64点列
  76                                  =8字节
  77          
  78          P5              [                       TC/R                            ] = 0x42
  79          
  80                  TC/R.. 驱动频率的时间常数。TC/R是晶振频率Fosc转换成液晶显示驱动工作频率FR的
  81                                  时间常数。它可以简单地由下式求出:
  82                                                                                          TC/R >= C/R +4
  83                          [说明] 该参数的设置有时是非常重要的。错误的设置可引起以下几种现象:
  84                                  *行扫描停止且出现高对比度的水平线
  85                                  *显示不稳定,出现闪烁或全亮或全暗
  86                                  *LP信号不足或不存在。
  87                                  在取值时还是允许有一定的选取范围的。
  88                                  TC/R与震荡频率的关系为:  Fosc >= 9 * TC/R * L/F * FR
  89                                  TC/R也可以由以上两个公式联合求出。FR为液晶显示帧扫描频率,通常=70Hz.
  90                                  在控制大规模液晶显示模块时,最大震荡频率10MHz下,要满足TC/R取值要求,
  91                                  就要降低液晶显示的帧扫描频率了。
  92                                  
  93          P6              [                         L/F                           ] = 0xF0
  94          
  95                  L/F... 扫描驱动的帧参数。L/F值设置了控制器所要控制的液晶显示驱动系统的扫描数,
  96                                  其倒数为占空比系数。当液晶显示驱动系统为单屏结构时,L/F即为1帧的扫描
  97                                  行数;当液晶显示驱动系统为双屏结构时,L/F为1帧扫描行数的2倍,此时L/F
  98                                  必须为偶数值。L/F取值范围在0~0xff范围内,对应扫描行数为1~256行。
  99          
 100          P7              [                       APL                                     ] = 0x30
 101          P8              [                       APH                                     ] = 0x00
 102          
 103                  ap在显示存储器内分配一个显示行的单元数(字节数)。ap为双字节参数,apl为低8位,
 104                  aph为高8位。通常AP取值为C/R + 1或大于C/R值的整数,以方便计算个显示行的显示存
 105                  储器地址。
 106                  
 107          */
 108          
 109          //显示域设置。A0=1..写指令/0...读写参数。后续10字节参数串ParaScrTableA[]
 110          
 111          #define Scroll          0x44            // 时序要求:/WR=0;/RD=1        
 112          
 113          #define BasePart1       0x00
 114          #define BasePart2       0x40
 115          #define BasePart3       0x80
 116          #define BasePart4       0x00
 117          
C51 COMPILER V8.15   1335C51                                                               10/29/2008 21:06:48 PAGE 3   

 118          uchar code ParaScrTableA[]= {
 119                          0x00,BasePart1,0xF0,0x00,BasePart2,0xF0,0x00,BasePart3,0x00,BasePart4
 120          };
 121          
 122          /*..............................................................................
 123          该指令设置了四个显示区的起始地址SAD合格区所控制的显示行数SL.设置的参数与‘系统
 124          设定’指令设置的参数结合将确定显示RAM中的各显示区域范围与有效的显示区域。定时间
 125          定量地递增或递减某区的起始地址SAD,将产生显示画面的平滑滚动。该指令有10个参数。
 126          部分参数的设置是有效的,但设置的顺序不能改变也不能省略。Scroll初始化设置参数表,
 127          共10字节具体定义如下:
 128          ................................................................................
 129          P1              [       SAD1L   ] = 0x00
 130          P2              [       SAD1H   ] = 0x00
 131                  SAD1显示1区首地址。SAD1确定了第1显示区的起始地址。他由双字节组成。
 132                  本区为显示主区间,占用8K空间
 133                  
 134          P3              [       SL1             ] = 0xF0
 135                  SL1显示一区所控制的显示屏上的行数:0~(L/F)
 136          ................................................................................
 137          P4              [       SAD2L   ] = 0x00
 138          P5              [       SAD2H   ] = 0x40
 139                  SAD2显示2区首地址。SAD2确定了第2显示区的起始地址。他由双字节组成。
 140                  本参数表定义这个区占用8K空间
 141          
 142          P6              [       SL2             ] = 0xF0
 143                  SL2显示2区所控制的显示屏上的行数:0~(L/F)
 144          ................................................................................
 145          P7              [       SAD3L   ] = 0x00
 146          P8              [       SAD3H   ] = 0x40
 147                  SAD3显示3区首地址。SAD3确定了第3显示区的起始地址。他由双字节组成。
 148                  作为文本区定义,占用2K空间
 149          ................................................................................
 150          P9              [       SAD4L   ] = 0x00
 151          P10             [       SAD4H   ] = 0x00
 152                  SAD4显示4区首地址。SAD4确定了第4显示区的起始地址。他由双字节组成。
 153                  作为文本区定义,占用2K空间
 154          ................................................................................
 155          后面预留空间将作为cgram使用
 156          ..............................................................................*/
 157          
 158          //休闲模式设置。A0=1;/WR=0;/RD=1;后续参数:无
 159          #define SleepIn         0x53
 160          
 161          /*该指令强制SED1335等进入休闲工作方式。在该指令输入后,SED1335等在扫描最后一行时
 162          将列驱动器清零;置YDIS=0,使液晶显示驱动系统关闭显示驱动电源;将显示存储器管理信
 163          号/VCE=1,以保护显示数据不被破坏;终止包括振荡器在内的所有内部逻辑电路的运行,但
 164          保存原设置的参数,使其进入休闲方式。退出休闲方式需要计算机重新写入'SYSTEM SET'指
 165          令的P1参数。该指令无效。
 166          */
 167          
 168          //显示状态设置。A0=1..ON/0..OFF;/WR=0;/RD=1.后续参数1字节:
 169          #define DispOn          0x59
 170          #define DispOff         0x58
 171          
 172          /*代码  [ 0 1 0 1 1 0 0 ON/OFF  ]
 173          该指令设置了显示的各种状态。他们有显示开关的设置,光标的显示状态的设置和各显示区
 174          显示状态的设置。在指令代码中就含有一个参数位:=0关显示;=1开显示。
 175          [说明]该参数位控制着显示的总开关状态。
 176          后续参数:[ FP5  FP4  FP3  FP2  FP1  FP0  FC1  FC0 ]
 177          
 178          FC1,FC0..光标状态设置位。他们组合设置了光标显示的4种状态:
 179                          ==========================================
C51 COMPILER V8.15   1335C51                                                               10/29/2008 21:06:48 PAGE 4   

 180                           FC1 FC0     光   标   状   态
 181                          ==========================================
 182                            0   0   光标显示关闭
 183                            0   1   光标显示但不闪烁
 184                            1   0   光标以 FR/32Hz 的频率闪烁显示
 185                            1   1   光标以 FR/64Hz 的频率闪烁显示
 186                          ==========================================
 187                          [注]光标闪烁的亮与暗占空比为7:3
 188          
 189          FP1,FP0...显示一区状态设置位.他们组合设置了一区显示的4种状态
 190          FP3,FP2...显示二、四区状态设置位.他们组合设置了二、四区显示的4种状态
 191          FP5,FP4...显示三区状态设置位.他们组合设置了三区显示的4种状态
 192                          ==========================================
 193                            FP1 FP0       显示一区显示状态
 194                            FP3 FP2       显示二、四区显示状态
 195                            FP5 FP4       显示三区显示状态
 196                          ==========================================
 197                             0   0    画面显示关闭
 198                             0   1    画面显示但不闪烁
 199                             1   0    画面以 FR/32Hz的频率闪烁显示
 200                             1   1    画面以 FR/64Hz的频率闪烁显示
 201                          ==========================================
 202                          [注]画面闪烁的亮与暗占空比为7:3
 203          
 204          [说明]:这些参数位都是控制着各显示区的显示状态。该状态的实现需要在总开关为开状态
 205                          时有效。
 206          */
 207          
 208          //显示合成方式设置。A0=1..写指令/0...读写参数;/WR=0;/RD=1.后续参数1字节:
 209          

⌨️ 快捷键说明

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