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

下载本文档

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

文档简介

武汉理工大学微机原理与接口技术课程设计说明书 课课 程程 设设 计计 题题 目目 lcd1602 液晶字符串循环显示 学学 院院 专专 业业 班班 级级 姓姓 名名 指导教师指导教师 武汉理工大学微机原理与接口技术课程设计说明书 课程设计任务书课程设计任务书 题目要求题目要求 : 使用 launchpad 上的板上资源,外接 1602 液晶,编写程序 使字符串在液晶上循环移动。 时间安排:时间安排: 2014 年元月 1 日2014 年元月 17 日下午 17:30 指导教师签名:指导教师签名: 年年 月月 日日 系主任(或责任教师)签名:系主任(或责任教师)签名: 年年 月月 日日 武汉理工大学微机原理与接口技术课程设计说明书 目录 引言1 1 课程设计要求2 2 硬件电路3 2.1 msp430g2553 单片机.3 2.1.1 msp430g2553 单片机特点. .3 2.1.2 msp430g2553 单片机结构. .3 2.1.3 msp430g2553 的时钟系统. .4 2.1.4 i/o 寄存器. .5 2.2 lcd1602液晶屏. .5 3 方案设计7 3.1 设计方案7 3.2 方案选择7 4 程序设计8 4.1 程序结构8 4.2 主程序源程序8 4.3 子程序源程序8 4.4 子程序头文件.12 5 调试.13 5.1 ccsv5 编译软件13 5.2 调试过程.13 6 结束语.15 附录 1:代码. .16 附录 2:实物图. 武汉理工大学微机原理与接口技术课程设计说明书 .22 参考文献.23 本科生课程设计成绩评定表.24 武汉理工大学微机原理与接口技术课程设计说明书 1 引言 本次课程设计旨在设计一个基于 msp430 系列微处理器的 lcd1602 液晶 字符串循环移动。单片机是一种集成电路芯片,是采用超大规模集成电路技术 把具有数据处理能力的中央处理器 cpu 随机存储器 ram、只读存储器 rom、 多种 i/o 口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉 宽调制电路、模拟多路转换器、a/d 转换器等电路)集成到一块硅片上构成的 一个小而完善的微型计算机系统,在工业控制领域广泛应用。当今时代是一个 新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立 元件或数字逻辑电路构成的控制系统,正在以前所未见的速度被单片机智能控 制系统所代替。单片机的使用随处可见,而人们的生活也越来越离不开单片机。 液晶是相态的一种,因为其特殊的物理、化学、光学特性,20 世纪中叶开 始被广泛应用在轻薄型的显示技术上液晶显示器也被广泛运用,也发挥着越来 越大的作用。尽年来,液晶显示技术飞速发展,运用更加广泛。 本课程设计通过 msp430g2553 单片机控制 lcd1602 液晶显示器实现一串 字符循环移动。 武汉理工大学微机原理与接口技术课程设计说明书 2 1 课程设计要求 使用 launchpad 上的板上资源,外接 1602 液晶,编写程序使“wuhan uniwersity of technology welcome you!”在液晶上循环移动显示。 武汉理工大学微机原理与接口技术课程设计说明书 3 2 硬件电路 2.1 msp430g2553 单片机 2.1.1 msp430g2553 单片机特点 msp430g2 系列是德州仪器近期推出的一款产品,在秉承 msp430 超低功耗, 高集成度的优点的同时,具有高性价比的特点。该系列被称为 valueline,旨 在以 8 位单片机的价格实现 16 位单片机的性能。msp-exp430launchpad 是 ti 推出的又一套用于 msp430 和电路实验的开发板。除了学生自主创新实践外, launchpad 开发板还可以用于本科低年级课程,如嵌入式 c 语言,电子技术基 础,微机原理,单片机等课程的自主实验环节以及课程设计。该套开发板为单 片机热爱者提供了一个很好的学习平台。 2.1.2 msp430g2553 单片机结构 如图所示是板载一颗msp430g2553单片机的launch pad评估实验开发板: 图1 launch pad 评估实验开发板 板上额外资源: (1) 板载 usb 调试与编程仿真器接口,无驱动可安装 武汉理工大学微机原理与接口技术课程设计说明书 4 (2) 支持所有采用 dip14 和 dip20 封装 msp430g2xx 和 msp430f20 器 (3) 红绿两粒 led,两个按键 (4) 配套两款电容触摸板 (5) 所有管脚在板子两边引出 2.1.3 msp430g2553的时钟系统 msp430g2系列单片机的时钟系统需要支持系统低功耗运行的需要。通过对 三个内部时钟信号的运用,用户可很容易的选择功耗最低,效率最高的系统时 钟方案。在软件的控制下,msp430g2系列单片机运行时可以不接外接晶振, 也可接一只外接电阻或者接一到两只外接晶振,也可以外接频率发生器。 基本时钟模块包括二至四个时钟源: lfxt1clk:外接低频或高频振荡器,如手表晶振,频率发生器,外部时钟源 (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:辅助主时钟。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 位数据线,电源地电源正,液晶显示偏压信号(vl) , 数据命令选择端(rs) ,读写选择端(rw)组成。其接口信号说明如下图所示: 武汉理工大学微机原理与接口技术课程设计说明书 6 图2接口信号说明图 可以在 1602 的液晶显示偏压信号端接一个可变电阻,调节显示亮度,初 始状态时,调至 1602 上面一排显示 12 个黑块为止,lcd1602 电路图如下图所 示: 武汉理工大学微机原理与接口技术课程设计说明书 7 3 方案设计 3.1 设计方案 方案一:使用 msp430f1612编程控制 lcd1602液晶屏实现实现一串字符左 右交替整屏移动。 方案二:使用 msp430g2553编程控制 lcd1602液晶屏实现一串字符左右交 替整屏移动。 3.2 方案选择 要完成控制 lcd1602液晶屏实现一串字符左右交替整屏移动, msp430g2553单片机足够了,而且能够比 msp430f1612节省资源,价格低,所 以选择方案二。 武汉理工大学微机原理与接口技术课程设计说明书 8 4 程序设计 4.1 程序结构 该程序主要由主程序源程序 main.c、子程序源程序 cry1602.c 和子程序头文 件 cry1602.h 构成采用这种程序结构,使程序更加清晰,一目了然,减少程序错 误的机会,增强了程序的可移植性。在程序设计中 msp430g2553中 p1口作为 并行数据输出端,p2.0、p2.1、p2.2分别作为 lcd1602液晶的 rs、rw、e 端。 4.2 主程序源程序 主程序中使用看门狗定时器进行计时,控制字符串移动的速度。字符串先 左移,再右移,之后循环移动。程序如下: #include #include “cry1602.h“ #define uchar unsigned char uchar *s1 = “ wuhan university of technology welcome!“; void main(void) wdtctl = wdt_adly_250; /间隔定时器,定时250ms uchar *s2; uchar j,k,l; uchar i = 0; s2 = s1; lcdreset(); while(*s1+ != 0) i+; /计算字符串有效字符个数 while(1) for(j = 0;j #include “cry1602.h“ #define datadir p1dir #define dataport p1out #define busy 0x80 #define ctrldir p2dir #define clr_rs p2out /rs = p2.0 #define set_rs p2out |= bit0; #define clr_rw p2out /rw = p2.1 #define set_rw p2out |= bit1; #define clr_en p2out /en = p2.2 #define set_en p2out |= bit2; void dispstr(uchar x,uchar y,uchar *ptr) uchar *temp; uchar i,n = 0; temp = ptr; while(*ptr+ != 0) n+; /计算字符串有效字符个数 for(i = 0; i build project,进行编译, 编译结果如图 2 所示: 图2 程序调试界面 在调试过程中,开始时 lcd1602液晶一直没有显示,认为是程序出了问题, 不过经过检查和调试,发现程序没问题。不是程序问题,就检查硬件,最终发 武汉理工大学微机原理与接口技术课程设计说明书 14 现了问题是 lcd1602液晶屏的 v0口与 gnd 间的滑动变阻器没有调节合适,导 致无法观察到显示效果。经过调节滑动变阻器,就可以观察到课程设计所要求 的效果。如图3所示: 图4 lcd1602液晶显示 在调试过程中,有时候会出现无法脱机运行的情况,经过检查,发现是因 为芯片管脚接触不良导致的,压紧芯片即可解决问题。 武汉理工大学微机原理与接口技术课程设计说明书 15 6 结束语 通过完成本次课程设计,我学到了许许多多的知识,获得了丰富的经验。 在完成课程设计的过程中对 msp430g2553 有了初步的了解,掌握了该单片机 的一些使用技巧,例如:i/o 口寄存器的设置及使用,定时器的使用和中断的使 用等等。掌握并能够熟练使用 ccsv5 这个编程软件,在该软件上进行编写程序, 下载并进行调试,最终完成了本次课程设计。在程序设计、编写程序到调试的 过程中,加强了我独立发现问题解决问题的能力,同时使得实践能力得到进一 步的提高。 在实践中,充分将理论知识用于实践,使自身对知识的理解更进一层,更 加能够熟练的掌握并使用理论知识。实践是检验真理的唯一标准,只有通过实 践才能体现出理论知识的价值。 武汉理工大学微机原理与接口技术课程设计说明书 16 附录 1 1 主程序 /* 程序功能:循环显示字符串 */ #include #include “cry1602.h“ #define uchar unsigned char uchar *s1 = “ wuhan university of technology welcome!“; void main(void) wdtctl = wdt_adly_250; /间隔定时器,定时250ms uchar *s2; uchar j,k,l; uchar i = 0; s2 = s1; lcdreset(); while(*s1+ != 0) i+; /计算字符串有效字符个数 while(1) for(j = 0;j #include “cry1602.h“ /*宏定义*/ #define datadir p1dir #define dataport p1out #define busy 0x80 #define ctrldir p2dir #define clr_rs p2out /rs = p2.0 #define set_rs p2out |= bit0; #define clr_rw p2out /rw = p2.1 #define set_rw p2out |= bit1; #define clr_en p2out /en = p2.2 #define set_en p2out |= bit2; /* 函数名称:dispstr 功 能:让液晶从某个位置起连续显示一个字符串 参 数:x-位置的列坐标 y-位置的行坐标 ptr-指向字符串存放位置的指针 返回值 :无 */ 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 = 0x0f) x = 0; y = 1; /* 函数名称:dispnchar 武汉理工大学微机原理与接口技术课程设计说明书 18 功 能:让液晶从某个位置起连续显示一个字符串 参 数:x-位置的列坐标 y-位置的行坐标 n-显示字符个数 ptr-指向字符串存放位置的指针 返回值 :无 */ void dispnchar(uchar x,uchar y,uchar n,uchar *ptr) uchar i; for(i = 0; i n; i+) disp1char(x+,y,ptri); if(x = 0x0f) x = 0; y = 1; /* 函数名称:locatexy 功 能:向液晶输入显示字符位置的坐标信息 参 数:x-位置的列坐标 y-位置的行坐标 返回值 :无 */ void locatexy(uchar x,uchar y) uchar temp; temp = x y if(y) temp |= 0x40;/如果在第2行 temp |= 0x80; 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 |= 0x07; /控制线端口设为输出状态 datadir = 0xff; /数据端口设为输出状态 lcdwritecommand(0x38,0); /规定的复位操作 delay5ms(); lcdwritecommand(0x38,0); delay5ms(); lcdwritecommand(0x38,0); delay5ms(); lcdwritecommand(0x38,1); /显示模式设置 lcdwritecommand(0x08,1); /显示关闭 lcdwritecommand(0x01,1); /显示清屏 lcdwritecommand(0x06,1); /写字符时整体不移动 lcdwritecommand(0x0c,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; /产生使能脉冲信号 _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 /将p1口切换为输入状态 clr_rs; 武汉理工大学微机原理与接口技术课程设计说明书 21 set_rw; _nop(); set_en; _nop(); _nop(); while(p1in /检测忙标志 clr_en; p1dir |= 0xff; /将p4口切换为输出状态 /* 函数名称:delay5ms 功 能:延时约5ms 参 数:无 返回值 :无 */ void delay5ms(void) uint i = 40000; while(i != 0) i-; 3 子程序头文件 #ifndef _cry1602_h #define _cry1602_h #defin

温馨提示

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

评论

0/150

提交评论