通过点灯入门430

通过点灯入门430

ID:40735967

大小:56.00 KB

页数:6页

时间:2019-08-06

通过点灯入门430_第1页
通过点灯入门430_第2页
通过点灯入门430_第3页
通过点灯入门430_第4页
通过点灯入门430_第5页
资源描述:

《通过点灯入门430》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、开始学习430了,本以为有了51的基础学起来会飞快,谁知430的资源太过丰富,一时眼花缭乱,各种寄存器就让我纠结的要死了,开始几天就看例程,在头文件里查阅各种寄存器的功能,然后运用点亮LED灯的方法写程序,学习IO口的设定,中断,定时器。现在还是菜鸟一枚,小小总结一下入门的经验,新手可以参考一下。首先写了这个程序,最简单了,点亮一个灯#includevoidmain(){WDTCTL=WDTPW+WDTHOLD;//停止开门狗P2DIR=0X01;P2OUT=0xfe;}然后试着写了一个独立按键开关

2、灯的程序,调了一天,还是没有得到满意的结果,还是把代码贴下来,希望能有人批评指正。/**实验目的:K1控制D8,使用中断*/#include//unsignedcharf=0;voidmain(){WDTCTL=WDTPW+WDTHOLD;P2DIR=0X01;//设置P2.0引脚为输出模式P2OUT=0Xef;//刚开始灯全不亮P1IES=BIT0;//P1.1下降沿触发中断P1IFG=0x00;//中断标志位清零P1IE=BIT0;//允许P1.0位中端_EINT();while(1){}}#p

3、ragmavector=PORT1_VECTOR__interruptvoidP1_Interrupt(void){if(P1IFG==0X02)//检测到P1.0触发了中断{P1IFG=0X00;//中断标志位清零P2OUT=0XFE;}}接下来是用看门狗作为定时器来控制灯一秒闪烁一次以下两程序,大概的意思是_BIS_SR();//开启括号内的内容_BIS_SR_IRQ();关闭括号内的内容#defineLPM3_BIC_SR(LPM3_bits)#defineLPM3_EXIT_BIC_SR_IRQ(LPM3_bits)_

4、BIS_SR(LPM3_bits+GIE);的意思是,开启低功耗,打开中断,但我写两行,LPM3;_EINT();//开启中断函数代替就不行,也不知道为什么//用定时器控制D8一秒闪一下#includevoidP_init()//端口初始化函数{//WDTCTL=WDTPW+WDTHOLD;BCSCTL1

5、=DIVA_1;WDTCTL=WDT_ADLY_1000;//定时1秒IE1

6、=WDTIE;//P2DIR=BIT0;//P2.0设置为输出P2OUT=0XFE;//P2.0输出低电平}voidm

7、ain(){//unsignedinti;//LPMS_bits低功耗P_init();while(1){_BIS_SR(LPM3_bits+GIE);//打开低功耗模式,打开通用中断//还可以直接LPM3;//再单独打开总中断_EINT();//开启总中断P2OUT^=0x01;}}#pragmavector=WDT_VECTOR__interruptvoidWDT_Interrupt(){_BIC_SR_IRQ(LPM3_bits);//关闭低功耗//LPM3_EXIT;}看门狗作为定时器来实现流水灯#include

8、p430x14x.h>voidP_init(){WDTCTL=WDT_ADLY_1000;//定时一秒IE1

9、=WDTIE;P2DIR=0XFF;P2OUT=0XFE;}voidmain(){P_init();while(1){_BIS_SR(LPM3_bits+GIE);P2OUT<<=1;P2OUT+=1;if(P2OUT==0XFF){P2OUT=0XFE;}}}#pragmavector=WDT_VECTOR__interruptvoidWDT_Interrupt(){LPM3_EXIT;//_BIC_SR_IRQ(L

10、PM3_bits);}因为框架大致和上面差不多,所以没有注释,只是用来练手的。接下来就开始用定时器A了。#includevoidP_init(){WDTCTL=WDTPW+WDTHOLD;//关狗CCTL0=CCIE;CCR0=10000;TACTL=TASSEL_2+ID_3+MC_1;//选择SMCLK时钟源(800kKZ),8分频,增计数模式P2DIR=0X01;P2OUT=0Xff;_EINT();}voidmain(){P_init();while(1){//_BIC_SR(LPM0_bi

11、ts);//P2OUT^=0X01;}}unsignedchari=0;#pragmavector=TIMERA0_VECTOR__interruptvoidTimer_A(void){//LPM0_EXIT;if(i>10){P2OUT^=0X01;i=0;}i++;}很奇

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。