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

📄 12864

📁 这是TOPWAY公司的LCD驱动程序
💻
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.50   12864_串行C51演蔩程序                                                 07/24/2007 11:25:30 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 12864_串行C51演蔩程序
OBJECT MODULE PLACED IN 12864 串行C51演示程序.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 12864 串行C51演示程序.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /******************************************************************************
   2          Copyright 2007 普兰工作室
   3          All rights reserved.
   4          
   5          文件名  : st7920serial.c
   6          模块名称:st7920 串行方式驱动12864液晶驱动
   7          功能概要:st7920显示驱动、ds1302驱动、ds18b20驱动 显示时间,温度
   8          
   9          取代版本:0.0.1
  10          修改人  :pulan
  11          完成日期:2007.07.08
  12          升级说明:create
  13          CPU: stc89c58   主频:11.0592M
  14          液晶型号:       生产厂家:        驱动芯片:st7920
  15          ******************************************************************************/
  16          
  17          #include <reg52.h>
  18          #include <stdlib.h>
  19          #include <intrins.h>
  20          #include <stdio.h>
  21          
  22          sbit CS =P2^1;
  23          sbit SCK=P2^4;
  24          sbit SID=P2^2;
  25          sbit Key=P1^1;
  26          
  27          unsigned char code AC_TABLE[]={
  28          0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,      //第一行汉字位置
  29          0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,      //第二行汉字位置
  30          0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,      //第三行汉字位置
  31          0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,      //第四行汉字位置
  32          };
  33          unsigned char code str2[]="欢迎光临sunson!!";
  34          unsigned char code str1[]="黄河远上白云间,一片孤城万仞山。羌笛何须怨杨柳,春风不度玉门关。";
  35          unsigned char code bmp1[];
  36          
  37          /******************************************************************************************
  38          * 函数名称    :SendByte
  39          * 功能描述    :串口发送一个字节
  40          * 参数        :  参数名称:    输入/输出?     类型            描述
  41          * 
  42          * 返回值      :
  43          * 作者        :
  44          * 创建日期    :2006-12-19
  45          * 全局变量    :
  46          * 全局静态变量:
  47          * 局部静态变量:
  48          *----------------------------------------修改历史------------------------------------------
  49          * 当前版本    :                         修改人:                  修改日期:
  50          * 修改说明    :
  51          ******************************************************************************************/
  52          void SendByte(unsigned char Dbyte)
  53          {
  54   1           unsigned char i;
  55   1           for(i=0;i<8;i++)
C51 COMPILER V7.50   12864_串行C51演蔩程序                                                 07/24/2007 11:25:30 PAGE 2   

  56   1           {
  57   2                 SCK = 0;
  58   2                 Dbyte=Dbyte<<1;      //左移一位
  59   2                 SID = CY;            //移出的位给SID
  60   2                 SCK = 1;
  61   2                 SCK = 0;
  62   2           }
  63   1      }
  64          
  65          /******************************************************************************************
  66          * 函数名称    :ReceiveByte
  67          * 功能描述    :串口接收一个字节
  68          * 参数        :  参数名称:    输入/输出?     类型            描述
  69          * 仅在读取数据的时候用到
  70          * 而读出的数据是一次只能读出4bit的
  71          * 返回值      :
  72          * 作者        :
  73          * 创建日期    :2006-12-19
  74          * 全局变量    :
  75          * 全局静态变量:
  76          * 局部静态变量:
  77          *----------------------------------------修改历史------------------------------------------
  78          * 当前版本    :                         修改人:                  修改日期:
  79          * 修改说明    :
  80          ******************************************************************************************/
  81          unsigned char ReceiveByte(void)
  82          {
  83   1           unsigned char i,temp1,temp2;
  84   1           temp1=temp2=0;
  85   1           for(i=0;i<8;i++)
  86   1           {
  87   2                 temp1=temp1<<1;
  88   2                 SCK = 0;
  89   2                 SCK = 1;            
  90   2                 SCK = 0;
  91   2                 if(SID) temp1++;
  92   2           }
  93   1           for(i=0;i<8;i++)
  94   1           {
  95   2                 temp2=temp2<<1;
  96   2                 SCK = 0;
  97   2                 SCK = 1;
  98   2                 SCK = 0;
  99   2                 if(SID) temp2++;
 100   2           }
 101   1           return ((0xf0&temp1)+(0x0f&temp2));
 102   1      }
 103          /******************************************************************************************
 104          * 函数名称    :CheckBusy
 105          * 功能描述    :
 106          * 参数        :  参数名称:    输入/输出?     类型            描述
 107          * 
 108          * 返回值      :
 109          * 作者        :
 110          * 创建日期    :2006-12-19
 111          * 全局变量    :
 112          * 全局静态变量:
 113          * 局部静态变量:
 114          *----------------------------------------修改历史------------------------------------------
 115          * 当前版本    :                         修改人:                  修改日期:
 116          * 修改说明    :
 117          ******************************************************************************************/
C51 COMPILER V7.50   12864_串行C51演蔩程序                                                 07/24/2007 11:25:30 PAGE 3   

 118          void CheckBusy( void )
 119          {
 120   1           do   SendByte(0xfc);      //11111,RW(1),RS(0),0
 121   1           while(0x80&ReceiveByte());      //BF(.7)=1 Busy
 122   1      }
 123          /******************************************************************************************
 124          * 函数名称    :WriteCommand
 125          * 功能描述    :
 126          * 参数        :  参数名称:    输入/输出?     类型            描述
 127          * 
 128          * 返回值      :
 129          * 作者        :
 130          * 创建日期    :2006-12-19
 131          * 全局变量    :
 132          * 全局静态变量:
 133          * 局部静态变量:
 134          *----------------------------------------修改历史------------------------------------------
 135          * 当前版本    :                         修改人:                  修改日期:
 136          * 修改说明    :
 137          ******************************************************************************************/
 138          void WriteCommand( unsigned char Cbyte )
 139          {
 140   1           CS = 1;
 141   1           CheckBusy();
 142   1           SendByte(0xf8);            //11111,RW(0),RS(0),0
 143   1           SendByte(0xf0&Cbyte);      //高四位
 144   1           SendByte(0xf0&Cbyte<<4);//低四位(先执行<<)
 145   1           CS = 0;
 146   1      }
 147          /******************************************************************************************
 148          * 函数名称    :WriteData
 149          * 功能描述    :
 150          * 参数        :  参数名称:    输入/输出?     类型            描述
 151          * 
 152          * 返回值      :
 153          * 作者        :
 154          * 创建日期    :2006-12-19
 155          * 全局变量    :
 156          * 全局静态变量:
 157          * 局部静态变量:
 158          *----------------------------------------修改历史------------------------------------------
 159          * 当前版本    :                         修改人:                  修改日期:
 160          * 修改说明    :
 161          ******************************************************************************************/
 162          void WriteData( unsigned char Dbyte )
 163          {
 164   1           CS = 1;
 165   1           CheckBusy();
 166   1           SendByte(0xfa);            //11111,RW(0),RS(1),0
 167   1           SendByte(0xf0&Dbyte);      //高四位
 168   1           SendByte(0xf0&Dbyte<<4);//低四位(先执行<<)
 169   1           CS = 0;
 170   1      }
 171          /******************************************************************************************
 172          * 函数名称    :ReadData
 173          * 功能描述    :
 174          * 参数        :  参数名称:    输入/输出?     类型            描述
 175          * 
 176          * 返回值      :
 177          * 作者        :
 178          * 创建日期    :2006-12-19
 179          * 全局变量    :
C51 COMPILER V7.50   12864_串行C51演蔩程序                                                 07/24/2007 11:25:30 PAGE 4   

⌨️ 快捷键说明

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