MSP430端口读取程序
“MSP430端口读取程序”相关的资料有哪些?“MSP430端口读取程序”相关的范文有哪些?怎么写?下面是小编为您精心整理的“MSP430端口读取程序”相关范文大全或资料大全,欢迎大家分享。
msp430模块程序
基础时钟模块应用举例
例1 设MCLK=XT2,SMCLK=DCOCLK,将MCLK 由5.4 输出程序如下: #include unsigned int i; WDTCTL = WDTPW + WDTHOLD; //停止看门狗 P5DIR |= 0X10; P5SEL |= 0X10; BCSCTL1 &= ~XT2OFF; do{ IFG1 &= ~OFIFG; for(i = 0xFF;i>0;i--); } while((IFG1 & OFIFG) != 0); BCSCTL2 |= SELM1; for(;;); } 例2 设ACLK=MCLK=LFXT1=LF #include unsigned int i; WDTCTL = WDTPW + WDTHOLD; //停止看门狗 P5DIR |= 0X10; P5SEL |= 0X10; BCSCTL1 &= XTS; do{ IFG1 &= ~OFIFG; for(i = 0xFF;i>0;i--); } while((IFG1 & OFIFG) != 0); BCSCTL2 |= SELM1+SELM0;
msp430程序模块
1、时钟初始化
/*msp430f169时钟初始化*/ void Init_bas_clk() {unsigned int i;
BCSCTL1 &=~XT2OFF;//开高速晶振
//BCSCTL1 |= XTS; 此项不要设置,因为单片机LFXT1外接32768Hz不是高速晶振
BCSCTL2 |=SELM_2+DIVM_1+SELS+DIVS_3;//MCLK选择高速晶振,两分频,SMCLK选择高速晶振8分频
do /*起振需在寄存器设置之后*/ {
IFG1 &= ~OFIFG; // 清除振荡器失效标志 for(i = 0Xff;i > 0;i--); // 稳定时间
} while((IFG1 & OFIFG)!= 0); // 如果振荡器失效标志存在
IFG1 &=~OFIFG; // 清除振荡器失效标志 }
2、ADC12初始化
A1、/*ADC12序列通道多次转换*/
void Init_ADC12_SequenceChannelSequenceConvert(void) {
P6SEL|=0x0f;//选择通
MSP430入门学习程序
1、 点亮LED
(1)、闪烁灯
/*************************************************** 程序功能:控制8个LED闪烁,用于测试下载功能是否正常 --------------------------------------------------- 测试说明:观察LED闪烁
***************************************************/ #include /****************主函数****************/ void main(void) { WDTCTL = WDTPW + WDTHOLD; //关闭看门狗 BoardConfig(0xf0); //关闭数码管和电平转换,打开流水灯 CCTL0 = CCIE; //使能CCR0中断 CCR0 = 2047; //设定周期0.5S TACTL = TASS
msp430实用程序汇总
一、基础实验【10个】
1、入门试验:LED闪烁(1个)
2、时钟实验:设置MCLK、ACLK、SMCLK(1个) 3、低功耗实验:设置低功耗模式(1个) 4、IO端口试验: IO端口寄存器设置(1个)
5、定时器:看门狗定时器、TimerA寄存器设置(2个)6、比较器:比较器A寄存器(1个) 7、Flash:flash读写(1个)
8、异步通信:异步通信寄存器设置(1个) 9、ADC:ADC12寄存器设置(1个)
1
二、开发板模块简单程序【56个】
1、LED流水灯实验(红、黄、绿)
(1)LED1:检测开发板
(2)LED2:普通IO控制闪烁 (3)LED3:PWM信号控制闪烁
2、蜂鸣器实验
(1)蜂鸣器1:单频音(步进变音调) (2)蜂鸣器2:奏乐(祝你平安)
3、数码管实验
(1)数码管1(显示123456) (2)数码管2(动态显示0~F) (3)数码管3(流动光圈) (4)数码管4(来回光标)
4、4×1独立按键实验
(1)4×1键盘1:扫描数码管显示
(2)4×1键盘2:中断数码管显示 (3)4×1键盘3:控制LED (4)4×1键盘4:控制蜂鸣器
5、4×4矩阵键盘实验
(1)4×
MSP430精确延时程序汇总
430精确延时问题
今天在晚上发现一种MSP430的精确延时方法,经测试,确实狠精确。最低可以精确到1/OSC,例如:如果采用8MHz的晶体,那么最小延时就是125ns,已经利用示波器通过验证。 具体做法如下: 先做如下预定义:
#define CPU_F ((double)8000000)
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) 其中第一行中的8000000为时钟,可以根据自己时钟设置。 然后在程序中直接条用delay_us和delay_ms即可。非常好用,入: delay_ms (1); //延时1ms delay_us(1); //延时1us delay_us(0.125); //延时0.125us
注意:最低延时只能是1/OSC,否则就没有延时了。 该方法缺点:不能传递变量,只能将常数作为参数
IAR FOR 430中精确软件延时方法 标签: IAR FOR 软件 延时 2010-11-04 10
MSP430程序库七按键
MSP430程序库<七>按键
按键是单片机系统最常用的输入设备之一;几乎是只要需要交互输入,就必须有键盘。这篇博客实现了一个通用的键盘程序,只要提供一个读取键值的函数(底层键值),程序将完成消抖、存入队列等一些列处理。同时本程序提供最常用的4*4矩阵键盘的程序,和4个按键的程序。
?
硬件介绍:
本文主要实现了一个键盘的通用框架,可以很方便的改为不同的键盘函数,这里实现了两种按键4个单独按键和4*4行列扫描的键盘。
4个按键的是这样的:四个按键分别一端接地,另一端接上拉电阻后输入单片机的P1.0-P1.3口;这样,按键按下时,单片机接到低电平,松开时单片机输入信号有上拉电阻固定为高电平。
4*4的按键:行输入信号配有桑拉电阻,无按键时默认电平高电平;列扫描信号线直接接到按键列线;读键时,列扫描信号由单片机给出低电平信号(按列逐列扫描),读取行信号,从而判断具体是哪个按键;电路图大概如下:
图中,IN是键盘的列扫描线,OUT是键盘的输出的行信号线。扫描是也可以按行扫描,这时IN是行扫描线,OUT的按键输出的列信号线。我的程序是按列扫描的(行列扫描原理一样,只是行列进行了交换)。
这里,同时实现了4*4按键的scanf函数的移植,同时,加入了之
MSP430学习笔记
第一版
MSP430G2553学习笔记
Created on: 2012-8-18 Author: zhang bin
学习笔记
for msp430g2553
redesigned by zhang bin 2012-08-18
versions:12_08_01
一,MSP430G2553单片机的各个功能模块 (一),IO口模块,
1,我们所用的MSP430G2553有两组IO口,P1和P2。
2,IO口的寄存器有:方向选择寄存器PxDIR,输出寄存器PxOUT,输入寄存器PxIN,IO口内部上拉或下拉电阻使能寄存器PxREN, IO口功能选择寄存器PxSEL和PxSEL2,IO口中断使能寄存器PxIE,中断沿选择寄存器PxIES,IO口中断标志寄存器PxIFG。
3,所有的IO都带有中断,其中所有的P1口公用一个中断向量,所有的P2口公用一个中断向量。所以在使用中断时,当进入中断后,还要判断到底是哪一个IO口产生的中断,判断方法可以是判断各个IO口的电平。
4,中断标志PxIFG需要软件清除,也可以用软件置位,从而用软件触发一个中断。 注意:在设置PxIESx时
MSP430 ADC10
MSP430单片机拥有内置的ADC功能,在一些高级单片机系列上是ADC12,在低级单片机系列上是ADC10,两者的主要区别是分辨率的不同,我们的G2553内置的就是ADC10,所以Cloud就在这里和大家一起学习ADC10。
一、ADC10特性
我们先来了解一下这个ADC10的特性,官方给出的: ·高达200ksps的转换速率; ·固定的10位转换;
·具有采样保持功能,并可选采样周期; ·可以通过软件代码或TimerA初始化转换; ·可选的片内(1.5V或2.5V)或片外参考电压; ·支持8个外部输入通道;
·内部输入通道支持温度检测,VCC和外部参考(+、—); ·可选的转换时钟源;
·单通道单次/多次、序列通道单次/多次,共4种转换模式; ·ADC内核和参考电压都可单独关闭;
·具有一个支持自动存储转换结果的数据转换控制器(DTC);
二、ADC10结构
OK,我们来引入ADC10的内部结构图来初步认识这个ADC10的内部结构。为了方便大家学习,Cloud将各部分用不同颜色区分开:
1、ADC10内核-SAR和采样保持电路:
首先我们看到中间两块橙色的区域,右边五边形的是一个“10-bit SAR”,翻译过来就是一个10位精度的
msp430题库及答案
一、填空题 本题共5小题,每小题4分。 1.
// Port1 interrupt service routine #pragma vector = ( ) __interrupt void Port_1 (void) A.
PORT1_VECTOR [正确答案]: [试题解析]: [阅卷得分(4)]:4 2.
// Configure TimerA
TACTL = ( ); // Source: ACLK, UP mode CCR0 = 5100; //Timer count 5100 CCR1 = 100; //Timer count 100 CCTL0 = CCIE; //CCR0 interrupt enabled CCTL1 = CCIE; //CCR1 interrupt enabled A.
TASSEL_1 + MC_1; [正确答案]: [试题解析]: [阅卷得分(4)]:4 3.
// Configure Basic Clock
BCSCTL1 =(
msp430题库及答案
一、填空题 本题共5小题,每小题4分。 1.
// Port1 interrupt service routine #pragma vector = ( ) __interrupt void Port_1 (void) A.
PORT1_VECTOR [正确答案]: [试题解析]: [阅卷得分(4)]:4 2.
// Configure TimerA
TACTL = ( ); // Source: ACLK, UP mode CCR0 = 5100; //Timer count 5100 CCR1 = 100; //Timer count 100 CCTL0 = CCIE; //CCR0 interrupt enabled CCTL1 = CCIE; //CCR1 interrupt enabled A.
TASSEL_1 + MC_1; [正确答案]: [试题解析]: [阅卷得分(4)]:4 3.
// Configure Basic Clock
BCSCTL1 =(