当前位置:文档之家› USCI-利尔达MSP430培训资料

USCI-利尔达MSP430培训资料

MSP430单片机实验报告v3.0

MSP430单片机课程设计 一.设计要求 数字温度计 (1)用数码管(或LCD)显示温度和提示信息; (2)通过内部温度传感器芯片测量环境温度; (3)有手动测量(按测量键单次测量)和自动测量(实时测量)两种工作模式; (4)通过按键设置工作模式和自动测量的采样时间(1秒~1小时); (5)具备温度报警功能,温度过高或过低报警。 二.系统组成 系统由G2Launch Pad及其拓展板构成,单片机为MSP430G2553。 I2的通信方式对IO进行拓展,芯片为TCA6416A; 使用C 使用HT1621控制LCD; 三.系统流程 拓展的四个按键key1、key2、key3、key4分别对应单次测量、定时测量、定时时间的增、减。定时时间分别为1s,5s,15s,30s,60s。在自动测量模式下,当温度超过设定温度上限

即报警,报警时在LCD屏幕显示ERROR同时LED2闪烁,在5s后显示0℃。此时可重新开始手动或自动测量温度。 系统示意图: 四.演示 a)手动测量温度 b)自动测量温度 c)报警

显示ERROR同时LED闪烁d)设置时间界面 五.代码部分 #include "MSP430G2553.h" #include "TCA6416A.h" #include "LCD_128.h" #include "HT1621.h" #include "DAC8411.h" #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)) static int t=0; long temp; long IntDeg; void ADC10_ISR(void); void ADC10_init(void); void LCD_Init(); void LCD_Display(); void GPIO_init(); void I2C_IODect(); void Error_Display(); void WDT_Ontime(void); void LCD_Init_AUTO(); void LCD1S_Display();

LaunchPad-MSP430入门系列4-定时器模块(定时、计数、捕获)

LaunchPad-MSP430入门系列4-定时器模块 (定时、计数、捕获) Version 1.2 文先,介绍几个英文缩写的意思以及一些注意的地方。 1.Timer0/1 定时器0/1,在User's Guide中用的是TimerA/B,所指的也是Timer0/1 。 G2553Datasheet中用的是Timer0/1 ,本文以G2553Datasheet为准。全文以Timer0 为例,Timer1类同。 2.TAxR(x = 0/1)定时器x对应的计数器,这是一个只读寄存器。硬件自动驱动计数。 3.EQUy(y = 0/1/2)计数事件发生寄存器,当TAxR = TAxCCRy时EQUy置1。 4. 定时器简介 MSPG2553共有两个定时器,Timer0、Timer1,他们都是十六位的定时、计数器,内含三个捕获、比较寄存器。两个定时器均支持多个捕获、PWM输出、间歇性计时,定时器包含多个中断源,可以是计数溢出中断、捕获中断等等。 定时器包含: ●同步十六位定时、计数器运行模式。 ●时钟源可从MCLK、SMCLK、ACLK任意选择。 ●三个比较、捕获寄存器。 ●中断向量寄存器能快速解码的所有定时器中断 本文以Timer0为例详细介绍430的定时器模块,下图是Timer0组成框图

0-1定时器0组成框图 下面简要介绍一下该硬件框图的意思,从左上角看,首先是一个时钟源选择寄存器TASSELx,通过该寄存器选择定时器的时钟源,选择了时钟源后有一个分频器Divider,相应的设置寄存器是IDx,再过来就到一个定时器的核心部分,一个16位的定时器TAR。其右侧有一个定时器的计数模块,MCx寄存器用来设置计数模式。 接下来,TAR正下方有三个横线,右侧标有CCR0、CCR1、CCR2,意思是CCR1、CCR0的框图和下方CCR2的框图是一样的。此处省略不写。在CCR中,左上角为一个捕获源选择寄存器。可以从CCI2A、CCI2B、GND或者VCC选择捕获源,选择捕获源后有一个选择捕获模式寄存器Capture Mode,然后过来有一个捕获溢出状态寄存器COV,SCS同步/异步捕获模式选择位,然后连接到捕获比较寄存器。下方为模式选择寄存器,具体设置可以查看相应的寄存器设置。 这里仅是大概介绍一下Timer0的寄存器,具体的设置使用还看参考相应的寄存器并结合例程慢慢学习理解。 定时器运行方式 下面简要重点介绍定时器计数模块的四种模式以及7种输出模式。 Timer0有一个在不断计数的只读寄存器TA0R。计数器的计数模式共有四种,

单片机实验报告

院系:计算机科学学院专业:智能科学与技术年级: 2012 学号:2012213865 姓名:冉靖 指导教师:王文涛 2014年 6月1日

一. 以下是端口的各个寄存器的使用方式: 1.方向寄存器:PxDIR:Bit=1,输出模式;Bit=0,输入模式。 2.输入寄存器:PxIN,Bit=1,输入高电平;Bit=0,输入低电平。 3.输出寄存器:PxOUT,Bit=1,输出高电平;Bit=0,输出低电平。 4.上下拉电阻使能寄存器:PxREN,Bit=1,使能;Bit=0,禁用。 5.功能选择寄存器:PxSEL,Bit=0,选择为I/O端口;Bit=1,选择为外设功能。6.驱动强度寄存器:PxDS,Bit=0,低驱动强度;Bit=1,高驱动强度。 7.中断使能寄存器:PxIE,Bit=1,允许中断;Bit=0,禁止中断。 8.中断触发沿寄存器:PxIES,Bit=1,下降沿置位,Bit=0:上升沿置位。 9.中断标志寄存器:PxIFG,Bit=0:没有中断请求;Bit=1:有中断请求。 二.实验相关电路图: 1 MSP430F6638 P4 口功能框图: 主板上右下角S1~S5按键与MSP430F6638 P4.0~P4.4口连接: 2按键模块原理图: 我们需要设置两个相关的寄存器:P4OUT和P4DIR。其中P4DIR为方向寄存器,P4OUT 为数据输出寄存器。 主板上右下角LED1~LED5指示灯与MSP430F6638 P4.5~P4.7、P5.7、P8.0连接:

3 LED指示灯模块原理图: P4IN和P4OUT分别是输入数据和输出数据寄存器,PDIR为方向寄存器,P4REN 为使能寄存器: #define P4IN (PBIN_H) /* Port 4 Input */ #define P4OUT (PBOUT_H) /* Port 4 Output */ #define P4DIR(PBDIR_H) /* Port 4 Direction */ #define P4REN (PBREN_H) /* Port 4 Resistor Enable */ 三实验分析 1 编程思路: 关闭看门狗定时器后,对P4.0 的输出方式、输出模式和使能方式初始化,然后进行查询判断,最后对P4.0 的电平高低分别作处理来控制LED 灯。 程序流程图: 2 关键代码分析: #include void main(void) { WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗 P4DIR |= BIT5; // 设置4.5口为输出模式 P4OUT |= BIT0; // 选中P4.0为输出方式 P4REN |= BIT0; // P4.0使能 while (1) // Test P1.4 { if (P4IN & BIT0) //如果P4.0为1则执行,这是查询方式按下去后是低,否则为高

74系列芯片数据手册大全

74系列芯片数据手册大全 74系列集成电路名称与功能常用74系列标准数字电路的中文名称资料7400 TTL四2输入端四与非门 7401 TTL 集电极开路2输入端四与非门 7402 TTL 2输入端四或非门 7403 TTL 集电极开路2输入端四与非门 7404 TTL 六反相器 7405 TTL 集电极开路六反相器 7406 TTL 集电极开路六反相高压驱动器 7407 TTL 集电极开路六正相高压缓冲驱动器 7408 TTL 2输入端四与门 7409 TTL 集电极开路2输入端四与门 7410 TTL 3输入端3与非门 74107 TTL 带清除主从双J-K触发器 74109 TTL 带预置清除正触发双J-K触发器 7411 TTL 3输入端3与门 74112 TTL 带预置清除负触发双J-K触发器 7412 TTL 开路输出3输入端三与非门 74121 TTL 单稳态多谐振荡器 74122 TTL 可再触发单稳态多谐振荡器 74123 TTL 双可再触发单稳态多谐振荡器 74125 TTL 三态输出高有效四总线缓冲门 74126 TTL 三态输出低有效四总线缓冲门 7413 TTL 4输入端双与非施密特触发器 74132 TTL 2输入端四与非施密特触发器 74133 TTL 13输入端与非门 74136 TTL 四异或门 74138 TTL 3-8线译码器/复工器 74139 TTL 双2-4线译码器/复工器 7414 TTL 六反相施密特触发器 74145 TTL BCD—十进制译码/驱动器 7415 TTL 开路输出3输入端三与门 74150 TTL 16选1数据选择/多路开关 74151 TTL 8选1数据选择器 74153 TTL 双4选1数据选择器 74154 TTL 4线—16线译码器 74155 TTL 图腾柱输出译码器/分配器 74156 TTL 开路输出译码器/分配器 74157 TTL 同相输出四2选1数据选择器 74158 TTL 反相输出四2选1数据选择器 7416 TTL 开路输出六反相缓冲/驱动器 74160 TTL 可预置BCD异步清除计数器 74161 TTL 可予制四位二进制异步清除计数器

MSP430程序库之定时器TA的PWM输出

MSP430程序库之定时器TA的PWM输出 定时器是单片机常用的其本设备,用来产生精确计时或是其他功能;msp430的定时器不仅可以完成精确定时,还能产生PWM波形输出,和捕获时刻值(上升沿或是下降沿到来的时候)。这里完成一个比较通用的PWM波形产生程序。 1.硬件介绍: MSP430系列单片机的TimerA结构复杂,功能强大,适合应用于工业控制,如数字化电机控制,电表和手持式仪表的理想配置。它给开发人员提供了较多灵活的选择余地。当PWM 不需要修改占空比和时间时,TimerA 能自动输出PWM,而不需利用中断维持PWM输出。 MSP430F16x和MSP430F14x单片机内部均含有两个定时器,TA和TB;TA 有三个模块,CCR0-CCR2;TB含有CCR0-CCR67个模块;其中CCR0模块不能完整的输出PWM波形(只有三种输出模式可用);TA可以输出完整的2路PWM波形;TB可以输出6路完整的PWM波形。 定时器的PWM输出有有8种模式: 输出模式0 输出模式:输出信号OUTx由每个捕获/比较模块的控制寄存器CCTLx中的OUTx位定义,并在写入该寄存器后立即更新。最终位OUTx直通。 输出模式1 置位模式:输出信号在TAR等于CCRx时置位,并保持置位到定时器复位或选择另一种输出模式为止。 输出模式2 PWM翻转/复位模式:输出在TAR的值等于CCRx时翻转,当TAR 的值等于CCR0时复位。 输出模式3 PWM置位/复位模式:输出在TAR的值等于CCRx时置位,当TAR 的值等于CCR0时复位。 输出模式4 翻转模式:输出电平在TAR的值等于CCRx时翻转,输出周期是定时器周期的2倍。 输出模式5复位模式:输出在TAR的值等于CCRx时复位,并保持低电平直到选择另一种输出模式。 输出模式6PWM翻转/置位模式:输出电平在TAR的值等于CCRx时翻转,当TAR值等于CCR0时置位。 输出模式7PWM复位/置位模式:输出电平在TAR的值等于CCRx时复位,当TAR的值等于CCR0时置位。 下图是增计数模式下的输出波形(本程序使用的是增模式3和7):

南理工 王宏波 MSP430F6638单片机实验报告

MSP430单片机应用技术 实验报告 学号:XXXXXXXX

实验1 一、实验题目:UCS实验 二、实验目的 设置DCO FLL reference =ACLK=LFXT1 = 32768Hz, MCLK = SMCLK = 8MHz,输出ACLK、SMCLK,用示波器观察并拍照。 UCS,MCLK、 SMCLK 8MHz 的 1 2 六、实验结果 实验2 一、实验题目:FLL+应用实验 二、实验目的

检测P1.4 输入,遇上升沿进端口中断,在中断服务程序内翻转P4.1 状态。 三、实验仪器和设备 计算机、开发板、示波器、信号源、电源、Code Comeposer Studio v5 四、实验步骤 1、用电缆连接开发板USB2口和电脑USB口,打开电源开关SW1,电源指示灯D5点亮; 2、运行CCSV5; WDT 1、用电缆连接开发板USB2口和电脑USB口,打开电源开关SW1,电源指示灯D5点亮; 2、运行CCSV5; 3、新建工作空间workspace; 4、新建工程project与源文件main.C; 5、编写程序; 6、编译、调试、下载程序到单片机;

7、观察、分析、保存运行结果。 五、实验程序 实验4 一、实验题目:WDT_A实验 二、实验目的 定时模式 1 2 六、实验结果 实验5一、实验题目:Timer_A实验

二、实验目的 比较模式-Timer_A0,两路PWM 输出,增减计数模式,时钟源SMCLK,输出模式7 TACLK = SMCLK = default DCOCLKDIV。PWM周期CCR0 = 512-1,P1.6 输出PWM占空比CCR1 = 37.5%,P1.7输出PWM占空比CCR1 =12.5%。 要求: (1)用示波器观察两路PWM 输出的波形并拍照,测量周期、正脉宽等参数,与理论值进行对比分析。 (2 (3 1 2 实验6 一、实验题目:ADC12实验 二、实验目的 ADC12 单次采样A0 端口,根据转换结果控制LED 状态。

430单片机点亮LED实验报告

430单片机点亮LED实验报告 一.安装实验软件IAR 二.编写点亮LED灯程序 1.使P1.0口LED灯会不停的闪烁着,程序 #include typedef unsigned int uint; typedef unsigned char uchar; /*延时函数*/ void Delay_Ms(uint x) { uint i; while(x--)for(i=0;i<250;i++); } /*主函数*/ int main( void ) { WDTCTL = WDTPW + WDTHOLD;// Stop watchdog timer to prevent time out reset P2DIR|=BIT0;//定义P1口为输出 while(1)//死循环 { P2OUT^=BIT0;//P1.0口输出取反

Delay_Ms(600);//稍作延时 } } 下载进去看到了P1.0口LED灯会不停的闪烁着。 2.实验目的让两盏灯交换闪烁程序 #include"msp430g2553.h" void main(void) { void Blink_LED(); WDTCTL=WDTPW+WDTHOLD; //关闭看门狗 P1DIR=BIT6; P2DIR=BIT0; while(1) { Blink_LED(); } } void Blink_LED() { _delay_cycles(1000000); //控制第二个LED P1OUT^=BIT6; _delay_cycles(1000000); //控制第一个LED P2OUT^=BIT0;

MSP430定时器A捕捉脉实例

MSP430定时器A捕捉脉实例[调试通过,很好用] 微控论坛原创主贴作者:fangth Microcontrol CODE /***************************************************************** //功能:利用定时器A的捕捉能测量脉冲信号的脉宽 // // // MSP430F449 // ----------------- // /|\| XIN|- // | | | 32kHz // --|RST XOUT|- // | | // | P1.5/ACLK|---+ // | | | // | P2.0/TA2|<--+ // | | // | | //说明:ACLK要进行8分频(4K),并将其作为外部的要捕获的脉冲; //MCLK=SMCLK=8M; *****************************************************************/ #include int pwm_start,pwm_end,pwm_wide=0; void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT P1DIR = 0x20; // P1.5 输出 P1SEL = 0x20; // P1.5输出ACLK P2SEL|=BIT0; //P2.0 CCI2A SCFI0 |= FN_4; SCFQCTL = 121; // (121+1) ×32768 *2= 7.99Mhz FLL_CTL0=DCOPLUS+OSCCAP1; //MCLK=SMCLK=8M FLL_CTL1 |= FLL_DIV_8; //ACLK要进行8分频,ACLK=4K TACCTL2 =CAP+CM_3+CCIS_0+SCS+CCIE; //捕获模式,上升和下降都捕获,选择CCI2A,同步,捕获中断开 //Capture input select: 0 - CCI2A

MSP430单片机实验报告

MSP430单片机实验报告 专业: 姓名: 学号:

MSP430单片机实验报告 设计目标:使8位数码管显示“5201314.”,深入了解串行数据接口。 实现过程:主要分为主函数、驱动8位数码管函数、驱动1位数码管函数及延时函数。 延时函数:采用for循环。 驱动1位数码管子函数:设置74HC164的时钟传输和数传输,声明变量,使数据表中每一个要表示的字符的每一位都与shift做与运算从而进行传输,上升沿将传输数据传送出去。驱动1位数码管子函数的流程图如图1所示。 图1 驱动1位数码管子函数流程图 驱动8位数码管子函数:调用8次驱动1位数码管子函数。驱动8位数码管子函数流程图如图2所示。 图2 驱动8位数码管流程图

while 图3 主函数流程图 实验结果:供电后,数码管显示“5201314.”字样。 源程序: /************* 程序名称:5201314.*************/ /***程序功能:通过模拟同步串口控制8个共阳数码管***/ /*******P5.1 数据管脚,P5.3 同步时钟管脚*******/ #include // 头文件 void delay(void); // 声明延迟函数void seg7_1 (unsigned char seg7_data); // 声明驱动1 位数码管函数void seg7_8 ( unsigned char seg7_data7, unsigned char seg7_data6, unsigned char seg7_data5, unsigned char seg7_data4, unsigned char seg7_data3, unsigned char seg7_data2,

74、74HC、74LS系列芯片对照表

74、74HC、74LS系列芯片资料 系列 电平 典型传输延迟ns 最大驱动电流(-Ioh/Lol)mA AHC CMOS 8.5 -8/8 AHCT COMS/TTL 8.5 -8/8 HC COMS 25 -8/8 HCT COMS/TTL 25 -8/8 ACT COMS/TTL 10 -24/24 F TTL 6.5 -15/64 ALS TTL 10 -15/64 LS TTL 18 -15/24 注:同型号的74系列、74HC系列、74LS系列芯片,逻辑功能上是一样的。 74LSxx的使用说明如果找不到的话,可参阅74xx或74HCxx的使用说明。 有些资料里包含了几种芯片,如74HC161资料里包含了74HC160、74HC161、 74HC162、74HC163四种芯片的资料。找不到某种芯片的资料时, 可试着查看一下临近型号的芯片资料。 7400 QUAD 2-INPUT NAND GATES 与非门 7401 QUAD 2-INPUT NAND GATES OC 与非门 7402 QUAD 2-INPUT NOR GATES 或非门 7403 QUAD 2-INPUT NAND GATES 与非门 7404 HEX INVERTING GATES 反向器 7406 HEX INVERTING GATES HV 高输出反向器 7408 QUAD 2-INPUT AND GATE 与门 7409 QUAD 2-INPUT AND GATES OC 与门 7410 TRIPLE 3-INPUT NAND GATES 与非门 7411 TRIPLE 3-INPUT AND GATES 与门 74121 ONE-SHOT WITH CLEAR 单稳态 74132 SCHMITT TRIGGER NAND GATES 触发器与非门 7414 SCHMITT TRIGGER INVERTERS 触发器反向器 74153 4-LINE TO 1 LINE SELECTOR 四选一 74155 2-LINE TO 4-LINE DECODER 译码器 74180 PARITY GENERATOR/CHECKER 奇偶发生检验 74191 4-BIT BINARY COUNTER UP/DOWN 计数器 7420 DUAL 4-INPUT NAND GATES 双四输入与非门 7426 QUAD 2-INPUT NAND GATES 与非门 7427 TRIPLE 3-INPUT NOR GATES 三输入或非门 7430 8-INPUT NAND GATES 八输入端与非门 7432 QUAD 2-INPUT OR GATES 二输入或门 7438 2-INPUT NAND GATE BUFFER 与非门缓冲器 7445 BCD-DECIMAL DECODER/DRIVER BCD译码驱动器 7474 D-TYPE FLIP-FLOP D型触发器 7475 QUAD LATCHES 双锁存器 7476 J-K FLIP-FLOP J-K触发器 7485 4-BIT MAGNITUDE COMPARATOR 四位比较器 7486 2-INPUT EXCLUSIVE OR GATES 双端异或门

一种基于MSP430单片机的交流频率检测系统

本文提出了一种交流信号过零检测的电路,即捕获交流信号的零点,并借助MSP430单片机内部的16位定时器A(Timer A)的脉冲捕获功能便能得到该交流信号的周期进而能得到它的频率。系统的硬件部分主要由MSP430单片机以及整流桥、光电耦合器、三级管等器件构成;而软件部分主要是基于MSP430单片机的C语言程序,包括系统的初始化、定时器的设置等。该系统的实验结果和电路仿真吻合较好,具有一定的应用价值。 1 引言 由于频率信号具有抗干扰性强、易于传输、测量准确度较高等优点,因此许多非频率量的传感信号都转换为频率量来进行测量和处理。因此频率测量方法愈来愈引起关注和研究。 频率测量是测量和控制系统领域的最基本测量之一。当今用的最多的测量信号频率的仪器是频率计,由于频率计在测量过程中需要一个时基信号作为测量信号频率的时基。时基信号一般是由本机振荡电路发生的,尽管现在多用石英晶体振荡器,但是仍然不能保证时基信号的精度,因此频率计的测量精度也就成了问题。传统的频率测量方法有两种[1]:一种是测频法,在一定时间间隔T内测出待测信号重复变化次数N, 频率即为;另一种方法是测周法,在被测信号的一个周期内测出标准高频信号f的个数N,则被测频率。 本文介绍了一种测宽法[2],借助光电耦合原理,将交流信号转变成周期脉冲信号,通过捕获脉冲信号的下降沿,由定时器计数,通过二次计数的差值便能得到脉冲信号的周期,进而可以计算出所测交流信号的频率。 2 硬件电路设计 硬件电路完成的任务是: (1)模拟电路部分的设计,其功能是进行信号的转化。交流信号通过整流桥、光电耦合器等模拟器件便能得到周期脉冲信号。 (2)数字电路部分的设计,其功能是进行信号的检测。MSP430单片机内部的16位定时器A具有脉冲捕获功能,能将脉冲信号的占空比检测出来。 图1为它的基本结构图。 图1 系统的基本结构

74系列芯片引脚图

74系列芯片引脚图、功能、名称、资料大全(含74LS、74HC等),特别推荐为了方便大家,我收集了下列74系列芯片的引脚图资料。 说明:本资料分3部分:(一)、TXT文档,(二)、图片,(三)、功能、名称、资料。 (一)、TXT文档 反相器驱动器LS04 LS05 LS06 LS07 LS125 LS240 LS244 LS245 与门与非门LS00 LS08 LS10 LS11 LS20 LS21 LS27 LS30 LS38 或门或非门与或非门 LS02 LS32 LS51 LS64 LS65 异或门比较器LS86 译码器LS138 LS139 寄存器LS74 LS175 LS373

反相器: Vcc 6A 6Y 5A 5Y 4A 4Y 六非门 74LS04 ┌┴—┴—┴—┴—┴—┴—┴┐六非门(OC门) 74LS05 _ │14 13 12 11 10 9 8│六非门(OC高压输出) 74LS06 Y = A )│ │ 1 2 3 4 5 6 7│ └┬—┬—┬—┬—┬—┬—┬┘ 1A 1Y 2A 2Y 3A 3Y GND 驱动器: Vcc 6A 6Y 5A 5Y 4A 4Y ┌┴—┴—┴—┴—┴—┴—┴┐ │14 13 12 11 10 9 8│ Y = A )│六驱动器(OC高压输出) 74LS07 │ 1 2 3 4 5 6 7│ └┬—┬—┬—┬—┬—┬—┬┘

1A 1Y 2A 2Y 3A 3Y GND Vcc -4C 4A 4Y -3C 3A 3Y ┌┴—┴—┴—┴—┴—┴—┴┐ _ │14 13 12 11 10 9 8│ Y =A+C )│四总线三态门 74LS125 │ 1 2 3 4 5 6 7│ └┬—┬—┬—┬—┬—┬—┬┘ -1C 1A 1Y -2C 2A 2Y GND Vcc -G B1 B2 B3 B4 B8 B6 B7 B8 ┌┴—┴—┴—┴—┴—┴—┴—┴—┴—┴┐ 8位总线驱动器 74LS245 │20 19 18 17 16 15 14 13 12 11│ )│ DIR=1 A=>B │ 1 2 3 4 5 6 7 8 9 10│ DIR=0 B=>A └┬—┬—┬—┬—┬—┬—┬—┬—┬—┬┘ DIR A1 A2 A3 A4 A5 A6 A7 A8 GND

MSP430单片机定时器实验报告

实验四定时器实验 实验目的: MPS430F5529片内集成的定时器A的使用,学习计数器的补捕获比较模块的使用。实验内容: 定时器采用辅助时钟ACLK作为计数脉冲,fACLK=32768Hz,实现以下功能: 1.定时器TA0延时1s,点亮或熄灭LED6,即灯亮1s灭1s,如此循环,采用中断服务程序实现。 2.定时器TA0延时1s,点亮或熄灭LED4,采用捕获比较器CCR0的比较模式,设定输出方式,输出方波,不用中断服务程序 3.采用捕获比较器CCR1的比较模式LED5,设定输出方式,输出PWM波形,使LED 亮2s,灭1s。 4.用定时器实现30s倒计时,在液晶模块上显示,每过一秒显示数字变化一次。 5.使用TA1的捕获比较器CCR0捕获按键的间隔时间,在液晶模块上显示。 程序代码: 程序1: #include void main() {WDTCTL = WDTPW + WDTHOLD; //关看门狗 P1DIR |= BIT3; //设置P1.0口方向为输出。 TA0CCTL0 = CCIE; //设置捕获/比较控制寄存器中CCIE位为1, //CCR0捕获/比较功能中断为允许。 TA0CCR0 = 32767; //捕获/比较控制寄存器CCR0初值为32767 TA0CTL = TASSEL_1 + MC_1+TACLR; //设置定时器A控制寄存器TACTL, //使时钟源选择为SMCLK辅助时钟。 //进入低功耗模式LPM0和开总中断 _BIS_SR(LPM0_bits +GIE); } //定时器A 中断服务程序区 #pragma vector=TIMER0_A0_VECTOR __interrupt void Timer_A (void) {

MSP430--定时器B

MSP430--定时器B (2012-07-20 10:56:37) 转载▼ 分类:单片机专区 标签: 转载 原文地址:MSP430--定时器B作者:wangtangwang2012 MSP43016位定时器B模块是单片机的重要资源。MSP430F13/14/15x系列都有定时器模块B,但是不同单片机系列所带的比较/捕获模块功能有所不同。 1.定时器B模块: TimerB与TimerA大部分相同,不同点在于定时器B的捕获/比较单元增加了锁存器。 二者区别: (1)TimerB计数长度为8位,10位,12位,16位可编程,由TBCTL寄存器的CNTLx两位来配置,而定时器A的计数长度是固定的16位; (2)TimerB没有实现定时器A中的SCCI功能位的功能; (3)TimerB在比较模式下的捕获/比较寄存器功能与TimerA不同,增加了捕获比较锁存器; (4)有些芯片型号当中TimerB输出实现了高阻抗输出; (5)比较模式的原理有所不同:TimerA当中CCRx寄存器当中保存与TAR相比较的数据,而在TimerB 当中CCRx中保存要比较的数据,但并不直接与定时器TBR相比较,而是将CCRx当中的数据锁存到相应的锁存器之后,由锁存器与TBR相比较。从捕获/比较寄存器相比较锁存器传输数据的过程的时间也是可编程的,可以是写入比较捕获寄存器之后立即传输,也可有一个定时器来触发传输。(6)TimerB支持多种同步的定时功能,多重比较捕获功能和多重波形输出功能(PWM波)。而且,通过对比较数据的两级缓冲,可实现多个PWM波同步周期更新。

2.TimerB的逻辑结构图: 定时器B的逻辑结构基本与定时器A相同。

MSP430 按键程序范例(附原理图)

#i nclude void Init_Port(void) { //将P1口所有的管脚在初始化的时候设置为输入方式 P1DIR = 0; //将P1口所有的管脚设置为一般I/O口 P1SEL = 0; // 将P1.4 P1.5 P1.6 P1.7设置为输出方向 P1DIR |= BIT4; P1DIR |= BIT5; P1DIR |= BIT6; P1DIR |= BIT7; //先输出低电平 P1OUT = 0x00; // 将中断寄存器清零 P1IE = 0; P1IES = 0; P1IFG = 0; //打开管脚的中断功能 //对应的管脚由高到低电平跳变使相应的标志置位 P1IE |= BIT0; P1IES |= BIT0; P1IE |= BIT1; P1IES |= BIT1; P1IE |= BIT2; P1IES |= BIT2; P1IE |= BIT3; P1IES |= BIT3; _EINT();//打开中断 return; } void Delay(void) { int i; for(i = 100;i--;i > 0) ;//延时一点时间 } int KeyProcess(void) { int nP10,nP11,nP12,nP13; int nRes = 0;

//P1.4输出低电平 P1OUT &= ~(BIT4); nP10 = P1IN & BIT0; if (nP10 == 0) nRes = 13; nP11 = P1IN & BIT1; if (nP11 == 0) nRes = 14; nP12 = P1IN & BIT2; if (nP12 == 0) nRes = 15; nP13 = P1IN & BIT3; if (nP13 == 0) nRes = 16; //P1.5输出低电平 P1OUT &= ~(BIT4); nP10 = P1IN & BIT0; if (nP10 == 0) nRes = 9; nP11 = P1IN & BIT1; if (nP11 == 0) nRes = 10; nP12 = P1IN & BIT2; if (nP12 == 0) nRes = 11; nP13 = P1IN & BIT3; if (nP13 == 0) nRes = 12; //P1.6输出低电平 P1OUT &= ~(BIT4); nP10 = P1IN & BIT0; if (nP10 == 0) nRes = 5; nP11 = P1IN & BIT1; if (nP11 == 0) nRes = 6; nP12 = P1IN & BIT2; if (nP12 == 0) nRes = 7; nP13 = P1IN & BIT3; if (nP13 == 0) nRes = 8; //P1.7输出低电平 P1OUT &= ~(BIT4); nP10 = P1IN & BIT0; if (nP10 == 0) nRes = 1; nP11 = P1IN & BIT1; if (nP11 == 0) nRes = 2; nP12 = P1IN & BIT2; if (nP12 == 0) nRes = 3; nP13 = P1IN & BIT3; if (nP13 == 0) nRes = 4; P1OUT = 0x00;//恢复以前值。

常用门电路74系列芯片

TTL门 74ls00 2输入四与非门 74ls01 2输入四与非门(oc) 74ls02 2输入四或非门 74ls03 2输入四与非门(oc) 74ls04 六倒相器 74ls05 六倒相器(oc) 74ls06 六高压输出反相缓冲器/驱动器(oc,30v) 74ls07 六高压输出缓冲器/驱动器(oc,30v) 74ls08 2输入四与门 74ls09 2输入四与门(oc) 74ls10 3输入三与非门 74ls11 3输入三与门 74ls12 3输入三与非门(oc) 74ls13 4输入双与非门(斯密特触发) 74ls14 六倒相器(斯密特触发) 74ls15 3输入三与门(oc) 74ls16 六高压输出反相缓冲器/驱动器(oc,15v) 74ls17 六高压输出缓冲器/驱动器(oc,15v) 74ls18 4输入双与非门(斯密特触发) 74ls19 六倒相器(斯密特触发) 74ls20 4输入双与非门 74ls21 4输入双与门 74ls22 4输入双与非门(oc) 74ls23 双可扩展的输入或非门 74ls24 2输入四与非门(斯密特触发) 74ls25 4输入双或非门(有选通) 74ls26 2输入四高电平接口与非缓冲器(oc,15v) 74ls27 3输入三或非门 74ls28 2输入四或非缓冲器 74ls30 8输入与非门 74ls31 延迟电路 74ls32 2输入四或门 74ls33 2输入四或非缓冲器(集电极开路输出) 74ls34 六缓冲器 74ls35 六缓冲器(oc) 74ls36 2输入四或非门(有选通) 74ls37 2输入四与非缓冲器 74ls38 2输入四或非缓冲器(集电极开路输出) 74ls39 2输入四或非缓冲器(集电极开路输出) 74ls40 4输入双与非缓冲器 74ls41 bcd-十进制计数器 74ls42 4线-10线译码器(bcd输入) 74ls43 4线-10线译码器(余3码输入)

MSP430F149单片机定时器B捕获例程

/** *************************************************************** MSP430F149单片机定时器B捕获例程 日期:2013.9.10 姓名:MRT notice:捕获比较中断入口向量相同 ************************************************************** * * * **/ #include #define uint unsigned int #define uchar unsigned char uint ccr0=0; uint ccr1=0; uint ccr2=0; uint ccr3=0; uint ccr4=0; uint ccr5=0; uint ccr6=0; /*****************************main函数***********************/ void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT P5DIR|= BIT6; // P5.6输出 P5SEL|= BIT6; // P5.6输出ACLK P4SEL|= BIT0; P4DIR&= ~BIT0; P4SEL|= BIT1; P4DIR&= ~BIT1; P4SEL|= BIT2; P4DIR&= ~BIT2; P4SEL|= BIT3; P4DIR&= ~BIT3; P4SEL|= BIT4; P4DIR&= ~BIT4; P4SEL|= BIT5; P4DIR&= ~BIT5; P4SEL|= BIT6; P4DIR&= ~BIT6; /*----------定时器B CCIS_0/CCIS_1(CCIxA/CCIxB)两个外部输入中断公用一个IO-----------------*/ TBCCTL0 =CAP+CM_1+CCIS_0+SCS+CCIE; //捕获模式,上升捕获,选择CCI0A,同步,捕获中断开

74系列芯片-名字对照表

74LS系列: 74LS00 TTL 2输入端四与非门 74LS01 TTL 集电极开路2输入端四与非门 74LS02 TTL 2输入端四或非门 74LS04 TTL 六反相器 74LS08 TTL 2输入端四与门 74LS10 TTL 3输入端3与非门 74LS112 TTL 带预置清除负触发双J-K触发器 74LS122 TTL 可再触发单稳态多谐振荡器 74LS138 TTL 3-8线译码器/复工器 74LS14 TTL 六反相施密特触发器 74LS151 TTL 8选1数据选择器 74LS153 TTL 双4选1数据选择器 74LS154 TTL 4线—16线译码器 74LS160 TTL 可预置BCD异步清除计数器 74LS161 TTL 可予制四位二进制异步清除计数器74LS166 TTL 八位并入/串出移位寄存器 74LS192 TTL 可预置BCD双时钟可逆计数器 74LS193 TTL 可预置四位二进制双时钟可逆计数器74LS194 TTL 四位双向通用移位寄存器 74LS20 TTL 4输入端双与非门 74LS21 TTL 4输入端双与门 74LS273 TTL 带公共时钟复位八D触发器 74LS30 TTL 8输入端与非门 74LS32 TTL 2输入端四或门 74LS42 TTL BCD—十进制代码译码器 74LS47 TTL BCD—7段高有效译码/驱动器 74LS48 TTL BCD—7段译码器/内部上拉输出驱动74LS51 TTL 2-3/2-2输入端双与或非门 74LS74 TTL 带置位复位正触发双D触发器 74LS76 TTL 带预置清除双J-K触发器 74LS85 TTL 四位数字比较器 74LS86 TTL 2输入端四异或门 74LS90 TTL 可二/五分频十进制计数器

MSP430定时器输出PWM方波

定时器A输出方波 1、定时器的PWM输出8种模式 输出模式0输出模式:输出信号OUTx由每个捕获/比较模块的控制寄存器CCTLx中的OUTx位定义,并在写入该寄存器后立即更新。最终位OUTx直通。 输出模式1置位模式:输出信号在TAR等于CCRx时置位,并保持置位到定时器复位或选择另一种输出模式为止。 输出模式2PWM翻转/复位模式:输出在TAR的值等于CCRx时翻转,当TAR的值等于CCR0时复位。 输出模式3PWM置位/复位模式:输出在TAR的值等于CCRx时置位,当TAR的值等于CCR0时复位。 输出模式4翻转模式:输出电平在TAR的值等于CCRx时翻转,输出周期是定时器周期的2倍。 输出模式5复位模式:输出在TAR的值等于CCRx时复位,并保持低电平直到选择另一种输出模式。 输出模式6 PWM翻转/置位模式:输出电平在TAR的值等于CCRx时翻转,当TAR值等于CCR0时置位。 输出模式7 PWM复位/置位模式:输出电平在TAR的值等于CCRx时复位,当TAR的值等于CCR0时置位。 下图是增计数模式下的输出波形:

2、程序:(TA定时器输出1K的方波) void TAPWM(void) { //引脚设置(暂时使用P1.2输出一路PWM) P1SEL |= BIT2; //TA1从P1.2输出 P1DIR |= BIT2; //TA1从P1.2输出 //P2SEL |= BIT0; //TA2从P1.2输出 //P2DIR |= BIT0; //TA2从P1.2输出 TACTL |= MC_1 + TASSEL_1; //时钟源选择ACLK,增计数模式TA设置 TACCTL1 = OUTMOD_7; //模式7 高电平PWM输出PWM设置 //TACCTL2 = OUTMOD_7; //模式7 高电平PWM输出 TACCR0 = 33-1; //PWM总周期=32个ACLK周期约等于1000Hz 设置PWM 的周期 TACCR1 = 16; //TA1 占空比= 16/32=50% 设置占空比 //TACCR2 = 16; //TA2 占空比= 16/32=50% } 软件改变TACCR0即可改变PWM的周期,改变TACCR1或者TACCR2即可改变占空比

相关主题
相关文档 最新文档