⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msp430驱动1621.txt

📁 功能:用msp430驱动1621芯片的段码液晶 作者:徐世龙(网名:清风徐徐) 说明:源创(调试绝对能用) ----------------------------------------
💻 TXT
字号:
/*-----------------------------------------------------------
  功能:用msp430驱动1621芯片的段码液晶
  作者:徐世龙(网名:清风徐徐)
  说明:源创(调试绝对能用)
        ----------------------------------------------------
        [清风单片机]网站独家发布,如需转载或用于商业用途,请
        联系作者和著名网站的出处
        ----------------------------------------------------
        本程序收录在[液晶资料光盘]的[液晶程序盘]中,如要需要
        请联系  QQ:78779514    XSL88888@tom.com
        ----------------------------------------------------
        更多资料、更多源程序、更多器件尽在清风单片机
        主站点:  http://www.qfmcu.com
        辅站点:  http://www.qfmcu.home.sunbo.net
        论坛:    http://www.qfmcu.com/bbs
        发货查询:http://www.qfmcu.com/fh/
        留言:    http://www.qfmcu.com/ly/
        ----------------------------------------------------
        cs-----p65
        wr-----p64
        dat----p63
        mcu----msp430f135
------------------------------------------------------------*/
/*------------------------
  功能:延时
  参数:uint y
  返回:无
  说明:无
-------------------------*/
void dely(uint y)
{
    uchar  j,i;
    while(y--)
    for(j=250;j>0;j--)
     {
      i=0;
     }
}
void delay(uint n)
{ 
uchar  j,i;
for(j=0;j<n;j++)
     {
      i=0;
     }
       
}
/*------------------------
  功能:写字节
  参数:uchar k,uchar N
  返回:无
  说明:无
-------------------------*/
void write_byte(uchar k,uchar n)
{
    uchar i,j;
    for(i=0;i<n;i++)
    {
       //dat=k&0x80; 
       if(k&0x80)                   //p6.3
         P6OUT|=0x08;
       else
         P6OUT&=0xf7;
       delay(20);
       P6OUT|=0x10;    //wr=1;
       j=0;
       k=k<<1;
       j=0;
       P6OUT&=0xef;    //wr=0;
    }
}
void write_byte1(uchar k,uchar n)
{
    uchar i;
    for(i=0;i<n;i++)
    {
       //dat=k&0x01; 
       if(k&0x01)
         P6OUT|=0x08;
       else
         P6OUT&=0xf7;
       //dely(2);
       P6OUT|=0x10;    //wr=1;
       //dely(2);
       k=k>>1;
       //dely(2);
       P6OUT&=0xef;    //wr=0;
    }
}
/*------------------------
  功能:写命令
-------------------------*/
void write_com(uchar com)
{
   P6OUT&=0xdf;//cs=0;
   //dely(2);
   write_byte(0x80,3);             //写100
   write_byte(com,8);
   P6OUT|=0x10;    //wr=1
   //dely(2);
   P6OUT&=0xef;    //wr=0
   //dely(2);
   P6OUT|=0x20;// cs=1;
}
/*------------------------
  功能:写数据
-------------------------*/
void write_dat(uchar add,uchar mdata)
{
   P6OUT&=0xdf;//cs=0;
   //dely(2);
   add=add<<2;
   write_byte(0xa0,3);          //写101
   write_byte(add,6);
   write_byte1(mdata,4);
   //dely(2);
   P6OUT|=0x20;// cs=1;
}
/*------------------------
  功能:清屏
-------------------------*/
void display_clr(void)
{
   uchar i;
   for(i=0;i<32;i++)
   {
       write_dat(i,0);   
   }
}
/*-------------------------
  功能:初始化液晶
-------------------------*/
void int1621(void)
{
   P6OUT|=0x20;// cs=1;
   //dely(2);
   P6OUT&=0xef;    //wr=0
   //dely(2);
   P6OUT|=0x08;//dat=1;
   //dely(2);
   write_com(0x29);      //BIAS1/3
   write_com(0x18);      //RC256K
   write_com(0x06);      //WDT溢出标志失效
   write_com(0x04);      //时基输出失效
   write_com(0x01);      //SYS EN,打开系统振荡器
   write_com(0x03);      //打开LCD偏压发生器
   display_clr();
}
/*-------------------------
  功能:显示
-------------------------*/
void display(uchar add,uchar dat)
{
   write_dat(add,dat>>4);
   write_dat(add+1,dat);
}
void main (void)
{
  ulong zs;
  /*----------------------*/
  WDTCTL = WDTPW + WDTHOLD;               // 停止看门狗
  DCOCTL=0XE0;                            //初始化时钟
  BCSCTL1=0X86;
  BCSCTL2=0X00;
  /*---------------------*/
  P6DIR=0xff;
  P6OUT=0x00;
  /*-------*/
  dely(100);
  int1621();
  _EINT();                                   // Enable interrupts
  while (1)                                  // 主循环
  { 
         write_dat(0,oxff);     //k9,k10,k11,k12
         display(1,0xff);       //第一位   k8, c,b,a,d,e,g,f

  } 

(文章推荐人:Oldkey) 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -