2008|0

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

5529 移植2553 程序 [复制链接]

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

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表