用按键控制LED灯的亮灭
用按键控制LED灯的亮灭,当按键按下时,LED灯亮,当按键松开时,LED灯灭。 #include%unsigned char flag; void main(void) {
WDTCTL = WDTPW+WDTHOLD; // Stop WDT P4DIR &=~(BIT2);
P4DIR |= BIT4+BIT5+BIT6; // P4.4,P4.5,P4.6 set as output P4OUT &=~(BIT4+BIT5+BIT6); // set led off P2IE |= BIT6; // enable P2.6 interrupt P2IFG &= ~(BIT6); // clean interrupt flag __enable_interrupt(); // enable interrupt while(1)
{ if((P4IN & 0x04)==0) { P2IFG |= BIT6;} else
{P2IFG &=~BIT6;}}
} // PORT2 interrupt service routine #pragma vector=PORT2_VECTOR __interrupt void port_2(void)
{P4OUT ^=(BIT4+BIT5+BIT6); // set led on
P2IFG &=~BIT6; // clean interrupt flag}
用按键控制LED灯的亮灭,当按键按下时,LED灯亮,当按键松开时,LED灯灭。(查询) #include\void main(void)
{WDTCTL = WDTPW+WDTHOLD; // Stop WDT //setting direction P4DIR &= ~(BIT2); //setting IO for input
P4DIR |= BIT4+BIT5+BIT6; // P4.4,P4.5,P4.6 set as output while (1)
{if ((P4IN & 0x04) == 0) //If key is pressed {P4OUT |= BIT4+BIT5+BIT6; //led on} else{P4OUT &=~(BIT4+BIT5+BIT6); // led off}}}
将ACLK配置为VLOCLK(约为10K),并将ACLK通过P1.0口输出 #include
{WDTCTL = WDTPW + WDTHOLD; //关看门狗
UCSCTL4 |= SELA_1; //将ACLK时钟源配置为VLO; P1DIR |= BIT0;
P1SEL |= BIT0; //将ACLK通过P1.0输出
__bis_SR_register(LPM3_bits);//进入LPM3,SMCLK和MCLK停止,ACLK活动} 设ACLK = XT1 = 32768Hz,并通过P1.0输出。 #include
{WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P1DIR |= BIT0; // ACLK set out to pin P1SEL |= BIT0;
P5SEL |= BIT4+BIT5; // Select XT1
while(BAKCTL & LOCKIO) // Unlock XT1 pins for operation BAKCTL &= ~(LOCKIO);
UCSCTL6 &= ~(XT1OFF); // XT1 On
UCSCTL6 |= XCAP_3; // Internal load cap
// Loop until XT1 fault flag is cleared do
{UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
SFRIFG1 &= ~OFIFG; // Clear fault flags
}while (SFRIFG1&OFIFG); // Test oscillator fault flag UCSCTL6 &= ~(XT1DRIVE_3); // reduce drive strength
UCSCTL4 |= SELA_0; // ACLK = LFTX1 (by default) __bis_SR_register(LPM3_bits); // Enter LPM3 }
设ACLK = XT1 = 32768Hz,令SMCLK = XT2CLK,MCLK = DCO(默认) = 32 x ACLK = 1048576Hz,ACLK和SMCLK分别通过P1.0和P3.4输出。 #include
WDTCTL = WDTPW + WDTHOLD; // Stop WDT P1DIR |= BIT0; // ACLK set out to pins P1SEL |= BIT0;
P3DIR |= BIT4; // SMCLK set out to pins P3SEL |= BIT4;
while(BAKCTL & LOCKIO) // Unlock XT1 pins for operation BAKCTL &= ~(LOCKIO);
P7SEL |= BIT2+BIT3; // Port select XT2 UCSCTL6 &= ~XT2OFF; // Set XT2 On UCSCTL6 &= ~(XT1OFF); // XT1 On
UCSCTL6 |= XCAP_3; // Internal load cap do
{UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
SFRIFG1 &= ~OFIFG; // Clear fault flags
}while (SFRIFG1&OFIFG); // Test oscillator fault flag
UCSCTL6 &= ~XT2DRIVE0; // Decrease XT2 Drive according to // expected frequency
UCSCTL4 |= SELA_0 + SELS_5; // Select SMCLK, ACLK source andDCO source
while(1); // Loop in place }
设ACLK = TACLK = LFXT1 = 32768, MCLK = SMCLK = DCOCLK = 32×ACLK = 1.048576Mhz,利用Timer_A输出周期为512 /32768 = 15.625ms、占空比分别为75%和25%的PWM矩形波: #include
{WDTCTL = WDTPW + WDTHOLD; // Stop WDT while(BAKCTL & LOCKIO) BAKCTL &= ~(LOCKIO); // Unlock XT1 pins for operation UCSCTL6 &= ~(XT1OFF); // XT1 On
UCSCTL6 |= XCAP_3; // Internal load cap // Loop until XT1 fault flag is cleared do
{UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
SFRIFG1 &= ~OFIFG; // Clear fault flags }while (SFRIFG1&OFIFG); // Test oscillator fault flag
P1DIR |= BIT2+BIT3; // P1.2 and P1.3 output P1SEL |= BIT2+BIT3; // P1.2 and P1.3 options select TA0CCR0 = 512-1; // PWM Period
TA0CCTL1 = OUTMOD_7; // CCR1 reset/set
TA0CCR1 = 384; // CCR1 PWM duty cycle TA0CCTL2 = OUTMOD_7; // CCR2 reset/set
TA0CCR2 = 128; // CCR2 PWM duty cycle
TA0CTL = TASSEL_1 + MC_1 + TACLR; // ACLK, up mode, clear TAR __bis_SR_register(LPM3_bits); // Enter LPM3 __no_operation(); // For debugger }
由程序知:P1.2—> TA0CCR1 - 75% PWM,P1.3—> TA0CCR2 - 25% PWM。周期15.625ms
利用定时器实现开发板上的LED灯以1Hz的频率闪烁 #include
{ WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
P4DIR |= BIT4 + BIT5 + BIT6; // P4.4、P4.5、P4.6设为输出 TA0CCTL0 = CCIE; // CCR0中断使能 TA0CCR0 = 16384;
TA0CTL = TASSEL_1 + MC_1 + TACLR; // ACLK, 增计数模式, 清除TAR计数器 __bis_SR_register(LPM0_bits + GIE); // 进入LPM0,使能中断 …… 此处隐藏:4536字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




