小弟是新手,弄了个430和12864b的显示屏显示的代码

2019-03-24 10:38发布

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

#include<msp430g2553.h>#define ucharunsigned char#define uintunsigned int/********************************************************************* 名称: delay()* 功能: 延时,延时时间为100us * t。这是通过软件延时,有一定误差。* 输入: t* 输出: 无***********************************************************************/voiddelay(unsigned int t){unsigned int i,j;for(i=0; i<t;i++)for(j=0; j<10;j++);}/********************************************************************* 名称: sendbyte()* 功能: 按照液晶的串口通信协议,发送数据* 输入: zdata* 输出: 无***********************************************************************/voidsendbyte(unsigned char zdata){unsigned int i;for(i=0; i<8;i++){if((zdata <<i) & 0x80){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);}} 此帖出自小平头技术问答
0条回答

一周热门 更多>

相关问题

    相关文章