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

📄 demo.lst

📁 液晶控制芯片SED1335的控制程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.07   DEMO                                                                  01/12/2007 17:28:05 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE DEMO
OBJECT MODULE PLACED IN demo.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE demo.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          // CEEBACK.GAO. 2006-05-09
   2          // 目标器件: LCM: AG_320240,SED1335  
   3          //                       MCU: STC89C58RD+
   4          // 实现功能: 可以写 ASCII 码字符,写汉字(文本层,图形层)
   5          //                       画直线,画圆;
   6          // 说明:对320*240点阵屏幕坐标定位如下
   7          //               左上角为原点(0,0),水平向右为X轴正方向,垂直向下为Y轴正方向
   8          //               X 轴坐标取值范围: 0~319;
   9          //               Y 轴坐标取值范围: 0~239;
  10          // 字模提取方法:采zimo221软件,纵向取模,再修改图像->旋转90度->图像上下调换。
  11          //                               这样依次得到左上部, 左下部, 右上部和右下部四部分分配代码
  12          
  13          #include <mcs51.h>
  14          #include <absacc.h>
  15          //#include <math.h>
  16          
  17          #define uchar unsigned char
  18          #define uint  unsigned int
  19          #define ulong unsigned long
  20          
  21          // 直接访问方式地址定义,根据用户平台接口修改
  22          #define  LCD_CMD_ADR    XBYTE[0xBF02]  // 写指令代码地址 读参数及显示数据地址
  23          #define  LCD_DAT_ADR    XBYTE[0xBF00]  // 写参数及显示数据地址 读忙状态地址
  24          //#define        rdadd1 XBYTE[0xBF02]
  25          //#define        rbadd1 XBYTE[0xBF00]
  26          
  27          // 程序参数定义,根据用户选择的LCM型号修改
  28          #define PARA    0x28
  29          #define SAD2    0X04B0
  30          
  31          // 定义调用函数
  32          void CCW1_PR(uchar O_X,uchar O_Y,uint num);      //     汉字写入函数(文本方式)
  33          void CCW2_PR(uchar O_X,uchar O_Y,uint num);      //     汉字写入函数(图形方式)
  34          void CGRAM(uint num);
  35          void clear_lcd(void);
  36          void initial_lcd(void);
  37          void draw_dot(int O_X,uchar O_Y);  // 绘点函数
  38          void w_ASCII(uchar O_X,uchar O_Y,uchar num);     //     写ASCII码函数
  39          void w_string(uchar O_X,uchar O_Y,const uchar *STRING);
  40          void draw_vertical(uchar y1,uchar y2,int x);
  41          void draw_horizontal(int x1,int x2,uchar y);
  42          void draw_bias(int x1,uchar y1,int x2,uchar y2);
  43          void draw_circle(int x0,uchar y0,uchar radius);
  44          
  45          //-------------------240128的SYSTEM     SET     参数-------------------------------
  46          //code unsigned char SYSTAB[8]={0x30,0x87,0x07,0x1e,0x47,0x80,0x1f,0x00};
  47          unsigned char SYSTAB[8]={0x30,0x87,0x07,0x27,0x47,0xef,0x28,0x00};      // 自己修改的
  48          //code unsigned char SCRTAB[10]={0x00,0x00,0x80,0xf0,0x01,0x80,0x00,0x00,0x00,0x00};
  49          unsigned char SCRTAB[8]={0x00,0x00,0xf0,0xb0,0x04,0xf0,0x2F,0x2A};      // 自己修改的
  50          
  51          // 在此可以观察文本方式下的字符及光标的显示效果(写入内容为"Sevicer tel:")
  52          code unsigned char CTAB1[]={"TIETONG ELECTRONICS CO.LTD"};
  53          // 文本方式下的汉字显示方法
  54          /*在文本方式下显示汉字, 需要在SED1335 等显示RAM 内建立一个自定义字符库
  55           CGRAM,然后通过在相应的单元写入相应的字符代码来实现汉字的显示.
C51 COMPILER V7.07   DEMO                                                                  01/12/2007 17:28:05 PAGE 2   

  56           SED1335 等的字符代码对应的是8x8 点阵的字符块, 而一个汉字需要四个8x8
  57           点阵的字符块组合显示, 所以在建立汉字的CGRAM 时, 需要四个字符代码管理一个
  58           汉字, 一般是按左上部, 左下部, 右上部和右下部四部分分配代码. 比如在演示程
  59           序中建立 "清华" 两个汉字的CGRAM,那么这两个汉字的代码为80H(81H,82H,83H)和
  60           84H(85H,86H,87H).*/
  61          
  62          code uchar CGTAB[][32]={
  63          /*--  文字:  泉  --*/
  64          0x03,0x3F,0x3F,0x30,0x3F,0x30,0x3F,0x3F,0x01,0x7D,0x7D,0x0D,0x19,0x77,0xC3,0x00,
  65          0x00,0xF8,0xF8,0x18,0xF8,0x18,0xF8,0xF8,0x80,0x8C,0xD8,0xE0,0xB0,0x9E,0x0C,0x00,
  66          
  67          /*--  文字:  州  --*/
  68          0x18,0x19,0x19,0x19,0x59,0x5D,0x5D,0xDB,0x9B,0x99,0x19,0x31,0x31,0x61,0x60,0x00,
  69          0x0C,0x8C,0x8C,0x8C,0x8C,0xCC,0xCC,0xAC,0xAC,0x8C,0x8C,0x8C,0x8C,0x8C,0x0C,0x00,
  70          
  71          /*--  文字:  铁  --*/
  72          0x30,0x30,0x3D,0x7D,0xC1,0xFB,0x78,0x33,0x7B,0x78,0x30,0x3C,0x39,0x33,0x02,0x00,
  73          0x30,0x30,0xB0,0xFC,0xFC,0x30,0x30,0xFE,0xFE,0x30,0x70,0xD8,0x8C,0x06,0x02,0x00,
  74          
  75          /*--  文字:  通  --*/
  76          0x07,0x67,0x31,0x10,0x07,0xF7,0xF6,0x37,0x36,0x37,0x36,0x36,0x38,0x6F,0xC7,0x00,
  77          0xFC,0xF8,0xB0,0xE0,0xFC,0xFC,0x6C,0xFC,0x6C,0xFC,0x6C,0x6C,0x00,0xFE,0xFE,0x00,
  78          
  79          /*--  文字:  电  --*/
  80          0x03,0x03,0x3F,0x3F,0x33,0x33,0x3F,0x33,0x33,0x3F,0x3F,0x33,0x03,0x03,0x01,0x00,
  81          0x00,0x00,0xF8,0xF8,0x18,0x18,0xF8,0x18,0x18,0xF8,0xF8,0x06,0x06,0xFE,0xFC,0x00,
  82          
  83          /*--  文字:  子  --*/
  84          0x3F,0x3F,0x00,0x00,0x01,0x01,0xFF,0xFF,0x01,0x01,0x01,0x01,0x01,0x07,0x03,0x00,
  85          0xF8,0xF8,0x30,0x60,0xC0,0x80,0xFE,0xFE,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,
  86          
  87          /*--  文字:  设  --*/
  88          0x23,0x33,0x1B,0x13,0x07,0xF6,0xF7,0x37,0x33,0x33,0x31,0x3C,0x39,0x37,0x06,0x00,
  89          0xF0,0xF0,0x30,0x30,0x3E,0x1E,0xF8,0xF8,0x18,0x30,0xB0,0xE0,0xF0,0x9E,0x0C,0x00,
  90          
  91          /*--  文字:  备  --*/
  92          0x06,0x07,0x0F,0x1C,0x36,0x03,0x0F,0x78,0x1F,0x1F,0x19,0x1F,0x19,0x1F,0x1F,0x00,
  93          0x00,0xF0,0xF0,0x30,0x60,0xC0,0xF0,0x1E,0xF8,0xF8,0x98,0xF8,0x98,0xF8,0xF8,0x00,
  94          
  95          /*--  文字:  有  --*/
  96          0x03,0x03,0x7F,0x7F,0x06,0x0F,0x1F,0x3C,0x6F,0xCC,0x0C,0x0F,0x0C,0x0C,0x0C,0x00,
  97          0x00,0x00,0xFE,0xFE,0x00,0xF8,0xF8,0x18,0xF8,0x18,0x18,0xF8,0x18,0x38,0x30,0x00,
  98          
  99          /*--  文字:  限  --*/
 100          0x00,0x7D,0x7D,0x6D,0x6D,0x79,0x79,0x6D,0x6D,0x6D,0x7D,0x79,0x61,0x61,0x61,0x00,
 101          0x00,0xFC,0xFC,0x8C,0xFC,0x8C,0xFC,0xFC,0xA0,0xAC,0xB8,0xB0,0xD8,0xCE,0x84,0x00,
 102          
 103          /*--  文字:  公  --*/
 104          0x00,0x0C,0x0C,0x0C,0x18,0x10,0x33,0x63,0x46,0x06,0x0C,0x18,0x3F,0x3F,0x00,0x00,
 105          0x00,0x60,0x60,0x60,0x30,0x18,0x0C,0x06,0x00,0x60,0x60,0x30,0xF8,0x18,0x00,0x00,
 106          
 107          /*--  文字:  司  --*/
 108          0x00,0x3F,0x3F,0x00,0x7F,0x7F,0x00,0x3F,0x3F,0x30,0x30,0x3F,0x3F,0x00,0x00,0x00,
 109          0x00,0xFC,0xFC,0x0C,0xEC,0xEC,0x0C,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x3C,0x38,0x00,
 110          
 111          /*--  文字:  高  --*/
 112          0x01,0x7F,0x7F,0x00,0x1F,0x18,0x1F,0x00,0x7F,0x60,0x6F,0x6C,0x6F,0x60,0x60,0x00,
 113          0x80,0xFC,0xFC,0x00,0xF0,0x30,0xF0,0x00,0xFC,0x0C,0xEC,0x6C,0xEC,0x1C,0x18,0x00,
 114          
 115          /*--  文字:  时  --*/
 116          0x00,0xFC,0xFC,0xCD,0xCD,0xCC,0xFC,0xFD,0xCC,0xCC,0xFC,0xFC,0xCC,0x00,0x00,0x00,
 117          0x18,0x18,0x18,0xFE,0xFE,0x18,0x18,0x98,0xD8,0xD8,0x18,0x18,0x18,0x38,0x30,0x00,
C51 COMPILER V7.07   DEMO                                                                  01/12/2007 17:28:05 PAGE 3   

 118          
 119          /*--  文字:  兵  --*/
 120          0x00,0x1F,0x1F,0x18,0x18,0x1F,0x1F,0x18,0x18,0xFF,0xFF,0x04,0x0C,0x38,0x70,0x00,
 121          0x30,0xF8,0x80,0x00,0x00,0xF8,0xF8,0x60,0x60,0xFE,0xFE,0x60,0x30,0x18,0x0C,0x00
 122          
 123          };
 124          
 125          /*code unsigned char CGTAB[4][32]={0x00,0x40,0x37,0x10,0x83,0x60,0x2F,0x08,      //     清
 126                                                                           0x13,0x22,0xE3,0x22,0x23,0x22,0x22,0x22,
 127                                                                           0x40,0x48,0xFC,0x40,0xF8,0x40,0xFE,0x08,
 128                                                                           0xFC,0x08,0xF8,0x08,0xF8,0x08,0x28,0x10,
 129                                                                           0x04,0x04,0x08,0x08,0x18,0x29,0x4A,0x08,        //     华
 130                                                                           0x09,0x01,0xFF,0x01,0x01,0x01,0x01,0x01,
 131                                                                           0x40,0x48,0x58,0x60,0xC0,0x40,0x44,0x44,
 132                                                                           0x3C,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,
 133                                                                           0x04,0xFF,0x05,0x41,0x33,0x14,0x01,0xF6,        //     蓬
 134                                                                           0x1B,0x10,0x13,0x10,0x17,0x10,0x28,0x47,
 135                                                                           0x44,0xFE,0x40,0xF8,0x10,0xE0,0x18,0x46,
 136                                                                           0xF8,0x40,0xF8,0x40,0xFC,0x40,0x46,0xFC,
 137                                                                           0x00,0x43,0x30,0x10,0x00,0x07,0xF1,0x11,        //     远
 138                                                                           0x11,0x11,0x12,0x12,0x14,0x28,0x47,0x00,
 139                                                                           0x10,0xF8,0x00,0x00,0x08,0xFC,0x20,0x20,
 140                                                                           0x20,0x24,0x24,0x1C,0x00,0x06,0xFC,0x00  };
 141          
 142          */
 143          ///*******************
 144          //         演示主程序
 145          //*******************
 146          
 147          void main()
 148          {
 149   1              uchar idata i;
 150   1              uint  idata O_X,O_Y;
 151   1              uint  idata j;
 152   1      
 153   1              P23=0;
 154   1              P25=1;
 155   1              P24=1;
 156   1      
 157   1              initial_lcd();  // 调初始化函数
 158   1      
 159   1              // 中文显示(图形方式)
 160   1              for(i=0;i<12;i++)
 161   1                      CCW2_PR(0x08+i*2,0x02,i);  // 调中文显示函数(图形方式)
 162   1              for(i=0;i<3;i++)
 163   1                      CCW2_PR(0x1b+i*2,0x16,12+i); 
 164   1      
 165   1              draw_vertical(9,239,4); // y轴 坐标系原点坐标为 (4,235)
 166   1              draw_bias(4,9,0,13);    // 画箭头
 167   1              draw_bias(4,9,8,13);
 168   1              for(i=0;i<21;i++)       // 画刻度
 169   1              {       j=225-i*10;
 170   2                      draw_horizontal(4,6,j);
 171   2              }
 172   1              
 173   1              draw_horizontal(0,299,235);     // x轴
 174   1              draw_bias(299,235,295,231);     // 画箭头
 175   1              draw_bias(299,235,295,239);
 176   1              for(i=0;i<28;i++)       // 画刻度
 177   1              {       j=14+i*10;
 178   2                      draw_vertical(233,235,j);
 179   2              }
C51 COMPILER V7.07   DEMO                                                                  01/12/2007 17:28:05 PAGE 4   

 180   1              
 181   1              w_ASCII(2,1,'Y');
 182   1              w_ASCII(38,29,'X');
 183   1              
 184   1              draw_bias(4,235,160,120);
 185   1              for(i=0;i<6;i++)
 186   1                      draw_circle(160,120,20+i*10);
 187   1      
 188   1              //------------西文显示-------------
 189   1              LCD_CMD_ADR=0x5d;  // 设光标形状
 190   1              LCD_DAT_ADR=0x01;
 191   1              LCD_DAT_ADR=0x87;
 192   1      
 193   1              LCD_CMD_ADR=0x5b;  // OVLAY代码
 194   1              LCD_DAT_ADR=0x01;
 195   1      
 196   1              LCD_CMD_ADR=0x59;  // DISP ON\OFF代码
 197   1              LCD_DAT_ADR=0x57;  // 开光标闪动 2Hz
 198   1              O_X=0;    //X轴方向取值0~39(十进制)
 199   1              O_Y=0;   //Y轴方向取值0~29(十进制)
 200   1              
 201   1              w_string(0x08,0x05,"TIETONG ELECTRONICS CO.LTD");
 202   1              w_string(0x1b,0x19,"Ceeback.GAO");
 203   1      //------- 中文显示(文本方式)-----------
 204   1              //CGRAM();        // 调CGRAM子程序
 205   1      /*      num=0x00;  // 取字模
 206   1              O_X=0x10;
 207   1              O_Y=0x03;
 208   1              CCW1_PR(O_X,O_Y,num);  // 调中文显示函数(文本方式)
 209   1              num=0x01;  // 取字模
 210   1              O_X=0x12;
 211   1              O_Y=0x03;

⌨️ 快捷键说明

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