您当前的位置:五五电子网电子知识单片机-工控设备MSP430单片机12864显示屏菜单程序 正文
12864显示屏菜单程序

12864显示屏菜单程序

点击数:7315 次   录入时间:03-04 11:51:55   整理:http://www.55dianzi.com   MSP430单片机
}
//**********add1******************************************
void add_fen1(void)
{
  c++;
if(c>9)c=0;return;
}
//*******************************************//
void add_fen2(void)
{d++;
if(d>5)d=0;return;}
//*******************************************//
void add_shi1(void)
{e++;
if(e>9)e=0;
if(f==2&&e>3)
{f=e=0;}
return;}
//*******************************************//
void add_shi2(void)
{f++;
if(f>2)f=0;
if(f==2&&e>3)
{f=e=0;}
  return;
}

//****************************************
void addnian22(void)
{
  nian2++;
  if(nian2>9)
  {nian2=0;nian1++;}
  if(nian1==9&&nian2==9)
  {nian1=nian2=0;}
}
//************************
void addyue22(void)
{
  yue2++;
  if(yue2>9)
  {yue2=0;yue1++;}
  if(yue2>2&&yue1==1)
  {yue1=yue2=0;}
}
//*************************************
void addri22(void)
{
  ri2++;
  if(ri2>9)
  {ri2=0;ri1++;}
  if(ri2>0&&ri1==3)
  {ri1=ri2=0;}
}
//********************************************
 void aoyun22(void)
 {
    aoyun2++;
    if(aoyun2>9)
  {aoyun2=0;aoyun1++;}
  if(aoyun2==9&&aoyun1==9)
  {ri1=ri2=0;}
}

//********************基本设置******************************************//
//**********************************************************************//
//********************算法**********************************************//


//*****************************定时中断函数*********************************************//

  #pragma vector =TIMERA0_VECTOR          //ccr0中断服务
__interrupt void ta1_isr(void)
{
  count++;
  CCTL0&=~CCIFG; 
  if(count!=3)return; 
  count=0;
    a++;
    if(a>9)
    {a=0;b++;
        if(b>5)
        {b=0;c++;
            if(c>9)
                {
                c=0;d++;
                  if(d>5)
                  {d=0;e++;
              if(e>9)
              {
              e=0;f++;
            if(f==2&&e==4)
            {
            a=b=c=d=e=f=0;//ab秒  cd分  ef时 
            }      CCR0 =45000;
        }      CCR0 =45000;
    }      CCR0 =45000;
}      CCR0 =45000;
}      CCR0 =45000;
}      CCR0 =45000;
}

//********写命令/数据***************************************************   
void transfedata(unsigned char data, char DI)
{
  P4OUT&=~BIT1;
  if (DI==1)P4OUT|=BIT0;
  else P4OUT&=~BIT0;
  delay(10);
  P4OUT|=BIT2;
  P3OUT=data;
   delay(10);
  P4OUT&=~BIT2;  
  delay(10);
}

//***************************清屏*************************************/
void CLEAR(void)
{
P4OUT&=~BIT0;//RS=0;
P4OUT&=~BIT1;//RW=0;
P4OUT|=BIT2;//E=1;
P3OUT=0x01;//P1=0x01;
delay(100);
P4OUT&=~BIT2;//E=0;
}


//***************set_caidan3菜单3设置****************************************************
void set_caidan3(void)
{
      lcd_mesg1(nian1,nian2,0x81);//年
      lcd_mesg1(yue1,yue2,0x83);//月
      lcd_mesg1(ri1,ri2,0x85);//日
      lcd_mesg1(kongqi1,kongqi2,0x8c);//空气指数标志
      lcd_mesg1(f,e,0x94);//时钟时
      lcd_mesg1(j,d,0x95);//时钟分
      lcd_mesg1(c,j,0x96);//时钟分
      lcd_mesg1(b,a,0x97);//时钟秒
      lcd_mesg1(aoyun1,aoyun2,0x9e);//奥运倒计时  
}

//****************lcd_mesg1定点显示*********************************************************
void  lcd_mesg1(unsigned char gao,unsigned char di,unsigned char p)
{
  transfedata(p,0);
  delay(10);  
    transfedata(caidan0[gao],1);
    transfedata(caidan0[di],1);

}
//******************lcd_mesg显示界面*****************************************
void  lcd_mesg(unsigned char *p)
{
  unsigned char i;
  transfedata(0x80,0);
  delay(10);
  for(i=0;i<64;i++)
  {
    transfedata(*p,1);
    p++;
  }
}

//*******************键盘分析函数***************************************//

int keyprocess(void)
{
  if(keyin!=0x0f){
     delay1(10);//延时去抖动 
     P2OUT = 0x00;          //p2口输出全0
     if(keyin!=0x0f){
       for(a=0;a<4;a++)//有键按下
       { P2OUT=hang[a];
            if(keyin != 0x0f)break; //检测该行有键按下则退出循环       
       }    
       
       for(b=0;b<4;b++)
       {
         if(keyin==lie[b])
         {
           save=key[a][b];break;        //检测该列有键按下则退出循环

上一页  [1] [2] [3]  下一页


本文关键字:程序  显示屏  MSP430单片机单片机-工控设备 - MSP430单片机