MSP430流水灯蜂鸣器实验报告
msp430实验报告
msp430实验报告msp430实验报告引言:msp430是一种低功耗、高性能的微控制器,被广泛应用于嵌入式系统和物联网设备中。
本实验报告将介绍我对msp430微控制器进行的一系列实验,包括实验目的、实验过程、实验结果以及对实验的总结和展望。
实验目的:本次实验的主要目的是熟悉msp430微控制器的基本功能和使用方法,以及学习如何进行简单的控制程序设计。
通过实验,我希望能够掌握msp430的基本操作和编程技巧,并且能够运用所学知识解决实际问题。
实验过程:在实验开始之前,我首先对msp430微控制器进行了一些基本的了解。
我了解到,msp430具有低功耗、高性能和丰富的外设接口等特点,可以满足各种嵌入式系统的需求。
接着,我根据实验指导书的要求,准备好实验所需的硬件设备和软件工具。
第一部分实验是关于GPIO口的实验。
我按照实验指导书上的步骤,将msp430与LED灯连接起来,并编写了一个简单的程序,实现了对LED灯的控制。
通过这个实验,我学会了如何配置GPIO口和编写简单的控制程序。
第二部分实验是关于定时器的实验。
我学习了如何配置msp430的定时器,并编写了一个简单的程序,实现了定时闪烁LED灯的功能。
通过这个实验,我深入了解了定时器的工作原理和编程方法。
第三部分实验是关于ADC的实验。
我学习了如何配置msp430的ADC模块,并编写了一个简单的程序,实现了对外部模拟信号的采样和转换。
通过这个实验,我了解了ADC的基本原理和使用方法。
实验结果:通过一系列实验,我成功地掌握了msp430微控制器的基本功能和使用方法。
我能够独立完成GPIO口的配置和控制、定时器的配置和编程、ADC的配置和采样等任务。
实验结果表明,msp430具有强大的功能和灵活的编程能力,可以满足各种嵌入式系统的需求。
总结和展望:通过本次实验,我对msp430微控制器有了更深入的了解,并且掌握了一些基本的操作和编程技巧。
然而,由于实验时间和条件的限制,我还没有完全发挥出msp430的潜力。
MSP430流水灯蜂鸣器实验报告
MSP430实验报告水位报警器姓名:丁宇昊学号:021210508一、实验目的:掌握msp430单片机的程序编写和运行过程。
掌握IAR Embedded Workbench程序的编译和运行。
二、实验内容:用继电器代替传感器输入模拟电压,用IED灯显示水位高度,当超过预定值时,蜂鸣器响,实现报警。
三、使用串口:P1口,P2口四、电路实现:把继电器作为的AD的输入,通过AD转换,把电压分成16小分,每一份信号控制1个led,通过改变led两端电平高低,控制led亮灭。
当到达预定值时,把蜂鸣器的接口设置为高电平。
实验代码:#include <msp430.h>void delay(int j){do j--;while (j != 0);}int main(void){WDTCTL = WDTPW + WDTHOLD; // Stop WDTADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // ADC10ON, interrupt enabledADC10CTL1 = INCH_1+SREF0; // input A1ADC10AE0 |= BIT7; // PA.1 ADC option selectP1DIR |= BIT0; // Set P1.0 to output directionP1DIR|=BIT4;P1DIR|=BIT5;P2DIR|= 0xff;P2OUT|=0xff;P2SEL&=0x00;for (;;){ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start__bis_SR_register(CPUOFF + GIE); // LPM0, ADC10_ISR will force exitif (ADC10MEM > 960){P1OUT |=BIT4;P1OUT &= ~BIT5;P2OUT =0xFE;}else if(ADC10MEM >900) { P1OUT |=BIT4;P1OUT &= ~BIT5;P2OUT = 0xfc;}else if(ADC10MEM >840) { P1OUT |=BIT4;P1OUT &= ~BIT5;P2OUT=0xf8;}else if(ADC10MEM >780) { P1OUT |=BIT4;P1OUT &= ~BIT5;P2OUT= 0xf0;}else if(ADC10MEM >660) { P1OUT |=BIT4;P1OUT &= ~BIT5;P2OUT= 0xe0;}else if(ADC10MEM >600) { P1OUT |=BIT4;P1OUT &= ~BIT5;P2OUT= 0xc0;}else if(ADC10MEM >540) { P1OUT |=BIT4;P1OUT &= ~BIT5;P2OUT= 0x80;}else if(ADC10MEM >480) { P1OUT |=BIT4;P1OUT &= ~BIT5;P2OUT= 0x00;}else if(ADC10MEM >420) { P1OUT&=~BIT5;P2OUT=0x00;P2OUT=0x00;delay(20);P1OUT&=~BIT4;P2OUT=0xfe;P1OUT|=BIT5;P2OUT=0xfe;}else if(ADC10MEM >360) { P1OUT&=~BIT5;P2OUT=0x00;P1OUT|=BIT4;P2OUT=0x00;delay(20);P1OUT&=~BIT4;P2OUT=0xfc;P1OUT|=BIT5;P2OUT=0xfc;}else if(ADC10MEM >300) {P1OUT&=~BIT5;P2OUT=0x00;P1OUT|=BIT4;P2OUT=0x00;delay(20);P1OUT&=~BIT4;P2OUT=0xf8;P1OUT|=BIT5;P2OUT=0xf8;}else if(ADC10MEM >240) { P1OUT&=~BIT5;P2OUT=0x00;P1OUT|=BIT4;P2OUT=0x00;delay(20);P1OUT&=~BIT4;P2OUT=0xf0;P1OUT|=BIT5;P2OUT=0xf0;}else if(ADC10MEM >180) { P1OUT&=~BIT5;P2OUT=0x00;P2OUT=0x00;delay(20);P1OUT&=~BIT4;P2OUT=0xe0;P1OUT|=BIT5;P2OUT=0xe0;}else if(ADC10MEM >120) { P1OUT&=~BIT5;P2OUT=0x00;P1OUT|=BIT4;P2OUT=0x00;delay(20);P1OUT&=~BIT4;P2OUT=0xc0;P1OUT|=BIT5;P2OUT=0xc0;P1DIR |=BIT6; P1OUT ^=BIT6;delay(100);}else if(ADC10MEM >60) { P1OUT&=~BIT5;P2OUT=0x00;P1OUT|=BIT4;P2OUT=0x00;delay(20);P1OUT&=~BIT4;P2OUT=0x80;P1OUT|=BIT5;P2OUT=0x80;P1DIR |=BIT6;P1OUT ^=BIT6;delay(100);}else{ P1OUT&=~BIT5;P2OUT=0x00;P1OUT|=BIT4;P2OUT=0x00;delay(20);P1OUT&=~BIT4;P2OUT=0x00;P2OUT=0x00;P1DIR |=BIT6;P1OUT ^=BIT6;delay(100);}}}// ADC10 interrupt service routine#pragma vector=ADC10_VECTOR__interrupt void ADC10_ISR(void){__bic_SR_register_on_exit(CPUOFF); // Clear CPUOFF bit from 0(SR) }六、总结。
单片机实验报告蜂鸣器
单片机实验报告蜂鸣器单片机实验报告:蜂鸣器引言:单片机是现代电子技术中的重要组成部分,其广泛应用于各个领域。
蜂鸣器作为一种常见的声音输出设备,在单片机实验中也被广泛使用。
本文将介绍蜂鸣器的原理、实验过程以及实验结果,并对实验中遇到的问题进行分析和解决。
一、蜂鸣器的原理蜂鸣器是一种能够产生声音的装置,其原理基于压电效应。
压电材料在受到外力作用时会产生电荷,而当外力消失时,压电材料则会产生相反方向的电荷。
利用这种特性,蜂鸣器可以通过施加电压来使压电材料振动,从而产生声音。
二、实验过程1. 准备工作:首先,我们需要准备一块单片机开发板、一个蜂鸣器和相关电路连接线。
2. 连接电路:将单片机的IO口与蜂鸣器连接,注意正确连接正负极。
一般情况下,蜂鸣器的正极连接到单片机的IO口,负极连接到GND。
3. 编写程序:使用单片机开发工具,编写一个简单的程序来控制蜂鸣器。
例如,我们可以通过控制IO口的高低电平来控制蜂鸣器的开关状态。
4. 烧录程序:将编写好的程序烧录到单片机中。
5. 实验测试:将单片机开发板连接到电源,观察蜂鸣器是否发出声音。
可以通过改变程序中IO口的电平来控制蜂鸣器的开关状态,从而产生不同的声音。
三、实验结果经过实验,我们成功地控制了蜂鸣器的开关状态,并产生了不同的声音效果。
通过改变程序中IO口电平的高低,我们可以调节蜂鸣器的频率和音调。
此外,我们还可以通过控制IO口的输出时间来调节蜂鸣器发声的时长。
四、问题分析与解决在实验过程中,我们可能会遇到一些问题,例如蜂鸣器无法发声或声音不稳定等。
这些问题可能是由以下原因引起的:1. 连接错误:检查蜂鸣器的正负极是否正确连接到单片机的IO口和GND。
确保连接线没有松动或接触不良。
2. 程序错误:检查程序中的代码是否正确,特别是IO口的控制部分。
确保程序正确地控制了蜂鸣器的开关状态。
3. 电源问题:检查单片机开发板的电源是否正常。
如果电源电压不稳定,可能会导致蜂鸣器无法正常工作。
蜂鸣器与流水灯实验报告
======================蜂鸣器与流水灯实验===================实验(一)蜂鸣器一、电路图二、程序注释1、频率、节拍常数的编码2、定时/计数器0中断赋初值,使计数器计满一次时时间为100ms。
同时没记一满次,n减13、毫秒的延时函数4、无参数返回值的延时函数5、主函数,用switch函数选择,当case为0x00时,延时一段时间再开始6、让i自加1,延时7、选择频率常数,选择m、n为第1个,第2个……第i个频率8、开定时器中断,延时4*m的时间等待节拍完成,当n不等于0时,将选出来的频率依次输出,实验(二)流水灯一、电路图二、程序注释①直接赋值控制亮灯法#include <reg52.h>sbit LED0=P1^0 ; //定义八个流水灯等为输出端口P1^0~P1^7 sbit LED1=P1^1 ;sbit LED2=P1^2 ;sbit LED3=P1^3 ;sbit LED4=P1^4 ;sbit LED5=P1^5 ;sbit LED6=P1^6 ;sbit LED7=P1^7 ;void delay(float t) //延时函数{ unsigned int i,j;j=t*100;while(j--){for(i=8000;i;i--);}}void main() //主函数{while(1){LED0=0; //亮第1个灯delay(0.1); //延时0.1sLED0=1; //熄灭LED1=0; //亮第2个灯delay(0.1);LED1=1;LED2=0; //亮第3个灯delay(0.1);LED2=1;LED3=0; //亮第4个灯delay(0.1);LED3=1;LED4=0; //亮第5个灯delay(0.1);LED4=1;LED5=0; //亮第6个灯delay(0.1);LED5=1;LED6=0; //亮第7个灯delay(0.1);LED6=1;LED7=0; //亮第8个灯delay(0.1);LED7=1;}}②循环左移法#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit p1=P1^0;uchar temp;void delay(uint); //延时函数声明void main() //主函数{temp=0xfe; //将0xfe赋给tempP1=temp; //P1值为temp,即11111110,第一个灯亮 while(1){temp=_crol_(temp,1); /*循环左移函数,每次向左移一位,使其第1,2,3……依次为0*/delay(100); //延时0.1sP1=temp; //将temp值赋给P1使}}void delay(uint z) //延时函数{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}。
msp430 实验报告
msp430 实验报告Title: MSP430 Experiment ReportIntroductionThe MSP430 is a series of microcontroller units (MCUs) developed by Texas Instruments. These MCUs are known for their low power consumption and high performance, making them ideal for a wide range of applications including consumer electronics, industrial control, and medical devices. In this experiment report, we will discuss the results of our experiments with the MSP430 MCU and its performance in various applications.Experiment 1: LED BlinkingIn our first experiment, we programmed the MSP430 to control the blinking of an LED. We used the MSP430 LaunchPad development kit, which includes a development board with an MSP430 MCU and various peripherals. By writing a simple program in the MSP430 Integrated Development Environment (IDE), we were able to control the blinking frequency of the LED. This experiment demonstrated the ease of programming and the low power consumption of the MSP430 MCU.Experiment 2: Sensor Data AcquisitionIn our second experiment, we connected a temperature sensor to the MSP430 and programmed it to acquire and process the sensor data. The MSP430's built-in analog-to-digital converter (ADC) allowed us to easily interface with the sensor and read the temperature values. We then used the MSP430's serialcommunication interface to transmit the data to a computer for further analysis. This experiment showcased the versatility of the MSP430 in interfacing with external sensors and communicating with other devices.Experiment 3: Power ManagementOne of the key features of the MSP430 is its low power consumption, which makes it suitable for battery-powered applications. In our third experiment, we tested the power management capabilities of the MSP430 by programming it to enter low-power modes when not actively processing data. We measured the current consumption in different power modes and compared it to the datasheet specifications. The results confirmed the MSP430's low power consumption and its ability to prolong battery life in portable devices. ConclusionOur experiments with the MSP430 MCU have demonstrated its versatility, ease of programming, and low power consumption. The MSP430's performance in controlling peripherals, interfacing with sensors, and managing power consumption makes it a compelling choice for a wide range of embedded applications. As technology continues to advance, the MSP430's capabilities will continue to make it a popular choice for developers seeking a reliable and efficient microcontroller solution.。
基于MSP430上的流水灯设计
基于MSP430上的流水灯的实验设计申报者:队长 :队员:摘要: IAR Embedded Workbench IDE是MSP430开发环境,它包含了编辑器;编译器;连接器;调试器;硬件中断模拟器;下载C语言程序到MSP430应用系统。
因此,学习和使用IAR Embedded Workbench IDE是MSP430开发环境是进行MSP430开发必不可少的环节。
主要原理是通过430单片机产生信号,控制一定数量的LED产生不同规律的变换,通过不同的程序,产生不同的循环,从而达到不同的变换效果。
关键词:MSP 430 程序 LED 变换循环Abstract:IAR Embedded Workbench IDE MSP430 developmentenvironment, itcontainsthe editor; compiler; connector;debugger; hardwareinterrupt simulator; download Clanguage program in the MSP430 application system.Therefore, the learning and use of theIAR EmbeddedWorkbench IDE MSP430 development environment isMSP430 development of essential link. The main principle is to generate the signal by 430 single chip microcomputer, transform to control the amount of LED produced by different rules, different procedures,different cycle, so as to achievethe transformation effect of different.Keywords: MSP 430 program LED transform circle目录一 MSP430单片机的概述1.1MSP430系列单片机的基本信息......... ....... .31.2MSP430系列单片机与51系列单片机的比较.. .. .. . 4 二设计思路2.1设计平台.. .. .. .. .. .. .. .. .. .. .. .. .. . . .42.2设计思路.. .. .. .. .. .. .. .. .. .. .. .. .. .. .5 三电路设计3.1电路模块设计.. .. .. .. .. .. .. .. .. .. .. .. .. .6 3.1.1 晶振电路模块.. .. .. .. .. .. .. .. .. .. .. .. .. .6 3.1.2 复位电路模块.. .. .. .. .. .. .. .. .. .. .. .. .. .6 3.1.3 数码管显示模块.. .. .. .. .. .. .. .. .. .. .. 6 3.1.4 功能模式选择模块.. .. .. .. .. .. .. .. .. .. .. .63.1.5 LED流水灯模块.. .. .. .. .. .. .. .. .. .. .. ..63.2 实验电路设计. . .. .. ... .. .. .. .. .. .6 7 8 9四程序调试及实验结果展示.. . .. .. .. .. .. .. ..10 11五实验总结.. .. . .. .. .. .. .. .. .. .. .. .. .11 12六参考文献.. .. . .. .. .. .. .. .. .. .. .. .. .. ..12附录一.. .. .. .. .. .. .. .. .. .. .. .. .. .. ..12 13 14附录二.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..141. MSP430单片机的概述1.1 MSP430系列单片机的基本信息图1 MSP430内部原理框图在运算速度方面,MSP430系列单片机能在8MHz晶体的驱动下,实现125us的指令周期。
430单片机实验报告
题 目430单片机实验报告
学院(部)信息工程学院
专 业
指导教师
学号姓名
同组成员
二〇一六年五月
实验一 LED流水灯实验
一、
LED流水灯实验
二、
1.掌握IAR 开发环境的使用方法;
2.练习IO端口寄存器的设置;练习时钟部分的配置
三、
1、制作相应的外围电路。要求用单片机的P1口连接8个发光二级管,当相应的IO口输出为高电平时发光二极管发光。
P2SEL=0X00;
key_val=0;
}
void Key_Scan(void) //扫描键盘获得键值
{
unsigned char row,col,temp1,temp2;
unsigned char key_table[]={0,1,2,3,4,5,6,7,8,
9,10,11,12,13,14,15};//设置键盘逻辑键值
P1DIR |= BIT0+BIT6; // P1.0 - P1.2 outputs
P1SEL|= 0x00;
P1OUT= BIT0;
CCR0=20000;
CCTL0 = CCIE; // CCR0 toggle, interrupt enabled
TACTL = TASSEL_2 + MC0 +TACLR; // SMCLK, Contmode, int enabled
BCSCTL1 = CALBC1_1MHZ; // Set DCO
DCOCTL = CALDCO_1MHZ;
P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
P1SEL2 = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
msp430-流水灯
实验一流水灯实验一.实验内容与目的1.实验内容实现LED灯的顺次点亮。
2.实验目的对msp430有初步了解,学会msp430I/O口的使用方法,了解msp430的内部资源,学习尝试使用msp430的时钟、中断。
二.方法与结果用P2口对led的亮灭进行控制(对P2口赋值为0时led点亮,电路图如下),使用msp430比较器0和定时器产生1s的定时,当定时到1s时改变led的状态(流程图如下)。
三.实现程序#include<msp430.h>void main( ){WDTCTL = WDTPW + WDTHOLD; //关闭看门狗中断P2DIR=0xff; //设定P2口为输出P1SEL=0x00; //设定P2口为普通I/O口CCTL0=CCIE; //开启比较器0中断CCR0=32768; //定时时间的选取,当计数器TAR计数到CCR0时,跳到中断TACTL=TASSEL_1+MC_1;//TACTL是计数器的控制寄存器,选择时钟系统,计数方式P2OUT=0xfe; //设定P2口初值_EINT(); //开启总中断LPM3; //进入低损耗模式}#pragma vector=TIMERA0_VECTOR__interrupt void timer() //中断程序{if(P2OUT==0x7f){P2OUT=0xfe;}else{P2OUT=P2OUT<<1;P2OUT=P2OUT|0x01; //位操作,改变led的状态}}四.流水灯实验总结①msp430的P1~P6口都可以用作I/O口,但msp430不能利用对I/O口直接赋值的方法控制I/O口的输出、接收I/O口的输入,而是利用相应的寄存器(PxOUT 和PxIN),对PxOUT赋值就完成了I/O口的输出,将PxIN的值赋给相应变量就完成了I/O口的输入。
另外msp430还有I/O口控制寄存器,PxDIR和PxSEL,PxDIR控制I/O口的输出输入,赋值为‘1’表示输出。
单片机实验蜂鸣器和流水灯
}
unsigned int a;//定义循环变量 unsigned char b;
do{ for(b=0;b<46;b++)//46个花样轮流显示 { for(a=0;a<10000;a++);//延时一段时间 P0=design[b];//读已定义的花样数据并将其输出到P0口 }
}while(1);
实验一流水灯蜂鸣器led流水灯模块led流水灯由8只发光二板管组成阳极通过限流电阻接至5v电源阴极可由jp4跳线至51单片机p0端口进行控制
单片机实验蜂鸣器和流水灯
LED流水灯模块
LED流水灯由8只发光二板管组成,阳极通过限流电阻接至5V电源, 阴极可由JP4跳线至51单片机P0端口进行控制。
LED流水灯的供电电路。
JP4:利用短路帽将P0口与8只LED发光管 连接,通过控制P0口线的输出控制8只LED 的亮/灭。
参考程序
#include <reg51.h>
void main(void)
{
//定义流水灯的花样数据
unsigned char code design[46]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
参考程序Biblioteka #include <reg51.h>
sbit beep=P2^6;
void delay(const unsigned int DELAY)
{
unsigned int x, y;
for (x = 0; x <= DELAY; x++)
{
for (y = 0; y <= 120; y++);
蜂鸣器和流水灯实验
蜂鸣器和流水灯实验一、实验目的1、练习使用SOPC Builder进行硬件构建,熟悉硬件开发流程;2、熟悉NiosII IDE的使用,包括创建NiosII软件工程,系统工程库设置和工程具体C程序的编写等;3、掌握GPIO的使用方法二、实验构建的微处理器系统1、硬件系统图图1 硬件系统图2、原理图Timer图2 原理图三、设计的程序和说明#include"alt_types.h"#include"altera_avalon_pio_regs.h"#include"sys/alt_irq.h"#include"system.h"#include <stdio.h>#include <unistd.h>void delay(alt_u32 cnt); //延时函数申明int main(){alt_u8 cnt;alt_u16 cntt;IOWR_ALTERA_AVALON_PIO_DATA(FM_PIO_BASE,0x0); //初始化蜂鸣器控制端口IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,0xff); //初始化8个LED都处于熄灭状态cntt=0;while(1){IOWR_ALTERA_AVALON_PIO_DATA(FM_PIO_BASE,0x1);// IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,~(1 << cnt)); //给8个LED送数据usleep(500);//delay(16);IOWR_ALTERA_AVALON_PIO_DATA(FM_PIO_BASE,0x0);// IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,~(1 << cnt)); //给8个LED送数据usleep(500);//delay(16);cntt++;if(cntt==231){if(cnt==8) //循环LED显示{ cnt=0;IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,~(1 << cnt));}else{cnt++;IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,~(1 << cnt));//cnt++; //给8个LED送数据}cntt=0;}//}return 0;}//延时函数(延时时间为(2+2*i)us)void delay(alt_u32 cnt){alt_u32 i =0;while(i < cnt){i++;}}四、精度讨论根据设计的要求,蜂鸣器的鸣叫频率为1KHz即1ms,8个LED的流水灯的速度为4Hz即0.25s。
MSP430流水灯蜂鸣器实验报告
MSP430实验报告姓名:学号:一、实验目的:掌握msp430单片机的程序编写和运行过程。
掌握IAR Embedded Workbench程序的编译和运行。
二、实验内容:实现流水灯以三种流动方式和四种流动速度的不同组合而进行点亮"流动",同时每改变一次流水方式,蜂鸣器响一次。
三、使用串口:P2口,P6口四、蜂鸣器实现:通过定义Timer()函数,并在每次改变流水方式时调用Timer()函数,通过对p6接口的设置,来达到蜂鸣器声音的实现。
五、实验代码://BoardConfig.h//typedef unsigned char uchar;typedef unsigned int uint;//控制位的宏定义#define Ctrl_Out P3DIR |= BIT3 + BIT6 + BIT7;#define Ctrl_0 P3OUT &= ~(BIT3 + BIT6 + BIT7)#define SRCLK_1 P3OUT |= BIT7#define SRCLK_0 P3OUT &= ~BIT7#define SER_1 P3OUT |= BIT6#define SER_0 P3OUT &= ~BIT6#define RCLK_1 P3OUT |= BIT3#define RCLK_0 P3OUT &= ~BIT3//板上资源配置函数void BoardConfig(uchar cmd){uchar i;Ctrl_Out;Ctrl_0;for(i = 0; i < 8; i++){SRCLK_0;if(cmd & 0x80) SER_1;else SER_0;SRCLK_1;cmd <<= 1;}RCLK_1;_NOP();RCLK_0;}主函数:#include <msp430x14x.h>#include "BoardConfig.h"void Timer (void);void delay(int z);uint i = 0,j = 0,dir = 0;uchar step = 0xff;uint flag = 0,speed = 0; //flag--灯光流动方式,speed--灯光流动速度void main(void){WDTCTL = WDTPW + WDTHOLD; //关闭看门狗BoardConfig(0xf0);CCTL0 = CCIE; //使能CCR0中断CCR0 = 50000;TACTL = TASSEL_2 + ID_3 + MC_1; //定时器A的时钟源选择SMCLK,增计数模式P2DIR = 0xff; //设置P2口方向为输出P2OUT = 0xff;P6DIR |= BIT7; //蜂鸣器对应IO设置为输出_EINT(); //使能全局中断LPM0; //CPU进入LPM0模式}函数名称:Timer_A功能:定时器A的中断服务函数,在这里通过标志控制流水灯的流动方向和流动速度参数:无返回值:无#pragma vector = TIMERA0_VECTOR__interrupt void Timer_A (void){if(flag == 0){P2OUT = ~(0x80>>(i++)); //灯的点亮顺序D8 -> D1}else if(flag == 1){P2OUT = ~(0x01<<(i++)); //灯的点亮顺序D1 -> D8}else{if(dir) //灯的点亮顺序 D8 -> D1,D1 -> D8,循环绕圈{P2OUT = ~(0x80>>(i++));}else{P2OUT = ~(0x01<<(i++));}}if(i == 8){i = 0;dir = ~dir;}j++;if(j == 8){ Timer();i = 0;j = 0;flag++;if(flag == 4) flag = 0;switch(speed){case 0:TACTL &=~ (ID0 + ID1); TACTL |= ID_3;break;case 1:TACTL &=~ (ID0 + ID1); TACTL |= ID_2;break;case 2:TACTL &=~ (ID0 + ID1); TACTL |= ID_1;break;case 3:TACTL &=~ (ID0 + ID1); TACTL |= ID_0;break;default:break;}if(flag != 3) speed++; if(speed == 4) speed = 0; }}void Timer (void){P6OUT ^= BIT7; // Toggle P6.7delay(1);}void delay(int z){int x;for(x=z;x>0;x--);//for(y=10;y>0;y--);}六、总结通过这次msp430单片机的实验,是我进一步的了解了单片机的远离,虽然在实验过程中遇到了一些问题,但我及时与同学讨论与老师沟通,解决了以上问题。
单片机《蜂鸣器》实验报告
单片机《蜂鸣器》实验报告单片机《蜂鸣器》实验报告一、实验目的本次实验旨在通过单片机的控制,实现对蜂鸣器的驱动和发声控制,进一步了解蜂鸣器的工作原理及应用。
二、实验原理蜂鸣器是一种电子发声器件,常用于发出警告、提示或声音信号。
其工作原理是利用电磁感应原理,在蜂鸣器线圈中通入电流时,会产生磁场,该磁场与蜂鸣器内部的一块磁铁产生相互作用力,使蜂鸣器内部的膜片发生振动,从而发出声音。
在本实验中,我们将通过单片机控制蜂鸣器的驱动信号,使其发出不同的声音,从而实现单片机对蜂鸣器的控制。
三、实验步骤1、准备实验器材:单片机开发板、蜂鸣器模块、杜邦线等。
2、将蜂鸣器模块连接至单片机开发板的某个数字引脚上。
3、通过单片机编程软件编写控制程序,实现对蜂鸣器的控制。
4、将编写好的程序下载到单片机开发板中,并进行调试。
5、通过单片机控制蜂鸣器发出不同的声音,观察其工作情况。
四、实验结果与分析1、实验结果通过本次实验,我们成功实现了单片机对蜂鸣器的控制,可以通过编写不同的程序,使蜂鸣器发出不同的声音。
以下是实验中蜂鸣器发出的声音及其对应的程序代码:(1) 发出“滴”的一声(2) 发出“嘟嘟”的警告声2、结果分析通过实验结果可以看出,通过单片机对蜂鸣器进行控制,可以实现发出不同声音的效果。
在第一个实验中,我们通过设置引脚的高低电平及延时时间,使蜂鸣器发出一声“滴”的声音。
在第二个实验中,我们通过一个无限循环,使蜂鸣器发出“嘟嘟”的警告声。
五、结论与展望通过本次实验,我们深入了解了蜂鸣器的工作原理及应用,并成功实现了单片机对蜂鸣器的控制。
实验结果表明,我们可以根据实际需要编写不同的程序,实现对蜂鸣器的灵活控制。
展望未来,我们可以进一步研究蜂鸣器的其他应用场景,例如在智能家居、机器人等领域中的应用。
我们也可以通过其他方式对蜂鸣器进行控制,例如通过传感器采集信号或者通过无线网络进行远程控制等。
430实验(实验一)流水灯xwz
实验报告课程名称嵌入式系统原理与设计实验名称I/O口的应用专业通信工程班级1301学号201303020102姓名谢稳桩指导教师胡瑛2015年9 月28 日实验一I/O口的应用实验名称I/O口的应用评分实验日期2015 年9 月28 日指导教师胡瑛姓名谢稳桩专业班级通信工程1301 学号201303020102一、实验目的1、熟悉和掌握MSP430单片机I/O的应用;2、掌握LED流水灯的控制;二、实验设备MSP430F5438开发板,示波器三、实验原理实验要求做一个LED显示流水灯,并要求四个灯闪烁,每次亮一个灯,依次闪烁,而且再往回闪烁。
再开发板原理图上找到LED指示灯的电路图,本次我选的是DIG5到DIG8这四个引脚,其分别对应P1.4到P1.7。
因为LED电路图为共阳,所以P1OUT=0时表示这四个LED灯全亮。
四、实验结果及代码分析控制LED灯依次闪烁可以用for语句来循环显示,这里有控制4个灯来显示,所以可以用for(i=0;i<3;i++) 循环四次。
控制第一个灯亮时,P1OUT=11101111。
所以,可以先定义一个temp=00010000来进行左移和右移,再将temp取反后赋值给P1OUT,既可以得到第一个灯亮的效果。
要使灯能够来回闪烁,我们需要定义两个for循环来分别控制从左到右闪烁和从右到左闪烁。
由于需要我们能看清楚LED灯是依次闪烁的,所以需要没闪一个灯都能停顿一下,以便观察,所以我们需要定义一个延迟函数void delay_ms(uint z),并将每次for循环一次就延迟,这样就可以达到没亮一个灯都能延迟一段时间再亮下一个灯。
#include <msp430x54x.h>#define uint unsigned int#define uchar unsigned charvoid delay_ms(uint z) //延迟程序{uint x,y;for(x=571;x>0;x--)for(y=z;y>0;y--);}void main (void){uint i;uchar temp;WDTCTL=WDTPW + WDTHOLD; //关闭看门狗P5DIR |= BIT4; //VCC PWRP5OUT |= BIT4;P7DIR |= BIT3; //LED PWRP7OUT &= ~BIT3;P1DIR=0XF0;P1OUT=0XF0;while(1){temp = 0X10;for(i=0;i<3;i++) //控制LED灯闪烁{P1OUT=~temp;delay_ms(300);temp=temp<<1;}for(i=0;i<3;i++) //控制LED灯闪烁(反向){P1OUT=~temp;delay_ms(300);temp=temp>>1;}}}五、实验结论与体会本次实验让我进一步接触到MSP430单片机的应用,这次实验也是我学习430单片机以来第一次编写的实用程序,刚接触到这个实验的时候,我感觉束手无策,脑海里一片混乱,但在老师和同学的指点下,我最终还是自己理清了思路,成功将程序编写完成,并在开发板上成功显示了流水灯。
msp430 实验报告
msp430 实验报告MSP430 实验报告引言:MSP430是一款低功耗、高性能的微控制器,广泛应用于嵌入式系统开发领域。
本实验报告将介绍我对MSP430进行的一系列实验,包括基本的GPIO控制、定时器应用、模拟信号采集和通信接口应用等。
实验一:GPIO控制在本实验中,我使用MSP430的GPIO引脚控制LED灯的亮灭。
通过配置引脚的输入/输出模式以及设置引脚电平,我成功地实现了对LED灯的控制。
这为后续实验奠定了基础,也让我更加熟悉了MSP430的寄存器配置。
实验二:定时器应用在本实验中,我探索了MSP430的定时器功能。
通过配置定时器的时钟源和计数模式,我实现了定时器中断功能,并利用定时器中断实现了LED灯的闪烁。
这个实验让我更加深入地了解了MSP430的定时器模块,并学会了如何利用定时器进行时间控制。
实验三:模拟信号采集在本实验中,我使用MSP430的模拟信号输入引脚和模数转换模块,成功地将外部的模拟信号转换为数字信号。
通过配置ADC模块的采样速率和精度,我实现了对模拟信号的准确采集,并将采集到的数据通过串口输出。
这个实验让我对MSP430的模拟信号处理有了更深入的了解。
实验四:通信接口应用在本实验中,我使用MSP430的串口通信模块,实现了与外部设备的数据传输。
通过配置串口的波特率和数据格式,我成功地实现了与计算机的串口通信,并通过串口发送和接收数据。
这个实验让我掌握了MSP430与外部设备进行数据交互的方法。
结论:通过一系列的实验,我对MSP430的基本功能和应用有了更深入的了解。
MSP430作为一款低功耗、高性能的微控制器,具备丰富的外设和强大的处理能力,适用于各种嵌入式系统的开发。
通过学习和实践,我掌握了MSP430的GPIO控制、定时器应用、模拟信号采集和通信接口应用等基本技能,为以后的嵌入式系统开发打下了坚实的基础。
未来展望:MSP430作为一款成熟的微控制器,具备广阔的应用前景。
音乐流水灯实验报告(3篇)
一、实验背景随着科技的不断发展,LED灯的应用越来越广泛。
LED流水灯作为一种新型照明设备,具有节能、环保、美观等特点。
为了进一步丰富LED灯的应用,本实验旨在设计一款音乐流水灯,使LED灯的亮度、颜色和闪烁模式随音乐节奏变化,达到一种动态、立体的视觉效果。
二、实验目的1. 了解音乐流水灯的工作原理和设计方法。
2. 掌握音乐流水灯电路的搭建和调试方法。
3. 熟悉音乐信号处理技术,实现音乐与LED流水灯的同步。
三、实验原理音乐流水灯的原理是利用音乐信号处理技术,将音乐信号转换为控制LED灯的亮度、颜色和闪烁模式的信号。
具体步骤如下:1. 将音乐信号输入到音乐处理器中。
2. 音乐处理器对音乐信号进行采样、滤波、放大等处理,提取出音乐信号的频率、振幅等特征。
3. 根据音乐信号的频率和振幅,控制LED灯的亮度、颜色和闪烁模式。
四、实验器材1. Arduino UNO开发板2. LED灯珠(数量根据实际需求而定)3. 电阻(阻值根据LED灯珠的额定电流而定)4. 面包板5. 音频信号发生器6. 万用表7. 烧录器五、实验步骤1. 搭建音乐流水灯电路:将Arduino UNO开发板、LED灯珠、电阻、面包板等元件连接在一起,形成音乐流水灯电路。
2. 编写程序:使用Arduino IDE编写程序,实现音乐信号处理和LED灯控制功能。
3. 烧录程序:将编写好的程序烧录到Arduino UNO开发板中。
4. 连接音频信号发生器:将音频信号发生器的输出端连接到Arduino UNO开发板的A0引脚。
5. 连接耳机:将耳机连接到Arduino UNO开发板的3.5mm音频接口。
6. 调试电路:检查电路连接是否正确,确保电路工作正常。
7. 播放音乐:播放音乐,观察LED灯的亮度、颜色和闪烁模式是否随音乐节奏变化。
六、实验结果与分析1. 实验结果:通过实验,成功实现了音乐流水灯的功能。
当播放音乐时,LED灯的亮度、颜色和闪烁模式会随音乐节奏变化,达到一种动态、立体的视觉效果。
实验报告_流水灯与蜂鸣器
重庆理工大学实验报告课程汇编语言程序设计题目流水灯与蜂鸣器实验院系名称计算机科学与工程学院班级 115030703 学生姓名郭鑫学号 11503070310 任课教师但远宏时间 2016-11-151 电路原理分析1.1 LED及其驱动电路工作原理Led灯两端为高电势灯不亮,两端出现电势差则灯亮,因为led的一端接的VCC,.所以I/O口为高电势不亮,为低电势就亮,所以通过控制P0端的电势,就能控制led。
1.2 蜂鸣器及其驱动电路工作原理蜂鸣器里由三极管,I/O口驱动三极管,如果I/O口为高电平,三极管导通,集电极电流通过蜂鸣器让蜂鸣器发出声音,如果I/O口为低电平,三极管截止,没有电流流过蜂鸣器,所以就不会发出声音。
2 程序设计与实现2.1用位操作依次点亮1、3、5、7,再点亮2、4、6、8用一个值来表示8个灯的状态,每次循环都将这个状态赋给P0口,改变灯的状态起始状态为1111 1111,都不亮,使用位左移两个,变为1111 1100,再加2,变为1111 1110循环3次变为1010 1010,此时已经完成依次亮1 3 5 7用一个计数器记录循环次数,接下来循环只执行位左移两个,不用加2最终变为0000 0000程序完成2.2 用总线操作依次点亮1、3、5、7,再点亮2、4、6、8直接改变P0口的值,使其控制的灯亮,比如先是0xff -> 0xfe这样就使灯1亮依次改变P0的值就能完成2.3 间隔100ms先奇数灯亮再偶数亮,循环三次,每循环一次,蜂鸣器响一声;8个全部闪烁3次;关闭发光管,程序停止先将奇数亮的值0x55赋给P0,等100ms,再将偶数亮的值0xaa赋给P0,等100ms,将P2^4也就是蜂鸣器的I/O口赋0,再赋1,形成依次蜂鸣。
循环三次,用计数器记录循环次数。
当计数器为三时,结束循环,将P0赋0x00,再赋0xff,完成一次闪烁,计数器减一,当计数器为0,进入死循环,程序停止。
msp430 流水灯
实验一 流水灯实验一. 实验内容与目的1. 实验内容实现LED 灯的顺次点亮。
2. 实验目的对msp430有初步了解,学会msp430I/O 口的使用方法,了解msp430的内部资源,学习尝试使用msp430的时钟、中断。
二. 方法与结果用P2口对led 的亮灭进行控制(对P2口赋值为0时led 点亮,电路图如下),使用msp430比较器0和定时器产生1s 的定时,当定时到1s 时改变led 的状态(流程图如下)。
D1D2D3D4D5D6D7D8VCCR111K R121K R131K R141K R151K R161K R171K R181K P_20P_21P_22P_23P_24P_25P_26P_27三. 实现程序#include<msp430.h>void main( ){WDTCTL = WDTPW + WDTHOLD; //关闭看门狗中断P2DIR=0xff; //设定P2口为输出P1SEL=0x00; //设定P2口为普通I/O 口CCTL0=CCIE; //开启比较器0中断CCR0=32768; //定时时间的选取,当计数器TAR 计数到CCR0时,跳到中断TACTL=TASSEL_1+MC_1;//TACTL 是计数器的控制寄存器,选择时钟系统,对单片机端口参数进行设定,设定P2口初值 设定时钟产生1s 定时,开中断 响应中断,改变led 的状态计数方式P2OUT=0xfe; //设定P2口初值_EINT(); //开启总中断LPM3; //进入低损耗模式}#pragma vector=TIMERA0_VECTOR__interrupt void timer() //中断程序{if(P2OUT==0x7f){P2OUT=0xfe;}else{P2OUT=P2OUT<<1;P2OUT=P2OUT|0x01; //位操作,改变led的状态}}四.流水灯实验总结①msp430的P1~P6口都可以用作I/O口,但msp430不能利用对I/O口直接赋值的方法控制I/O口的输出、接收I/O口的输入,而是利用相应的寄存器(PxOUT 和PxIN),对PxOUT赋值就完成了I/O口的输出,将PxIN的值赋给相应变量就完成了I/O口的输入。
流水灯和蜂鸣器--实习训练报告暨教案
江苏省高邮职业教育中心校《单片机》实习训练报告
课题:流水灯和蜂鸣器成绩:班级:姓名:同组姓名:
组别:编号:日期:指导教师:
一、实训目的
1.学习I/O口的使用;
2.学习延时程序的编写和使用;
3.练习循环语句的编写和使用。
二、实训设备
三、程序清单
四、电路原理图及操作步骤
五、实训总结
1、实训有关数据、现象的记录及分析;
LED灯循环点亮,同时蜂鸣器鸣叫。
改变延时参数可以改变LED灯循环和蜂鸣器鸣叫的快慢。
2、思考题;
试述51单片机的特殊功能寄存器分布及使用。
有21个可寻址的特殊功能寄存器,它们不连续地分布在片内RAM的高128单元中,尽管其中还有许多空闲地址,但用户不能使用。
另外还有一个不可寻址的特殊功能寄存器,即程序计数器PC,它不占据RAM单元,在物理上是独立的。
在可寻址的21个特殊功能寄存器中,有11个寄存器不仅可以字节寻址,也可以进行位寻址。
3、实训过程中出现的问题及其分析和解决方法;
蜂鸣器不停鸣叫,经检查是因为程序中未使之不鸣叫,即令beep=1,并延时。
430单片机实验报告
1、建立工程
2、编写程序,编译、运行
3、把程序下载到单片机中
4、程序代码:
#include <msp430g2452.h>
int i=0;
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
//P1SEL |= 0x06; // P1.1 - P1.2 option select
unsigned char temp;
P1OUT=0; //p1out全为0;等待按键输
temp=P1IN;
if((temp&0xf0)<0xf0) ; //如果有键按下;
{
delay();
Key_Scan();
switch(key_val)
{
case 0:P2DIR|=0xff;P2OUT=0x3f;break;
}
void main()
{
WDTCTL=WDTPW+WDTHOLD;
init_keyboard();
delay();
ctrlkey(1);
while(1)
{
key_event();
}
}
五、实验设备
计算机、IAR-FET集成开发环境、MSP430G2553单片机
六、问题分析
使用单片机的P1口与矩阵式键盘连接时,可以将P1口低4位的4条端口线定义为行线,P1口高4位的4条端口线定义为列线,形成4*4键盘,可以配置16个按键,将单片机P2口与七段数码管连接,当按下矩阵键盘任意键时,数码管显示该键所在的键号。
P2SEL=0X00;
key_val=0;
}
void Key_Scan(void) //扫描键盘获得键值
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MSP430实验报告
姓名:
学号:
一、实验目的:
掌握msp430单片机的程序编写和运行过程。
掌握IAR Embedded Workbench程序的编译和运行。
二、实验内容:
实现流水灯以三种流动方式和四种流动速度的不同组合而进行点亮"流动",同时每改变一次流水方式,蜂鸣器响一次。
三、使用串口:
P2口,P6口
四、蜂鸣器实现:
通过定义Timer()函数,并在每次改变流水方式时调用Timer()函数,通过对p6接口的设置,来达到蜂鸣器声音的实现。
五、实验代码:
//BoardConfig.h//
typedef unsigned char uchar;
typedef unsigned int uint;
//控制位的宏定义
#define Ctrl_Out P3DIR |= BIT3 + BIT6 + BIT7;
#define Ctrl_0 P3OUT &= ~(BIT3 + BIT6 + BIT7)
#define SRCLK_1 P3OUT |= BIT7
#define SRCLK_0 P3OUT &= ~BIT7
#define SER_1 P3OUT |= BIT6
#define SER_0 P3OUT &= ~BIT6
#define RCLK_1 P3OUT |= BIT3
#define RCLK_0 P3OUT &= ~BIT3
//板上资源配置函数
void BoardConfig(uchar cmd)
{
uchar i;
Ctrl_Out;
Ctrl_0;
for(i = 0; i < 8; i++)
{
SRCLK_0;
if(cmd & 0x80) SER_1;
else SER_0;
SRCLK_1;
cmd <<= 1;
}
RCLK_1;
_NOP();
RCLK_0;
}
主函数:
#include <msp430x14x.h>
#include "BoardConfig.h"
void Timer (void);
void delay(int z);
uint i = 0,j = 0,dir = 0;uchar step = 0xff;
uint flag = 0,speed = 0; //flag--灯光流动方式,speed--灯光流动速度
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
BoardConfig(0xf0);
CCTL0 = CCIE; //使能CCR0中断
CCR0 = 50000;
TACTL = TASSEL_2 + ID_3 + MC_1; //定时器A的时钟源选择SMCLK,增计数模式
P2DIR = 0xff; //设置P2口方向为输出
P2OUT = 0xff;
P6DIR |= BIT7; //蜂鸣器对应IO设置为输出
_EINT(); //使能全局中断
LPM0; //CPU进入LPM0模式
}
函数名称:Timer_A
功能:定时器A的中断服务函数,在这里通过标志
控制流水灯的流动方向和流动速度
参数:无
返回值:无
#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
if(flag == 0)
{
P2OUT = ~(0x80>>(i++)); //灯的点亮顺序D8 -> D1
}
else if(flag == 1)
{
P2OUT = ~(0x01<<(i++)); //灯的点亮顺序D1 -> D8
}
else
{
if(dir) //灯的点亮顺序 D8 -> D1,D1 -> D8,循环绕圈
{
P2OUT = ~(0x80>>(i++));
}
else
{
P2OUT = ~(0x01<<(i++));
}
}
if(i == 8)
{
i = 0;
dir = ~dir;
}
j++;
if(j == 8)
{ Timer();
i = 0;
j = 0;
flag++;
if(flag == 4) flag = 0;
switch(speed)
{
case 0:
TACTL &=~ (ID0 + ID1); TACTL |= ID_3;
break;
case 1:
TACTL &=~ (ID0 + ID1); TACTL |= ID_2;
break;
case 2:
TACTL &=~ (ID0 + ID1); TACTL |= ID_1;
break;
case 3:
TACTL &=~ (ID0 + ID1); TACTL |= ID_0;
break;
default:
break;
}
if(flag != 3) speed++; if(speed == 4) speed = 0; }
}
void Timer (void)
{
P6OUT ^= BIT7; // Toggle P6.7
delay(1);
}
void delay(int z)
{int x;
for(x=z;x>0;x--);
//for(y=10;y>0;y--);
}
六、总结
通过这次msp430单片机的实验,是我进一步的了解了单片机的远离,虽然在实验过程中遇到了一些问题,但我及时与同学讨论与老师沟通,解决了以上问题。
在此次试验中,我充分的了解到了实践的重要性。