实验二:MSP430简单程序设计(2学时)

实验二:MSP430简单程序设计(2学时)

1.实验目的

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

2.实验要求

    掌握编写排序程序。

3.实验内容

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

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

4.参考资料

MSP430光盘资料


#include <msp430x14x.h>
#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]<a[j])
              {
                  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程序的网友拿去,各种例题,源码,可以直接拿来用的例程。 程序目录: MSP430F149+1602数码显示和实时时钟 MSP430F149,IAR,ADC采样之后对太阳点光源进行跟踪 MSP430F149 AD7705程序 MSP430 BH1750测量光强(已测试) Launch Pad NOKIA5110 Clock 使用MSP430单片机控制超声波测距并使用5110显示 基于MSP430的MP3 源码+电路图+PCB+字库+SD卡 基于MSP430单片机控制坦克打靶C语言源程序代码 MSP430F149 GSM基本控制,初始化接收短息,解读短信 ADXL重力加速度传感器实现计步器程序(利用MSP430F135实现) 利用MSP430的PWM功能实现电机的调速(可实现精确调速) TI公司MSP430芯片评估板lantchpad的电容式触摸板的源码 基于MSP430F149单片机的1602程序代码 基于MSP430F149单片机的nRF24L01无线通信程序 基于MSP430F149单片机的串口0驱动程序 基于MSP430F149单片机的温湿度传感器SHT1X驱动程序 基于MSP430F149的12864的显示图片 基于MSP430F149的AD转换,在液晶1602上显示 基于MSP430F149的触摸手写程序 基于MSP430F149为主芯片下的红外线解码资料源程序 基于MSP430F249的GPS+GPRS车载GPS 基于MSP430单片机的电子式互感器采集器的程序 基于MSP430单片机的智能电表 基于MSP430的触摸屏校正程序 基于MSP430的温度传感器DS18B20对温度的检测和显示 基于单片机MSP430的DS1302的时钟芯片编程,实现时钟显示 利用MSP430实现的超低功耗触摸屏 使用MSP430低功耗微处理器制作的斜度计(开发平台是IAR) 通过MSP430(149)单片机控制DHT11温湿度传感器 MSP430F149单片机与RF2401硬件SPI无线通信 MSP430f149控制LCD12864显示汉字、字母 MSP430F149通过SPI接口控制ADS1216 MSP430F449实现频率测量,呼吸灯,自己写的,调试OK MSP430x13x, MSP430F14x, MSP430F15x, MSP430F16x Code Examples MSP430x14x读写FM25L256程序 MSP430x14x模糊逻辑马达控制-源程序,已通过测试 MSP430单片机短息收发程序 MSP430平台 AM2301测量光强(已测试) MSP430热电偶开发程序,高精度测量,带标定 MSP430热电阻开发,高精度测量,带标定,修正 MSP430小车解决方案含Protel和源代码 MSP430与指纹识别
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值