首页天道酬勤msp430单片机简介,883c语言程序设计参考书

msp430单片机简介,883c语言程序设计参考书

admin 05-12 23:57 301次浏览

MSP430单片机c语言编程

MSP430单片机c语言编程

本章选择了几个简单的c语言程序例题。 这些程序的结构简单,编程技巧少,但主题是

很简单,入门MSP430单片机的学员非常适合学习MSP430单片机的c语言编程。

以下是在c语言例题中运行的MSP430F149实验板的硬件资源环境,并熟悉这些硬件资源

理解程序非常重要。

)1)数码管:

左侧的数码管连接到P5端口,a~g、h支持P5.0~P5.7

右侧的数码管连接到P4端口,a~g、h支持P4.0~P4.7

(2)发光二极管

8个发光二极管连接到P3端口

(3)按钮:

左侧的8个按钮连接到P2端口,管脚号显示在按钮上

右侧的8个按钮连接到P1端口,管脚号显示在按钮上

)4) P2.3引脚还是模拟比较器输入

)5)在P6.0、P6.1端子上连接模拟电位器,用于模拟实验

9.1通过语言编程示例进入MSP430C语言编程

以下示例均通过MSP430F149实验板的验证。

例1 )使连接在P3端口的P3.0端子上的发光二极管闪烁。

#include //基于声明

语音主(语音)//主函数

{

无符号输入I; //变量声明

WDTCTL=WDTPW WDTHOLD; //关掉看门狗

p3dir|=位0; 将P3.0作为输出,这里BIT0=0x0001

while(1)//无限次while循环

{

for(I=0; i20000; I )//for语句,I是循环变量,I每循环加1,i20000时,

//循环延迟

P3OUT=0x00; 将P3.0输出设为低电平,点亮发光二极管,((设为低电平并点亮发光二极管) ) ) ) ) ) ) )。

for(I=0; i20000; I ) )//再循环延迟

P3OUT=0x01; 使P3.0输出为高电平,关闭发光二极管((高电平下关闭发光二极管) ) ) ) ) ) ) ) ) )。

}

}

例2:8个发光二极管1、3、5、7和2、4、6、8交替发光例子

#包含

语音主(语音) )。

{

无符号输入I;

WDTCTL=WDTPW WDTHOLD;

P3DIR=0XFF; //p3端口设为输出

while(1)。

{

for(I=0; i20000; I )

P3OUT=0X55; //熄灭发光二极管1、3、5、7,点亮2、4、6、8

for(I=0; i20000; I )

P3OUT=0XAA; //点亮发光二极管1、3、5、7,熄灭2、4、6、8

}

}

例3 )计时器控制的发光二极管闪烁。 这里使用了MSP430F149芯片的32768Hz低频晶体振荡器作为时钟

酱料。 计时器a点亮计时器1秒,发光二极管熄灭0.5s,点亮0.5s。

#包含

语音主(语音) )。

{

WDTCTL=WDTPW WDTHOLD; //设置看门狗控制寄存器,关闭看门狗

TACTL=TASSEL0 TACLR; //设置计时器a控制寄存器,

//TASSEL0=0x0100,选择辅助时钟ACLK,

//TACLR=0x0004,清除计时器a计数器

CCTL0=CCIE; 设定//捕捉/比较控制寄存器,使CCIE=0x0010能够中断捕捉比较

CCR0=16384; 设置//捕获/比较寄存器,初始值为16384,对于32768Hz频率相当于0.5s

p3dir|=位7; //P3.7为输出

TACTL |=MC0; //设置计时器a控制寄存器,设为MC0=0x0010,使计数模式向上计数

_EINT (; //启用中断。 这是c编译器支持的内部进程。

wile(1; //无限次while循环

}

interrupt [ timera0_ vector ] void timer _ a (void ) /计时器a的CC0中断处理程序

//TIMERA0_VECTOR=6*2,等于基地址0xFFE0 12=0xFFEC

{

p3out^=位7; 如果将P3.7端子反转,则使发光二极管闪烁

}

例4 )选择不同的时钟源,使连接到P3.7的发光二极管闪烁。

)1)使用XT2时钟源,频率8MHz,计时器a分频,产生1s脉冲,闪烁P3.7引脚发光二极管。

#包含

#define XTOFF0x40;

语音主(语音) )。

{

WDTCTL=WDTPW

快三大小单双稳赚买法>

{

WDTCTL=WDTPW WDTHOLD; //设置看门狗控制寄存器,关闭看门狗

TACTL=TASSEL0 TACLR; //设置计时器a控制寄存器,

//TASSEL0=0x0100,选择辅助时钟ACLK,

//TACLR=0x0004,清除计时器a计数器

CCTL0=CCIE; 设定//捕捉/比较控制寄存器,使CCIE=0x0010能够中断捕捉比较

CCR0=16384; 设置//捕获/比较寄存器,初始值为16384,对于32768Hz频率相当于0.5s

p3dir|=位7; //P3.7为输出

TACTL |=MC0; //设置计时器a控制寄存器,设为MC0=0x0010,使计数模式向上计数

_EINT (; //启用中断。 这是c编译器支持的内部进程。

wile(1; //无限次while循环

}

interrupt [ timera0_ vector ] void timer _ a (void ) /计时器a的CC0中断处理程序

//TIMERA0_VECTOR=6*2,等于基地址0xFFE0 12=0xFFEC

{

p3out^=位7; 如果将P3.7端子反转,则使发光二极管闪烁

}

例4 )选择不同的时钟源,使连接到P3.7的发光二极管闪烁。

)1)使用XT2时钟源,频率8MHz,计时器a分频,产生1s脉冲,闪烁P3.7引脚发光二极管。

#包含

#define XTOFF0x40;

语音主(语音) )。

{

WDTCTL=WDTPW

怎么用Java比较两个对象的大小SpringSecurity注销怎么设置关于在Java中创建泛型列表数组的错误
1200plc模拟量输出编程,usb vcp 单片机跟c语言有关系吗,51单片机c语言编程实例
相关内容