打印
[资料分享与下载]

KL26Z驱动12864的程序

[复制链接]
744|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小猫爱吃鱼|  楼主 | 2015-5-17 20:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

#include "common.h"

void LcdInit(void);
void SPIInit(void);
void WriteCommandLCM(int WCLCM);
void WriteDataLCM(int WDLCM);
void display_x(int row ,char* dispx);
void spiTX(SPI_MemMapPtr SPI,unsigned char ucData);
void Send_byte(unsigned char Byte) ;
void delay(unsigned long counnt);
unsigned char szTemp[16] = "";
char dispx[]={" ´ºÃß²»¾õÏþ, "} ;
char dispy[]={" ´¦´¦ÎÅÌäÄñ¡£ "} ;
char dispz[]={" Ò¹À´·çÓêÉù£¬ "} ;
char dispw[]={" »¨ÂäÖª¶àÉÙ¡£ "} ;
/********************************************************************/
int main (void)
{

SystemCoreClockUpdate ();
SPIInit();
LcdInit();
display_x(0x80,dispx);
display_x(0x88,dispy);
display_x(0x90,dispz);
display_x(0x98,dispw);
while(1)
{
}
}
/********************************************************************/
void LcdInit(void)
{
WriteCommandLCM(0x30);
WriteCommandLCM(0x02);
WriteCommandLCM(0x06);
WriteCommandLCM(0x0c);
WriteCommandLCM(0x01);
WriteCommandLCM(0x80);
}
void SPIInit(void)
{
SIM->SCGC5 |=3U<<10; //使能端口B、C</FONT></P>
<P><FONT size=3 face=宋体>SIM->SCGC4 |=1U<<22; //使能SPI0

/* 初始化SPI管脚*/


PORTC_PCR5 |= PORT_PCR_MUX(2); /* 开启PTC5复用功能2 SPI0 SCK */

PORTC_PCR6 |= PORT_PCR_MUX(2); /* 开启PTC6复用功能2 SPI0 MOSI*/


SPI0->C1|=0x58; //使能主SPI CPOL=1 CPHA=1
SPI0->C2|=0x00; // 8bit 禁止中断,采用查询方式
SPI0->BR|=0x40; //波特率500K

}

void spiTX(SPI_MemMapPtr SPI,unsigned char ucData)
{
while((SPI->S & SPI_S_SPTEF_MASK) != SPI_S_SPTEF_MASK); /* 发送前查询发送空标志是否置位 */
SPI->DL = ucData;
}
void WriteCommandLCM(int WCLCM)
{
unsigned char Hdata,Ldata;
Hdata = WCLCM&0xf0; // È¡¸ß4λ
Ldata = ( WCLCM << 4) & 0xf0; // È¡µÍ4λ
Send_byte(0xF8); // ´ÓMCUµ½LCDдָÁî
Send_byte(Hdata); // ·¢Ë͸ß4λ
Send_byte(Ldata); // ·¢Ë͵Í4λ
}


void WriteDataLCM(int WDLCM)
{
unsigned char Hdata,Ldata;
Hdata = WDLCM & 0xf0; // È¡¸ß4λ
Ldata = ( WDLCM << 4) & 0xf0; // È¡µÍ4λ
Send_byte(0xFa); //´ÓMCUµ½LCDдÊý¾Ý
Send_byte(Hdata); // ·¢ËÍ
Send_byte(Ldata);
}


void display_x(int row ,char* dispx)
{
unsigned char a;
WriteCommandLCM(row);

for(a=0;a<16;a++)
{
WriteDataLCM(*dispx++);
}
}
void Send_byte(unsigned char Byte)
{
// while((SPI0_S & SPI_S_SPTEF_MASK) != SPI_S_SPTEF_MASK);
spiTX( SPI0_BASE_PTR,Byte);
delay(10000);


}
void delay(unsigned long counnt){

volatile int i;

for(i=0; i < counnt; i++){

}

}

相关帖子

沙发
cowboy2014| | 2015-5-17 21:00 | 只看该作者
非常好的资料,谢谢楼主的分享

使用特权

评论回复
板凳
史迪威将军| | 2015-5-18 21:22 | 只看该作者
这种人机交互的程序非常受欢迎
谢谢

使用特权

评论回复
地板
Messi1999| | 2015-5-20 14:23 | 只看该作者
这个程序是用什么模式做的呢?

使用特权

评论回复
5
小猫爱吃鱼|  楼主 | 2015-5-20 20:30 | 只看该作者
Messi1999 发表于 2015-5-20 14:23
这个程序是用什么模式做的呢?

是spi的,串行模式

使用特权

评论回复
6
芙蓉洞| | 2015-5-21 10:29 | 只看该作者
现在12864的lcd用的还多吗,用来学习还好吧

使用特权

评论回复
7
Messi1999| | 2015-5-25 11:31 | 只看该作者
芙蓉洞 发表于 2015-5-21 10:29
现在12864的lcd用的还多吗,用来学习还好吧

现在小型仪器上这种LCD用的还是挺多的,驱动简单

使用特权

评论回复
8
小猫爱吃鱼|  楼主 | 2015-5-25 12:35 | 只看该作者
Messi1999 发表于 2015-5-25 11:31
现在小型仪器上这种LCD用的还是挺多的,驱动简单

原来是这样,看来还得认真学习

使用特权

评论回复
9
FSL_TICS_Jeremy| | 2015-6-3 09:25 | 只看该作者
非常感谢你关于Kinetis的经验分享!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

294

帖子

2

粉丝