msp430 IO实验报告
更新时间:2024-07-06 09:39:01 阅读量: 综合文库 文档下载
- msp430推荐度:
- 相关推荐
Msp430单片机第一次实验报告
1. IO实验——LED跑马灯
实验目的:本实验作为学习入门实验,介绍了如何操作MSP430的IO口。实验控制开
发版上的三个LED灯延时闪烁。本实验采用三种方法,第一种是直接找到相关寄存器的地址,然后向其写入值。这种方法与平台无关。介绍这种方法只是使我们的理解更为透彻;第二种方法采用传统的单片机编程模式,调用msp430f6638.h包含芯片相关的头文件;第三种方法采样调用TI driverlib库的函数。通过三种方法,我们可以对比C语言编程效率。
1.1 实验原理
开发板上的3个LED灯和IO口的对应关系如下:
LED_YELLOW——P4.1 LED_GREEN——P4.2 LED_RED——P4.3
从MSP430F6638 的芯片手册中找到,与P4 端口相关的寄存器地址信息:
如表1-1 所示,P4 端口的基地址为 0x0220,要完成该实验,只需要设置两个相关寄存
器。P4OUT 和P4DIR。P4DIR 为方向寄存器,P4OUT 为数据输出寄存器。从图一可以知道,P4OUT 和P4DIR 的偏移地址分别为0x03 和0x05。
这两个寄存器的地址我们采用“基地址+偏移地址”的方式来表示。 #define P4DIR (*((volatile unsigned char*)(P3P4_BASE_Address + 0x05))) #define P4OUT (*((volatile unsigned char*)(P3P4_BASE_Address + 0x03)))
1.2 实验步骤
(1) 将PC 和板载仿真器通过USB 线相连;
(2) 打开CCS 集成开发工具,选择Project->Import Existing CCS Eclipse Project,导入 MSP430F6638_DemoV2.0\\1.LED\\MSP430F6638_LED01 或者 MSP430F6638_DemoV2.0\\1.LED\\MSP430F6638_LED02 或者 MSP430F6638_DemoV2.0\\1.LED\\MSP430F6638_LED03 工程; (3) 选择
对该工程进行编译链接,生成.out 文件。然后选择
,将程序下载
到实验板中。程序下载完毕之后,可以选择全速运行程序,也可以选择
单步调试程序,选择F3 查看具体函数。也可以程序下载之后,按下,
软件界面恢复到原编辑程序的画面。再按下实验板的复位键,运行程序。(调试方式下的全速运行和直接上电运行程序在时序有少许差别,建议上电运行程序)。
1.3 实验现象
开发板上3 个LED 定时翻转,实现闪烁的效果。
1.4 关键代码分析
实验1:
#define P3P4_BASE_Address 0x0220
#define BIT1 (0x0002) #define BIT2 (0x0004) #define BIT3 (0x0008)
#define P4DIR (*((volatile unsigned char*)(P3P4_BASE_Address + 0x05))) #define P4OUT (*((volatile unsigned char*)(P3P4_BASE_Address + 0x03)))
void main(void) {
volatile unsigned int i;
volatile unsigned int count=0;
P4DIR |= BIT1 + BIT2 + BIT3; // P4.1,P4.2,P4.3 set as output
while(1) // continuous loop
{
P4OUT ^= BIT1 + BIT2 + BIT3; // XOR P4.1,P4.2,P4.3 for(i=50000;i>0;i--); // Delay } }
实验2:
#include
volatile unsigned int i;
volatile unsigned int count=0;
WDTCTL = WDTPW+WDTHOLD; // Stop WDT
P4DIR |= BIT1 + BIT2 + BIT3; // P4.1,P4.2,P4.3 set as output
while(1) // continuous loop {
P4OUT ^= BIT1 + BIT2 + BIT3; // XOR P4.1,P4.2,P4.3 for(i=20000;i>0;i--); // Delay } }
实验三:
#include \
#include \ #include \
void main (void) {
volatile unsigned int i;
WDT_hold(__MSP430_BASEADDRESS_WDT_A__);//Stop WDT GPIO_setAsOutputPin(__MSP430_BASEADDRESS_PORT4_R__, GPIO_PORT_P4,
GPIO_PIN1 + GPIO_PIN2 + GPIO_PIN3 );//P4.x output while(1) {
for(i=20000;i>0;i--); // Delay GPIO_setOutputLowOnPin(
__MSP430_BASEADDRESS_PORT4_R__, GPIO_PORT_P4,
GPIO_PIN1 + GPIO_PIN2 + GPIO_PIN3 );
for(i=20000;i>0;i--); // Delay GPIO_setOutputHighOnPin(
__MSP430_BASEADDRESS_PORT4_R__, GPIO_PORT_P4,
GPIO_PIN1 + GPIO_PIN2 + GPIO_PIN3 );//Set all P4 pins HI
}
// //Enter LPM4 w/interrupts enabled // __bis_SR_register(LPM4_bits + GIE); //
// //For debugger // __no_operation(); }
1.5 思考题
(1) MSP430 的IO 口都具备哪些功能?
答:GPIO是MCU与外界交互的重要途径,它具有如下的特性:1.可以独立控制每个GPIO口的方向(输入/输出模式)2.可以独立设置每个GPIO的输出状态(高/低电平);3.所有GPIO口在复位后都有个默认方向(或输入输出)。GPIO接口类型丰富,P1和P2具有输入输出、中断和外部模块功能,这些功能可以通过他们各自9个控制寄存器的设置来实现。 (2) 与IO 口相关的寄存器有哪些? 答:MSP430各种端口有大量的控制寄存器供用户操作。最大限度提供了输入/输出的灵活性。方向寄存器:PxDIR:Bit=1,输出模式;Bit=0,输入模式。 输入寄存器:PxIN,Bit=1,输入高电平;Bit=0,输入低电平。 输出寄存器:PxOUT,Bit=1,输出高电平;Bit=0,输出低电平。 上下拉电阻使能寄存器:PxREN,Bit=1,使能;Bit=0,禁用。
功能选择寄存器:PxSEL,Bit=0,选择为I/O端口;Bit=1,选择为外设功能。 驱动强度寄存器:PxDS,Bit=0,低驱动强度;Bit=1,高驱动强度。 中断使能寄存器:PxIE,Bit=1,允许中断;Bit=0,禁止中断。
中断触发沿寄存器:PxIES,Bit=1,下降沿置位,Bit=0:上升沿置位。 中断标志寄存器:PxIFG,Bit=0:没有中断请求;Bit=1:有中断请求。
2. IO实验--按键输入与中断 2.1 实验介绍
本实验通过中断的方式演示了按键的操作。与查询方式相比,中断按键具有响应速度 快,占用MCU 资源少的优点。
2.2 实验目的
(1) 熟悉CCS 开发环境的使用; (2) 了解MSP430 的中断系统; (3) 掌握MSP430 的中断编程方法。
2.3 实验原理
开发板上的按键和MCU 的IO 口对应关系如下: P2.6---KEY1 P2.7---KEY2
开发板上三个LED 灯和MCU 的IO 口对应关系如下:
与查询按键方式相比,中断方式用到了两个新的寄存器:PxIE 和PxIFG。 PxIE---中断使能寄存器 PxIFG---中断标志寄存器 中断函数的写法:
在MSP430 中,用扩展关键字来__interrupt 来表明该函数为中断函数。 __interrupt void port_2(void);
语法:interrupt void 函数名()或者Interrupt【中断向量】void 函数名() 参数:中断函数没有参数。中断函数需要指定中断向量。 返回:中断返回一般是void,没有返回值。
2.4 实验步骤
(1) 将PC 和板载仿真器通过USB 线相连;
(2) 打开CCS 集成开发工具,选择Project->Import Existing CCS Eclipse Project,导入MSP430F6638_DemoV2.0\\2.Key_interrupt\\MSP430F6638_Key_interrupt 文件夹中的 工程; (3) 选择
对该工程进行编译链接,生成.out 文件。然后选择
,将程序下载
到实验板中。程序下载完毕之后,可以选择全速运行程序,也可以选择
正在阅读:
msp430 IO实验报告07-06
物理上4-8习习题解10-18
C语言程序设计项目教程习题答案03-29
小学生数学报2015 年春学期苏教版四年级上册第七单元10-07
谈谈长江水上加油站安全治理03-23
浅谈建筑工程技术资料管理12-10
必修2同步巩固练习解析:1-2-204-29
上海译国译民银行英语口语07-22
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 实验
- 报告
- msp430
- 2015-2016年重庆十一中高二下学期数学期中试卷(文科)和
- 2016高考生物模拟试题(钟梅香)
- 市场开拓计划书
- 山东省农产品绿色物流发展现状及对策研究
- 爱国主义教育基地成立仪式主持稿
- 教育知识与能力笔记(全精)
- 第十章醇、酚、醚
- 轴承制造专业英语
- 北语作业系统--17秋《人员选拔与聘用管理》作业 - 4资料
- 2014年大理事业单位招聘考试基础笔试考点复习题
- 学前教育专业毕业实习报告范文
- 家常回锅肉的正宗做法 - 图文
- Matlab非线性规划应用
- 塔河县森林火灾处置应急预案
- 七年级病句练习和答案
- 专题53 图形变化类规律性问题(压轴题)-决胜2016中考数学压轴题
- 骆驼祥子阅读题及答案
- 九年级化学下册第十单元《课题2常见的酸和碱》教学设计(新版)
- 全国2005年10月高等教育自学考试外经贸经营与管理试题历年试卷
- 市政技术标(张家港)