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

📄 1335c51.lst

📁 这是一个成熟的用于驱动步进马达的程序,我们用于调试螺钉的.
💻 LST
📖 第 1 页 / 共 5 页
字号:
 210          #define Ovlay           0x5b
 211          /* 该指令设置了显示区的合成显示方式以及显示1区和3区的显示方式。该指令带有一个参
 212          数。参数的功能如下:
 213                  P       [ 0  0  0  OV  DM2  DM1  MX1  MX0 ]
 214          OV...显示合成设置位。=0为二重合成显示,用于文本与图形或图形与图形的混合显示;=1为
 215                  三重合成显示,仅用于图形混合显示。
 216          [说明1]:二重合成显示方式是将两个显示区的内容经某一种逻辑运算合成出新的显示数据
 217                  从而产生新的显示画面。该方式将以第一、第二显示区为主,第三第四显示区为辅的合
 218                  成,合成方式如下:
 219          
 220                  SAD2    +--------+ ---               SAD2    +----------+  ---
 221                                  |L2      |                                           |L2        |   ^
 222                  SAD1  +--------+ |                           SAD1-+---------+   |   |
 223                            |L1      | | SL2                                |L1       |   |
 224                  (SL1) |            | |                          (SL1) |             |   |  SL2
 225                            |                |-+ ---                       SAD3 |---------|   |   |
 226                            |                | |                                    |L3       |---+  ---
 227                            +--------+ + 新数据    (L/F-SL1)|                 |   |
 228                                                  逻辑                              +---------+ - +->新数据
 229                                                  运算                                                      逻辑
 230                                                                                                                    运算
 231                  (a)单屏结构:显示1,2区参加的  (b)单屏结构:显示1,2,3区参加的
 232                       二重合成显示方式                     二重合成显示方式(一)
 233          
 234          
 235                  SAD2--  +----------+ ----                 SAD2--  +-----------+ ---
 236                                  | L2       | (SL2)                                | L2            | (SL2)
 237                  SAD1--+---------+  |                      SAD1- +----------+  |
 238                            | L1      |--+ - SAD3          (SL1)  | L1       |--+ ---
 239                            |                 |L3|                                        |                  |L4| (L/F-SL2)
 240                            |         |  | (SL3)            SAD3- +----------+  |
 241                            |                 |--+ ----                       | L3           |--+ ---
C51 COMPILER V8.15   1335C51                                                               10/29/2008 21:06:48 PAGE 5   

 242                            |                 |  v                   (L/F-SL1)|              |  v
 243                            +---------+- + 新数据                     +----------+->+ 新数据 
 244                                                    逻辑                                                      逻辑
 245                                                    运算                                                      运算
 246          
 247                  (c)单屏结构:显示1,2,3区参加的    (d)单屏结构:显示1,2,3,4区参加的
 248                      二重合成限时方式(二)                            二重合成限时方式
 249          
 250          [说明2]:三重合成显示方式是将三个显示区的内容经某一种或二种逻辑运算合成出新的显示
 251                  数据从而产生新的显示画面。该方式将以第一、第二、第三显示区参加的合成,合成方
 252                  式如下:
 253          
 254          
 255                           SAD3------   +---------------+
 256                                                            | L3                    |
 257                                   SAD2----  +---------------+  |
 258                                                     |L2                     |  |
 259                                   SAD1-- +---------------+  |  |
 260                                                  |L1                         |  |--+
 261                                                  |                           |  |  |
 262                                                  |                           |--+  |
 263                                                  |                           |  v  v
 264                                                  +---------------+->+--+->新数据
 265                                                                                     逻辑
 266                                                                                     运算
 267          
 268          MX1,MX0....显示合成方式设置位。组合设置了4种合成显示方式:
 269          
 270            ==============================================================================
 271                  MX1  MX0                 合成方式                      用途
 272            ==============================================================================
 273               0    0     L1 or L2 or L3 简单逻辑或合成       底线坐标和文本图形混合显示  
 274                   0    1     (L1 xor L2) or L3 逻辑异或。或合成  负向字符显示,区域内闪烁底线
 275               1    0     (L1 and L2) or L3 逻辑与。或合成    简单动画立体表达式
 276                   1        1         L1 > L2 > L3 优先叠加               简单动画立体表达式
 277            ==============================================================================
 278           [说明]
 279             1。合成显示产生的结果仅改变显示画面而不改变各显示区的内容
 280             2。优先叠加合成显示是三个显示区以L1覆盖L2、L2覆盖L3的方式逻辑或合成显示,当关
 281                  闭L1时,L2和L3与L1相同的显示部分(为'1'处)被关闭;当L2被关闭时,L3与L2相同显
 282                  示的部分(为'1'处)被关闭。
 283          
 284          DM1.......显示一区的显示属性位。DM1=0设置显示一区为文本显示属性,其数据均作为字
 285                          符代码处理;=1设置显示一区为图形显示属性,其数据均作为图形数据处理。
 286          
 287          DM2.......显示三区的显示属性位。DM2=0设置显示三区为文本显示属性,其数据均作为字
 288                          符代码处理;=1设置显示三区为图形显示属性,其数据均作为图形数据处理。
 289          */
 290          
 291          //点位移设置。A0=1..写指令/0...读写参数;/WR=0;/RD=1.后续参数1字节:
 292          #define HdotScr         0x5a
 293          
 294          /*该指令设置了以点为单位的显示画面的水平位移量。该指令的作用有二:1。在制作负向
 295          显示字符时,与'SYSTEM SET'参数'IV'结合使用。通过设置该指令可以产生做边界,使得行
 296          首字符有比较好的显示效果。2。在制作画面滚动显示效果时与'SCROOLL'指令结合产生水平
 297          向点滚动的效果。但要注意的是该指令控制在显示数据合成之后向驱动系统输出之处,故该
 298          指令所产生的滚动效果是针对所有参加显示的区,因此,要想使某一显示区产生点滚动而其
 299          他显示区不动是不可能的??(可以在调用本指令以前先关闭其他显示区?)
 300          附带参数: [ 0 0 0 0 0    D    ]
 301          D......水平点位移参数。D取值在0~7,当D取值由0->7方向递增时,显示画面呈现左移效果,
 302                  反之右移。
 303          [说明]:与SCROLL指令结合使用方法:显示左移时,首先使用HDOY SCR指令使点位移参数从
C51 COMPILER V8.15   1335C51                                                               10/29/2008 21:06:48 PAGE 6   

 304          0->7然后使用SCROLL指令将显示起始地址SAD加1,并同时将HDOT SCR参数清零。循环上述过
 305          程,将产生显示水平向左点位移的效果。显示右移时,首先使用HDOY SCR指令使点位移参数
 306          从7->0,然后使用SCROLL指令将显示起始地址SAD减1,并同时将HDOT SCR参数置7。循环上
 307          述过程,将产生显示水平向右点位移的效果。
 308          */
 309          
 310          //光标形状设置。A0=1..写指令/0...读写参数;/WR=0;/RD=1.后续参数2字节
 311          #define CsrForm 0x5d
 312          
 313          /* 该指令设置了光标的显示形状。光标的显示形状有线状形式和块状形式两种。光标的形
 314          状是可以设置的。该指令所带的两个参数将实现对光标形状的设置。两参数功能如下:
 315                  P1      [ 0  0  0  0  0     CRX    ]
 316          CRX....光标形状水平方向点列数。CRX取值 0~7,对应实际点列1~8点, CRX<=FX.
 317          
 318          
 319                  P2      [ CM  0  0  0  0    CRY    ]
 320          CRY....光标形状垂直方向点行数。CRY取值范围 1~FH,对应实际点行1~16行,CRY=0或
 321                                  CRY>FY无效
 322          CM.....光标形状选择位。=0为线状光标显示;=1为块状光标显示。
 323          [说明]:线状光标的形状由CRX确定其长度,由CRY确定其所占的显示行数,当CRY=FY时,
 324          光标显示底线形式。光标显示仅在文本方式下有效。
 325          */
 326          
 327          //Cgram首地址设置.A0=1..写指令/0...读写参数;/WR=0;/RD=1.后续参数2字节
 328          #define CgramAdr        0x5c
 329          
 330          /* 该指令设置了CGRAM在显示存储器内的起始地址SAG.从该地址SAG起的2K字节空间(M2=0)
 331          或4K字节空间(M2=1)为CGRAM区域。该指令带有两个参数:
 332             P1    [  SAGL  ]
 333             P2    [  SAGH  ]
 334          SAG.... CGRAM起始地址。SAGL为SAG的低8位,SAGH为SAG的高8位。
 335          [说明]SAG所指向对应的是字符代码0的字模首地址,所以对于CGRAM1的首地址应该是SAG+
 336          0x80*8,CGRAM2区域的字符代码为0xE0~0xFF,但是由于控制部在CGRAM2的首地址上安置了异
 337          或0x40的电路,所以,CGRAM2的地址应按0xA0~0xBF计算,即CGRAM2的首地址为SAG+0xA0*8
 338          */
 339          
 340          //光标移动方向设置。A0=1;/WR=0;/RD=1.后续参数:无
 341          #define CsrDirR         0x4c
 342          #define CsrDirL         0x4d
 343          #define CsrDirU         0x4e
 344          #define CsrDirD         0x4f
 345          
 346          /* 该指令规定了光标指针CSR在计算机读写显示数据后自动修复的方向,从显示效果来说,
 347          就是光标移动的方向设置。该指令的两个参数位DR1,DR0:
 348                          ===========================
 349                            DR1 DR0   自动定位方向
 350                          ===========================
 351                             0   0    右
 352                             0   1    左
 353                             1   0    上
 354                             1   1    下
 355                          ===========================
 356          
 357          */
 358          //光标指针设置。A0=1..写指令/0...读写参数;/WR=0/1;/RD=1/0(指令/后续参数读写).后
 359          //续参数2字节
 360          
 361          #define CsrW            0x46
 362          
 363          /* 该指令设置了光标指针CSR.该指针有两个功能:1。作为当前光标显示的位置;2。作为
 364          显示存储器当前的地址指针。2个参数:CSRL,CSRH
 365          
C51 COMPILER V8.15   1335C51                                                               10/29/2008 21:06:48 PAGE 7   

 366          [说明]:当光标指针指向有效显示区域之外时,光标将自动消失,但不影响显示数据的读写。
 367          光标指针在计算机的每次读写显示数据操作后,将根据最近设置的光标指针移动方向而自动
 368          修正。光标指针不受画面滚动操作的影响。
 369          */
 370          
 371          //读取光标指针。A0=1..写指令/0...读写参数;/WR=0;/RD=1.后续参数2字节
 372          #define CsrR            0x47
 373          
 374          /* 该指令代码写入后,计算机将从SED1335等数据通道读出当前的光标指针值。光标指针读
 375          出的顺序是先CSRL再CSRH.
 376          */
 377          
 378          //数据写入设置。A0=1..写指令/0...读写参数;/WR=0;/RD=1.后续参数N字节
 379          #define mWrite          0x42
 380          
 381          /*该指令写入后将允许计算机连续的向显示存储器内写入数据。写入的单元地址由光标指针
 382          CSR提供,写操作完成后光标指针自动根据所设置的光标指针移动方向进行修改。显示数据
 383          写入操作在计算机写入下一指令代码后结束。
 384          */
 385          
 386          //数据读取设置。A0=1..写指令/0...读写参数;/WR=0;/RD=1.后续参数N字节
 387          #define mRead           0x43
 388          
 389          // 程序参数定义,根据用户选择的LCM型号修改
 390          #define Busy            0x40            // 忙状态标志位0b0100 0000
 391          #define paraP9          0x28            // 相对于320 X 240
 392          
 393          
 394          
 395          
 396          
 397          
 398          
 399          
 400          
 401          
 402          
 403          
 404          
 405          
 406          #if 0
              
              //菜单光标控制程序,控制光标开/关
              void SurCtl(uint x0, uchar y0, uint xt, uchar yt, uchar att)
              {
                  Rectangle(x0-7, y0-7, xt+7, yt+7, att);
                  Rectangle(x0-6, y0-6, xt+6, yt+6, att);
                  Rectangle(x0-5, y0-5, xt+5, yt+5, att);
                  if(att==0)
                      {
                          Linexy(x0-8,y0-8,x0-4,y0-4,1);
                          Linexy(x0-8,yt+8,x0-4,yt+4,1);
                          Linexy(xt+8,y0-8,xt+4,y0-4,1);
                          Linexy(xt+8,yt+8,xt+4,yt+4,1);
                      }
              }
              
              
              
              
              
              

⌨️ 快捷键说明

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