基于msp430G2533的LCD1602液晶字符串循环显示课程设计_第1页
基于msp430G2533的LCD1602液晶字符串循环显示课程设计_第2页
基于msp430G2533的LCD1602液晶字符串循环显示课程设计_第3页
基于msp430G2533的LCD1602液晶字符串循环显示课程设计_第4页
基于msp430G2533的LCD1602液晶字符串循环显示课程设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、武汉理工大学微机原理与接口技术课程设计说明书学学 号:号: 课课 程程 设设 计计题题 目目LCD1602 液晶字符串循环显示学学 院院专专 业业班班 级级姓姓 名名指导教师指导教师2013 年1月15日武汉理工大学微机原理与接口技术课程设计说明书课程设计任务书课程设计任务书学生姓名:学生姓名: 专业班级:专业班级: 指导教师:指导教师: 工作单位:工作单位: 题目要求题目要求 : 使用 LaunchPad 上的板上资源,外接 1602 液晶,编写程序使字符串在液晶上循环移动。 时间安排:时间安排:2014 年元月 1 日2014 年元月 17 日下午 17:30指导教师签名:指导教师签名:

2、年年 月月 日日系主任(或责任教师)签名:系主任(或责任教师)签名: 年年 月月 日日武汉理工大学微机原理与接口技术课程设计说明书目录引言.11 课程设计要求.22 硬件电路.32.1 MSP430G2553 单片机.32.1.1 MSP430G2553 单片机特点.3 2.1.2 MSP430G2553 单片机结构.3 2.1.3 MSP430G2553 的时钟系统.4 2.1.4 I/O 寄存器.5 2.2 LCD1602液晶屏.53 方案设计.7 3.1 设计方案.7 3.2 方案选择.74 程序设计.84.1 程序结构.84.2 主程序源程序.84.3 子程序源程序.84.4 子程序头

3、文件.125 调试.135.1 CCSv5 编译软件.135.2 调试过程.136 结束语.15附录 1:代码.16附录 2:实物图.武汉理工大学微机原理与接口技术课程设计说明书.22参考文献.23本科生课程设计成绩评定表.24武汉理工大学微机原理与接口技术课程设计说明书1引言本次课程设计旨在设计一个基于 MSP430 系列微处理器的 LCD1602 液晶字符串循环移动。单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器 CPU 随机存储器 RAM、只读存储器 ROM、多种 I/O 口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多

4、路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正在以前所未见的速度被单片机智能控制系统所代替。单片机的使用随处可见,而人们的生活也越来越离不开单片机。液晶是相态的一种,因为其特殊的物理、化学、光学特性,20 世纪中叶开始被广泛应用在轻薄型的显示技术上液晶显示器也被广泛运用,也发挥着越来越大的作用。尽年来,液晶显示技术飞速发展,运用更加广泛。本课程设计通过 MSP430G2553 单片机控制 LCD1602 液晶显示器实

5、现一串字符循环移动。武汉理工大学微机原理与接口技术课程设计说明书21 课程设计要求 使用 LaunchPad 上的板上资源,外接 1602 液晶,编写程序使“Wuhan Uniwersity of Technology welcome You!”在液晶上循环移动显示。武汉理工大学微机原理与接口技术课程设计说明书32 硬件电路2.1 MSP430G2553 单片机2.1.1 MSP430G2553 单片机特点 MSP430G2 系列是德州仪器近期推出的一款产品,在秉承 MSP430 超低功耗,高集成度的优点的同时,具有高性价比的特点。该系列被称为 ValueLine,旨在以 8 位单片机的价格实

6、现 16 位单片机的性能。MSP-EXP430Launchpad 是 TI推出的又一套用于 MSP430 和电路实验的开发板。除了学生自主创新实践外,LaunchPad 开发板还可以用于本科低年级课程,如嵌入式 C 语言,电子技术基础,微机原理,单片机等课程的自主实验环节以及课程设计。该套开发板为单片机热爱者提供了一个很好的学习平台。2.1.2 MSP430G2553 单片机结构 如图所示是板载一颗MSP430G2553单片机的Launch Pad评估实验开发板:图1 Launch Pad 评估实验开发板板上额外资源:(1) 板载 USB 调试与编程仿真器接口,无驱动可安装武汉理工大学微机原理

7、与接口技术课程设计说明书4(2) 支持所有采用 DIP14 和 DIP20 封装 MSP430G2XX 和 MSP430F20 器(3) 红绿两粒 LED,两个按键(4) 配套两款电容触摸板(5) 所有管脚在板子两边引出2.1.3 MSP430G2553的时钟系统 MSP430G2系列单片机的时钟系统需要支持系统低功耗运行的需要。通过对三个内部时钟信号的运用,用户可很容易的选择功耗最低,效率最高的系统时钟方案。在软件的控制下,MSP430G2系列单片机运行时可以不接外接晶振,也可接一只外接电阻或者接一到两只外接晶振,也可以外接频率发生器。基本时钟模块包括二至四个时钟源: LFXT1CLK:外接

8、低频或高频振荡器,如手表晶振,频率发生器,外部时钟源(400kHz 至16MHz).XT2CLK:外接高频晶振,范围在400kHz 至16MHz DCOCLK:内部时钟震荡 VLOCLK:内部低频低功耗晶振,标准频率是12kHz 三种时钟信号可被 CPU 和外设所使用: ACLK:辅助时钟,ACLK 可被软件配置成从 LFXT1CLK 或 VLOCLK 输入震荡 ACLK 可以被1,2,4,8分频。ACLK 可以被选用作为外围模块的时钟输入。 MCLK:主时钟,主时钟可以从 LFXT1CLK 或 VLOCLK,XT2CLK 或DCOCLK 输入 MCLK 用在 CPU 系统之中。 SMCLK:

9、辅助主时钟。SMCLK 可被选择从 LFXT1CLK,VLOCLK,XT2CLK或 DCOCLK 输入。SMCLK 可以被1,2,4,8分频。SMCLK 可被选用为外围武汉理工大学微机原理与接口技术课程设计说明书5模块的时钟。 2.1.4 I/O 寄存器 和大部分单片机类似,MSP430系列单片机也是将8个 IO 口编为一组。每个 IO口有四个控制寄存器,P1和 P2还有额外的3个中断寄存器。寄存器情况可参见表1。 表1 I/O 寄存器2.2 LCD1602液晶屏LCD1602 采用 8 位并行数据传输,其操作时序如下图所示:LCD1602 接口由 8 位数据线,电源地电源正,液晶显示偏压信号

10、(VL) ,数据命令选择端(RS) ,读写选择端(RW)组成。其接口信号说明如下图所示:武汉理工大学微机原理与接口技术课程设计说明书6图2接口信号说明图可以在 1602 的液晶显示偏压信号端接一个可变电阻,调节显示亮度,初始状态时,调至 1602 上面一排显示 12 个黑块为止,LCD1602 电路图如下图所示:武汉理工大学微机原理与接口技术课程设计说明书73 方案设计3.1 设计方案 方案一:使用 MSP430F1612编程控制 LCD1602液晶屏实现实现一串字符左右交替整屏移动。方案二:使用 MSP430G2553编程控制 LCD1602液晶屏实现一串字符左右交替整屏移动。3.2 方案选

11、择要完成控制 LCD1602液晶屏实现一串字符左右交替整屏移动,MSP430G2553单片机足够了,而且能够比 MSP430F1612节省资源,价格低,所以选择方案二。武汉理工大学微机原理与接口技术课程设计说明书84 程序设计4.1 程序结构该程序主要由主程序源程序 main.c、子程序源程序 cry1602.c 和子程序头文件 cry1602.h 构成采用这种程序结构,使程序更加清晰,一目了然,减少程序错误的机会,增强了程序的可移植性。在程序设计中 MSP430G2553中 P1口作为并行数据输出端,P2.0、P2.1、P2.2分别作为 LCD1602液晶的 RS、RW、E 端。4.2 主程

12、序源程序主程序中使用看门狗定时器进行计时,控制字符串移动的速度。字符串先左移,再右移,之后循环移动。程序如下:#include #include cry1602.h#define uchar unsigned charuchar *s1 = Wuhan University of Technology Welcome!;void main(void)WDTCTL = WDT_ADLY_250; /间隔定时器,定时250msuchar *s2;uchar j,k,l;uchar i = 0;s2 = s1;LcdReset();while(*s1+ != 0) i+; /计算字符串有效字符个数w

13、hile(1)for(j = 0;j i;j+)l = j;for(k = 0;k 16;k+)if(l i)Disp1Char(k,0,s2l+);elseDisp1Char(k,0, );武汉理工大学微机原理与接口技术课程设计说明书9IFG1 &= WDTIFG; /清除中断失效标志while(!(IFG1 & WDTIFG);IFG1 &= WDTIFG;4.3 子程序源程序子程序中包含一些宏定义,使程序可移植性增强,还包含一些对 LCD1602液晶的操作程序及延时程序。程序如下:#include #include cry1602.h#define datadir

14、 P1DIR#define dataport P1OUT#define busy 0 x80#define ctrldir P2DIR#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;void DispStr(u

15、char x,uchar y,uchar *ptr) uchar *temp; uchar i,n = 0; temp = ptr; while(*ptr+ != 0) n+; /计算字符串有效字符个数 for(i = 0; i n; i+) Disp1Char(x+,y,tempi); if(x = 0 x0f) x = 0; y = 1; void DispNChar(uchar x,uchar y,uchar n,uchar *ptr)武汉理工大学微机原理与接口技术课程设计说明书10 uchar i; for(i = 0; i Build Project,进行编译,编译结果如图 2 所示

16、:图2 程序调试界面在调试过程中,开始时 LCD1602液晶一直没有显示,认为是程序出了问题,不过经过检查和调试,发现程序没问题。不是程序问题,就检查硬件,最终发武汉理工大学微机原理与接口技术课程设计说明书14现了问题是 LCD1602液晶屏的 V0口与 GND 间的滑动变阻器没有调节合适,导致无法观察到显示效果。经过调节滑动变阻器,就可以观察到课程设计所要求的效果。如图3所示:图4 LCD1602液晶显示在调试过程中,有时候会出现无法脱机运行的情况,经过检查,发现是因为芯片管脚接触不良导致的,压紧芯片即可解决问题。武汉理工大学微机原理与接口技术课程设计说明书156 结束语通过完成本次课程设计

17、,我学到了许许多多的知识,获得了丰富的经验。在完成课程设计的过程中对 MSP430G2553 有了初步的了解,掌握了该单片机的一些使用技巧,例如:I/O 口寄存器的设置及使用,定时器的使用和中断的使用等等。掌握并能够熟练使用 CCSv5 这个编程软件,在该软件上进行编写程序,下载并进行调试,最终完成了本次课程设计。在程序设计、编写程序到调试的过程中,加强了我独立发现问题解决问题的能力,同时使得实践能力得到进一步的提高。在实践中,充分将理论知识用于实践,使自身对知识的理解更进一层,更加能够熟练的掌握并使用理论知识。实践是检验真理的唯一标准,只有通过实践才能体现出理论知识的价值。武汉理工大学微机原

18、理与接口技术课程设计说明书16附录 11 主程序/*程序功能:循环显示字符串*/#include #include cry1602.h#define uchar unsigned charuchar *s1 = Wuhan University of Technology Welcome!;void main(void)WDTCTL = WDT_ADLY_250; /间隔定时器,定时250msuchar *s2;uchar j,k,l;uchar i = 0;s2 = s1;LcdReset();while(*s1+ != 0) i+; /计算字符串有效字符个数while(1)for(j =

19、0;j i;j+)l = j;for(k = 0;k 16;k+)if(l i)Disp1Char(k,0,s2l+);elseDisp1Char(k,0, );IFG1 &= WDTIFG; /清除中断失效标志while(!(IFG1 & WDTIFG);IFG1 &= WDTIFG;武汉理工大学微机原理与接口技术课程设计说明书17 2 子程序源程序#include #include cry1602.h/*宏定义*/#define datadir P1DIR#define dataport P1OUT#define busy 0 x80#define ctrldir

20、P2DIR#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;/*函数名称:Dispstr功 能:让液晶从某个位置起连续显示一个字符串参 数:x-位置的列坐标 y-位置的行坐标 ptr-指向字符串存放位置的指针返回

21、值 :无*/void DispStr(uchar x,uchar y,uchar *ptr) uchar *temp; uchar i,n = 0; temp = ptr; while(*ptr+ != 0) n+; /计算字符串有效字符个数 for(i = 0; i n; i+) Disp1Char(x+,y,tempi); if(x = 0 x0f) x = 0; y = 1; /*函数名称:DispNChar武汉理工大学微机原理与接口技术课程设计说明书18功 能:让液晶从某个位置起连续显示一个字符串参 数:x-位置的列坐标 y-位置的行坐标 n-显示字符个数 ptr-指向字符串存放位置的

22、指针返回值 :无*/void DispNChar(uchar x,uchar y,uchar n,uchar *ptr) uchar i; for(i = 0; i n; i+) Disp1Char(x+,y,ptri); if(x = 0 x0f) x = 0; y = 1; /*函数名称:LocateXY功 能:向液晶输入显示字符位置的坐标信息参 数:x-位置的列坐标 y-位置的行坐标返回值 :无*/void LocateXY(uchar x,uchar y) uchar temp; temp = x&0 x0f; y &= 0 x01; if(y) temp |= 0 x

23、40;/如果在第2行 temp |= 0 x80; LcdWriteCommand(temp,1);/*函数名称:Disp1Char功 能:在某个位置显示一个字符参 数:x-位置的列坐标 y-位置的行坐标武汉理工大学微机原理与接口技术课程设计说明书19 data-显示的字符数据返回值 :无*/void Disp1Char(uchar x,uchar y,uchar data) LocateXY(x,y); LcdWriteData(data);/*函数名称:LcdReset功 能:对1602液晶模块进行复位操作参 数:无返回值 :无*/void LcdReset(void) ctrldir |

24、= 0 x07; /控制线端口设为输出状态 datadir = 0 xff; /数据端口设为输出状态 LcdWriteCommand(0 x38,0); /规定的复位操作 Delay5ms(); LcdWriteCommand(0 x38,0); Delay5ms(); LcdWriteCommand(0 x38,0); Delay5ms(); LcdWriteCommand(0 x38,1); /显示模式设置 LcdWriteCommand(0 x08,1); /显示关闭 LcdWriteCommand(0 x01,1); /显示清屏 LcdWriteCommand(0 x06,1); /写

25、字符时整体不移动 LcdWriteCommand(0 x0c,1); /显示开,不开游标,不闪烁/*函数名称:LcdWriteCommand功 能:向液晶模块写入命令参 数:cmd-命令, chk-是否判忙的标志,1:判忙,0:不判返回值 :无*/void LcdWriteCommand(uchar cmd,uchar chk) if(chk) WaitForEnable(); /检测忙信号? CLR_RS;武汉理工大学微机原理与接口技术课程设计说明书20 CLR_RW; _NOP(); dataport = cmd; /将命令字写入数据端口 _NOP(); SET_EN; /产生使能脉冲信号

26、 _NOP(); _NOP(); CLR_EN;/*函数名称:LcdWriteData功 能:向液晶显示的当前地址写入显示数据参 数:data-显示字符数据返回值 :无*/void LcdWriteData(uchar data) WaitForEnable(); /等待液晶不忙 SET_RS; CLR_RW; _NOP(); dataport = data; /将四显示数据写入数据端口 _NOP(); SET_EN; /产生使能脉冲信号 _NOP(); _NOP(); CLR_EN;/*函数名称:WaitForEnable功 能:等待1602液晶完成内部操作参 数:无返回值 :无*/void WaitForEnable(void) P1DIR &= 0X00; /将P1口切换为输入状态 CLR_RS;武汉理工大学微机原理与接口技术课程设计说明书21 SET_RW; _NOP(); SET_EN; _NOP(); _NOP(); while(P1IN & busy) != 0); /检测忙标志 CLR_EN; P1DIR |= 0 xff; /将P4口切换为输出状态/*函数名称:Delay5ms功 能:延时约5ms参 数:无返回值 :无*/void Delay5ms(void) ui

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论