ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:225.55KB ,
资源ID:5583679      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5583679.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子显示屏设计.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

电子显示屏设计.docx

1、电子显示屏设计电子显示屏设计电子显示屏课程设计系部:电信信息工程系 图1 单片机P0口输出显示数据,P1口连接按键,P2口连接液晶显示屏的功能控制口; 第一行中间显示时间(起始时间默认为12:00:00),用定时器T0控制秒;按键1、按键2、按键3分别对时个位,分个位,秒个位做加1操作; 第二行,第三行,第四行显示汉字;若按键4按下,定时器T1开始定时,汉字开始每隔三秒自动刷新,并循环显示;若按键5按下,汉字停止自动刷新,停留当前页面,定时器T1关闭。三、硬件电路设计(1)电路原理图 图2 我组设计的电子显示屏由单片机控制电路、按键控制电路和液晶显示三部分组成,其原理图如上图所示;(2)单片机

2、控制模块 采用12MHZ的晶振,机器周期满足大于520KHZ液晶执行时间的要求,使读写没有时间间隔感;因12864内自带驱动电路,故无需外部设置驱动,使设计更为简单;单片机EA接高电平,使单片机能够使用内部程序;单片机复位端RST通过阻容电路接高电平,且并接一个按键,使其能实现复位功能。(3)按键控制电路 我组设计的电子显示屏共有五个按键,除了单片机复位按键外,其余皆为显示控制按键。因默认显示时间为12:00:00,按键1、按键2、按键3分别对时个位,分个位,秒个位做加1操作,从而调整时间。按键4为汉字开始循环显示控制按键。当按键4按下后,定时器T1启动,每隔3秒汉字会自动刷新,并循环显示。按

3、键5为刷新停止控制键,当按键5被按下后,定时器T1停止启动。因P1口默认电平为1,故输入数据前无需置1操作。(4)液晶显示模块 带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;可以显示84行1616点阵的汉字. 也可完成图形显示.通讯方式:串行、并口可选 、内置DC-DC转换电路,无需外加负压 、无需片选信号,简化软件设计、工作温度: 0 - +55 ,存储温度: -20 - +60。0V为对比度亮度调节,接滑动变阻器。RS、R/W控制指令和数据的读写,分别接P20,P21。RS=0,R/W=0时写指令;R

4、S=0,R/W=1时读指令;RS=1,R/W=0时写数据;RS=1,R/W=1时读数据;E为12864并行的使能端,接P22,当E由0变成1时,允许执行写操作;当E=1时,允许执行读操作;DB0-DB7为液晶的输入端,接单片机的P0口;因本次设计采用8位并行接口方式,在液晶的第一行显示时间,后三行显示汉字,故显示屏的控制端PSB接高电平。NC为空脚;RST为液晶的复位脚,低电平有效;A、K为背光的正负电源接口;其中汉字显示坐标如下图3所示:80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H

5、9AH9BH9CH9DH9EH9FH 图3 可以根据坐标,把汉字写在任意位置上。 分析12864的并行接口时序图可知,当进行写操作时,应先设置RS为1/0,R/W为0,然后给P0口赋值,再打开并行使能端E,然后再关闭使能端。进行读操作时,同样应先设置RS为1/0,R/W为1,然后给P0口赋值,再打开并行使能端E 。四、程序设计 (1)主程序 刚上电时,液晶第一行中间显示默认时间12:00:00,第二行显示“电子显示屏设计”,第二行显示“设计成员:郑明月”,第三行显示“、金英、王广宇”。每隔一秒,秒个位加1。主程序在调用按键子程序和显示之程序之间循环,主程序流程图如图4: 图4定时器T0在主程序

6、中启动,是为了控制时间显示,主程序在按键扫描和液晶显示子程序中不断循环,以便及时捕捉是否有按键按下,及时更新显示信息。 (2)显示子程序(图5) ? 按键5按下后定时器T1启动,每隔三秒,显示相应的汉字;按键6 按下后定时器T1关闭,显示停留在当前页面。 (3)源程序#include#define uchar unsigned char #define uint unsigned intsbit PSB=P23; sbit Enable=P22; /使能sbit Di=P20; /数据/命令选择(RS)sbit RW=P21; /读/写信号sbit Rst=P25; /复位脚sbit k1=P

7、12;sbit k2=P13;sbit k3=P14;sbit k4=P15;sbit k5=P16;uchar counts=0; /定义全局变量,分别控制时钟的时个位uchar s=0; /*定义全局变量 时十位*/uchar countm=0; /*定义全局变量 分个位*/uchar m=0; /*定义全局变量 分十位*/uchar counth=2; /*定义全局变量 秒个位*/uchar h=1; /*定义全局变量 秒十位*/uchar count=0; /*全局变量count控制时钟刷新*/uchar side=0; /*全局变量 控制整个屏幕自动刷新的次数*/uchar ds=0

8、; /*全局变量ds控制屏幕自动刷新的间隔时间*/uchar code tab=0123456789:;uchar code hz1=电子显示屏设计;uchar code hz2=设计成员:郑明月;uchar code hz3=、金英、王广宇;uchar code hz4=锦瑟;uchar code hz5=锦瑟无端五十弦,;uchar code hz6=一弦一柱思华年。;uchar code hz7=庄生晓梦迷蝴蝶,;uchar code hz8=望帝春心托杜鹃。;uchar code hz9=沧海月明珠有泪,;uchar code hz10=蓝田日暖玉生烟。;uchar code hz11

9、=此情可待成追忆,;uchar code hz12=只是当时已惘然。;uchar code hz13=显示完毕;uchar code hz14= ;void delay (uchar z) /延时函数 uchar x,y; for(x=z;x0;x-) for(y=110;y0;y-);bit busy_12864() /*忙碌检测。=1忙,需等待;=0不忙,可以执行操作*/bit result; Di=0; RW=1; Enable=1; delay(5); result=(bit)(P0&0x80); Enable=0; return result;void write_com(uchar

10、 c) /写指令 while(busy_12864(); Di=0; RW=0; P0=c; /*写入指令*/ delay(5); Enable=1; /*开使能端*/ delay(5); Enable=0; /*关使能端*/ void write_data(uchar Dispdata) /写数据 while(busy_12864(); Di=1; RW=0; P0=Dispdata; /*输出给定数据*/ delay(5); Enable=1; delay(5); Enable=0;void init() /初始化函数delay(10); PSB=1; /并口方式 write_com(0x

11、30);delay(5);/*从第一行的第一个地址开始写*/ write_com(0x08);delay(5); /*关屏幕显示*/ write_com(0x01);delay(5); /*清零*/ write_com(0x0c);delay(5); /*开屏幕显示*/ void display1() /时间显示函数write_com(0x82); /*从第一行的第三个地址开始写*/ write_data(tabh); /*写时十位*/ write_data(tabcounth); /*写时个位,可以用按键控制*/ write_data(tab10); /*写符号“:”*/ write_dat

12、a(tabm); /*写分十位*/ write_data(tabcountm); /*写分个位,可以用按键控制*/ write_data(tab10); /*写符号“:”*/ write_data(tabs); /*写秒十位*/ write_data(tabcounts); /*写秒个位,可以用按键控制*/ void display2() /汉字显示函数 uchar i; if(side=0) write_com(0x90); /*从第二行的第一个地址开始写*/ i=0; while(hz1i!=0)write_data(hz1i+); /*把字符串写完*/ write_com(0x97);f

13、or(i=0;i2;i+)write_data(hz140); /*未写地址,写入空格*/ write_com(0x88); /*从第三行的第一个地址开始写*/ i=0; while(hz2i!=0)write_data(hz2i+); /*把字符串写完*/ write_com(0x98); /*从第四行的第一个地址开始写*/ i=0; while(hz3i!=0)write_data(hz3i+); write_com(0x9f);for(i=0;i2;i+)write_data(hz140); if(side=1) write_com(0x90);for(i=0;i4;i+)write_d

14、ata(hz140); /*未写地址,写入空格*/ write_com(0x92); i=0; while(hz4i!=0)write_data(hz4i+); write_com(0x96);for(i=0;i4;i+)write_data(hz140); /*未写地址,写入空格*/ write_com(0x88); i=0; while(hz5i!=0)write_data(hz5i+); write_com(0x98); i=0; while(hz6i!=0)write_data(hz6i+);if(side=2) write_com(0x90); i=0; while(hz7i!=0)

15、write_data(hz7i+); write_com(0x88); i=0; while(hz8i!=0)write_data(hz8i+); write_com(0x98); i=0; while(hz9i!=0)write_data(hz9i+);if(side=3) write_com(0x90); i=0; while(hz10i!=0)write_data(hz10i+); write_com(0x88); i=0; while(hz11i!=0)write_data(hz11i+); write_com(0x98); i=0; while(hz12i!=0)write_data

16、(hz12i+);if(side=4) write_com(0x90);for(i=0;i16;i+)write_data(hz140); write_com(0x88);for(i=0;i4;i+)write_data(hz140); write_com(0x8a); i=0; while(hz13i!=0)write_data(hz13i+); write_com(0x8e);for(i=0;i4;i+)write_data(hz140); write_com(0x98);for(i=0;i16;i+)write_data(hz140); void keyscan1() /时钟控制按键if

17、(k1=0)delay(2);if(k1=0)while(k1=0);counth+; /k1按下,时加1 if(k2=0)delay(2);if(k2=0)while(k2=0);countm+; /k2按下,分加1 if(k3=0)delay(2);if(k3=0)while(k3=0);counts+; /k3按下,秒加1 if(counts=10)s+;counts=0; /加到10秒,秒十位s加1,秒个位counts清0 if(s=6)s=0; /加到60秒 ,秒十位s清0 if(countm=10)m+;countm=0; ; /加到10分钟,分十位m加1,分个位countm清0

18、if(m=6) m=0; /加到60分钟,m清0 if(counth=10&h!=2)h+;counth=0; /加到1小时,时十位h加1,时个位counth清0 if(h=2&counth=4)h=0;counth=0; / /加到24小时,h,counth清0 void keyscan2() /汉字显示按键 if(k4=0) delay(2); /*消抖*/ if(k4=0)TR1=1; /*启动定时器T1*/ if(k5=0) delay(2); if(k5=0)TR1=0; /*关闭定时器T1*/ void main() init(); /液晶显示屏初始化 TMOD=0x11; /T0

19、定时器和T1定时器都工作在方式一 EA=1; ET0=1; ET1=1; TH0=0x3c; /T0赋初值,定时时间为50ms TL0=0xb0; TH1=0x3c; /T1赋初值,定时时间为50ms TL1=0xb0; TR0=1; /启动定时器T0 while(1) keyscan1(); keyscan2(); display1(); display2(); void t0(void)interrupt 1 TH0=0x3c; TL0=0xb0; TF0=0; count+; if(count=20) /1s到,秒个位加1 counts+; count=0; if(counts=10)s

20、+;counts=0; /10秒到,秒十位加1 if(s=6)countm+;s=0; /60秒到,分个位加1 if(countm=10)m+;countm=0; ; /10分钟到,分十位加1 if(m=6)counth+;m=0; /60分钟到,时个位加1 if(counth=10&h!=2) h+;counth=0; /1小时到,时十位加1 if(h=2&counth=4)h=0;counth=0; /24小时到,清零 void t1(void)interrupt 3 TH0=0x3c; TL0=0xb0; TF0=0; ds+; if(ds=40) /2s到,屏幕自动刷新 side+;

21、ds=0; if(side=5)side=0; /*刷新5次后清0,循环显示*/ 五、实物照片六、元件清单元件清单如表1所列。表1 液晶显示屏显示元件清单序号名称型号与规格单位数量1单片机U1(AT89C52)块12液晶显示屏LM1(12864)块13排阻P1(10K)片14晶振Y1(12MHz)块15滑动变阻器P2(10K)只16四脚按键S1S5个57电容C1、C2(22PF)个28电解电容C3(20F)个1七、 Proteus仿真液晶显示屏显示仿真图,如图七所示.液晶显示屏显示仿真图七八、设计制作要点在制作中要注意如下事项:(1)、单片机晶振频率建议选择12MHz。(2)、用带中文字库的1

22、28X64显示模块时应注意以下几点:欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的 字符中将会有一个空ASCII字符位置。当字符编码为2字节时,应先写入高位字节,再写入低位字节。 模块在接收指令前,向处理器必须先确认模块内部处于非忙状 态,即读取BF标志时BF需为“0”,方可接受新的指令。如果 在送出一个指令前不检查BF标志,则在前一个指令和这个指令 中间必须延迟一段较长的时间,即等待前一个指令确定执行完 成。

23、指令执行的时间请参考指令表中的指令执行时间说明。(3)、尽量不用手触摸液晶显示屏端口,以免产生静电,使显示屏所显示的内容出现乱码。参考文献1、单片机应用开发技术 翁嘉民 编 中国电力出版社2、51单片机C语言教程 郭天祥 编 电子工业出版社3、单片机原理及应用李建忠 编 西安电子科技大学出版社4、电路设计与制板 张伟、王力、赵晶 编 人民邮电出版社5、单片机原理及应用李建忠 编 西安电子科技大学出版社6、Protel DXP与PCB设计姜立东、姜雪松 编 北京邮电大学 出版社个人感受在这次的实习中,我的主要工作是电路板的焊接。在焊接的时候,我将我们的电路板与原理图、仿真图及PCB进行了认真的对

24、比,以确保在焊接的时候能够尽量不浪费元器件,并一次焊接成功。终于,经过几个小时的努力,我完成了电路板的焊接。虽然以前也有过电路板焊接的经验,但毕竟长时间没有操作,以及对一些元器件了解得不够详细,期间也遇到了一些问题。比如四脚按键各个管脚的分别,晶振的选取,电阻阻值的选取。最终,通过询问以及资料的查取,使我的问题得到了解决。通过此次的实训,我充分地认识到了自己自单片机课程上的缺陷及不足,自己的基础太过薄弱。但是,我也通过此次机会巩固了一些课本上的知识,并学到了许多课本外的内容。而且,我也会在课下针对自己的弱点去加强学习。姓名:王广宇学号:200910710235班级:电气工程0942系别:电气工程及其自动化

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2