msp430 1602显示

2019-03-24 12:33发布

#include "msp430g2553.h"


void delay(int i)
{

unsigned int a,b;
for(a=i;a>0;a--)
        for(b=1111;b>0;b--);


}
void busy()
{
        unsigned char BF;
        P2OUT |=BIT1;
        P2OUT &=~BIT2;
        P2OUT &=~BIT0;


        BF=(P1IN&BIT7);
        P2OUT |=BIT0;
        delay(5);
        P2OUT &=~BIT0;
    if(BF==1)
    {
    delay(100);

    }
    delay(100);
}

void write_com (unsigned char com)
{

        P2OUT &=~BIT1;
        P2OUT &= ~BIT2;

        P2OUT &=~BIT0;
        P1OUT =com;
    delay(100);
        P2OUT |=BIT0;


        P2OUT &=~BIT0;




}
void write_date(unsigned char date)
{

        P2OUT &=~BIT1;
        P2OUT |=BIT2;


        P2OUT &=~BIT0;
        P1OUT =date;

        delay(100);
        P2OUT |=BIT0;

        P2OUT &=~BIT0;

}
void inti()
{


        write_com(0x38);


        write_com(0x0c);


        write_com(0x06);


        write_com(0x01);


        write_com(0x80);
        delay(5);
}

void main(void)
{


        P1DIR |=0xff;
        P2DIR |=0xff;
        P1SEL =0;
        P2SEL =0;

  inti();



   busy();
   write_date(0x41);
   busy();
   write_com(0xc0);
   busy();
   write_date(0x42);


   while(1);



}

求大神指教      显示一直闪烁




此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
qinkaiabc
1楼-- · 2019-03-24 17:32
 精彩回答 2  元偷偷看……
bobde163
2楼-- · 2019-03-24 17:55
< :TI_MSP430_内容页_SA7 --> 还是调试一下,看看是哪个地方的代码出了问题,一般可能出在时序上
bobde163
3楼-- · 2019-03-24 20:38
感觉您给出的这个代码有些复杂,光是初始化指令就重复用了好多次,并且延时用得还特别多,我在学习的时候也是参考了这里面的代码,去掉某个延时,就显示不了了,后来我自己写的代码精简了许多,去掉了很多没有必要的延时,提升了显示效率,当时用的G2553,在16Mhz的频率下,1602依然能正常显示

一周热门 更多>

相关问题

    相关文章