430单片机测试题

430单片机测试题
430单片机测试题

430 单片机测试题

1、PWM波设计,要求:三个按键,一个增加占空比,一个

减少占空比,步进5%。一个改变周期

//*此函数用CCR0,CCR1产生一路占空比,周期可调的PWM波

//*输出引脚为p1.2

//*其中p1.5为周期增加,p1.4为占空比增加,p1.3为占空比较少

#include"msp430g2553.h"

void main( void )

{

WDTCTL = 0X5A80;

DCOCTL=CALDCO_1MHZ; //*选择DCO为1MHZ时钟

BCSCTL1= CALBC1_1MHZ;

TACTL=TASSEL_2+TACLR+MC_1; //*设置时钟计数

TACCTL1=OUTMOD_7; //* 输出为复位置位

CCR0=5000;

CCR1=2500;

P1DIR|=BIT2;

P1SEL|=BIT2;

P1IFG=0;

P1DIR&=~(BIT5+BIT4+BIT3); //*设置5为周期3,4为占空比

P1REN |=BIT5+BIT4+BIT3; //* 上拉

P1IES|=BIT5+BIT4+BIT3; //* 下降沿触发中断

P1IE|=BIT5+BIT4+BIT3; //*打开中断

_EINT();

while(1)

{ LPM0; }

}

#pragma vector=PORT1_VECTOR

__interrupt void PORT_I(void)

{

LPM0_EXIT;

_delay_cycles(1500);

if (P1IFG&BIT5) // 若1.0 按钮(周期)接通可用端口标志位判断是那个端口接通因为端口中断标志不会自动复位

{

CCR0 +=2500;

P1IFG &= ~BIT5 ;

}

if (P1IFG&BIT4)

{

CCR1 += 0.05*CCR0 ;

P1IFG &= ~BIT4 ;

if (CCR1>0.95*CCR0) CCR1=CCR0-CCR1 ;

}

if (P1IFG&BIT3)

{

CCR1 -= 0.05*CCR0 ;

P1IFG &= ~BIT3 ;

if (CCR1<0.05*CCR0) CCR1=CCR1+CCR0 ;

}

}

2、数字电压表。测量范围0—10V,精度0.1 V,1602显示。

3、频率计,测量范围:1 K1—10KHz,1602显示。

设计要求:

1、利用MSP430核心板设计一个数字频率计;

2、对外部输入幅度约为3V的方波进行频率测量;

3、LCD1602 显示当前频率;

4、同时将频率数据通过串口传送给PC机显示。

注:MAX232统一提供。

#include"msp430g2553.h"

#include"string.h"

unsigned long i=0;

unsigned long j,data;

char a[15]=" ",b[15]=" ";

const char string1[] = { "I love 430\r\n" };

char *pa=b;

int m=0,n=0,h;

unsigned int w;

void delay(int t)

{

long s=50;

for(;t>0;t--)

{

for(;s>0;s--)

{

;;

}

}

}

void write_com(char com)

{

P1OUT&=~(1<<3);//rS=0;

P1OUT&=~(1<<4);//RW=0;

P1OUT&=~(1<<5);//en=0;

P1OUT&=~(1<<1);//

delay(8);

P2OUT=com;

delay(8);

P1OUT|=(1<<5);//en=1;

delay(8);

P1OUT&=~(1<<5);//en=0;

}

void write_data(char dt)

{

P1OUT|=(1<<3);//rs=1;

P1OUT&=~(1<<4);//rw=0;

P1OUT&=~(1<<5);//en=0;

delay(50);

P2OUT=dt;

delay(50);

P1OUT|=(1<<5);//en=1;

delay(50);

P1OUT&=~(1<<5);//en=0;

}

void initial_lcd(void)

{

delay(20);

write_com(0x28);

delay(15);

write_com(0x0c);

delay(15);

write_com(0x06);

delay(15);

write_com(0x01) ;

}

void LCD_Disp(char x,char y,char *character) {

char xtemp;

switch(y)

{

case 0:xtemp=0x80+x;break;

case 1:xtemp=0xc0+x;break;

default:break;

}

write_com(xtemp);

while(*character!=0)

{

w rite_data(*character);

character++;

}

}

void main(void)

{

WDTCTL=WDTPW+WDTHOLD;

//配置定时器TimerA

TACTL = TASSEL_1 + MC_1 + TAIE; // Source: ACLK, UP mode TACCTL0 = SCS;

CCR0 =12000; //Timer count 5100

CCTL0 = CCIE; //CCR0 interrupt enabled

_BIS_SR(GIE);

P1DIR |=BIT6;

P1IES &=~BIT0;//上升沿触发中断

P1IE |=BIT0;//允许中断

_EINT();

P2SEL=0x00;

P1DIR |=0x3E; // 0011 1110

P2DIR =0xFF;

P1OUT &= ~BIT1 + ~BIT2; // All P1.x reset P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD

P1SEL2 = BIT1 + BIT2;

initial_lcd();

//配置串口

UCA0CTL1 |= UCSSEL_2; // SMCLK

UCA0BR0 = 8; // 1MHz 115200

UCA0BR1 = 0; // 1MHz 115200

UCA0MCTL = UCBRS0+UCBRS2; // Modulation UCBRSx = 5

UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**

IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt // __bis_SR_register(LPM4_bits + GIE); // Enter LPM4, interrupts enabled

for(;;)

{

while(data>0)

{

a[m]=data%10;

data/=10;

}

a[m]='\0';

m--;

for(;m>=0;m--)

{

b[n]=a[m]+0x30;

}

b[n++]='H';

b[n++]='z';

b[n++]='\0';

//if(UCA0TXBUF!='\0')

//{UCA0TXBUF = *pa;}

for(h=5000;h>0;h--)

{

LCD_Disp(0,0,"f=");

LCD_Disp(1,0,pa);

}

UCA0TXBUF = *pa;

}

}

// Timer A0 interrupt service routine

#pragma vector=TIMER0_A0_VECTOR

__interrupt void Timer_A0 (void)

{

//P1OUT ^=BIT6;//可以用P1.6口检测中断来了没有

data=i;

//UCA0TXBUF=i;

j=i;

i=0;

}

//P1口中断

#pragma vector=2*1u;

__interrupt void port1(void)

{

if(P1IFG&BIT0)

{

i++;

P1IFG &=~BIT0; //清除中断标志位

}

}

4、18B20温度测量,1602显示。

5,芯片2402数据读写(其他I2C总线芯片也可),1602显示。

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();

南理工 王宏波 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 状态。

MSP430单片机选型指南

MSP430单片机选型指南 概述: 1xx:8MIPS,1-60KB 2xx:16MIPS,1-120KB,500nA Stand By(待机电流为1xx的1/2) 4xx:8/16MIPS,4-120KB,LCD Driver 5xx:25MIPS,32-256KB,USB,RF,500nA Stand By(未上市) 命名规则: 1.x1为不带“1”的型号的外设精简版,一般去掉ADC12 2.1x为不带“1”的型号的存储器增强版,加入更多的Flash或是RAM,增加Flash的型号 采用了MSP430X构架。 3.型号中带“F”表示该型号的程序存储器为Flash,不采用Flash的信号有:C11x1,C13x1, C41x,CG461x(新型号,MSP430CG4619(120k)与MSP430FG4619的差价约为$2) 4.型号中带“E”表示该型号为电测做了优化,一般有LCD驱动器,3路独立AD,硬件乘法 器,嵌入式信号处理器(ESP430) 5.型号中带“W”表示该型号为流体测量做了优化 6.型号中带“G”表示该型号为医疗仪器做了优化,一般有LCD,ADC,DAC,OPAMP 13x(1),14x(1),15x,16x系列 基本配置:48个I/O,TA,TB,Watchdog,UART/SPI,I2C,DMA,MPY,Comp_A,ADC12 相同 1.全系列Flash程序存储器 2.64引脚PM, PAG, RTD封装 3.48个I/O 4.TA(TA3),TB(13x,15x为TB3;14x,16x为TB7) 5.Comp_A 不同 1.15x,16x:支持BOR,SVS,I2C,DMA,DAC 2.14x,16x:MPY(硬件乘法器),2个UART/SPI 3.13x1,14x1不含ADC12;其它器件含8通道ADC12 4.MSP430F161x最大支持10k的RAM 说明:不特别指明的话13x包含13x1,14x包含14x1,16x包含161x 41x,42x系列

单片机实验报告

院系:计算机科学学院专业:智能科学与技术年级: 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则执行,这是查询方式按下去后是低,否则为高

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,

MSP430单片机最小系统

第八章MSP430F249单片机最小系统 8.1 MSP430单片机下载方式 当单片机程序利用IAR开发环境编译和proteus仿真通过以后,还需要把程序生成的二进制代码烧录进单片机内部闪存中运行,这个过程称为下载或者编程。MSP430单片机支持多种FLASH编程方法:BSL和JTAG。其中BSL是启动加载程序(BootStrap Loader)的简称,该方法允许用户通过标准的RS-232串口访问MSP430单片机的FLASH和RAM。在单片机的地址为(0C00H-1000H)的ROM区内存放了一段引导程序,给单片机的特定引脚加上一段特定的时序脉冲,就可以进入这段程序,让用户读写、擦除FLASH程序。通过BSL无条件擦除单片机闪存,重新下载程序,还可以通过密码读出程序。 另外一种下载程序的方式为JTAG(Joint Test Action Group ,联合测试行动小组),JTAG是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试。JTAG 技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路TAP(Test Access Port,测试访问口),通过专用的JTAG 测试工具对内部节点进行测试。目前大多数比较复杂的器件都支持JTAG 协议,如ARM 、DSP 、FPGA 器件等。标准的JTAG 接口是4 线:TMS、TCK、TDI、TDO,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。目前JTAG 接口的连接有两种标准,即14 针接口和20 针接口,MSP430单片机使用的是14针的接口,其定义分别如表8-1所示。 表8-1 14针JTAG接口定义引脚名称描述 管脚编号功能说明 2 、4 VCC 电源 9 G ND 接地 11 nTRST 系统复位信号 3 TDI 数据串行输入 7 TMS 测试模式选 9 TCK 测试时钟 1 TDO 测试数据串行 输 6、8、10、12 NC 未连接 下面分别介绍BSL和JTAG方式下编程器设计,可以用在实际系统编程中。 8.2 BSL编程器原理 启动程序载入器(BootStrap)是一种编程方法,允许通过串行连接和MSP430通讯,在Flash Memory 被完全擦除时也能正常工作。MSP430的启动程序载入器(Bootstrap)在单片机正常复位时不会自动启动,当需要对单片机下载程序代码时候,对RST/NMI和TEST引脚设置特殊的顺序。当MSP430单片机的TEST 引脚为低电平而RST/NMI引脚有上升沿时,用户程序从位于内存地址0FFFEh 复位向量开始执行,用户程序正常启动,如图8-1所示

MSP430单片机AD转换实验

A/D转换实验 一、转换原理 MSP430F149的A/D转换器原理请参考相关书籍。 实验板上与AD相关的硬件电路: 编程工作实际就是对以下寄存器的操作: 寄存器类型寄存器缩写寄存器的含义 转换控制寄存器ADC12CTL0转换控制寄存器0 ADC12CTL1转换控制寄存器1 中断控制寄存器ADC12IFG中断标志寄存器ADC12IE中断使能寄存器ADC12IV中断向量寄存器 存储及其 控制寄存器ADC12MCTL0 ~ ADC12MCTL15存储控制寄存器0~15 ADC12MEM0 ~ ADC12MEM15 存储寄存器0~15

设计主程序和中断服务程序。 二、转换程序 1、程序1:转换结果发送到PC 主程序中进行A/D初始化,中断服务程序读A/D转换结果,主程序中通过串口发送结果。 “”主程序与中断程序: /********************************************************* 程序功能:将ADC对端口电压的转换结果按转换数据和对应的 模拟电压的形式通过串口发送到PC机屏幕上显示 ----------------------------------------------------------- 通信格式: 9600 ----------------------------------------------------------- 测试说明:打开串口调试精灵,正确设置通信格式,观察接收数据 **********************************************************/ #include <> #include "" #include "" #include "" #define Num_of_Results 32 uint results[Num_of_Results]; //保存ADC转换结果的数组 uint average; uchar tcnt = 0; /***********************主函数***********************/ void main( void ) {

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;

基于430单片机的频率计设计

基于430单片机的频率计设计

测控技术与仪器专业课程设计报告 班级:040852 姓名:姬树明学号:04085144 起始时间:2012-02-27 --- 2012-03-11 课程设计题目:基于51单片机频率计的设计(0—10MHz) 一、对题目的认识和理解 1 引言 本设计综合考虑了频率测量精度和测量反应时间的要求。例如当要求频率测量结果为3位有效数字,这时如果待测信号的频率为1 Hz,则计数闸门宽度必须大于1 00 0 s。为了兼顾频率测量精度和测量反应时间 的要求,把测量工作分为两种方法: (1)当待测信号的频率>100 Hz时,定时/计数器构成为计数器,以机器周期为基准,由软件产生计数闸门,计数闸门宽度>1 s时,即可满足频率测量结果为3位有 效数字; (2)当待测信号的频率<100 Hz时,定时/计数器构成为定时器,由频率计的予处理电路把待测信号变成方波,方波宽度等

于待测信号的周期。这时用方波作计数闸 门,当待测信号的频率=100 Hz,使用12 MHz时钟时的最小计数值为10 000,完全满足测量精度的要求。 二、本频率计的设计以AT89C51单片机为核 心,利用他内部的定时/计数器完成待测信号周期/频率的测量。单片机AT89C51内 部具有2个16位定时/计数器,定时/计 数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。在定时器工作方式下,在被测时间间隔内,每来一个机器周期,计数器自动加1(使用12 MHz 时钟时,每1μs加1),这样以机器周期为基准可以用来测量时间间隔。在计数器工作方式下,加至外部引脚的待测信号发生从1到0的跳变时计数器加1,这样在计数闸门的控制下可以用来测量待测信号的频率。外部输入在每个机器周期被采样一次,这样检测一次从1到0的跳变至少需要2个机器周期(24个振荡周期),所以最大计数速率为时钟频率的1/24(使用12 MHz时钟时,最大计数速率为500 kHz)。定时/计数器

MSP430单片机GPIO实验教程

GPIO实验教程 2015/7/24 官网地址:http://www.fengke.club

目录 第一节GPIO硬件介绍 (2) 第二节GPIO寄存器介绍 (3) 第三节实验 (5) 第四节实验现象 (7)

第一节GPIO硬件介绍 MSP430F5438A单片机属于5系列单片机,该系列的单片机最多可以提供12路数字IO接口,P1~P11以及PJ。大部分接口都有8个管脚,但是有些接口会少于8 个管脚。可以参考说明文档中关于接口的章节。每个I/O 管脚都可以独立的设置为输入或者输出方向,并且每个I/O 接线都可以被独立的读取或者写入。所有接口的寄存器都可以被独立的置位或者清零,就像设置驱动能力一样。 P1和P2接口具中断功能。从P1和P2接口的各个I/O管脚引入的中断可以独立的被使能并且设置为上升沿或者下降沿出发中断。所有的P1接口的I/O管脚的中断都来源于同一个中断向量P1IV,并且P2接口的中断都来源于另外一个中断向量P2IV。在一些MSP430x5xx单片机中,附加的接口也具有中断功能。详细说明请查阅芯片的说明文档。 每个独立的接口可以作为字节长度端口访问或者结合起来作为字长度端口进行访问。端口配对P1/P2、P3/P4、P5/P6、P7/P8 等联合起来分别叫做PA、PB、PC、PD 等。当进行字操作写入PA 口时,所有的16 为都被写入这个端口。利用字节操作写入PA 口的低字节时,高字节保持不变。相似地,使用字节指令写入PA 口高字节时,低字节保持不变。其它端口也是一样的,当写入的数据长度小于端口最大长度时,那些没有用到的位保持不变。所有的端口寄存器都利用这个规则来命名,除了中断向量寄存器P1IV 和P2IV。它们只能进行字节操作,并且PAIV 这个寄存器根本不存在。 利用字操作读取端口PA可以使所有16位数据传递到目的地。利用字节操作读取端口PA(P1或者P2)的高字节或者低字节并且将它们存储到存储器时可以只把高字节或者低字节分别传递到目的地。利用字节操作读取PA口数据并写入通用寄存器时整个字节都被写入寄存器中最不重要的字节。寄存器中其它重要的字节会自动清零。端口PB、PC、PD 和PE 都可以进行相同的操作。当读入的数据长短小于端口最大长度时,那些没有用到的位被视零,PJ 口也是一样的。 数字I/O的主要特征有: 1、可以独立编程的独立I/O口; 2、可以任意的混合输入输出; 3、独立配置P1、P2口的中断; 4、独立的输入和输出数据寄存器; 5、独立配置上拉或下拉电阻。

如何学习MSP430单片机

如何学习MSP430单片机 如何学习MSP430单片机 学习就是迎接挑战、解决困难的过程,没有挑战,就没有人生的乐趣。 下面以MSP430系列单片机为例,解释一下学习单片机的过程。 (1)获取资料 购买有关书籍,并到杭州利尔达公司网站和TI网站获取资料,例如,在网上可以找到FET使用指导、MSP430 F1xx系列、F4xx系列的使用说明和具体单片机芯片的数据说明,可以找到仿真器FET的电路图、实验板电路图、芯片封装知识等大量的实际应用参考电路,当然有些资料是英文的,看懂英文资料是个挑战,学会4、6级英语就是为看资料的。英语难学,但是看资料容易,只要下决心,看完一本资料,就可以看懂所有的相关资料。 (2)购买仿真器FET和实验电路板 如果经济条件不错,可以直接购买。 (3)自制仿真器FET和实验电路板 自制仿真器FET,首先要到网上找到FET电路图,然后就可以使用画电路板软件画电路图和电路板图,这又是个挑战。FET电路非常简单,但要把它制作出来还是需要下一番工夫的,找一本有关书,然后练习画原理图,画完原理图后,就学习认识元件封装,再购买元件,这时就可以画电路板图了,一旦画好,将形成的PCB文件交给电路板制作公司,10天后,就可以得到电路板,焊上元件和电缆,等实验电路板做好后,就可以与实验电路板一起调试了。 自制实验电路板,需要单片机芯片内部工作原理的知识、封装知识,清楚的知道每一个引脚的功能,还需要数码管、按钮、排电阻、三端稳压器、二极管、散热器、电解电容、普通电容、电阻、钮子开关等元件的知识,对于初学者,可以做一个只有3个数码管、8个按钮、8个发光二极管的简单实验板,这样的实验板,虽然简单,但足可以帮助初学者入门单片机。自制实验电路板与自制FET 一样,首先画电路图,然后买元件,再画电路板。由于MSP430系列芯片是扁平封装,焊接起来有一定难度,这好象是个挑战,但实际上很简单,方法如下:

MSP430单片机AD转换实验

AD转换实验 一、转换原理 MSP430F149勺A/D转换器原理请参考相关书籍。实验板上与AD相关的硬件电路: RV3 10K ------------ 3-3\ J6 P61 SI?2 Al)输入电路 RV4 III-10K f > 2 ; ||| 二、转换程序 1、程序1:转换结果发送到PC 主程序中进行A/D初始化,中断服务程序读A/D转换结果,主程序中通过串口发送结果。

“ main 、c ”主程序与中断程序: /********************************************************* 程序功能:将ADC 对P6、0端口电压的转换结果按转换数据与对应的 模拟电压的形式通过 串口发送到 PC 机屏幕上显示 通信格式 :N 、 8、 1, 9600 测试说明 :打开串口调试精灵 ,正确设置通信格式 ,观察接收数据 **********************************************************/ #include #include "allfunc 、 h" #include "UART0_Func 、 c" #include "ADC_Func 、 c" #define Num_of_Results 32 uint results[Num_of_Results]; // 保存 ADC 转换结果的数组 uint average; uchar tcnt = 0; /*********************** void main( void ) { uchar i; uchar buffer[5]; WDTCTL = WDTPW + WDTHOLD; // 关狗 /* 下面六行程序关闭所有的 IO 口 */ P1DIR = 0XFF;P1OUT = 0XFF; P2DIR = 0XFF;P2OUT = 0XFF; P3DIR = 0XFF;P3OUT = 0XFF; P4DIR = 0XFF;P4OUT = 0XFF; P5DIR = 0XFF;P5OUT = 0XFF; P6DIR = 0XFF;P6OUT = 0XFF; P6DIR |= BIT2;P6OUT |= BIT2; // P6DIR|=BIT6;P6OUT&=~BIT6; // InitUART(); Init_ADC(); _EINT(); buffer[4] = '\0'; 主函数 ********************* 关闭电平转换 关闭数码管显示

单片机MSP430G2课程设计音乐播放器

单片机期末检测报告 学生姓名:徐士栋 学生学号:12051232 专业班级:自动化12-2班

基于MSP430G2的音乐切换器 一、内容 通过MSP430G2播放自己所设置的歌曲,并通过按键S2切换另一首歌曲 二、思路与方法 (1)思路:通过老师上课所讲的F6638音乐器播放实例,想利用MSP430G2来进行音乐播放,阅读网上单片机播放音乐例程并加以改编,并试想利用按键S2来进行歌曲的实时切换 (2)音乐:通过MSP430蜂鸣器音高音长对照表,将自己喜欢的音乐通过音乐简谱改成相应代码,利用播放函数play_song()进行歌曲播放。演奏乐曲对于一个音符应该包括两个部分,声调用简单的延时-电平翻转来实现,改变了延时的时间就改变了声调,而时间通过计数比较来实现,当计数值相等时就跳出循环演奏下一个音符。 (3)按键S2:通过中断服务、事件检测、事件处理函数,通过按键S2切换歌曲 (4)硬件:无源蜂鸣器、MSP430G2单片机

有流程图: 三、程序调试 (1)遇到的问题与解决方法 按键S2切换歌曲开始不能进行实时切换,首先是我将实验是检测按键的程序进行整改 加入主程序中while(1),这样只有长按S2键才能播放下一曲。后来查阅书籍关于MSP430G2中断服务的程序后,调用这些函数,并设置变量i 放在两个音乐播放函数中,通过判断i=1或0进行选歌。 开始编曲时候并未按照音高、音长对照表进行编曲,所以导致歌曲无调子,后在搜集到资料后进行整改进行改曲。开始蜂鸣器声音略小,后发现是正负导线接反所致。 (2)程序段 /********************************************* 时钟频率务必为8MHz ,定时器为8分频 *********************************************/ #include typedef unsigned char uchar ; #include "music.h" //乐曲1 #include "te.h" //乐曲2 开始 初始化 歌曲1 S2检查? 歌曲 2

基于MSP430单片机循迹小车

课程设计报告 课程名称嵌入式系统原理与设计 课题名称智能循迹小车 专业通信工程 班级1101班 学号 姓名 指导老师 2014 年 1 月 5 日

1.系统总设计 1.1 功能说明 本课题是基于MSP430单片机循迹智能小车的设计与实现,小车系统以MSP430单片机为系统控制处理器,采用红外传感器对赛道进行道路检测,单片机根据检测到的

信号的不同状态判断小车的当前状态,通过电机驱动芯片L298N发出控制命令,控制电机的工作状态以实现对小车的控制。 1.2 任务分配情况 参与此次项目制作的一共七人,分别是:振凤,志成,肖新加,戴小敏,小林,鹏华和莹任务分配情况如表1所示: 产品名称:智能循迹小车 技术参数: L298N基本参数: 类型:半桥输入类型:非反相输出数: 4 电流输出/同道:2A 电流峰值输出:3A 工作温度:-25~135°C 器件型号:L298N 产品的使用方法: 用六节干电池9V直流电压作为供电电源,接通电源,在有黑线的跑道上行走。注意事项:1、所用电源不能超过9V,以免电压过大,把电机烧坏。 2、小孩使用时,应在大人的陪同下使用,以免被小车的尖锐部分弄伤。 3、轻拿轻放,以免损坏小车器件。 4、长期不使用时,应把电池取出。 生产日期:20xx年xx月xx日 2.硬件设计 此次项目中硬件部分的设计主要包含以下模块:电源模块,红外循迹模块,电机驱动模块和MSP430f149单片机。 2.1 电源模块 模型车通过自身系统,采集赛道信息,获取自身速度信息,加以处理,由芯片给出指令控制其前进转向等动作,各部分都需要由电路支持,电源管理尤为重要。在本设计

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;//恢复以前值。

基于MSP430单片机的环境参数监测仪的设计制作

毕业设计(论文) 题目:基于MSP430单片机的环境 参数监测仪的设计制作 指导者: 评阅者: 2014 年 4 月

毕业设计(论文)中文摘要 温湿度和光照度等参数是标定环境不可缺少的参数,对其进行准确的测量具有重要意义。本文以室内外居住环境为背景,设计出一种以MSP430F5438A超低功耗单片机为控制核心的环境参数监测仪。 论文对环境参数监测系统硬件和软件模块包括子系统模块进行了详细设计:通过相应的传感器芯片对包括温度、湿度、光强、红外辐射度和可燃气体浓度等环境参数进行检测和采集;通过微处理器MSP430F5438A将传感器芯片采集到的数据进行分析处理,并在液晶终端进行参数的实时显示和监控。 论文分别对温度传感器模块,单总线湿度传感器模块,光照度传感器模块,气敏传感器模块,红外热释电模块以及按键和液晶显示模块进行了单模块分别调试。在此基础上对这些子程序模块进行了整合调试及整机功能和功耗测试,最终完成整个监控系统及仪器的设计制作。 实验显示,本环境参数监测仪具有体积小、携带方便、功耗低、可靠性高、免维护、成本低等优点,在室内外环境参数监测领域,具有很好的应用前景。 关键词:MSP430单片机环境参数监测传感器液晶显示

毕业设计(论文)外文摘要 Title: The Design and Production of Environmental Parameter Monitor Based on MSP430 Abstract: Parameters such as temperature, humidity and illuminance are indispensable to the calibration environment, which has important significance for accurate measurement. The aim of this thesis is to design an environmental parameter monitor, which controlled by an ultra-low power MSP430F5438A for indoor and outdoor living environment. The detailed design of hardware and software module including subsystem module in the environmental parameter monitor is proposed in this thesis. The corresponding sensor chip is used to detect and collect the environmental parameter such as temperature, humidity, illuminance, the infrared radiation intensity and combustible gas concentration. The MSP430F5438A analyzes and processed the data which collected by sensor chips, and realized the real-time display and monitoring for parameters on LCD terminal. The thesis proceeds debugging on single module likes temperature sensor module, single bus humidity sensor module, illuminance sensor module, gas sensor module, pyroelectric infrared module and buttons and LCD module, respectively. On the basis of that, after debugging and test on the function and power for the integrated subroutine modules, the design and production of the whole monitoring system and instrument is completed. Test results given show that the environmental parameter monitor has several advantages, such as small volume, portable, low power

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单片机温度单片机课程设计报告书

理工大学计算机学院课程设计单片机系统设计 班级计科1104 姓名 学号 指导教师业德韩慧 二○一四年十一月日

课程设计任务书及成绩评定 课题名称_______温度测试系统设计_______ I、题目的目的和要求: 利用温度传感器和MSP430单片机设计一个温度测试系统,将测试结果(十进制)在LED上显示出来,并定义一个保持按键,当按下该键时,将当前测试值保持不变(按键不动作时为正常测量显示)。温度显示格式为:XXX ℃。 II、设计进度及完成情况

III、主要参考文献及资料 MSP430系列16位低功耗单片机原理及应用 DS18B20温度传感器的使用 智能仪器原理及应用 学科部主任业德 Ⅵ、成绩评定: 设计成绩:(教师填写) 指导老师:(签字) 二○年月日

目录 I、题目的目的和要求: (2) II、设计进度及完成情况 (2) III、主要参考文献及资料 (3) Ⅵ、成绩评定: (3) 目录 (4) 本次课程设计的目的和意义 (5) 设计题目 (6) 系统的主要功能、作用以及主要技术性能指标 (7) 总体设计方案、工作和组成原理 (8) 系统设计 (11) 设计总结 (22) 作品的使用或操作说明 (23) 设计图纸或图表 (24)

本次课程设计的目的和意义 课程设计是让我熟练掌握了课本上的一些理论知识,课程设计也是一个学习新知识、巩固加深所学课本理论知识的过程,它培养了我们综合运用知识的能力,独立思考和解决问题的能力。加深我们对单片机原理与应用课程的理解

设计题目 温度测试系统设计: 利用温度传感器DS18B20和MSP430单片机设计一个温度测试系统,将测试结果(十进制)在LED上显示出来,并定义一个保持按键,当按下该键时,将当前测试值保持不变(按键不动作时为正常测量显示)。温度显示格式为:XXX ℃。

相关文档
最新文档