MSP430G2553+LCD1602字符滚动/嵌入式课程设计/C语言

发布者:HeavenlyWonder最新更新时间:2020-07-06 来源: eefocus关键字:MSP430G2553  LCD1602  字符滚动 手机看文章 扫描二维码
随时随地手机看文章

首先,这次实验设计中我们实现的是在LCD1602上进行的字符滚动,用的单片机是MSP430G2553,跑的软件是CCS。是一个非常简单的程序设计,但是我C语言和单片机这部分都学得很差哈哈,放上来给大家参考参考,同时鼓舞一下大家的信心。


软件程序部分


该程序主要由主程序源程序main.c、子程序源程序LCD.c和子程序头文件LCD.h构成。采用这种程序结构,使程序更加清晰,一目了然,减少程序错误的机会,增强了程序的可移植性。在程序设计中MSP430G2553中P1口作为并行数据输出端,P2.0、P2.1、P2.2分别作为LCD1602液晶的RS、RW、E端。


1)主函数main.c


#include

#include "LCD.h"


#define uint unsigned int

#define uchar unsigned char


void main(void)

  {

    WDTCTL = WDTPW | WDTHOLD;

    P1DIR=0xff;

    P2DIR=0xff;

    uchar *table0="Lanzhou         ";

    uchar *table1="University      ";

    while(1)

    {

        Display(table0,table1);

        Delay_1s();

        Cycling(table0,table1);

    }

      }


2)子函数LCD.c


#include

#include"LCD.h"


#define uint unsigned int

#define uchar unsigned char


//延时1ms程序

void Delay_1ms(void)

{

    uchar i,j;

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

    {

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

    }

}


//延时1s程序

void Delay_1s(void)

{

    int i,j;

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

    {

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

    }

}


//液晶显示程序

void Display(uchar *table0,uchar *table1)

{

    uchar i,j;//定义计数值

    Reset();//初始化


    Instruction(0x80);//写指令

    for(i=0;i<16;i++)//发送数据第一行

    {

        DataWrite(table0[i]);

    }

    Instruction(0xc0);

    for(j=0;j<16;j++)//发送数据第二行

    {

        DataWrite(table1[j]);

    }

}


//循环显示程序

void Cycling(uchar *table0,uchar *table1)

{

    int m,n;

    //当一次循环完成时,跳回到初始状态

    for (n=0;n<17;n++)

    {

        if (n==16)

                {

                    uchar *table0="Lanzhou         ";

                    uchar *table1="University      ";

                }

        else

        {

                for(m=1;m<16;m++)

                {

                    table0[m-1]=table0[m];

                    table1[m-1]=table1[m];

                    table0[15]=" ";

                    table1[15]=" ";

                }//移位循环程序

        }

    }

}


//查询忙碌标志信号程序

void Busy(void)

{

    do

    {

        CLR_EN;

        SET_RW;

        CLR_RS;

        SET_EN;

        busy=dat;

        CLR_EN;

        Delay_1ms();

    }

    while(busy&&0x80==1);

}


//写指令到LCM程序

void Instruction(uchar a)

{

    Busy();

    CLR_EN;

    CLR_RW;

    CLR_RS;

    SET_EN;

    dat=a;

    CLR_EN;

}


//写数据到LCM程序

void DataWrite(uchar a)

{

    Busy();

    CLR_EN;

    CLR_RW;

    SET_RS;

    SET_EN;

    P1OUT=a;

    CLR_EN;

}


//启动LCM程序

void Reset(void)

{

    Instruction(0x38);

    Instruction(0x0c);

    Instruction(0x06);

}


3)子函数头文件LCD.h


#define uchar unsigned char

#define dat P1OUT

#define CLR_RS P2OUT&=~BIT0;//RS=P2.0

#define SET_RS P2OUT|=BIT0;

#define CLR_RW P2OUT&=~BIT1;//RW=P2.1

#define SET_RW P2OUT|=BIT1;

#define CLR_EN P2OUT&=~BIT2;//EN=P2.2

#define SET_EN P2OUT|=BIT2;

uchar busy;

void Delay_1ms(void);//延时程序

void Delay_1s(void);//延时程序

void Display(uchar* table0,uchar* table1);//显示程序

void Cycling(uchar *table0,uchar *table1);//循环程序

void Busy(void);//液晶查忙程序

void DataWrite(uchar a);//液晶写数据程序

void Reset(void);//液晶初始化

void Instruction(uchar a);//液晶写指令程序


硬件部分:

在这里插入图片描述

我画的图,大家按这张图连应该没问题的嗷,嘿嘿。

关键字:MSP430G2553  LCD1602  字符滚动 引用地址:MSP430G2553+LCD1602字符滚动/嵌入式课程设计/C语言

上一篇:MSP430 LCD控制器解释
下一篇:快速入门msp430fr6989之软件安装篇

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

单片机常用功能模块的使用 Part7. LCD 1602
1、基本常识: ①、好像也写成 LCM 1602,个人感觉和 LCD 1602 是一个东西,可能叫法不一样吧。 ②、LCD 1602,本质上是一种 字符型液晶 ,用来显示字母、数字、符号,基本不用来显示汉字。 ③、由若干 5 x 7 或者 5 x 11 大小的点阵字符位组成,字符与字符之间有一个点距的间隔。 ④、所谓的 LCD 1602,其实就是 显示内容为 16 x 2,每行 16 字符,显示 2 行 。 ⑤、目前市面上 字符型液晶 绝大多数是基于 HD44780 液晶芯片的,控制原理完全相同,因此基于 HD44780 写的控制程序可以很方便地应用于市面上大部分的字符型液晶。 ⑥、LCD 1602 样子如下图:
[单片机]
单片机常用功能模块的使用 Part7. LCD 1602
msp430g2553的ADC10多通道输入
msp430g2553有8个外部通道可以输入,下面将完成3路输入控制3个LED亮灭的程序。 寄存器说明 msp430g2553的ADC10寄存器 代码说明 在熟悉adc10的几个寄存器后,来看代码 1、ADC10CTL1 = INCH_5+CONSEQ_1;控制寄存器设置了最高的通道和转换模式。 2、ADC10AE0|= BIT5+BIT4+BIT3;输入使能寄存器设置了要输入的引脚。 3、采样次数和存放位置: ADC10DTC1 = 0x03;设置采样次数 unsigned int a ={0}; ADC10SA = (unsigned int)a; 存放地址 若p1.5,p1.4,p1.3输入,采样3次,通道序列单次(转换模式
[单片机]
MSP430G2553开发板万年历加温湿度
材料:MSP430G2553开发板一块、DS1302时钟芯片、CR1220纽扣电池、CR1220纽扣电池、32.768Khz晶振、小纽扣按键三个、DHT11温湿度传感器、跳帽三个、LCD12864(自带电位器,3.3v供电需要调节对比度) 一、DS1302 DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时。DS1302采用三线SPI接口与单片机通讯,在进行一次读写操作时,我们要先发送控制字(要进行得操作和相应寄存器地址),然后对该寄存器写入数据或者读出数据。 DS1302读时隙: 控制字在串行时钟SCLK每个上升沿将一位数据读入,将一个
[单片机]
<font color='red'>MSP430G2553</font>开发板万年历加温湿度
LCD1602液晶显示模块的单片机驱动深入详解之软件篇(AVR)
LCD1602液晶显示模块的驱动虽然比七段数码管之类的显示要复杂一些,但实际上也并不是很难,最主要的还是初始化,为什么这么说呢?我们在调试一块新液晶屏的时候,都会先初始化看看有没有光标在闪,没有光标前是一番努力(PROTEUS上也是这么做的),光标出来之后就相对很容易了,因为光标出来了,至少说明硬件连接是没有问题的,模块也已经成功接收到了指令,后面就是啃数据手册、改程序、烧录程序观察显示的循环了。 那初始化的流程是怎么样的呢?我们还是看看HD44780的数据手册吧,如下图所示: 可以看到,初始化的主要步骤如下: (1)上电:这特么也算是一个步骤么?是的!如果你用的是其它液晶模块,比如LCD12864,会发现有一个复位引脚,LC
[单片机]
<font color='red'>LCD1602</font>液晶显示模块的单片机驱动深入详解之软件篇(AVR)
LCD1602_8 data
程序要写出自己的风格 ****************************************************** ** 这是学习 msp430g2553 单片机时写的 1602 的程序 ** ** 时间精确到us,基本不出乱码 ** ** P1为数据输出端口 ** ** rs 接 p2.1 ** ** rw 接地 ** ** en 接 p2.0 ** *************************************************
[单片机]
51单片机学习:LCD1602液晶显示实验
实验名称:LCD1602液晶显示实验 接线说明: 实验现象:下载程序后,LCD1602上显示字符信息 注意事项: ***************************************************************************************/ #include public.h #include lcd1602.h /******************************************************************************* * 函 数 名 : main * 函数功能 : 主函数 * 输 入 : 无 * 输 出 : 无 ******
[单片机]
基于51单片机之LCD1602时钟实验例程
************************** Copyright(C) CaKe **************************************** ================================================== ==============**文件名 : main.c ============== ==============**作者 : CaKen ============== ==============**版本号 : V1.0 ============== ==============**时间 : 2014.08
[单片机]
详细解读:MSP430G2553单片机串口通信
  MSP430的不同型号,其串行通讯工作模式是一样的。以MSP430G2553为例进行说明。MSP430G2553是20个引脚的16位单片机。具有内置的16位定时器、16k的FLASH和512B的RAM,以及一个通用型模拟比较器以及采用通用串行通信接口的内置通信能力。此外还具有一个10位的模数(A/D)转换器。这里我们详细说明MSP430G2553串口通信。其引脚排布如图1.1所示。其功能表如表1.1所示。   串行通讯模块主要由三个部分组成:波特率生成部分、发送控制器以及接收控制器。如图1.2所示。            一、UART模式   在异步模式下,接收器自身实现帧的同步,外部的通讯设备并不使用这一时钟
[单片机]
详细解读:<font color='red'>MSP430G2553</font>单片机串口通信
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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