基于单片机的8X8 LCD汉字显示器的课程设计.docx
《基于单片机的8X8 LCD汉字显示器的课程设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的8X8 LCD汉字显示器的课程设计.docx(16页珍藏版)》请在冰豆网上搜索。
基于单片机的8X8LCD汉字显示器的课程设计
中北大学
课程设计说明书
学生姓名:
学号:
学院:
中北大学信息商务学院
专业:
电子信息工程
题目:
专业综合实践之硬件部分:
基于单片机的汉字点阵系统的设计
指导教师:
张敏娟职称:
讲师
2013年元月6日
中北大学
课程设计任务书
2012/13学年第一学期
学院:
中北大学信息商务学院
专业:
电子信息工程
学生姓名:
学号:
课程设计题目:
专业综合实践之硬件部分:
基于单片机的汉字点阵系统的设计
起迄日期:
2013年1月7日~2013年1月18日
课程设计地点:
无损楼201,510
指导教师:
张敏娟
系主任:
王浩全
下达任务书日期:
2013年1月6日
课程设计任务书
1.设计目的:
基于C51单片机,完成LCD汉字点阵系统的设计。
使学生将掌握的硬件理论知识与实践结合,提高学生的科研、综合创新能力。
2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等):
任务要求:
1、掌握和熟悉单片机系统的开发环境KEILC51和相应的软件;
2、采用80C51单片机和LCD点阵显示模块实现组合点阵显示;
3、具有显示内容自动更新功能,完成对任意存储信息完整显示。
5、基于实验箱对系统进行仿真和程序调试;
6、基于PROTEL99或altiumdeisigner绘制系统的原理图和制版图。
3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、实物样品等〕:
系统的硬件原理图和制版图;
基于实验箱调试成功的系统软件程序和界面;
设计说明书
课程设计任务书
4.主要参考文献:
[1]潘松,黄继业.EDA技术实用教程.-3版.-北京:
科学出版社,2006综合电子设计与实践,王振红,清华大学出版社,2008年9月第2版;
[2]曾繁泰,陈美金.VHDL程序设计.北京:
清华大学出版社,2000;
[3]褚振勇,翁木云.FPGA设计及应用.西安:
西安电子科技大学出版社,2002
[4]综合电子设计与实践王振红清华大学出版社2008年9月第2版;
[5]EDA实用技术及应用刘艳萍国防工业出版社2006年第1版
[6]基于QuartusII的FPGA/CPLD数字系统设计实例张丽敏电子工业出版社2007
[7]CPLD/FPGA常用模块与综合系统设计实例精讲罗苑棠电子工业出版社2007。
5.设计成果形式及要求:
硬件原理图、部分程序、设计说明书
6.工作计划及进度:
2013年1月7日~2013年1月9日:
查相关的资料,熟悉单片机开发环境;
1月10日~1月13日:
在教师指导下完成系统方案和电路设计;
1月14日~1月16日:
完成程序的调试,下载、调试,系统的优化;
1月17日:
完成课程设计说明书的纂写和修改;
1月18日:
答辩
系主任审查意见:
签字:
年月日
目录
第1节设计方案简介1
1.1等效电路图1
1.2点阵式LED扫描法简介2
第2节系统设计条件及系统各功能部分的设计和说明2
2.1电路原理图2
2.2硬件系统连线4
2.3程序设计内容4
2.3.1“胡”字的循环移动显示代码的形成4
第3节系统的程序调试7
第4节系统设计的结果8
4.1实验代码8
4.2实验结果截图9
第5节设计评述及收获体会9
第6节参考文献10
第1节设计方案简介
1.1等效电路图
下图为8×8点阵式LED外观及引脚图,等效电路如下所示:
图1.18×8点阵式LED外观及引脚图
图1.28×8点阵式LED等效电路
从上图可以看出,8×8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮。
1.2点阵式LED扫描法简介
点阵式LED一般采用扫描式显示,实际运用分为三种方式:
1)点扫描
2)行扫描
3)列扫描
若使用第一种方式,其扫描频率必须大于16×64=1024Hz,周期小于1ms即可。
若使用第二种和第三种扫描方式,则频率必须大于16×8=128Hz,周期小于7.8ms即可视觉暂留要求。
此外,一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度不足。
第2节系统设计条件及系统各功能部分的设计和说明
2.1电路原理图
图2.1STC芯片图
图2.2原理彩图
图2.3protel仿真图
2.2硬件系统连线
1.把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上;
2.把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上;
2.3程序设计内容
2.3.1“胡”字的循环移动显示代码的形成
如下图所示,开始显示“胡”字:
12345678
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
因此,每一列的列代码分别为:
00H,2EH,7AH,2EH,01H,7EH,54H,7FH。
只要把这些代码送到相应的列线上面,即可实现汉字“胡”显示。
送显示代码过程如下所示:
送第一列线代码到P3端口,同时置第一行线为“0”,其它行线为“1”,延时2ms左右,
送第二列线代码到P3端口,同时置第二行线为“0”,其它行线为“1”,延时2ms左右,
如此下去,直到送完最后一列代码,又从头开始送。
“胡”字向左移动一格,如下图所示:
12345678
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
其每列的显示代码可由上述代码循环左移得到,即:
2EH,7AH,2EH,01H,7EH,54H,7FH,00H。
“胡”字再次左移,如下图所示:
12345678
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
其显示代码为:
7AH,2EH,01H,7EH,54H,7FH,00H,2EH。
“胡”字再次左移,得到下图:
12345678
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
其显示代码为:
2EH,01H,7EH,54H,7FH,00H,2EH,7AH。
“胡”字继续左移,得到下图:
12345678
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
其显示代码为:
01H,7EH,54H,7FH,00H,2EH,7AH,2EH。
继续左移,得到下图:
12345678
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
其显示代码为:
7EH,54H,7FH,00H,2EH,7AH,2EH,01H。
左移,如下图:
12345678
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
其显示代码为:
54H,7FH,00H,2EH,7AH,2EH,01H,7EH。
继续左移,得到下图:
12345678
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
其显示代码为:
7FH,00H,2EH,7AH,2EH,01H,7EH,54H。
继续左移,得到:
12345678
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
该图即还原到了起始图,显示代码为:
00H,2EH,7AH,2EH,01H,7EH,54H,7FH。
最后,亮的部分熄灭,原本熄灭的都显示出来,即得下图:
12345678
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
其显示代码为:
0FFH,0D1H,85H,0D1H,0FEH,81H,0ABH,80H。
第3节系统的程序调试
图2.4调试图1
图2.5调试图2
第4节系统设计的结果
4.1实验代码
#include
sbitdula=P2^6;
sbitrow=P2^5;
unsignedchartabx[]={0x83,0xb7,0xb7,0x00,0xb7,0xb7,0x83,0xff};
unsignedchartaby[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsignedchart;
voiddelay()
{
unsignedchara,b;
for(a=10;a>0;a--)
for(b=50;b>0;b--);
}
voiddisplay()
{
P1=~taby[t];
row=1;
row=0;
P0=tabx[t];
dula=1;
dula=0;
delay();
//消影程序
P0=~0X00;
dula=1;
dula=0;
P1=~0XFF;
row=1;
row=0;
t++;
if(t==8)
{
t=0;
}
}
voidmain()
{
while
(1)
{
display();
delay();
}
}
4.2实验结果截图
第5节设计评述及收获体会
此次的单片机课程设计,由自己选定课题、自己上网查阅资料确定硬件电路,通过借鉴对比优秀程序编制出自己的程序,在单片机学习优秀的同学完成最后调试,最终完成了此次的单片机课程设计。
通过这次单片机课程设计,锻炼了自己的实际动手能力,提高了自己的编程水平。
同时,也暴露了自己在设计单片机最小应用系统过程中出现的一些问题:
首先,专业基础知识不够扎实,在确定硬件电路过程中,复位电路设计错误。
第二,动手能力较差,在焊接电路的过程中,经常出现引脚连接错误的情况。
第三,编程水平不高,在最后调试过程中,刚开始程序导入不成功,软件提示错误,经过检查发现有几处指令格式错误。
另外点阵式LED并未按照预期显示,经过检查,是程序编制错误。
最后,在这次课程设计中,暴露出的最大毛病,就是自己粗心大意,电路连接出错,程序编制时也出现错误。
这次的课程设计,是对自己这学期来所学知识的一次检测,使自己发现在学习过程中所存在的问题,同时也让自己意识到与身边优秀同学的差距。
接下来不到一年的大学时光,更要努力。
第6节参考文献
[1]潘松,黄继业.EDA技术实用教程.-3版.-北京:
科学出版社,2006综合电子设计与实践,王振红,清华大学出版社,2008年9月第2版;
[2]曾繁泰,陈美金.VHDL程序设计.北京:
清华大学出版社,2000;
[3]褚振勇,翁木云.FPGA设计及应用.西安:
西安电子科技大学出版社,2002
[4]综合电子设计与实践王振红清华大学出版社2008年9月第2版;
[5]EDA实用技术及应用刘艳萍国防工业出版社2006年第1版
[6]基于QuartusII的FPGA/CPLD数字系统设计实例张丽敏电子工业出版社2007
[7]CPLD/FPGA常用模块与综合系统设计实例精讲罗苑棠电子工业出版社2007。