2089|0

3

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

小弟是新手,弄了个430和12864b的显示屏显示的代码 [复制链接]

本帖最后由 ShaneL 于 2014-12-14 23:16 编辑

#include
#define ucharunsigned char
#define uintunsigned int
/********************************************************************
* 名称: delay()
* 功能: 延时,延时时间为100us * t。这是通过软件延时,有一定误差。
* 输入: t
* 输出: 无
***********************************************************************
/
voiddelay(unsigned int t)
{
unsigned int i,j;
for(i=0; i
for(j=0; j<10;j++);
}
/********************************************************************
* 名称: sendbyte()
* 功能: 按照液晶的串口通信协议,发送数据
* 输入: zdata
* 输出: 无
***********************************************************************
/
voidsendbyte(unsigned char zdata)
{
unsigned int i;
for(i=0; i<8;i++)
{
if((zdata <
{
P1OUT |= BIT1;//SID = 1;
}
else
{
P1OUT &=~BIT1;//SID = 0;
}
P1OUT &=~BIT2;//SCLK = 0;
P1OUT |=BIT2;//SCLK = 1;
}
}
/********************************************************************
* 名称: write_com()
* 功能: 写串口指令
* 输入: cmdcode
* 输出: 无
**********************************************************************/
voidwrite_com(unsigned char cmdcode)
{
P1OUT |= BIT0;//CS= 1;
sendbyte(0xf8); //告诉12864接下来传送指令
sendbyte(cmdcode& 0xf0);
sendbyte((cmdcode<< 4) & 0xf0);
delay(2);
}
/********************************************************************
* 名称: write_data()
* 功能: 写串口指令
* 输入: cmdcode
* 输出: 无
***********************************************************************
/
voidwrite_data(unsigned char Dispdata)
{
P1OUT |= BIT0;//CS= 1;
sendbyte(0xfa); //告诉12864接下来传送数据
sendbyte(Dispdata& 0xf0);
sendbyte((Dispdata<< 4) & 0xf0);
delay(2);
}
/********************************************************************
* 名称: lcdinit()
* 功能: 初始化函数
* 输入: cmdcode
* 输出: 无
***********************************************************************
/
void lcdinit()
{
delay(20000);
write_com(0x30);//基本指令操作
delay(50);
write_com(0x0c);//显示开关闭光标
delay(50);
}
/********************************************************************
* 名称: hzkdis()
* 功能: 显示字符串
* 输入: *s
* 输出: 无
***********************************************************************
/
void hzkdis( char*s)
{
while(*s > 0)
{
write_data(*s);
s++;
delay(50);
}
}
/********************************************************************
* 名称: Test()
* 功能: 显示子函数
* 输入: 无
* 输出: 无
***********************************************************************
/
void Test()
{
write_com(0x03);//地址归为
delay(50);
write_com(0x81);//显示第一行
hzkdis("xxxx");
write_com(0x91);//显示第二行
hzkdis("xxxx");
}
/********************************************************************
* 名称: Main()
* 功能: 主函数
* 输入: 无
* 输出: 无
***********************************************************************
/
void main()
{
P1DIR |= BIT0 +BIT1 + BIT2 +BIT3 + BIT4;
WDTCTL = WDTPW +WDTHOLD; //关闭看门狗
delay(1);
lcdinit();
delay(10);
while(1)
{
Test();
delay(5000);
}
}
 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表