资源简介
基于Keil uVision4开发环境,使用STC15F2K60S2驱动12864(带字库,串行口通信)的代码,亲测可用
代码片段和文件信息
#include
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit key = P4^5;
sbit CS=P2^7;//第4根线 RS PSB接地
sbit SID=P2^6;//第5根线 RW
sbit SCK=P2^5;//第6根线 E
uchar code AC_TABLE[]={
0x800x810x820x830x840x850x860x87//第一行汉字位置
0x900x910x920x930x940x950x960x97//第二行汉字位置
0x880x890x8a0x8b0x8c0x8d0x8e0x8f//第三行汉字位置
0x980x990x9a0x9b0x9c0x9d0x9e0x9f//第四行汉字位置
};
/******************************** 函数名称 :SendByte 串口发送一个字节*****/
void SendByte(uchar Dbyte)
{
uchar i;
for(i=0;i<8;i++)
{
SCK=0;
Dbyte=Dbyte<<1;
SID=CY;
SCK=1;
SCK=0;
}
}
/***********接收一个字节***/
uchar ReceiveByte(void)
{
uchar itemp1temp2;
temp1=0;
temp2=0;
for(i=0;i<8;i++)
{
temp1=temp1<<1;
SCK=0;
SCK=1;
SCK=0;
if(SID)temp1++;
}
for(i=0;i<8;i++)
{
temp2=temp2<<1;
SCK=0;
SCK=1;
SCK=0;
if(SID)temp2++;
}
return((0xf0&temp1)+(0x0f&temp2));
}
void CheckBusy(void)
{
do SendByte(0xfc);
while(0x80&ReceiveByte());
}
void WriteCommand(uchar Cbyte)
{
CS=1;
CheckBusy();
SendByte(0xf8);
SendByte(0xf0&Cbyte);
SendByte(0xf0&Cbyte<<4);
CS=0;
}
void WriteData(uchar Dbyte)
{
CS=1;
CheckBusy();
SendByte(0xfa);
SendByte(0xf0&Dbyte);
SendByte(0xf0&Dbyte<<4);
CS=0;
}
uchar ReadData(void)
{
CheckBusy();
SendByte(0xfe);
return ReceiveByte();
}
void Delay(uint MS)
{
uchar ususn;
while(MS!=0)
{
usn=2;
while(usn!=0)
{
us=0xf5;
while(us!=0)
{
us--;
};
usn--;
}
MS--;
}
}
void LcmInit(void)
{
WriteCommand(0x30);
WriteCommand(0x03);
WriteCommand(0x0C);
WriteCommand(0x01);
WriteCommand(0x06);
}
void LcmClearTXT(void)
{
uchar i;
WriteCommand(0x30);
WriteCommand(0x80);
for(i=0;i<64;i++)
WriteData(0x20);
}
void PutStr(uchar rowuchar coluchar *puts)
{
WriteCommand(0x30);
WriteCommand(AC_TABLE[8*row+col]);
while(*puts!=‘\0‘)
{
if(col==8)
{
col=‘0‘;
row++;
}
if(row==4)row=‘0‘;
WriteCommand(AC_TABLE[8*row+col]);
WriteData(*puts);
puts++;
WriteData(*puts);
puts++;
col++;
}
}
void DisplayDots(uchar DotByte)
{
uchar ij;
WriteCommand(0x34);
WriteCommand(0x36);
for(i=0;i<32;i++)
{
WriteCommand(0x80|i);
WriteCommand(0x80);
for(j=0;j<32;j++)
{
WriteData(DotByte);
}
DotByte=~DotByte;
}
}
void main(void)
{
Delay(100);
LcmInit();
LcmClearTXT();
// PutStr(00“欢迎光临老师试试“);
PutStr(10“请输入密码:“);
// PutStr(20“http://blog.rayu“
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 12359 2018-10-17 11:59 12864串行通讯\12864
文件 3257 2018-10-17 12:02 12864串行通讯\12864.c
文件 1757 2018-10-17 11:59 12864串行通讯\12864.hex
文件 42 2018-10-17 11:59 12864串行通讯\12864.lnp
文件 9590 2018-10-17 11:59 12864串行通讯\12864.LST
文件 13258 2018-10-17 11:59 12864串行通讯\12864.M51
文件 13706 2018-10-17 11:59 12864串行通讯\12864.OBJ
文件 162 2019-04-03 21:19 12864串行通讯\12864.plg
....... 71971 2019-04-03 21:20 12864串行通讯\12864.uvgui.strange man
....... 72077 2018-10-17 12:06 12864串行通讯\12864.uvgui_strange man.bak
....... 5628 2019-04-03 21:20 12864串行通讯\12864.uvopt
文件 13447 2018-10-16 14:36 12864串行通讯\12864.uvproj
目录 0 2019-04-03 21:20 12864串行通讯
----------- --------- ---------- ----- ----
217254 13
相关资源
- 基于HC-SR04超声波测距LCD12864显示源码
- lcd12864最全中文资料
- 基于STC15W408AS的串口DS1302时钟
- 基于STC15F2K60S2单片机的温湿度+CO2测量
- LCD12864封装Altium Designer库文件
- TI的msp430f5529在12864液晶上通过四个按
- JLX12864G-086-P中文说明书.pdf
- 51单片机+CS5460+12864液晶的单相电能表
- 51单片机12864坦克大战游戏(仿真+程序
- TMS320F2812 SCI串口通信 键盘 12864液晶
- 12864实时波形显示
- dht11+12864程序
- c8051f020的12864显示
- 基于stm32的12864液晶屏的显示代码
- 基于MC9S12XS128的LCD12864驱动程序
- Proteus 仿真MSP430之LCD12864
- 利用DSP F28335 实现了12864显示工程
- 12864液晶的图形菜单界面实现
- 基于51单片机12864画点画线画圆的程序
- STC15 万年历程序
- STC15W4-nRF24L01 项目
- 开发板原理图
- PID方式PWM输出温度控制stc12c5a+ds18b20
- CC2530安防监控系统硬件开发
- 基于12864液晶模块的动态波形显示实现
- 用DS1302与LCD12864设计的可调电子钟及仿
- LCD12864实现贪吃蛇游戏
- dht11的12864显示程序
- 28335控制LCD12864液晶显示
- msp430 模块程序 包括DS18B20 PS2 串口 电
评论
共有 条评论