MSP430F149单片机
LCD1602投票器一个主持人开始停止复位3个按键投票
cpp展开代码char state = 0; /*三个状态 开始 停止复位 */
char piaoshu = 0;
char ifg1 = 0, ifg2 = 0, ifg3 = 0;
int main( void )
{
 char key_v;
 WDTCTL = WDTPW | WDTHOLD;               /* Stop watchdog timer */
 Clock_Init();                           /* 系统时钟设置 */
 key_init();                             /*按键初始化 */
 Port_init();                            /* 显示器引脚初始化 */
 LCD_init();                             /* 显示器初始化 */
 LCD_Desk();                             /* 显示界面初始化 */
 _EINT();                                /* 开中断 */
 state = 2;                              /* 初始状态 */
 LCD_write_char( 11, 1, piaoshu + '0' ); /* 显示投票数 */
 while ( 1 )
 {
  key_v = KeySscan();
  if ( key_v != 0 )
  {
   if ( key_v == 1 )
   {
    state++;
    if ( state == 3 )
     state = 0;  /* 改变状态 */
    if ( state == 0 )
    {
     LCD_write_str( 0, 1, "start" );
    }else if ( state == 1 )
    {
     LCD_write_str( 0, 1, "stop " );
    }else if ( state == 2 )
    {
     LCD_write_str( 0, 1, "reset" );
     delay_ms( 100 );
     LCD_write_str( 0, 1, "     " );
     piaoshu = 0;                            /* 投票数归零 */
     ifg1 = 0, ifg2 = 0, ifg3 = 0;        /* 标志归零 */
     LCD_write_char( 11, 1, piaoshu + '0' ); /* 显示投票数 */
    }
   }
   if ( state == 0 )
   {
    /* 状态开始状态  就可以投票 */
    if ( key_v == 2 )
    {
     if ( ifg1 == 0 )
     {
      piaoshu++;                      /* 票数+1 */
      ifg1 = 1;                       /* 只有复位后才恢复0 投票只能投一次 */
     }
     LCD_write_char( 11, 1, piaoshu + '0' ); /* 显示投票数 */
    }else if ( key_v == 3 )
    {
     if ( ifg2 == 0 )
     {
      piaoshu++;                      /* 票数+1 */
      ifg2 = 1;                       /* 只有复位后才恢复0 投票只能投一次 */
     }
     LCD_write_char( 11, 1, piaoshu + '0' ); /* 显示投票数 */
    }else if ( key_v == 4 )
    {
     if ( ifg3 == 0 )
     {
      piaoshu++;                      /* 票数+1 */
      ifg3 = 1;                       /* 只有复位后才恢复0 投票只能投一次 */
     }
     LCD_write_char( 11, 1, piaoshu + '0' ); /* 显示投票数 */
    }
   }
  }
 }
}
cpp展开代码https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2


本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!