新闻中心

EEPW首页>嵌入式系统>设计应用> 基于STC12C5410AD的字库型12864的使用

基于STC12C5410AD的字库型12864的使用

作者: 时间:2012-08-13 来源:网络 收藏

#include intrins.h>

sbit E_CLK =P1^2; //时钟使能

sbit RW_SID=P1^1;//串行数据输入、输出端

sbit RS_CS =P1^0;//片选端


//宏定义

#define uint unsigned int

#define uchar unsigned char

//下面是数组定义

uchar code ts[]={"黄河远上白云间"};

uchar code tw[]={"一片孤城万仞山"};

uchar code ta[]={"羌笛何须怨杨柳"};

uchar code tb[]={"春风不度玉门关"};


//延时子函数

void delay(unsigned int xms)

{

unsigned int i,j;

for(i=0; ixms; i++)

for(j=0;j110;j++)

{};

}

//串行发送一字节数据

void Send_Byte(unsigned char dat)

{

unsigned char i;

for(i=0;i8;i++)

{

delay(1);

P1M0=0;

P1M1=1;

E_CLK=0; //时钟线拉低

if(dat0x80)

RW_SID=1;

else

RW_SID=0;

E_CLK=1;

dat=dat1;

}

}

//控制命令

void Send_command(unsigned char dat)

{

P1M0=0;

P1M1=1;

RS_CS=1;

Send_Byte(0xF8);//11111,00,0 RW=0,RS=0 同步标志

Send_Byte(dat0xF0);//高四位

Send_Byte((dat0x0F)4);//低四位

RS_CS=0;

}

//显示数据或单字节字符

void Send_Dat(unsigned char dat)

{

RS_CS=1;

Send_Byte(0xFA);//11111,01,0 RW=0,RS=1

Send_Byte(dat0xF0);//高四位

Send_Byte((dat0x0F)4);//低四位

RS_CS=0;

}


void display_1()

{

uchar a;

Send_command(0x80);

for(a=0;a14;a++)

{

Send_Dat(ts[a]);

}

}


void display_2()

{

uchar b;

Send_command(0x90);

for(b=0;b14;b++)

{

Send_Dat(tw[b]);

}

}

void display_3()

{

uchar c;

Send_command(0x88);

for(c=0;c14;c++)

{

Send_Dat(ta[c]);

}

}

void display_4()

{

uchar d;

Send_command(0x98);

for(d=0;d14;d++)

{

Send_Dat(tb[d]);

}

}


//初始化 LCD

void init(void)

{

P1M0=0;

P1M1=1;

RS_CS=0;

delay(1);

Send_command(0x30);//功能设置,一次送8位数据,基本指令集

Send_command(0x0c);//0000,1100 整体显示,游标on,游标位置on

Send_command(0x01);//0000,0001 清

Send_command(0x02);//0000,0010地址归位

Send_command(0x80);//1000,0000 设定7位地址000,0000到地址计数器AC

}


void main(void)

{

init();

delay(1);

display_1();

display_2();

display_3();

display_4();

while(1);

}


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭