实验二:MSP430简单程序设计

发布者:塞上老马最新更新时间:2019-04-10 来源: eefocus关键字:MSP430  程序设计 手机看文章 扫描二维码
随时随地手机看文章

1.实验目的


    学会用C语言进行简单程序设计。


2.实验要求


    掌握编写排序程序。


3.实验内容


(1)设计一个对8个数据(0-255,任意设置)的由小到大排序程序。


(2)将结果显示在LCD显示器上。


4.参考资料


#include

#include "Config.h"

 

//*************************************************************************

// 初始化IO口子程序

//*************************************************************************

void Port_init()

{

 

P4SEL = 0x00;

        P4DIR = 0xFF;                   //数据口输出模式

        P5SEL = 0x00;

        P5DIR|= BIT5 + BIT6 + BIT7;     //控制口设置为输出模式

}

 

//***********************************************************************

// 显示屏命令写入函数

//***********************************************************************

void LCD_write_com(unsigned char com) 

{

RS_CLR;

RW_CLR;

EN_SET;

DataPort = com;                 //命令写入端口

delay_ms(5);

EN_CLR;

}

 

//***********************************************************************

// 显示屏数据写入函数

//***********************************************************************

void LCD_write_data(unsigned char data) 

{

RS_SET;

RW_CLR;

EN_SET;

DataPort = data;                //数据写入端口

delay_ms(5);

EN_CLR;

}

 

//***********************************************************************

// 显示屏清空显示

//***********************************************************************

void LCD_clear(void) 

{

LCD_write_com(0x01);            //清屏幕显示

delay_ms(5);

}

 

//***********************************************************************

// 显示屏字符串写入函数

//***********************************************************************

void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s) 

{


    if (y == 0) 

    {

    LCD_write_com(0x80 + x);        //第一行显示

    }

    else 

    {

    LCD_write_com(0xC0 + x);        //第二行显示

    }

    

    while (*s) 

    {

    LCD_write_data( *s);

    s ++;

    }

}

 

//***********************************************************************

// 显示屏单字符写入函数

//***********************************************************************

void LCD_write_char(unsigned char x,unsigned char y,unsigned char data) 

{


    if (y == 0) 

    {

    LCD_write_com(0x80 + x);        //第一行显示

    }

    else 

    {

    LCD_write_com(0xC0 + x);        //第二行显示

    }

    

    LCD_write_data( data);  

}

 

//***********************************************************************

// 显示屏初始化函数

//***********************************************************************

void LCD_init(void) 

{

    LCD_write_com(0x38); //显示模式设置  

    delay_ms(5);

    LCD_write_com(0x08); //显示关闭

    delay_ms(5);

    LCD_write_com(0x01); //显示清屏

    delay_ms(5);

    LCD_write_com(0x06); //显示光标移动设置

    delay_ms(5);

    LCD_write_com(0x0C); //显示开及光标设置

    delay_ms(5);

}

 

//***********************************************************************

//      主程序

//***********************************************************************

void main(void)

{

     WDT_Init();                         //看门狗设置

     Clock_Init();                       //系统时钟设置

     Port_init();                        //系统初始化,设置IO口属性

     delay_ms(100);                      //延时100ms

     LCD_init();                         //液晶参数初始化设置

     LCD_clear();                        //清屏

     

     int a[8]={5,6,2,4,3,1,8,7};

     int i, j;

     

     for(i=0;i<8;i++)

     {

          for(j=0;j<8;j++)

          {

              if(a[i]

              {

                  int t = a[i];

                  a[i]=a[j];

                  a[j] = t;

              }

          }

     }

     

     while (1) 

      {

             //字符串输出显示

LCD_clear();

LCD_write_str(0,0,"Array:");

for(i=0;i<15;i++)

                {

                    if(i%2==0)

                       LCD_write_char(i,1,a[i/2]+'0');

                    else

                       LCD_write_char(i,1,'<');

                }

delay_ms(2000);

      }

}

关键字:MSP430  程序设计 引用地址:实验二:MSP430简单程序设计

上一篇:实验三:MSP430输入输出接口实验(2学时)
下一篇:MSP430串口接收控制LED

推荐阅读最新更新时间:2024-03-16 16:27

MSP430 flash的操作
今天顺便研究了一下msp430的flash操作,很多人也许看了我的博客,会发现网站上有很多的人总结得比我要好,这点我承认,因为自己能力有限,但是,从这篇博客起,我会参照以前大神们写的博客,添加大神们写过的博客链接,分享给大家,注明:本人从不抄袭他人博客,博客只是个人技术的一个总结~~~,下面进入今天的正题 msp430F149有60k的flash,这个对于51来说,是相当的惊人的了,在涉及到flash的操作的时候,往往涉及到三个寄存器,FCTL1,FCTL2,FCTL3。突然间发现msp430的寄存器都有CTL这个字样,这对于记住不同的寄存器操作很有必要,这里我们要明白各个寄存器的用途 FCTL1是控制如何进行操作,比如读写,
[单片机]
基于MSP430F149型FLASH单片机实现微波辐射成像系统的设计
引言 ----在无源微波遥感中,微波辐射计是一种获取场景微波特征的重要手段。微波辐射计通常是一部超外差接收机,通过接收被测场景在一定频带内的电磁辐射,转换为输出的低频信号,来表征被测场景的地物信息。利用微波辐射计来探测、接收被测目标、背景在微波波段的电磁辐射,并把接收到的辐射信号按比例用伪彩色图像直观地显现出来的系统称为微波辐射成像系统。 ----微波辐射成像系统要求在恶劣的环境和天气下长期稳定地进行天线扫描成像,所以要求系统设备用于天线扫描控制及数据采集的电路尽量简单、稳定。基于以上的要求,采用了TI公司所生产的MSP430F149型超低功耗FLASH单片机作为这套系统的从机部分,该单片机有60KB的FLASH存储器和2KB
[单片机]
基于<font color='red'>MSP430</font>F149型FLASH单片机实现微波辐射成像系统的设计
基于MSP430F149单片机的直流电子负载设计
摘要鉴于电子负载在电源设备测试中的广泛应用,研制了一台以MSP430F149单片机为核心处理器的直流电子负载。单片机MSP430F149内设ADC12模块对负载电压、电流信号实时采样,并外设10位D/A转换芯片TLC5615输出模拟电压信号驱动MOS管,内部控制采用BP神经网络算法,实现定电流、定电压、定电阻和定功率4种工作模式。经安装测试,系统调整时间 3 s,电压电流测量误差均 ±0.5%,且跟踪速度快、测量精度高,并具有一定的经济实用价值。 在电子、通信、能源等领域中,需要对电源稳压器、蓄电池和功率电子元件等设备进行测试。在进行传统的负载测试时,需要用电阻、电容和电感或是其串并联组合来模拟实际负载情况,该测试方法其负载调
[单片机]
基于<font color='red'>MSP430</font>F149单片机的直流电子负载设计
嵌入式低功耗射频/红外转换控制器的研制
  0 引言   在智能化家居控制系统应用中,无线通信和控制已经越来越广泛地被运用。为了实现对居室电器设备的集中无线控制,可采用电话遥控、手持遥控器进行远程或短距离的无线控制,但所控制和传输的信号都是RF信号。然而有些被控对象本身是用红外信号遥控的,例如电视机、空调,由于各种品牌的空调都有自己的红外编码信号,相互不能通用,这就给智能化家居控制系统中红外遥控器的集中无线控制带来了极大的不便。本文就基于Msp430的低功耗RF/红外控制器的设计与实现进行介绍。   1 工作原理   大多数红外遥控信号的输出都是用编码后串行数据对38~40KHz的方波进行脉冲幅度调制而产生的PWM信号,如图1所示。各种品牌的红外遥控器的编码信号
[工业控制]
MSP430 G2553 低功耗模式LPMx
MSP430除了正常运行时的active模式外,还支持五种低功耗模式(Low-power mode),分别为LPM0、LPM1、LPM2、LPM3、LPM4,由状态寄存器中的CPUOFF、OSCOFF、SCG0、SCG1比特位设置。 六种模式对应的时钟状态为: 其中,LPM3、LPM4比较常用,对低功耗的贡献也最大。LPM3模式关闭了DCO、CPU,从而MCLK、SMCLK无法工作,ACLK(来源为LFXT1或VLO)可以正常工作并用于系统的定时唤醒。LPM4模式下所有内部时钟信号都关闭,系统只能由外部中断唤醒。几种模式的功耗情况大致如下图所示: io430g2553.h头文件中已经宏定义好了几种模式的实现语句: #
[单片机]
<font color='red'>MSP430</font> G2553 低功耗模式LPMx
MSP430G2553时钟系统配置
在MSP430单片机中,一个时钟周期 = MCLK晶振的倒数。如果MCLK是8MHz,则一个时钟周期为1/8us。 一个机器周期 = 一个时钟周期,即430每个动作都能完成一个基本操作。 一个指令周期 = 1~6个机器周期,具体根据具体指令而定。 另外,指令长度只是一个存储单位,与时间没有必然的关系。 MSP430G2553单片机的时钟模块主要包括: 三个时钟:辅助时钟ACLK 、主时钟MCLK 、子系统时钟SMCLK 三个时钟源:内部低频时钟源LFXT1 、内部数字控制RC振荡器DCO、外部低频振荡器(需要焊上晶振) 对于时钟系统的配置,一共用到四个寄存器:DCOCTL-DCO控制寄存器、BC
[单片机]
<font color='red'>MSP430</font>G2553时钟系统配置
基于MSP430单片机的便携式气象仪设计
  设计了一种低功耗便携式气象仪,该气象检测系统以低功耗MSP430单片机为主控,利用温度传感器、湿度传感器、气压传感器、风速和风向测量模块,进行温度、湿度、气压、风速、风向的测量;通过时钟芯片和12864液晶实现数据的实时显示;通过E2PROM进行数据的实时存储和查询。该气象仪具有小型化、实时化、低功耗和便携式等特点,测试结果表明该气象仪的测量精度可达普通气象测量要求,稳定性好,特别适用于小区域的气候监测。   0引言   温度、湿度、气压、风速、风向等气象参数的测量在日常生活、农业、渔业、工业、林业、航海等领域中起着十分重要的作用,很多地区气象参数的测量大多依靠当地天气预报,可是,天气预报地域范围较广,无法精确到小区域的气
[单片机]
基于<font color='red'>MSP430</font>单片机的便携式气象仪设计
MSP430F5xxx 在高速公路不停车收费系统(ETC)
摘要 本文探讨了使用MSP430F5xxx实现ETC系统中实时HDLC编解码的方法。MSP430F5xxx是TI公司MSP430家族最新产品序列,采用先进的0.18工艺,1MIPS消耗的电流低到了惊人的160uA。同时,F5xx产品都配备了高效灵活的DMA模块,对16bit数据进行搬移只需要2个时钟周期。 MSP430介绍 TI公司的MSP430 单片机产品系列具备16-bit RSIC架构,超低功耗。作为MSP430最新产品序列,F5xxx首次采用0.18um工艺,1MIPs消耗的电流低到了惊人的160uA,主频达到25MIPs 。同时,MSP430F5xxx提供了丰富的片上功能模块,例如,硬件的RTC,12-bit
[单片机]
<font color='red'>MSP430</font>F5xxx 在高速公路不停车收费系统(ETC)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved