12864 c语言,单片机12864 c程序

本文档详细介绍了如何使用C语言和MSP430单片机来驱动12864液晶屏,包括初始化、清屏、满屏、条纹显示等操作。程序中包含了必要的控制指令和数据传输子程序,以实现对12864液晶屏的控制。
摘要由CSDN通过智能技术生成

单片机12864 c程序-MSP430与12864连接驱动程序(KS0108)

#i nclude "MSP430x14x.h" // Standard EquaTIons

#i nclude "math.h"

#i nclude "stdlib.h"

#i nclude "stdio.h"

#i nclude "string.h"

#i nclude "ctype.h"

#i nclude "HZTable.h"

#i nclude "ASCII816.h"

#define uint unsigned int

#define uchar unsigned char

//**********************************************

#define RS BIT0

#define RW BIT1

#define E BIT2

#define CS1 BIT3

#define CS2 BIT4

#define RST BIT5

#define EL BIT6 //背光

//数据线:p4口 ,控制线: p5口

//**********************************************

uchar cradd1,cradd2;

uchar item1[5]={0,1,2,3,50}; //欢迎使用

uchar item2[5]={4,5,6,7,50}; //请等待……

//=======================================================

void short_delay(uint i)

{ uint j;

for(j=0;j<=i;j++);

}

void delayms(uchar TIckms)

{ uchar count,i;

_NOP();

_NOP();

_NOP();

for(i=TIckms;i>0;i--)

{ for(count=0;count<=58;count++) {;}

_NOP();

}

}

//**************************************************

void prl0(uchar com1)// 写指令代码子程序(左)

{

P5DIR|=0X7F; //P5为输出口

P5OUT|=CS1; //csa=1

P5OUT&=~CS2; //csb=0

P5OUT&=~RS;

P5OUT|=RW; //RS=0,R/W=1,以便读液晶状态

P4DIR=0x00; //P4口为输入口

do

{

P5OUT|=E; //E=1

cradd1=P4IN;

P5OUT&=~E; //E=0

}

while((cradd1&0x80)!=0);

P5OUT&=~RW; //rw=0

P4DIR=0xff; //P4口为输出口

P4OUT=com1;

P5OUT|=E; //E=1

P5OUT&=~E; //E=0

}

//**************************************************

void prl1(uchar dat1)// 写显示数据子程序(左)

{

P5DIR|=0X7F; //P5为输出口

P5OUT|=CS1; //csa=1

P5OUT&=~CS2; //csb=0

P5OUT&=~RS;

P5OUT|=RW; //RS=0,R/W=1,以便读液晶状态

P4DIR=0x00; //P4口为输入口

do

{

P5OUT|=E; //E=1

cradd1=P4IN;

P5OUT&=~E; //E=0

}

while((cradd1&0x80)!=0);

P5OUT|=RS; //rs=1

P5OUT&=~RW; //rw=0

P4DIR=0xff; //P4口为输出口

P4OUT=dat1;

P5OUT|=E; //E=1

P5OUT&=~E; //E=0

}

//**************************************************

void prr0(uchar com2)// 写指令代码子程序(右)

{

P5DIR|=0X7F; //P5为输出口

P5OUT&=~CS1; //csa=0

P5OUT|=CS2; //csb=1

P5OUT&=~RS;

P5OUT|=RW; //RS=0,R/W=1,以便读液晶状态

P4DIR=0x00; //P4口为输入口

do

{

P5OUT|=E; //E=1

cradd1=P4IN;

P5OUT&=~E; //E=0

}

while((cradd1&0x80)!=0);

P5OUT&=~RW; //rw=0

P4DIR=0xff; //P4口为输出口

P4OUT=com2;

P5OUT|=E; //E=1

P5OUT&=~E; //E=0

}

//*************************************************

void prr1(uchar dat2)// 写显示数据子程序(右)

{

P5DIR|=0X7F; //P5为输出口

P5OUT&=~CS1; //csa=0

P5OUT|=CS2; //csb=1

P5OUT&=~RS;

P5OUT|=RW; //RS=0,R/W=1,以便读液晶状态

P4DIR=0x00; //P4口为输入口

do

{

P5OUT|=E; //E=1

cradd1=P4IN;

P5OUT&=~E; //E=0

}

while((cradd1&0x80)!=0);

P5OUT|=RS; //rs=1

P5OUT&=~RW; //rw=0

P4DIR=0xff; //P4口为输出口

P4OUT=dat2;

P5OUT|=E; //E=1

P5OUT&=~E; //E=0

}

//*************************

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值