资源简介
LCD9648显示文字
代码片段和文件信息
#include
#include“charcode.h“
sbit CS0 = P0^0; //片选
sbit RST = P0^1; //复位
sbit RS = P2^7; //数据命令选择端
sbit SCL = P2^6; //SPI时钟端
sbit SDA = P2^5; //SPI数据端
void Delay10ms(unsigned int c) //误差 0us
{
unsigned char ab;
for(;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}
void SendDataSPI(unsigned char dat)
{
unsigned char i;
for(i=0; i<8; i++)
{
if( (dat&0x80)!=0 ) SDA = 1;
else SDA = 0;
dat <<= 1;
SCL = 0;
SCL = 1;
}
}
void WriteComm(unsigned int i)
{
CS0 = 0;
RS = 0;
SendDataSPI(i);
CS0 = 1;
}
void WriteData(unsigned int i)
{
CS0 = 0;
RS = 1;
SendDataSPI(i);
CS0 = 1;
}
void LCD_Init(void)
{
unsigned int i;
//CS0=0;
RST=1;
for(i = 0; i < 1000; i++);
RST=0;
for(i = 0; i < 1000; i++);
RST=1;
for(i = 0; i < 1000; i++);
WriteComm(0xe2); //软件复位
WriteComm(0xc8); //0xC8普通方向选择选择反向,0xC0为正常方向
WriteComm(0xa0); //0xA0段方向选择正常方向(0xA1为反方向
WriteComm(0x2f);
WriteComm(0x26);
WriteComm(0x81); //背景光对比度
WriteComm(0x10);
WriteComm(0xaf); //开启显示
}
void Clear()
{
unsigned char ij;
for(i=0; i < 9; i++)
{
WriteComm(0x40);
WriteComm(0xb0+i);
WriteComm(0x10);
WriteComm(0x00);
for(j = 0; j < 96; j++)
{
WriteData(0x00);
}
}
}
unsigned char LCD12864_Write16CnCHAR(unsigned char x unsigned char y unsigned char *cn)
{
unsigned char j x1 x2 wordNum;
//--Y的坐标只能从0到7,大于则直接返回--//
if(y > 7)
{
return 0;
}
//--X的坐标只能从0到96,大于则直接返回--//
if(x > 96)
{
return 0;
}
y += 0xB0; //求取Y坐标的值
//--设置Y坐标--//
WriteComm(y);
while ( *cn != ‘\0‘) //在C语言中字符串结束以‘\0’结尾
{
//--设置Y坐标--//
WriteComm(y);
x1 = (x >> 4) & 0x0F; //由于X坐标要两句命令,分高低4位,所以这里先取出高4位
x2 = x & 0x0F; //去低四位
//--设置X坐标--//
WriteComm(0x10 + x1); //高4位
WriteComm(0x00 + x2); //低4位
for (wordNum=0; wordNum<30; wordNum++)
{
//--查询要写的字在字库中的位置--//
if ((CN16CHAR[wordNum].Index[0] == *cn)
&&(CN16CHAR[wordNum].Index[1] == *(cn+1)))
{
for (j=0; j<32; j++) //写一个字
{
if (j == 16) //由于16X16用到两个Y坐标,当大于等于16时,切换坐标
{
//--设置Y坐标--//
WriteComm(y + 1);
//--设置X坐标--//
WriteComm(0x10 + x1); //高4位
WriteComm(0x00 + x2); //低4位
}
WriteData(CN16CHAR[wordNum].Msk[j]);
}
x += 16;
}//if查到字结束
} //for查字结束
cn += 2;
} //while结束
return 1;
}
void main()
{
unsigned char i;
LCD_Init();
Clear();
LCD12864_Write16CnCHAR(150“普中科技“);
while(1)
{
for(i = 0; i < 5; i+=2)
{
LCD12864_Write16CnCHAR(15i“有限公司“);
//LCD12864_Write16CnCHAR(15i“别有用心“); //只有“有”字能显示,别的因为没有点阵所以无显示
Delay10ms(100);
Clear();
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3137 2021-03-24 21:33 LCD9648显示文字.c
文件 4539 2014-10-29 10:20 charcode.h
----------- --------- ---------- ----- ----
7676 2
- 上一篇:stc8g1k08特性.doc
- 下一篇:STM32读CS1237实现秤重测量
相关资源
- TFT_ST7789V驱动显示屏代码,可用于es
- 基础qt数据库读取和显示
- STM32F407驱动OLED显示DS18B20数字温度
- 显示屏操作(stm32f103c8t6(SAN))
- Proteus仿真:LCD液晶屏显示.rar
- basler相机图像采集和显示
- IIC-OLED显示屏新资料(SSD1306)
- 串口数据采集及显示
- 利用C++类实现PNG图像读写及显示
- Effective Morden C++ 高清文字版
- RC522射频模块读取S50卡中信息并通过
- 基于C51与1602液晶显示屏的万年历电子
- opengl源代码,全是精华!
- MFC多文档应用程序同时显示两个视图
- VC++6.0编程实现MIF文件点集读取与凸壳
- OpenCV打开摄像机显示在MFC窗口工程源
- 图像处理方面学习的好MFC显示直方图
- 三维地形显示代码
- MFC带百分比文字显示的进度条
- vc++和OpenGL实现三维地形实时动态显示
- mfc打开并显示BMP图片
- MFC+OpenGL三维建模与动画显示
- VC++获取网上股市数据并实时图表显示
- C++显示GIF动画和图片
- MFC 自定义位图按钮加文字
- KMP中文字符匹配算法的C++实现
- STL文件读取、显示、操作、控制、分
- MFC中使用OpenCV显示选定文件夹中所有
- MFC图片浏览器
- 使用JRTPLib基于RTP协议服务器与客户端
评论
共有 条评论