標(biāo)題: 基于430f5529的搶答器程序分享 [打印本頁(yè)]

作者: chenmingsi    時(shí)間: 2020-11-1 00:16
標(biāo)題: 基于430f5529的搶答器程序分享


單片機(jī)源程序如下:

  1. #include "msp430f5529.h"
  2. long unsigned int n;
  3. void delay(unsigned int x)
  4. {
  5.    int i,j;
  6.    for(i=x;i>0;i--)
  7.      for(j=110;j>0;j--);
  8. }
  9. #define K1 (P2IN & BIT1)

  10. int flag = 0,flag1 = 0;

  11. void main(void){

  12.   WDTCTL=WDTPW+WDTHOLD; //關(guān)閉看門狗

  13.   P1DIR = BIT0;   
  14.   P1OUT &= ~BIT0;// 燈暗
  15.   
  16.   
  17.   P4DIR = BIT7;   
  18.   P4OUT &= ~BIT7;

  19.   P2DIR &= ~BIT1;                         //將P2.1腳設(shè)置為輸入方式
  20.   P2OUT |= BIT1;            
  21.   P2REN |= BIT1;            //設(shè)置為內(nèi)部上拉
  22.   P2IE |= BIT1;                  //P2.1中斷使能
  23.   P2IES |= BIT1;                   //置1,設(shè)置為下降沿觸發(fā)
  24.   P2IFG &= ~BIT1;                      //清除P2.1的中斷標(biāo)志位
  25.   
  26.   P1DIR &= ~BIT1;                         //將P2.1腳設(shè)置為輸入方式
  27.   P1OUT |= BIT1;            
  28.   P1REN |= BIT1;            //設(shè)置為內(nèi)部上拉
  29.   P1IE |= BIT1;                  //P2.1中斷使能
  30.   P1IES |= BIT1;                   //置1,設(shè)置為下降沿觸發(fā)
  31.   P1IFG &= ~BIT1;                      //清除P2.1的中斷標(biāo)志位
  32.   
  33.   TA0CTL = TASSEL_2 + TACLR + MC_1;//設(shè)置定時(shí)器時(shí)鐘源為SCMLK,8分頻,允許置位,增計(jì)計(jì)數(shù)                           //
  34.   TA0CCTL0 = CCIE;           //允許使能中斷
  35.   TA0CCR0 = 1060;           //設(shè)置定時(shí)周期      1ms
  36.   __bis_SR_register(LPM0_bits + GIE); //復(fù)位CPUOFF并打開SCMLK,開可屏蔽中斷}//進(jìn)入低功耗模式

  37.   
  38.   __enable_interrupt();      //開總中斷
  39.   
  40.   while(1)
  41.   {
  42.    
  43.   }
  44. }
  45. #pragma vector=TIMER0_A0_VECTOR
  46. __interrupt void Timer_A(void)
  47. {
  48.   n++;

  49.   if(n == 5000)//5s
  50.   {
  51.     flag1=1;
  52.     n=0;
  53.   }
  54. }

  55. #pragma vector=PORT2_VECTOR     //固定格式,聲明中斷向量地址
  56. __interrupt void Port2_ISR(void)  //中斷子程序
  57. {
  58.   if(flag1!=1)
  59.   {
  60.     __delay_cycles(100);
  61.     while(K1 == 0);
  62.     P1OUT ^= BIT0;
  63.     P2IFG &= ~BIT1;
  64.     P1IE &= ~BIT1;
  65.   }
  66.   else
  67.   {
  68.     P2IE &= ~BIT1;
  69.   }
  70.    
  71.    
  72. }

  73. #pragma vector=PORT1_VECTOR     //固定格式,聲明中斷向量地址
  74. __interrupt void Port1_ISR(void)  //中斷子程序
  75. {
  76.   if(flag1!=1)
  77.   {
  78.     __delay_cycles(100);
  79.     while((P1IN&BIT1) == 0);
  80.     P4OUT ^= BIT7;
  81.     P1IFG &= ~BIT1;
  82.     P2IE &= ~BIT1;
  83.   }
  84.   
  85.     else
  86.   {
  87.     P1IE &= ~BIT1;
  88.   }
  89. }
復(fù)制代碼

所有程序51hei提供下載:
搶答器.rar (757.38 KB, 下載次數(shù): 11)



作者: 51hei團(tuán)團(tuán)    時(shí)間: 2020-11-1 00:51
能分享下電路圖嗎?




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1