[求助] 5529 移植2553 程序

ever9700   2014-5-8 19:41 楼主
#include  
#include  
/*************************************自定义变量*********************************/
int temp,temp2,CCR1ORG=5,key=0;
int ShowTimer=1;
/******************************************************************************/
void main(void)
{
/********************************寄存器初始化*********************************/
     WDTCTL = WDTPW + WDTHOLD;              // Stop watch dog timer
     DCOCTL = 0x60 +0x00;                  // 时钟设置
     ADC12CTL0 = ADC12SHT_2 + ADC12ON;     // 16*ADCLK采样时钟,打开AD,打开AD中断,本来要加ADC10IE,因为没用中断,可能在出不来,所以不加
     ADC12CTL1 = INCH_1;                 // P1.1,A1通道
     ADC12AE0 |= 0x02;                  // P1.1,A1通道
     P1DIR |= 0x01;                    // P1.0,做输出口
     P1OUT |= 0x08;
     P1REN |= 0x08;   
     P1IE |= 0x08;                //p1.3 上拉电阻
     P1IES |= 0x08;                    //p1.3终端下降沿出发
     P1IFG = 0x00;                 //清除中断标志位
     TACTL |= TASSEL_2;           // 时钟SMCLK
     CCTL0 = CCIE;             // 时钟中断
     CCR0 = 1000;                      // CCR0
     TACTL |= MC_1;                //定时器设置为增计数模式

    /********************************PWM初始化*********************************/
     P1DIR |= 0x04;                                            // P1.2 output
     P1SEL |= 0x04;                                           // P1.2 TA1/2 options
     CCR0 = 251-1;                                             // PWM Period
     CCTL1 = OUTMOD_7;                                         // CCR1 resett
     CCR1 = 5;                                               // CCR1 PWM duty cycle

    __enable_interrupt();

    /********************************设备初始化*********************************/
         LCD_init();                                                   
         LCD_clear();                                                                        
         while(1)
         {
                  /*******************************输入***********************************/
                 ADC12CTL0 |= ENC + ADC12SC;                     
                /*******************************处理***********************************/
                 if(ADC12CTL0&0x0004)
                 {
                         temp2=ADC12MEM;
                         temp=32*temp2;

                        if(temp>20500)
                         {
                                 if(CCR1>5)
                                 {        CCR1ORG=CCR1-1;
                                               CCR1=CCR1ORG;
                                 }
                         }
                         if(temp<19500)
                         {        CCR1ORG=CCR1+1;
                                  CCR1=CCR1ORG;
                         }

                }
                 /*******************************输出***********************************/
                 if(ShowTimer)
                 {
                         LCD_write_english_string(0,0,"Nokia5110 LCD");
                         LCD_write_num_string(0,1,temp);
                         ShowTimer=0;
                 }
                 /*******************************开关***********************************/

        }
}

#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A (void)
{
         TAR=0;
         ShowTimer=1;
}

#pragma vector=PORT1_VECTOR
__interrupt void port_1(void)
{
         if(key%2)
                 CCR1=CCR1ORG;
         else
         CCR1 = 0;
P1IFG = 0x00;
key++;
}


不知道怎么搞 无从下手 老师给了个光敏电阻和led串
理论上应该是可以移植的
求大神帮助

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复