MSP430单片机原理及应用 实验

发布者:笑脸猫最新更新时间:2020-05-13 来源: eefocus关键字:MSP430  单片机  实验 手机看文章 扫描二维码
随时随地手机看文章

单片机原理及应用 课程实验(二)

实验项目:MSP430简单程序设计

实验目的:学会用C语言进行简单程序设计

实验要求:掌握编写排序程序


实验内容:

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

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

程序代码如下:


#include

#include "Config.h"

#include

#include

#include

int ans;         //  全局变量控制输出


//  初始化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() 

{

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

    ans = 0;                        //ans清零

    delay_ms(100);

}


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

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

{

    if(ans<16)

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

    else 

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

    while(*s) 

    {

        LCD_write_data(*s);

        s++;

    }

}



//  显示屏初始化函数

void LCD_init() 

{

    ans = 0;

    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]={12,123,22,2,1,125,19,3};//自己定义数据

     int i, j;

     //对数据进行排序

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

     {

          for(j=0;j<7-i;j++)

          {

              if(a[j]>a[j+1])

              {

                  int temp = a[j];

                  a[j] = a[j+1];

                  a[j+1] = temp;

              }

          }

     }

     while (1) 

      {

          //字符串输出显示

          LCD_clear();

          ans = 0;

          int k = 0;

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

          {

              char str[3];

              if(i%2==0)

              {

                  if(a[k]/100==0)      //不够三位数字

                   {

                     if(a[k]/10==0)        //只有一位数字

                     {

                       str[2] = a[k]%10+'0';

                       str[0] = str[1] = '0';

                     }

                     else           //两位数字

                     {

                       str[2] = a[k]%10+'0';

                       str[0] = '0'; 

                       str[1] = a[k]/10+'0';

                     }

                   }

                   else        //三位数字

                   {

                       str[2] = a[k]%10+'0';

                       str[0] = a[k]/100+'0'; 

                       str[1] = a[k]%100/10+'0';

                   }

                   LCD_write_str(ans%16,ans/16, str);

                   k++;

                   ans += 3;

                 }

                 else

                 {

                   LCD_write_str(ans%16,ans/16,"<");

                   ans++;

                 }

             }

     delay_ms(2000);

      }

}


关键字:MSP430  单片机  实验 引用地址:MSP430单片机原理及应用 实验

上一篇:实验二:MSP430简单程序设计
下一篇:MSP430 开发中遇到的坑(待续)

推荐阅读最新更新时间:2024-11-06 10:24

I2C总线的单片机C语言实现及其应用
1 I2C总线概述   I2C(Intel-Integrated Circuit)总线是荷兰的Philips公司于八十年代初推出的一种芯片间串行总线扩展技术。它用两根线(数据线SDA、时钟线SCL)可完成总线上主机与器件的全双工同步数据传送,可极方便地构成多主机系统和外围器件扩展系统。I2C总线支持所有NMOS、CMOS、TTL等工艺制造的器件,其上所有的节点都连到同名的SDA、SCL上。I2C总方法,数据传送都有相同的操作模式,接口电器特性相同且独立,可在系统供电情况下从系统中移去或增加IC芯片,有I2C接口的外围器件都有应答能力,读写片内单元时有地址自动加1功能,易实现多个字节的自动操作。近年来,国际上有关公司制造了多达几百
[单片机]
I2C总线的<font color='red'>单片机</font>C语言实现及其应用
msp430单片机实现PWM
PWM信号是一种具有固定周期(T)不定占空比(t)的数字信号,如下图所示。如果PWM信号的占空比随时间变化,那么通过滤波之后的输出信号将是幅度变化的模拟信号。因此通过控制PWM信号的占空比,就可以产生不同的模拟信号。 msp430单片机利用Timer_A或者Timer_B可以很好的实现产生任意PWM信号。 Timer_A定时器的计数器工作在增计数方式,输出采用模式7(复位/置位模式),则可以利用CCR0控制PWM波形的周期,用某个寄存器CCRx控制占空比。原理图如下:(注:这幅图片为网上下载,他用的是Timer_B定时器,故输出TBx) 摘录下面一段: http://www1.ti.com.cn/
[单片机]
<font color='red'>msp430</font><font color='red'>单片机</font>实现PWM
SST单片机 P4端口 的使用方法
SST89e516的44管脚封装芯片,与MCS51多了一个P4口,P4口与P0~P3等一样使用的 IO,区别在于P4口的地址为A5H,在头文件中,需加 sfr P4 = 0xa5; 在使用中你会发现不可以用sbit,也就是说,因为P4口地址为A5H,不能被8整除,故不能位操作,在编程的时候,可以用 位与 或 位或 的方式完成位操作,这样就可以作为普通的IO口使用了。 举例: 位与:i = P4 & 0x01; // 将P4^0的值取出来了 位或:i = !(~(P4 | 0xfe)); // 将P4^0的值取出来了
[单片机]
基于MSP430单片机的PID参数整定仪
  PID控制是最常的控制策略,在工业过程控制中90%以上的控制回路具有PID结构。PID控制之所以被广泛应用主要是因为它算法简单,在实际中容易被理解和实现,而且许多高级控制都以PID控制为基础。但是由于环境的变化,使被控对象具有时变性,参数经过一段时间以后会出现性能欠佳、适应性变差、控制效果下降等情况。因此,寻求参数自动整定技术,以适应复杂工况及高性能指标的控制要求,是实现节能优化控制的重要手段,具有重大的工程实践意义。   1 自整定过程原理   本文主要研究了一种手持式的PID参数整定仪器,此整定仪具有整定单变量和双变量的双重功能,控制系统主要采用低能耗的MSP430微控制器,软件部分采用的软件开发平台是IAR MSP4
[单片机]
基于<font color='red'>MSP430</font><font color='red'>单片机</font>的PID参数整定仪
单片机测试系统的数据存储和管理
引言 在自动化测试领域里,单片机测试系统凭借其成熟的应用体系,简单的系统结构以及优良的性价比得到了越来越广泛的应用。近年来,随着新的测试对象不断出现,以及测试手段的不断发展,测试系统的功能越来越完善,各种应用场合对测试系统的要求也日益提高。现在的大多数测试系统不仅要完成工业现场的实时测控任务,同时还要进一步实现对测试数据的实时处理和保存。以往在一般的单片机测试系统中,信息的存储量并不大,系统只须用较少的资源就能实现数据的存储。但是随着存储芯片技术的不断发展,适用于单片机系统的存储芯片已经可以在掉电保护的情况下保存上百KB甚至几MB的数据;同样,目前的单片机测试系统也面临动辄处理并保存上千条乃至近万条测试数据的问题。这对一般的缺少
[应用]
在不使用微控制器的情况下构建一个线跟随机器人
线跟随机器人 (LFR)是一种跟随线的机器,它可能是一条黑线或一条白线。跟随机器人对初学者友好且易于理解和构建。而线追随者机器人使用 或其他微控制器构建很流行且很常见,让我们尝试在没有微控制器的情况下构建相同的东西,并真正了解其工作背后的逻辑,并使用基本的设备来设计逻辑。顾名思义,机器人基本上会沿着一条线走,但可以构建更高级的版本,例如,我们可以让机器人追踪线并找到起点和终点之间的短距离,或者让机器人解决线的迷宫等。让我们在这里尝试一个简单的基本行跟随机器人。该机器人基本上由一对用于检测线路的和两个用于控制运动和方向的组成。 构建线跟随机器人所需的组件 IR 、发射器和接收器(2 对) 100k、220 ohm、1
[机器人]
单片机波形图及程序
用 单片机 产生方波、锯齿波、三角波、梯形波,频率可调 #include reg51.h #define uchar unsigned char #define uint unsigned int unsigned char x=0,m=0,y=128; sbit WR_DA=P2^1; sbit CS_DA=P2^0;//DA与 单片机 的接口 sbit S0=P3^0; //波形选择,每次按下将产生不同的波形 sbit S1=P3^1; //频率减 sbit S2=P3^2; //频率加 sbit S3=P3^3; //调节方波的占空比 uchar code SinTab ={0x80,0x83,0x86,0
[单片机]
<font color='red'>单片机</font>波形图及程序
应对32位MCU挑战分销商改变服务策略
近几年,MCU产品开发客户的设计周期不断缩短、上市速度不断加快,在这种情况下,分销商仅仅提供参考设计已经不能满足客户的需求。目前,MCU产品开发非常需要产品集成开发环境的支持。面对新形势,国内知名分销商在提供MCU集成开发环境方面做了很多工作,通过自行开发或者原厂提供的方法加快客户产品的上市周期。同时,针对8位和32位MCU应用的不同需求,分销商也采用不同的服务策略,力争满足客户的多种需求。 提供强大开发环境 简单、易用、功能强大的开发工具和开发环境是保证客户MCU应用产品开发成功的关键。因此,益登科技、丰宝、武汉力源等国内知名分销商非常注重提供此类产品。 益登科技资深业务工程师冯重农在接受《中国电子报》记者采访时说:“我们
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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