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

📄 240160b.lst

📁 基于C8051F020单片机的LCD显示程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.09   240160B                                                               08/23/2004 10:54:00 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE 240160B
OBJECT MODULE PLACED IN 240160b.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.exe 240160b.c DB OE

line level    source

   1          /****************************************Copyright (c)**************************************************
   2          **                               重庆东电通信技术有限公司
   3          **                                     生产技术部
   4          **
   5          **                                 http://www.dodem.com
   6          **
   7          **--------------文件信息--------------------------------------------------------------------------------
   8          ** 文   件   名: 240160b.c
   9          ** 创   建   人: 陈龙永
  10          ** 最后修改日期: 2004年7月5日
  11          ** 描        述: 台湾晶采光电液晶240x160B,控制器SED1335F的驱动模块,包括图形方式下字符,汉字的显示程式
  12          **--------------历史版本信息----------------------------------------------------------------------------
  13          ** 创建人: 陈龙永
  14          ** 版  本: V1.0
  15          ** 日 期: 2004年7月5日
  16          ** 描 述: 原始版本
  17          **
  18          **------------------------------------------------------------------------------------------------------
  19          ** 修改人: 
  20          ** 版  本: 
  21          ** 日 期: 
  22          ** 描 述: 
  23          **
  24          **--------------当前版本修订------------------------------------------------------------------------------
  25          ** 修改人: 陈龙永
  26          ** 日 期: 2004年7月5日
  27          ** 描 述: 240x160B液晶驱动函数
  28          **            
  29          **------------------------------------------------------------------------------------------------------
  30          ********************************************************************************************************/
  31          /*******************************************************************************************************
  32          ** 液晶接口情况表述:
  33          **      No: LCM ----- F022
  34          **      ---------------------
  35          **      1...RESET..... 复位                                     复位信号,低电平有效,阻容式复位电路
  36          **      2.../RD  ..... P13                                      读有效
  37          **      3.../WR  ..... P14                                      写有效
  38          **      4.../CS  ..... P15                                      液晶片选信号,低有效
  39          **      5...A0   ..... P16                                      寄存器选择信号,命令数据方式选择
  40          **      6...D0   ..... P6.0                                     数据总线 D0
  41          **      7...D1   ..... P6.1                                     数据总线 D1
  42          **      8...D2   ..... P6.2                                     数据总线 D2
  43          **      9...D3   ..... P6.3                                     数据总线 D3
  44          **      10..D4   ..... P6.4                                     数据总线 D4
  45          **      11..D5   ..... P6.5                                     数据总线 D5
  46          **      12..D6   ..... P6.6                                     数据总线 D6
  47          **      13..D7   ..... P6.7                                     数据总线 D7
  48          **      14..VDD  ..... +3.3V                            电源
  49          **      15..VSS  ..... GND                                      地线                                   
  50          **      16..VLCD ..... +25V                                     25V电压输出
  51          **      17..VADJ ..... VO                   对比度调整输入
  52          **      18..ELON ..... P17                                      背光打开/关闭
  53                  19,20    ..... NC
  54          
  55          **      间接方式,无须上拉电阻,所以数据口和控制口应设置为推挽输出方式
C51 COMPILER V7.09   240160B                                                               08/23/2004 10:54:00 PAGE 2   

  56          ********************************************************************************************************/
  57          
  58          
  59          #include "c8051F020.h"
  60          #include "dotlib1.h"
  61          
  62          
  63          #define Uchar unsigned char 
  64          #define Uint unsigned int
  65          //240x160b,SED1335定义
  66          #define paraP9          0x1e            //相对于240x160
  67          //光标移动方向设置,后续参数:无
  68          #define CsrDirR         0x4c
  69          #define CsrDirL         0x4d
  70          #define CsrDirU         0x4e
  71          #define CsrDirD         0x4f
  72          /* 该指令规定了光标指针CSR在计算机读写显示数据后自动修复的方向,从显示效果来说,
  73          就是光标移动的方向设置.该指令的两个参数位DR1,DR0:
  74                          ===========================
  75                            DR1 DR0   自动定位方向
  76                          ===========================
  77                             0   0    右
  78                             0   1    左
  79                             1   0    上
  80                             1   1    下
  81                          ===========================
  82          */
  83          
  84          //光标指针设置
  85          #define CsrW            0x46
  86          /* 该指令设置了光标指针CSR.该指针有两个功能:1.作为当前光标显示的位置;2.作为
  87          显示存储器当前的地址指针.2个参数:CSRL,CSRH
  88          [说明]:当光标指针指向有效显示区域之外时,光标将自动消失,但不影响显示数据的读写.
  89          光标指针在计算机的每次读写显示数据操作后,将根据最近设置的光标指针移动方向而自动
  90          修正.光标指针不受画面滚动操作的影响.
  91          */
  92          
  93          //读取光标指针
  94          #define CsrR            0x47
  95          /* 该指令代码写入后,计算机将从SED1335等数据通道读出当前的光标指针值.光标指针读
  96          出的顺序是先CSRL再CSRH.
  97          */
  98          
  99          //数据写入设置,后续参数N字节
 100          #define mWrite          0x42
 101          /*该指令写入后将允许计算机连续的向显示存储器内写入数据,写入的单元地址由光标指针
 102          CSR提供,写操作完成后光标指针自动根据所设置的光标指针移动方向进行修改,显示数据
 103          写入操作在计算机写入下一指令代码后结束.
 104          */
 105          
 106          //数据读取设置,后续参数N字节
 107          #define mRead           0x43
 108          /*该指令写入将允许计算机连续地从显示存储器内读取数据,读取的单元地址由光标指针
 109          CSR提供读操作完成后,光标指针自动根据所设定的光标移动方向进行修改.显示数据读取
 110          操作在计算机写入下一个指令代码后结束.
 111          */
 112          
 113          ////////////////////////////////////////////////////////////////////
 114          //
 115          /////////////液晶MODULE 240x160b,SED1335F0B驱动函数/////////////////
 116          //
 117          ////////////////////////////////////////////////////////////////////
C51 COMPILER V7.09   240160B                                                               08/23/2004 10:54:00 PAGE 3   

 118          //-----------------------------------------------------------------------------
 119          // 函数:void WriteCmd(unsigned char cmd)(私有函数,其他模块不能调用)
 120          //-----------------------------------------------------------------------------
 121          /******************************************************************************
 122           调用方式(Function):WriteCmd()  
 123           函数描述(Description):指令写入函数
 124           入口参数(Parameters):无
 125           返回值(Returns):无
 126           创建时间:16:07,PM,2004.4.19
 127           修改时间:无
 128           修改原因:无
 129          ******************************************************************************/
 130          void WriteCmd(Uchar cmd)        
 131          {
 132   1              RD=1;
 133   1              A0=1;
 134   1              P6=cmd;
 135   1              CS=0;
 136   1              WR=0;
 137   1              WR=1;
 138   1              CS=1;
 139   1      }
 140          
 141          
 142          //-----------------------------------------------------------------------------
 143          // 函数:void WriteData(unsigned char datalcd) (私有函数,其他模块不能调用)
 144          //-----------------------------------------------------------------------------
 145          /******************************************************************************
 146           调用方式(Function):WriteData(datalcd) 
 147           函数描述(Description):数据和指令的附属参数写入函数
 148           入口参数(Parameters):
 149                                                    datalcd--待写入的显示数据或指令的附属参数
 150           返回值(Returns):无
 151           创建时间:16:07,PM,2004.4.19
 152           修改时间:无
 153           修改原因:无
 154          ******************************************************************************/
 155          void WriteData(Uchar datalcd){
 156   1              
 157   1              RD=1;
 158   1              A0=0;
 159   1              P6=datalcd;
 160   1              CS=0;
 161   1              WR=0;
 162   1              WR=1;
 163   1              CS=1;
 164   1      
 165   1      }
 166          
 167          //-----------------------------------------------------------------------------
 168          // 函数:unsigned char ReadfromLcd(void) (私有函数,其他模块不能调用)
 169          //-----------------------------------------------------------------------------
 170          /******************************************************************************
 171           调用方式(Function):ReadfromLcd() 
 172           函数描述(Description):数据和光标地址读出函数
 173           入口参数(Parameters):无
 174           返回值(Returns):数据或光标地址
 175           创建时间:16:07,PM,2004.4.19
 176           修改时间:无
 177           修改原因:无
 178          ******************************************************************************/
 179          Uchar ReadfromLcd(void){
C51 COMPILER V7.09   240160B                                                               08/23/2004 10:54:00 PAGE 4   

 180   1      
 181   1              Uchar rdata;
 182   1      
 183   1              P6=0xff;
 184   1              A0=1;
 185   1              RD=0;
 186   1              rdata=P6;
 187   1              CS=0;
 188   1              RD=1;
 189   1              CS=1;
 190   1              return(rdata);
 191   1      }
 192          
 193          //-----------------------------------------------------------------------------
 194          // 函数:void LcdInit(void)
 195          //-----------------------------------------------------------------------------
 196          /******************************************************************************
 197           调用方式(Function):LcdInit() 
 198           函数描述(Description):液晶初始化函数
 199           入口参数(Parameters):无
 200           返回值(Returns):无
 201           创建时间:16:07,PM,2004.4.19
 202           修改时间:无
 203           修改原因:无
 204          ******************************************************************************/
 205          
 206          void LcdInit(void){
 207   1      
 208   1              WriteCmd(0x40);         //进行system set,要写入8个参数     
 209   1              WriteData(0x30);        //单屏结构,8×8点阵
 210   1              WriteData(0x87);        //字符宽度位7
 211   1              WriteData(0x07);        //字符高度为7
 212   1              WriteData(0x1d);        //一行显示30个字符      (C/R)
 213   1              WriteData(0x42);        //频率转化
 214   1              WriteData(0x9f);        //每帧扫描160行         (L/F)
 215   1              WriteData(0x1e);        //一行共有30个字符  
 216   1              WriteData(0);   
 217   1      
 218   1              WriteCmd(0x44);         //进行Scroll,要写入10个参数   
 219   1              WriteData(0x00);
 220   1              WriteData(0x00);
 221   1              WriteData(0xa0);        //第一显示区地址和所占的行数160行
 222   1              WriteData(0xc0);
 223   1              WriteData(0x12);
 224   1              WriteData(0xa0);        //第二显示区地址和所占的行数160行
 225   1              WriteData(0x80);  
 226   1              WriteData(0x25);        //第三显示区地址高8位、低8位和所占的行数160行
 227   1      //      WriteData(0x00);  
 228   1      //      WriteData(0x00);        //第四显示区地址高8位、低8位和所占的行数160行
 229   1      
 230   1              WriteCmd(0x5a);                                 //以点为单位的水平移动量
 231   1              WriteData(0x00);                                //水平卷动,初始化时必须清零
 232   1      
 233   1              WriteCmd(0x5b);                                 //显示合成方式设置
 234   1              WriteData(0x0c);                                //三屏图形方式相加,或逻辑
 235   1      
 236   1              WriteCmd(0x59);                                 // 写入指令代码0x59
 237   1              WriteData(0x04);                                // 显示1区开显示,2、3、4区关显示;光标关显示
 238   1      }
 239          
 240          //-----------------------------------------------------------------------------
 241          // 函数:void LcdClr(void)
C51 COMPILER V7.09   240160B                                                               08/23/2004 10:54:00 PAGE 5   

 242          //-----------------------------------------------------------------------------
 243          /******************************************************************************

⌨️ 快捷键说明

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