#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串
理论上应该是可以移植的
求大神帮助