打印

大神们给看看,有什么错误?为什么不能显示啊

[复制链接]
1331|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zyp0322|  楼主 | 2013-7-14 11:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*
* main.c
*/
#include  <msp430g2553.h>
#include"12864.h"
#include"key.h"
uchar  key0[8],key1[8]={16};   ///key0[]为输入密码,,,key1[]为正确密码
int mark,i=0,t=0,s_mark;      ///mark功能选择,t密码错误几次
/*******************************************
函数名称:panduan
功    能:判断密码是否正确
参    数:无
返回值  :无
********************************************/
void panduan(void)
{

        }

void delay2(uint z)
{
uint tmp;
for(tmp = z;tmp > 0;tmp--);
}
/*******************************************
函数名称:p2_init
功    能:报警函数
参    数:无
返回值  :无
********************************************/
void P2_init()
{
    P2SEL|= BIT5;                                  //TA从P1.2输出
    P2DIR|= BIT5;                                  //TA从P1.2输出
    TACTL|= MC_1+TASSEL_2;                        //时钟源选择ACLK,增计数模式 TA设置
    TACCTL1=OUTMOD_7;                             //模式7 高电平PWM输出        PWM设置
    TACCR0=32-1;                                 //PWM总周期=32个ACLK周期 约等于1000Hz        设置PWM的周期
    TACCR1=30;                                    //TA 占空比        设置占空比
}
/*******************************************
函数名称:panduan
功    能:判断密码是否正确
参    数:无
返回值  :无
********************************************/
void mark_xz(void)
{
        if(key_val==16)
                mark=1;          //确定键        当设定密码时为设定成功键,当为密码输入完成键时为判断键
        else if(key_val==14)
            mark=2;          //密码修改键
        //if(key_val==14)
        //    mark=3;
        else if(key_val==13)
            mark=3;          //密码设定
        else mark=0;
        }

void main( void )
{
WDTCTL = WDTPW + WDTHOLD;
lcdinit();
Init_Keypad();
//P2_init();//控制蜂鸣器-----报警(直接调用就行)
write_string(1,1,"DTC");
for(;;)
{
   mark_xz();
   switch(0)                 //  mark
    {
     default:
     case 0:
     {
             write_string(1,2,"请输入密码:");
             P1IE = 0x70;    // 设置P1.4,P1.5,P1.6 可以中断
         P1IES = 0x70;    // 设置P1.4,P1.5,P1.6 为下降沿中断
         Key_Event();
         if(i>0)
         write_string(i,4,"*");
         else ;
     }
     break;
     case 1:
     {
             if(s_mark==3)
             {
             write_string(1,2,"密码设定成功!");
             delay2(20000);
             mark=0;
             }
             else
             {
             for(i=i-1;i>=0;i--)
             {
            if( key0[i]==key1[i])
                    ;
            else break;
             }
             if(i>=0)
             {
             if(t<2)
             {
                  write_string(1,2,"密码错误!");
                  t++;
                  write_string(1,3,"重新输入");
                  i=0;
             }
             if(t>=2)
             {
                     write_string(1,2,"密码错误!");
                     P2_init();
             }
             }
             else
             {
                     write_string(1,2,"密码正确");

             }
             }
             s_mark=0;
          }
     break;
     case 2:
     {
                  write_string(1,2,"密码修改");
                  write_string(1,3,"输入旧密码:");
          }
     break;
     case 3:
     {
             write_string(1,2,"设定密码:");
             P1IE = 0x70;    // 设置P1.4,P1.5,P1.6 可以中断
             P1IES = 0x70;    // 设置P1.4,P1.5,P1.6 为下降沿中断
             Key_Event();
             write_string(i,4,"*");
             s_mark=mark;
               }
     break;
    }
}

}
#pragma vector=PORT1_VECTOR   //中断服务程序:
__interrupt void p1int(void)
{
  P1OUT ^=BIT4+BIT5+BIT6;
  if(mark==3)
          key1[i]=key_val;
  else
  key0[i]=key_val;
  i++;
  delay1();
  P1IFG=0;
}

相关帖子

沙发
wangch_sh| | 2013-7-14 18:11 | 只看该作者
1.硬件问题
2.时序问题

使用特权

评论回复
板凳
long870912| | 2013-7-14 20:13 | 只看该作者
路过!

使用特权

评论回复
地板
冥顽的石头| | 2013-7-14 21:10 | 只看该作者

使用特权

评论回复
5
wangch_sh| | 2013-7-15 14:32 | 只看该作者
网上例子很多的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝