MSP430F149点不亮Nokia5110屏 求大神指教

  • new world
  • LV5工程师
  • |      2016-10-14 10:48:28
  • 浏览量 2658
  • 回复:6
本帖最后由 new world 于 2016-10-14 11:40 编辑 不知道为什么,Nokia5110就是点不亮,连背光都不亮,我都弄了两三天了,都还没解决这个问题,故而来求助大神来了 首先,是我的单片机的电路图 (MSP430F149) 下面是程序 Nokia5110的头文件
#ifndef _NOKIA_H_

#define _NOKIA_H_



#define RST_L  P6OUT &= ~BIT1

#define RST_H  P6OUT |= BIT1



#define CE_H    P5OUT |= BIT2

#define CE_L    P5OUT &= ~BIT2





#define DIN_H   P5OUT |= BIT1

#define DIN_L   P5OUT &= ~BIT1





#define CLK_H   P6OUT |= BIT0

#define CLK_L   P6OUT &= BIT0

#define DC_Data   P5OUT |= BIT0 

#define DC_Com    P5OUT &= ~BIT0





/*

#define DC_Data   P6OUT |= BIT0 

#define DC_Com    P6OUT &= ~BIT0



#define CLK_H   P5OUT |= BIT0

#define CLK_L   P5OUT &= BIT0

*/

#include "include.h"



void Nokia_Init();

void Nokia_WriteByte(uchar date,uchar com);

void Nokia_Lospot(uchar x,uchar y);

void Nokia_WriteChar(uchar x,uchar y,uchar c);

void Nokia_WriteString(uchar x,uchar y,uchar *s);

void Nokia_PortInit();

void Nokia_ClearScreen();

void Nokia_FillScreen();





#endif
下面是Nokia5110.c
//

//Nokia5110 屏幕点亮失败

//现象:屏幕不亮,不显示字符等

//





#include "nokia.h"



//Nokia初始化

void Nokia_Init()

{

    RST_L;

    Delay_us(1);

    RST_H;

    

    CE_L;

    Delay_us(1);

    CE_H;

    Delay_us(1);

     

     

    Nokia_WriteByte(0x21,0);    //掉电模式  水平显示  H=1   使用拓展指令 

    Nokia_WriteByte(0xaa,0);    //设置偏置电压  0xc8

    Nokia_WriteByte(0x06,0);      //设置温度矫正

    Nokia_WriteByte(0x13,0);    //设置偏置系统为       1:48



    Nokia_WriteByte(0x20,0);    //使用基本指令     H=0

    Nokia_ClearScreen();

    Nokia_WriteByte(0x0c,0);

    CE_L;

    

   



}



//Nokia 写入

//date :  数据/命令

//com:  0:命令    1:数据

void Nokia_WriteByte(uchar date,uchar com)

{

  uchar i;

    CE_L;

    CLK_H;

    if(com == 1)

      DC_Data;

    else

      DC_Com;

    

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

    {

        if(date & 0x80)

            DIN_H;

        else

            DIN_L;

          

        CLK_L;

        date = date << 1;

        //Delay_ms(1);

        CLK_H;

    

    }

        

    CE_H;   



}



//设置坐标

//x:横坐标      y:纵坐标

void Nokia_Lospot(uchar x,uchar y)

{

    Nokia_WriteByte(0x40|y,0);

    Nokia_WriteByte(0x80|x,0);



}



//写入字符

//x:横坐标      y:纵坐标      c:字符

void Nokia_WriteChar(uchar x,uchar y,uchar c)

{

      uchar i;

      c=c-32;

      Nokia_Lospot(x,y);

      

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

        Nokia_WriteByte(font6x8,1);



}



//写入字符串

//x:横坐标      y:纵坐标      *s:字符串

void Nokia_WriteString(uchar x,uchar y,uchar *s)

{

    uchar i;

    

    *s-=32;

    

    Nokia_Lospot(x,y);

    

    while(*s)

    {

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

        Nokia_WriteByte(font6x8,1);

        s++;

    }



}



//Nokia 端口初始化



void Nokia_PortInit()

{

    P5SEL =0X00;

    P5DIR =0xff;

   

    

    P6SEL =0X00;

    P6DIR = 0xff;



}





//清除屏幕

void Nokia_ClearScreen()

{

    uint i;

    

    Nokia_WriteByte(0x0c,0);        //设置为普通显示模式

    Nokia_WriteByte(0x80,0);        //设置坐标x

    //Nokia_WriteByte(0x40,0);        //设置坐标y    

    

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

      Nokia_WriteByte(0,1);



}



void Nokia_FillScreen()

{

    uint i;

    

    Nokia_WriteByte(0x0c,0);        //设置为普通显示模式

    Nokia_WriteByte(0x80,0);        //设置坐标x

    //Nokia_WriteByte(0x40,0);        //设置坐标y    

    

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

      Nokia_WriteByte(0xff,1);



}



主函数main()
// 时钟源选择

void int_clk()

{

    uchar i;

    BCSCTL1 &= ~XT2OFF;

    BCSCTL2 |= SELM1+SELS+DIVS_3;

    

    do

    {

        IFG1 &= ~OFIFG;

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

          ;

    }

    while((IFG1 & OFIFG) !=0);

    

    IFG1&= OFIFG;



}



int main( void )

{



 // Stop watchdog timer to prevent time out reset

  WDTCTL = WDTPW + WDTHOLD;

  

  int_clk();  // 时钟源选择

  

  P4SEL =0X00;

  P4DIR = 0XFF;

  

  Nokia_PortInit();

  

  P2OUT = ~0X01;

  

  Nokia_Init();

  

  P4OUT= ~0X02;

  Nokia_ClearScreen();

  

  Nokia_WriteString(3,3,"hello");

   

  Nokia_WriteChar(4,2,'m');

  P4OUT = ~0X04;

  void Nokia_FillScreen();

  while(1);

  {

   

    

    Delay_ms(100);

    

  }

  

 

  return 0;

}





希望大神能给找找原因
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:2
kk118a 2016-10-14
你原理图画错了好像看
0   回复
举报
发布
new world 回复 2016-10-14
这是开发板带的原理图,看着也是醉了的:L:L
1   回复
举报
gtrjolin1986 2016-10-14
是问题?
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子