LCD12864.rar

  • PUDN用户
    了解作者
  • C/C++
    开发工具
  • 1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 0
    下载次数
  • 2019-01-29 18:17
    上传日期
使用C语言实现大液晶的显示(数字,汉字,字符,图片等)
LCD12864.rar
  • LCD12864.c
    4.6KB
内容介绍
#include"main.h" #include"LCD12864.h" #include"delay.h" sbit LCD12864_RS = P2^6; //寄存器选择输入 sbit LCD12864_RW = P2^5; //液晶读/写控制 sbit LCD12864_EN = P2^7; //液晶使能控制 #define LCD12864_DATEPORT P0 /********************************************* LCD12864液晶测忙子程序(读状态) **********************************************/ void busy() { LCD12864_RS=0; LCD12864_RW=1; LCD12864_EN=1; LCD12864_DATEPORT=0xff; while((LCD12864_DATEPORT&0x80)==0x80); LCD12864_EN=0; } /*这种忙检测效果不好 比较慢 { uchar busy; do { LCD12864_RS = 0; //按时序写 选择命令 LCD12864_RW = 1; //RW高位读 LCD12864_EN = 0; //使能先拉低 delayus(50); //稍微延时 LCD12864_EN = 1; //使能拉高 busy = LCD12864_DATEPORT; //读出数据口信息(busy) delayus(50); //稍微延时 LCD12864_EN = 0; //拉低 } while(busy&0x80); //判断BUSY位是否工作:1为内部在工作,0为正常状态 }*/ /********************************************** LCD12864液晶写入数据程序 ***********************************************/ void writedat_12864(uint dat) { busy(); //检忙 LCD12864_RS = 1; //选择数据 LCD12864_RW = 0; //写 LCD12864_EN = 1; //使能拉高 // delayus(20); //延时 LCD12864_DATEPORT = dat; //送数据 // delayus(20); //延时 LCD12864_EN = 0; //使能拉低 } /********************************************** LCD12864液晶写入命令子程序 ***********************************************/ void writecom_12864(uchar com) { busy(); //检忙 LCD12864_RS = 0; //选择命令 LCD12864_RW = 0; //写 LCD12864_EN = 1; //使能拉高 // delayus(20); //延时 LCD12864_DATEPORT = com; //送数据 // delayus(20); //延时 LCD12864_EN = 0; //使能拉低 } /********************************************** LCD12864液晶数据一般显示子程序 ***********************************************/ void display_12864(uchar y,uchar x,uchar *z) { uchar Address; if(y==1){Address=0x80+x;} //Y判断第几行,X判断第几列,0x80为液晶行初始地址 if(y==2){Address=0x90+x;} if(y==3){Address=0x88+x;} if(y==4){Address=0x98+x;} writecom_12864(Address); //写入地址命令到LCD12864 while(*z!='\0') //写入显示数据的大小 { writedat_12864(*z++); //写入显示数据到LCD12864 } } /********************************************** LCD12864液晶数据数字显示子程序 ***********************************************/ void displayDigital_12864(uchar y,uchar x,uchar shu) { uchar a,b,Address; a=shu/10; b=shu%10; if(y==1){Address=0x80+x;} //Y判断第几行,X判断第几列,0x80为液晶行初始地址 if(y==2){Address=0x90+x;} if(y==3){Address=0x88+x;} if(y==4){Address=0x98+x;} writecom_12864(Address); //写入地址命令到LCD12864 writedat_12864(0x30+a); writedat_12864(0x30+b); } /********************************************** LCD12864液晶图像显示子程序 **********************************************/ /*void displaypicture1_12864(uchar *picture) { uchar i,j,k; writecom_12864(0x36); for(i=0;i<2;i++) //上下两行 { for(j=0;j<32;j++) //一大行折成两半有32行 { writecom_12864(0x80+j); //先写Y坐标 if(i==0) //再写X坐标 { writecom_12864(0x80); } else { writecom_12864(0x88); } for(k=0;k<16;k++) //一大行16个字节 { writedat_12864(*picture++); } } } writecom_12864(0x30); }*/ /************上面不能显示自定义大小***********/ void displaypicture_12864(uchar y,uchar x,uchar *picture,uchar hight,uchar wide) { uchar line,row; writecom_12864(0x36); if(wide%8==0) { wide=wide/8; } else { wide=wide/8+1; } for(line=0;line<hight;line++) { if(y+line>31) { writecom_12864(0x80+y+line-32); writecom_12864(0x80+x+8); } else { writecom_12864(0x80+y+line); writecom_12864(0x80+x); } for(row=0;row<wide;row++) { writedat_12864(picture[line*wide+row]); } } writecom_12864(0x30); } /********************************************* LCD12864液晶初始化子程序 *********************************************/ void init_12864(void) { delayms(40); writecom_12864(0x30); //基本指令集 delayus(200); writecom_12864(0x02); // 地址归位 delayus(200); writecom_12864(0x0c); //整体显示打开,游标关闭 delayus(200); writecom_12864(0x06); //游标右移 delayus(200); writecom_12864(0x80); //设定显示的起始地址 delayus(200); writecom_12864(0x01); //清除显示 }
评论
    相关推荐
    • 12864底层.zip
      12864在51上的驱动,可在驱动的基础上改进添加需要的功能。
    • LCD12864.rar
      LCD12864液晶显示实时操作内容与提示;同时加入了指纹识别功能,能够通过管理密码进入进行添加和删除指纹信息
    • 12864.rar
      基于proteus仿真,用atmega16控制12864显示屏
    • 12864贪吃蛇
      51单片机fc手柄的12864贪吃蛇的程序,12864型号为QC12864B
    • 12864万年历
      LCD 12864 源代码 利用51单片机 附件为晚年历的例程
    • 12864驱动及字库.rar
      12864LCD驱动项目(Keil)包括驱动与中文字库查询与读取
    • 12864.rar
      LCD12864液晶显示屏,用于显示我们所需的数据
    • 12864使用例程.zip
      lcd12864例程与相关代码,可以直接用,51单片机是stm32
    • lcd12864.rar
      一个LCD12864显示温度代码51单片机上
    • Proteus7.12.rar
      Proteus7.12完美破解版.rar电路仿真软件很好用可以仿真单片数字模拟电路