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

📄 lcd_24064.lst

📁 大家好
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   LCD_24064                                                             08/12/2007 23:57:47 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE LCD_24064
OBJECT MODULE PLACED IN lcd_24064.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE lcd_24064.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /***************************************************************\
   2          |*          12864LCD显示程序  采用C8051F020控制                            *|
   3          |*          制作人:熊涛                                       *|
   4          |*          时间:2007年8月12日                                *|
   5          |*          接口定义:P5接数据  DB7~DB0                         *|
   6          |*                   P3.3  P3.5  P3.7 接控制线                             *|  
   7          |*                   具体见定义                                *|
   8          \***************************************************************/
   9          
  10          
  11          #include "c8051f020.h"
  12          #include <string.h>
  13          #include "zk.h"                                 //存入CGRAM中的字库 32个汉字
  14          
  15          #define uchar unsigned char
  16          #define uint  unsigned int
  17          
  18          #define DATA_IO P5                              //数据线接P5
  19          
  20          sbit OUT=P1^6;
  21          sbit KEY=P3^7;
  22          
  23          //控制线接P3口  数据线接P5口
  24          //sbit CE = P3^1;       // 读\写使能
  25          //CE直接接地
  26          sbit RD = P3^3;         // 写 控制
  27          sbit CD = P3^5;         // 数据\指令 选择 1为指令,0为数据
  28          sbit WR = P3^7;                 // 读 控制      
  29          
  30          
  31          
  32          
  33          //函数声明
  34          void    System_Init             (void);
  35          void    Port_Init               (void);
  36          uchar   Read_State              (void);
  37          void    Write_Cmd_Non   (uchar cmd);
  38          void    Write_Cmd_Single        (uchar data1,uchar cmd);
  39          void    Write_Cmd_Double        (uchar data1,uchar data2,uchar cmd);
  40          void    Lcd_Init                (void);
  41          
  42          
  43          //字符的属性 
  44          uchar code sentence_dat[30]={
  45                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  46                  0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
  47                  0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0       };
  48          
  49          
  50          /************************************************\
  51          |*  延时子函数                                                  *|
  52          |*  入口参数:   count 延时时间变量                      *|
  53          |*  出口参数:   空                                      *|
  54          |*  调用函数:   空                                                              *|
  55          |*      说明:           系统时钟使用外部晶振22.1184MHz  *|
C51 COMPILER V7.50   LCD_24064                                                             08/12/2007 23:57:47 PAGE 2   

  56          |*                                                                                              *|
  57          \************************************************/
  58          void Delay(uchar count)
  59          {
  60   1              uchar k;
  61   1              while(count--)
  62   1              for(k=0;k<10;k++);
  63   1                                                              }
  64          
  65          
  66          /************************************************\
  67          |*  系统时钟配置子函数                                          *|
  68          |*  入口参数:   空                                                      *|
  69          |*  出口参数:   空                                      *|
  70          |*  调用函数:   空                                                              *|
  71          |*      说明:           系统时钟使用外部晶振22.1184MHz  *|
  72          |*                              禁用看门狗                                              *|
  73          \************************************************/
  74          void System_Init(void)
  75          {
  76   1              uchar count;
  77   1              WDTCN=0xde;                                             //禁用看门狗
  78   1              WDTCN=0xad;
  79   1              OSCXCN=0x67;  
  80   1              for ( count=0; count<255; count++ ) ;   
  81   1              while(!(OSCXCN & 0x80 ) );              //等待晶体振荡器稳定
  82   1              OSCICN=0x88;                                    //选择外部时钟源 允许时钟丢失检测 检测到时钟丢失将复位
  83   1              CKCON=0x00;                                     //T0 12分频
  84   1                                                                      }
  85          
  86          
  87          /************************************************\
  88          |*  端口配置子函数                                              *|
  89          |*  入口参数:   空                                                      *|
  90          |*  出口参数:   空                                      *|
  91          |*  调用函数:   空                                                              *|
  92          |*      说明:                                                                           *|
  93          |*                                                                                              *|
  94          \************************************************/
  95          void Port_Init (void)
  96          {       
  97   1              XBR0=0x00;                                              //
  98   1              XBR1=0x00;                                              
  99   1              XBR2=0xc0;                                              //允许交叉开关 禁止弱上拉 
 100   1                      
 101   1              P0MDOUT=0xff;                                   //1 为推挽 0为漏极开路
 102   1              P1MDIN=0xff;                                    //0 配置为模拟输入 1 配置为数字输入
 103   1              P1MDOUT=0xff;                                   //1 为推挽 0为漏极开路
 104   1              P2MDOUT=0xff;                                   //1 为推挽 0为漏极开路          
 105   1              P3MDOUT=0xff;                                   //1 为推挽 0为漏极开路  
 106   1              P3IF=0;                                                 //端口3中断标志
 107   1              P74OUT=0xff;                                    //P4~P7设置为推挽方式
 108   1                                                                                                              }
 109          
 110          
 111          
 112          /************************************************\
 113          |*  读状态字子函数                                                      *|
 114          |*  入口参数:   空                                                      *|
 115          |*  出口参数:   r_state 当前状态字              *|
 116          |*  调用函数:   Delay()                                                 *|
 117          |*      说明:                                                                           *|
C51 COMPILER V7.50   LCD_24064                                                             08/12/2007 23:57:47 PAGE 3   

 118          |*                                                                                              *|
 119          \************************************************/
 120          uchar Read_State (void)
 121          {       
 122   1              uchar r_state;
 123   1              DATA_IO=0xff;
 124   1              CD=1;
 125   1              RD=0;
 126   1              WR=1;
 127   1              Delay(1);                                                                               //根据资料,读写信号的建立需要一定的时间(几十纳秒)
 128   1              r_state=DATA_IO;
 129   1              RD=1;
 130   1              return (r_state);
 131   1                                                              }
 132          
 133          /************************************************\
 134          |*  写数据子函数                                                        *|
 135          |*  入口参数:   W_data 待写入的数据                     *|
 136          |*  出口参数:   空                                              *|
 137          |*  调用函数:   Read_State ()                                   *|
 138          |*                              Delay()                                                 *|
 139          |*      说明:                                                                           *|
 140          |*                                                                                              *|
 141          \************************************************/
 142          void Write_Data (uchar W_data)
 143          {
 144   1              while( ( Read_State () & 0x03 ) != 0x03 ) ;             //等待数据指令读写状态准备好
 145   1              CD=0;
 146   1              WR=0;
 147   1              RD=1;
 148   1              Delay(1);                                                                               //根据资料,读写信号的建立需要一定的时间(几十纳秒)
 149   1              DATA_IO=W_data;
 150   1              Delay(1);
 151   1              WR=1;
 152   1              CD=1;
 153   1                                      }
 154          
 155          
 156          /************************************************\
 157          |*  写命令子函数1---无参数指令                                  *|
 158          |*  入口参数:   cmd 待写入的命令                        *|
 159          |*  出口参数:   空                                              *|
 160          |*  调用函数:   Read_State ()                                   *|
 161          |*                              Delay()                                                 *|
 162          |*      说明:                                                                           *|
 163          |*                                                                                              *|
 164          \************************************************/
 165          void Write_Cmd_Non (uchar cmd)
 166          {
 167   1              while( ( Read_State () & 0x03 ) != 0x03 ) ;             //等待数据指令读写状态准备好
 168   1              CD=1;
 169   1              WR=0;
 170   1              RD=1;
 171   1              Delay(1);                                                                               //根据资料,读写信号的建立需要一定的时间(几十纳秒)
 172   1              DATA_IO=cmd;
 173   1              Delay(1);
 174   1              WR=1;
 175   1                                      }
 176          
 177          /************************************************\
 178          |*  写命令子函数2---单参数指令                                  *|
 179          |*  入口参数:   data1 待写入的参数                              *|
C51 COMPILER V7.50   LCD_24064                                                             08/12/2007 23:57:47 PAGE 4   

 180          |*                              cmd   待写入的命令                      *|
 181          |*  出口参数:   空                                              *|
 182          |*  调用函数:   Write_Data ()                                   *|
 183          |*                              Write_Cmd_Non ()                                *|
 184          |*      说明:                                                                           *|
 185          |*                                                                                              *|
 186          \************************************************/
 187          void Write_Cmd_Single (uchar data1,uchar cmd)
 188          {
 189   1              Write_Data (data1);
 190   1              Write_Cmd_Non (cmd);

⌨️ 快捷键说明

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