1、LAB3 LED灯闪烁实验,杜鹏英 刘泓浙江大学城市学院 2012/8/21,LAB3 LED灯闪烁实验,一 学习内容及目的 二 实验要求 三 参考资料 四 内容 五 预习内容,学习内容及目的,1. 掌握MSP430G2553的时钟及CPU相关知识 2.掌握MSP430G2553的GPIO相关知识; 4.掌握MSP430G2553的时钟相关知识。 5. 进一步掌握CCS5.2的调试; 6. 进一步掌握C语言编程方法。,LAB3 LED灯闪烁实验,一 学习内容及目的 二 实验要求 三 参考资料 四 内容 五 预习内容,实验要求,基本要求: 完成LAB31、 LAB32 、 LAB33、 LAB3
2、4四个有关时钟的实验,实现程序调试和各个实验的基本要求和思考。 通过实验深入掌握MSP2553的时钟及应用。这是MSP2553应用的基础。 进一步深入掌握了解MSP430的c语言编程。,实验要求,思考: 具体见LAB31、LAB32、 LAB33和LAB34的要求和思考。,LAB3 LED灯闪烁实验,一 学习内容及目的 二 实验要求 三 参考资料 四 内容 五 预习内容,参考资料,LaunchPad Users Guide: http:/ MSP430x2xx Users Guide: http:/ C Compiler Users Guide http:/ MSP430G2xx code e
3、xamples: http:/ Temperature demo source and GUI: http:/ A copy of the workshop workbook pdf: http:/ Additional information: LED灯闪烁实验,一 学习内容及目的 二 实验要求 三 参考资料 四 内容 五 预习内容,四 内 容,1.16位RISC-CPU 2.内存组织 3.时钟系统 4.GPIO口 5.Lab3 LED灯闪烁,1.16位RISC-CPU(1),1.16位RISC-CPU(2),1.16位RISC-CPU(3),四 内 容,1.16位RISC-CPU 2
4、.内存组织 3.时钟系统 4.GPIO口 5.c语言基础 6.Lab3 LED灯闪烁,2.内存组织,2.内存组织,四 内 容,1.16位RISC-CPU 2.内存组织 3.GPIO口 4.时钟系统 5.Lab3 LED灯闪烁,3.GPIO口(1)-引脚功能,3.GPIO口(2)-寄存器,输入,3.GPIO口(3)-引脚复用设置,引脚复用,http:/ (1) P1.6为1(输出),其余位输入 P1DIR=0x40; P1DIR=BIT6 (2) P1.6为1(输出),其余位不变 P1DIR|=0x40; P1DIR|=BIT6; (3) P1.6为0(输入),其余位输出 P1DIR=0x0bf
5、; (4) P1.6为0(输出),其余位不变 P1DIR (5) P1.6取反,其余位不变 P1DIR=BIT6,3.GPIO口(5)IO常用控制指令,(1) P1.6,P1.0为1(输出),其余位输入 P1DIR=0x41; P1DIR=BIT6+BIT1; (2) P1.6,P1.0为1(输出),其余位不变 P1DIR|=0x41; P1DIR|=BIT6+BIT1; (3) P1.6,P1.0为0(输入),其余位输出 P1DIR=0x0bf; (4) P1.6为0(输出),其余位不变 P1DIR (5) P1.6,P1.0取反,其余位不变 P1DIR=BIT6+BIT0,3.GPIO口(
6、6)IO编程实验,P1.6,P1.0接LED,P1.3接按键 Lab_IO_31: 编写LED灯闪烁的程序 注:系统演示程序:_delay_cycles(number) Lab_IO_32: 编写按键按下,灯的状态反向。,四 内 容,1.16位RISC-CPU 2.内存组织 3.GPIO口 4.时钟系统 5.Lab3 LED灯闪烁,4.时钟系统,特点 结构 各部分关系 控制寄存器 DCO、VLO校准,4.时钟系统特点,时钟产生 内部低频晶振VLO 低速晶体振荡器LFXT1 数值控制振荡器DCO 输出 ACLK(辅助时钟) MCLK(主系统时钟) SMCLK(子系统时钟),4.时钟系统结构(1)
7、,4.时钟系统结构(2) MSP430x2XX系列,4.时钟系统各部分关系(1),4.时钟系统各部分关系(2),例如:,4.时钟系统控制寄存器,4.时钟系统控制寄存器(1)-DCOCTL,4.时钟系统控制寄存器(2)- BCSCTL1,4.时钟系统控制寄存器(3)- BCSCTL2,或VLO,4.时钟系统控制寄存器(4),4.时钟系统控制寄存器(5),4.时钟系统控制寄存器(6)- BCSCTL3,BCSCTL3 基本时钟控制器,XT2Sx bis 7-6 XT2的频率选择 LFXT1Sx bis 5-4 低频时钟选择 和LFXT范围选择当XTS=0时00 LFXT1为32768Hz 振荡晶振
8、01 保留10 选择VLO11 数字外部时钟源 XCAPx XTS=0时,LFXT的振荡电容选择,XTS=1, LFXT1Sx=1时, XCAPx =0000 1pF01 6pF10 10pF11 12.5pF,XT2OF XT2默认项 0 不默认当前情况 1 默认当前情况 LFXT1OF XT1默认项 0 不默认当前情况 1 默认当前情况,4.时钟系统控制寄存器(6)-SR,状态寄存器SR,SCG1 1关SMCLK SCG0 1 关DCO 直流发生器。即MCLK不用DCO_bit_SR_register(SCG1+SCG0),4.时钟系统控制寄存器(6),IE中断允许寄存器,OFIE BIS
9、1 IFEG中断允许位。0 不允许1允许,IFG1中断标志寄存器,OFIFG BIS1 中断标志位。0 清除中断默认标志1 默认中断标志 即:MCLK默认DCO,SMCLK(DCO),ACLK(VLO),4.时钟系统 DCO,VLO校准,DCO/VLO校准 系统MCLK&VCC,DCO校准,DCO校准,VLO校准,系统MCLK&VCC,四 内 容,1.16位RISC-CPU 2.内存组织 3.时钟系统 4.GPIO口 5.Lab3 LED灯闪烁,5.Lab3 LED灯闪烁,5 Lab3 LED灯闪烁-内容及要求,LAB-OSC-31: MCLK时钟来源VLO(12KHz)P1.6接LED灯,3
10、秒钟闪烁1次; 计算1个周期的时钟时间(VLO.TXT)LAB-OSC-32: MCLK时钟来源外部晶振LFXT1(晶振32768hz),ACLK(LFXT1),P1.6接红色LED灯,1秒钟闪烁1次; XT.TXTLAB-OSC-33: MCLK时钟来源数字振荡器DCO(1Mhz), ACLK(LFXT1)P1.6接红色LED灯,1/30秒钟闪烁1次;DC0_XT.TXT,OPT_XT.TXTLAB-OSC-34: MCLK时钟来源数字振荡器DCO(1Mhz), ACLK(VLO)P1.6接红色LED灯,1/30秒钟闪烁1次; DC0_VLO.TXT,OPT_VLO.TXT,5 Lab-OS
11、C-31 LED灯闪烁-架构,程序架构: 初始化设置: 关看门狗; P1.6口初始化; ACLK选择:LFX1Sx初始化(10:VLO); 取消时钟默认中断标志,(OFIFG=0); DCO建立时间; 关SMCLK,MCLK不用DCO(SCG1=1,SCG0=1); MCLK时钟源选择(选择VLO,SELMX=11);MCLK分频选择(8分频:DIVMx11) 循环:P1.6亮;延时P1.6灭;延时,LAB-OSC-31:功能要求 MCLK时钟来源VLO(12KHz) P1.6接LED灯,3秒钟闪烁1次; (VLO.TXT),5 Lab-OSC-31 LED灯闪烁-程序,#include “m
12、sp430g2553.h“ /头文件定义,加入库文件#ifndef TIMER0_A1_VECTOR #define TIMER0_A1_VECTOR TIMERA1_VECTOR #define TIMER0_A0_VECTOR TIMERA0_VECTOR #endif,5.1 Lab-OSC-31 LED灯闪烁-程序,主程序: void main(void) WDTCTL = WDTPW + WDTHOLD; / 关闭看门狗P1DIR = 0x40; / P1.6设为输出P1OUT = 0; / P1.6输出0BCSCTL3 |= LFXT1S_2; / ACLK选择VLOIFG1 /延
13、时 ,5 Lab-OSC-31 LED灯闪烁-要求和思考,(1)理解程序,运行程序,观察结果; (2)计算1个周期的时钟时间; (3)改成3/4秒闪一次如何实现?* (4)ACLK(VLO);MCLK(VLO);SCMK(VLO)如何实现?*,注:(1)/(2)基本要求,5 Lab-OSC-32 LED灯闪烁-要求和思考,思考: (1)实现上述功能在LAB-OSC-31(VLO.TXT)基础上如何修改?晶振32768;电容12.5pF;讨论程序流程;完成程序设计并调试。 (2)设置好的程序,此时一个时钟周期是多少?,LAB-OSC-32: 功能要求:MCLK时钟来源外部晶振LFXT1(晶振32
14、768hz),ACLK(LFXT1)P1.6接红色LED灯,1秒钟闪烁1次; XT.TXT,补充: 时钟默认清除的时间延时处理 while(IFG1 ,5 Lab-OSC-33 LED灯闪烁-内容和架构,LAB33: MCLK时钟来源数字振荡器DCO(1Mhz), ACLK(LFXT1,晶振32768Hz,电容12.5pF),P1.6/P1.0接LED灯,亮灭交替。LED灯1/30秒钟闪烁1次;DC0_XT.TXT,OPT_XT.TXT,程序架构: 初始化设置: 关看门狗; DCO校准; IO口初始化; ACLK选择,电容设置:LFX1Sx初始化(00:XT1); 取消时钟默认中断标志,(OF
15、IFG=0,延时); MCLK时钟源选择(选择DCO,SELMX=00);MCLK分频选择(8分频:DIVMx11) 循环:LED灯亮或灭;延时LED灯反;延时,5 Lab-OSC-33 LED灯闪烁-要求和思考,(1)根据架构完成程序,并调试; (2)计算1个时钟周期的时间。 (3)比较LAB-OSC-31,LAB-OSC-32,LAB-OSC-33延时时间的长短,LAB34: MCLK时钟来源数字振荡器DCO(1Mhz), ACLK(VLO)P1.6接红色LED灯,1/30秒钟闪烁1次.,说明:DCO校准的处理,如果试用1MHZ的振荡频率,则程序处理如下:if (CALBC1_1MHZ =
16、0xFF | CALDCO_1MHZ = 0xFF)while(1); / If cal constants erased, / trap CPU!BCSCTL1 = CALBC1_1MHZ; / Set range DCOCTL = CALDCO_1MHZ; / Set DCO step + modulation,5 Lab-OSC-34 LED灯闪烁-要求和思考,LAB34: MCLK时钟来源数字振荡器DCO(1Mhz), ACLK(VLO)P1.6接红色LED灯,1/30秒钟闪烁1次.,思考:(1)在LAB33基础上如何实现LAB34的功能,设计程序*.,LAB3 LED灯闪烁实验,一 学习内容及目的 二 实验要求 三 参考资料 四 内容 五 预习内容,五 预习内容,(1)AD转换的相关知识,能够应用AD编程实现测温。 (2)掌握关于AD的原理及背景。,