• 大小: 13.27MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-30
  • 语言: 其他
  • 标签: LCD12864  

资源简介

大海橡树LCD12864程序包,包括了PROTUES仿真,带字库和不带字库LCD程序,包含了画点,画线,画图介绍

资源截图

代码片段和文件信息

/*****http://hi.baidu.com/echoas********
程序:MCS-51驱动LCD12864液晶
内容:LCD12864显示正弦曲线
编译器:keil uVision3
开发板:Proteus仿真图
作者:大海橡树
整理日期:2011-01-28
修改:无 

备注:有什么错误的地方,欢迎网友们到空间留言

O(∩_∩)O~

******http://hi.baidu.com/echoas*********/ 
#include 
#include 
#include
#include“ZB.h“
#define uchar unsigned char
#define uint  unsigned int

#define LCD_databus P0 //LCD12864的8位数据口

sbit RS=P2^2;  //RS为0---命令;1----数据 
sbit RW=P2^1;  //RW为1---写;0---读 
sbit EN=P2^0;  //使能端 
sbit CS1=P2^4;  //片选1低电平有效,控制左半屏 
sbit CS2=P2^3;  //片选1低电平有效,控制右半屏 


void Read_busy()//读“忙”函数-----数据线的最高位DB71则busy
{
P0=0x00;
    RS=0;  
    RW=1; 
EN=1;
while(P0 & 0x80);
EN=0;
}

void write_LCD_command(uchar value) //写命令函数 
{
   Read_busy(); //对LCD的每次读写都要读忙 
   RS=0;   //选择命令 
   RW=0;  //读操作 
   LCD_databus=value;
   EN=1; //EN由1----0锁存有效数据 
   _nop_();
   _nop_(); 
   EN=0;
}

void write_LCD_data(uchar value)//写数据函数
{
   Read_busy();
   RS=1;  //选择数据 
   RW=0;
   LCD_databus=value;
   EN=1; //EN由1----0锁存有效数据 
   _nop_();
   _nop_();
   EN=0;
}

uchar Read_LCD(void) //读数据函数 
{
uchar value;
Read_busy();
LCD_databus=0xFF; //先进行一次空读操作 
RS=1;
RW=1;
EN=1;
_nop_();
_nop_();
EN=0;

LCD_databus=0xFF; //读取真正的数据 
RS=1;
RW=1;
EN=1;
value=LCD_databus;
_nop_();
_nop_();
EN=0;

return value; 
}

void Set_page(uchar page) //设置“页”LCD12864共8页,一页是8行点阵点
{
  page=0xb8|page;  //页的首地址为0xB8
  write_LCD_command(page);
}

void Set_line(uchar startline)  //设置显示的起始行    
{
  startline=0xC0|startline;     //起始行地址为0xC0 
  write_LCD_command(startline); //设置从哪行开始:共0--63;一般从0 行开始显示
}

void Set_column(uchar column) //设置显示的列
{
  column=column &0x3f;  //列的最大值为64
  column= 0x40|column;  //列的首地址为0x40 
  write_LCD_command(column); //规定显示的列的位置 
}

void SetOnOff(uchar onoff) //显示开关函数:0x3E是关显示,0x3F是开显示   
{
onoff=0x3e|onoff;  //onoff:1---开显示;0---关显示
write_LCD_command(onoff);
}

void SelectScreen(uchar screen) //选择屏幕 
{   
   switch(screen)
   { 
     case 0: CS1=0;CS2=0;break; //全屏     
     case 1: CS1=0;CS2=1;break;//左半屏        
     case 2: CS1=1;CS2=0;break;//右半屏       
     default:break; 
   }
}

void ClearScreen(uchar screen) //清屏函数  

     uchar ij;
     SelectScreen(screen); //0--全屏;1---左半屏;2---右半屏 
 for(i=0;i<8;i++)   //控制页数0-7,共8页
 {
        Set_page(i);
Set_column(0);
       for(j=0;j<64;j++)    //控制列数0-63,共64列
   {
          write_LCD_data(0x00); //写入0,地址指针自加1 
       }
     }  
}

void InitLCD()  //LCD的初始化  

SetOnOff(1);  //开显示
SelectScreen(0);
ClearScreen(0); //清屏
Set_line(0);  //开始行:0
}

void Draw_dots(uchar xuchar yuchar color)
{
uchar x_byte;
uchar x_bit; 
uchar Temp_data; //暂时存放从LCD读出的数据 
x_byte=(y>>3);   //计算出该点属于哪个字节 
x_bit=y-(x_byte<<3); //属于字节的哪一位?


if(x>63) //x>63则显示在右半屏 
{
SelectScree

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件    1024027  2010-12-08 13:21  LCD12864程序包\12864点阵型液晶显示屏的基本原理与使用方法(很详细).pdf

     文件    8902610  2011-04-09 23:50  LCD12864程序包\LCD12864液晶的使用_大海橡树.pdf

     文件    1085090  2010-12-11 10:20  LCD12864程序包\Proteus_12864程序包\KS0108LCD控制器说明.pdf

     文件        830  2011-01-28 13:18  LCD12864程序包\Proteus_12864程序包\LCD12864正弦波形\12848坐标.BMP

     文件      17654  2012-05-08 23:39  LCD12864程序包\Proteus_12864程序包\LCD12864正弦波形\code\LCD12864

     文件       9340  2012-05-08 23:39  LCD12864程序包\Proteus_12864程序包\LCD12864正弦波形\code\LCD12864.hex

     文件         44  2012-05-08 23:39  LCD12864程序包\Proteus_12864程序包\LCD12864正弦波形\code\LCD12864.lnp

     文件      19529  2012-05-08 23:39  LCD12864程序包\Proteus_12864程序包\LCD12864正弦波形\code\LCD12864.M51

     文件       1115  2012-05-08 23:39  LCD12864程序包\Proteus_12864程序包\LCD12864正弦波形\code\LCD12864.Opt

     文件       1626  2012-05-08 23:39  LCD12864程序包\Proteus_12864程序包\LCD12864正弦波形\code\LCD12864.plg

     文件       2105  2011-01-28 14:48  LCD12864程序包\Proteus_12864程序包\LCD12864正弦波形\code\LCD12864.Uv2

     文件       1126  2012-05-08 23:33  LCD12864程序包\Proteus_12864程序包\LCD12864正弦波形\code\LCD12864_Opt.Bak

     文件          0  2011-01-28 12:26  LCD12864程序包\Proteus_12864程序包\LCD12864正弦波形\code\LCD12864_Uv2.Bak

     文件       5297  2012-05-08 23:39  LCD12864程序包\Proteus_12864程序包\LCD12864正弦波形\code\main.c

     文件      12174  2012-05-08 23:39  LCD12864程序包\Proteus_12864程序包\LCD12864正弦波形\code\main.LST

     文件      18037  2012-05-08 23:39  LCD12864程序包\Proteus_12864程序包\LCD12864正弦波形\code\main.OBJ

     文件       6295  2011-01-28 13:45  LCD12864程序包\Proteus_12864程序包\LCD12864正弦波形\code\ZB.h

     文件      87459  2011-01-28 19:44  LCD12864程序包\Proteus_12864程序包\LCD12864正弦波形\Last Loaded LCD12864_正弦曲线.DBK

     文件      87459  2011-01-28 19:44  LCD12864程序包\Proteus_12864程序包\LCD12864正弦波形\LCD12864_正弦曲线.DSN

     文件       1054  2012-05-08 23:37  LCD12864程序包\Proteus_12864程序包\LCD12864正弦波形\LCD12864_正弦曲线.PWI

     文件      26789  2012-05-08 23:40  LCD12864程序包\Proteus_12864程序包\LCD12864综合显示\code\LCD12864

     文件      13254  2012-05-08 23:40  LCD12864程序包\Proteus_12864程序包\LCD12864综合显示\code\LCD12864.hex

     文件         44  2012-05-08 23:40  LCD12864程序包\Proteus_12864程序包\LCD12864综合显示\code\LCD12864.lnp

     文件      27502  2012-05-08 23:40  LCD12864程序包\Proteus_12864程序包\LCD12864综合显示\code\LCD12864.M51

     文件       1320  2012-05-08 23:57  LCD12864程序包\Proteus_12864程序包\LCD12864综合显示\code\LCD12864.Opt

     文件        190  2012-05-08 23:57  LCD12864程序包\Proteus_12864程序包\LCD12864综合显示\code\LCD12864.plg

     文件       2105  2011-01-28 19:19  LCD12864程序包\Proteus_12864程序包\LCD12864综合显示\code\LCD12864.Uv2

     文件       1318  2012-05-08 23:40  LCD12864程序包\Proteus_12864程序包\LCD12864综合显示\code\LCD12864_Opt.Bak

     文件          0  2011-01-28 15:37  LCD12864程序包\Proteus_12864程序包\LCD12864综合显示\code\LCD12864_Uv2.Bak

     文件       8114  2012-05-08 23:40  LCD12864程序包\Proteus_12864程序包\LCD12864综合显示\code\main.c

............此处省略215个文件信息

评论

共有 条评论