欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    片单机课程设计lcd12864液晶显示电子钟设计大学论文.docx

    • 资源ID:14672455       资源大小:130.29KB        全文页数:24页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    片单机课程设计lcd12864液晶显示电子钟设计大学论文.docx

    1、片单机课程设计lcd12864液晶显示电子钟设计大学论文长 沙 学 院单片机原理及应用课程设计说明书题目 LCD12864液晶显示电子钟设计系(部)专业(班级)姓名学号指导教师起止日期 单片机原理及应用课程设计任务书 系(部): 专业: 课题名称LCD12864液晶显示电子钟设计设计内容及要求1、课题内容:设计一种基于AT89S52 单片机的液晶显示电子时钟,要求如下:(1)、能正确显示时间、日期和星期显示格式为:时间:XX 小时:XX 分:XX 秒;日期:XX 年:XX 月:XX 日;星期:X。(2)、时间能够由按键调整,误差小于1S。(3)、闹钟功能:时间运行到与闹钟设定时间时,闹钟响(持

    2、续响3秒)。(4)、报时功能:时间运行到正点时间时,闹钟响,几点钟就响几声(每声持续响2 秒,每两声之间时间间隔1 秒)。液晶显示器第一行显示“数字电子钟”;第二行显示“当前时间”;第三行显示日期和星期;第四行显示最近一个闹钟的设定时间。2、要求:完成该系统的硬件和软件的设计,在Proteus 软件上仿真通过,并提交一篇课程设计说明书。设计工作量1、汇编或C51 语言程序设计;2、程序调试;3、在Proteus 上进行仿真成功,进行实验板下载调试;4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、仿真分析、调试过程,参考文献、设计总结等。进度安排起止日期设计内容(或预期目标)

    3、备注第一天 课题介绍,答疑,收集材料,C51介绍 第二天设计方案论证,练习编写C51程序 第三天第六天程序设计 第六天第八天程序调试、仿真 第九天第十天系统测试并编写设计说明书教研室意见 年 月 日系(部)主管领导意见 年 月 日 目 录一、整体方案设计 51、单片机的选择 52、单片机结构 5二、前期准备 6三、程序设计 81、键盘约定 82、界面显示 93、全局变量的定义 94、系统时钟 95、闹钟控制时间的设定 9四、总结与体会 10参考文献 11一、整体方案设计1、单片机的选择单片微型计算机主要由微处理器、存储器、I/O接口电路等组成。鉴于在本学期的学习和实习中主要是以MCS51系列的

    4、单片机为对象,故而本次课程设计选择以AT89C51为主的单片机。2、单片机结构单片机主要包括中央处理器、程序存储器、数据存储器、定时/计数器、并行接口、串行接口和中断系统等几大处理单元和地址总线、数据总线、控制总线等三大总线。芯片内部包括下列硬件资源:(1)、8位CPU。(2)、4KB的片内程序存储器ROM、可寻址64KB程序存储器和64KB外部数据存储器。(3)、128B内部RAM.(4)、21个SFR.(5)、4个8位并行I/O口。(6)、一个全双工的异步串行口。(7)、两个16位定时/计数器。(8)、5个中断源,两个优先级。如下图1是51单片机的简化结构框图 图1二、前期准备为了更好的完

    5、成课程设计,设计之初我们并没有直接进行设计课题的设计,而是对单片机的各种功能先做了一定的了解和系统仿真,为课题研究打下基础。系统仿真主要包括三大部分,第一部分是对串行输出、按键计数、输出方波、彩灯花样的仿真,第二部分是对LCD1206显示和12864显示的仿真,第三部分是对点阵显示的仿真。第一部分的准备比较简单,基于单片机实验已经做过类似的实验,仿真做的比较成功。如下图图2所示是输出周期为20ms的方波波形。 图2第二部分的准备相对复杂些,主要是了解LCD1602和12864的显示功能。仿真显示的内容采用了有个人特色的姓名、学号、班级等信息的显示。如下图3所示利用LCD1602显示了姓名拼音、

    6、班级和学号;图4(a)、(b)所示利用12864显示了姓名、学号、班级,并且用按键切换的方式分页显示了我比较喜欢的一首柳宗元的古诗江雪。 图3(a) (b) 图4(a)、(b)第三部分的准备相对第二部分又稍显简单,主要还是对点阵显示的了解和掌握。如下图5(a)、(b)、(c)所示,利用点阵显示了我的姓名。 (a) (b) (c) 图5(a)、(b)、(c)三、程序设计做好了前期准备,接下来就是针对12864液晶电子钟显示的程序编写。考虑到之前的实习焊接了单片机最小系统和按键模块,正好在此次设计中可以用到,故而此次设计跟之前的仿真跟有所不同,针对实物来编写和设计程序。整个系统需要一个系统时钟,作

    7、为控制器的时钟标准。控制输出的时间设定、系统时钟的校准、控制输出准许与否等,都需要输入设备,这里以四个独立式按键为输入设备。1、键盘约定按键0为时间调整键,按键1为闹钟时间调整键,按键2为数字加键,按键3为数字减键。2、界面显示(1)、走时:系统在没有操作之前为走时状态,显示界面样式为00。(2)、设置系统时间:功能键为按键0,显示界面样式为00时00分00秒、00年00月00日、00。 最后显示的是星期。(3)、控制输出的设定:功能键为按键1,显示界面为00时00分00秒。当闹铃时间设定好了之后,最后再按一下直至数字稳定不闪烁即设置成功。当闹铃时间到时,蜂鸣器会发出声音。3、全局变量的定义走

    8、时系统需要使用5个变量:S01 0.1秒计数单元y3 秒计数单元y2 分计数单元y1 小时计数单元4、系统时钟在时间控制系统中,系统时钟完成两件事,一是“走时”,提供标准时钟;二是为显示界面提供闪烁的秒信号。这个程序可以通过Timer_A中断来实现。所使用的变量单元在主程序中有定义,为全局变量。5、闹钟控制时间的设定在系统中设置闹铃时间,每当走时时间与设置的闹铃控制时间相同且允许闹铃时,则输出到蜂鸣器。程序编译成功后下载到芯片,实物显示如下图6(a)、(b)所示。 图6 (a) (b) 四、总结与体会在此次课程设计中,收获自然是不必多说,我觉得最主要的是在其中应用知识的过程体会、新知识的了解和

    9、自身理论知识的不足的感悟。 在设计过程中,我觉得巩固最深的就是中断,让我对中断的理解层次提高了。中断技术是计算机的一个很重要的技术,在自动检测、实时控制、应急处理等方面都要用到。某一中断源申请中断有效时,系统硬件叫自动置位TCON或者SCON中的有关相应标志位。在编程时要注意其标志位的变化的影响。在之前我一直认为中断是系统硬件内部才能够实现。但是此次实践改变了我的错误认知,外部中端可借用定时器溢出中断扩展也可以采用查询法扩展,还可采用8259等多功能芯片扩展外部中断源。 这时我就想到了一句古话“温故而知新”和一个成语“坐井观天”。复习也是学习新知识的一个主要环节,没有对旧知识的复习,新学的知识

    10、就会缺少源头,导致我们没办法对所学新知识的理解的和掌握。我想在复习中也能深化自己对知识的理解。在温故的基础上通过领会贯通,通过举一反三,通过比照分析,通过联想分析,就会有新的发现,新的领悟,新的启示,从而进入新的境界,掌握新的知识。而且我们都知道知识只有真正的理解了,真正的弄懂了,运用到实践中去了,证实了,才算是学会了,掌握了,这时才可以说你已经把这门知识学到手了。这正是课程设计的目的之一。我想我在某些学习方面不是个主动的人,但是,经过此次课程设计,我觉得我必须去主动地去探求,而不是被动地接受。在学习之上加上我自己的思考,加上我自己的判断,加上我自己的总结。阅历和经历决定了一个人的视野,一个人

    11、要想开阔视野必须要走出去实践,拓宽眼界,发挥想象思维,认识世界。受此影响,我想我以后的视野一定能够拓宽很多。 参考文献【1】曾屹.刘辉主编. 单片机原理与应用M. 中南大学出版社. 2012年第2版【2】臧春华.邵杰.魏小龙主编. 综合电子系统设计与实践.M.北京航空航天大学出 版社2009.11【3】李华主编.MCS51系列单片机实用接口技术M.北京航空航天大学出版社 1993.8程序清单#include#include#define uchar unsigned char#define uint unsigned intsbit rs=P26;sbit en=P27;sbit wd=P20

    12、;sbit beet=P22;sbit key1=P10;sbit key2=P11;sbit key3=P12;sbit key4=P13;char hour=23,minute=59,second=58,count=0;char shi=0,fen=0,miao=0,hm;int year=2013;char month=12,day=30,mm=0,cc=7;uint temp;float f_temp;uchar code table1=数字电子钟;void delay(uint z) uint x,y; for(x=z;x0;x-); for(y=110;y0;y-);void fe

    13、ngmingqi() beet=0;delay(1);beet=1;delay(1);void xieling_shu(uchar aa,uchar bb) if(aa=1)rs=0; if(aa=0)rs=1; P0=bb;delay(1); en=1;delay(1); en=0;delay(1);void xieludizhi(uchar x,uchar y) switch(x) case1: xieling_shu(1,0x80+y);return; case2: xieling_shu(1,0x90+y);return; case3: xieling_shu(1,0x88+y);re

    14、turn; case4: xieling_shu(1,0x98+y);return; void xiezifuchuan(uchar*dd) while(*dd!=0) xieling_shu(0,*dd+); void qingping() xieling_shu(1,0x01); xieling_shu(1,0x01); xieling_shu(1,0x01); delay(20);void init_12864() xieling_shu(1,0x30); xieling_shu(1,0x30); xieling_shu(1,0x0C); xieling_shu(1,0x01); xie

    15、ling_shu(1,0x06);void init_zifu() xieludizhi(1,0);xiezifuchuan(数字电子钟);delay(1); xieludizhi(2,0);xiezifuchuan(时 分 秒);delay(1); xieludizhi(3,0);xiezifuchuan(年 月 日 星期);delay(1); xieludizhi(4,0);xiezifuchuan(闹钟 时 分 秒);delay(1);void display() xieludizhi (3,0); xieling_shu(0,0x30+hour/10); xieling_shu(0,0

    16、x30+hour%10); xieludizhi(0,:); xieling_shu(0,0x30+minute/10); xieling_shu(0,0x30+minute%10); xieludizhi(0,:); xieling_shu(0,0x30+second/10); xieling_shu(0,0x30+second%10); xieludizhi(2,0); xieling_shu(0,0x30+year/1000); xieling_shu(0,0x30+year%1000/100); xieling_shu(0,0x30+year%100/10); xieling_shu(

    17、0,0x30+year%10); xieludizhi(2,3); xieling_shu(00,0x30+month/10); xieling_shu(00,0x30+month%10); xieludizhi(2,5); xieling_shu(00,0x30+day/10); xieling_shu(00,0x30+day%10);void display1() xieludizhi (3,0); xieling_shu(0,0x30+shi/10); xieling_shu(0,0x30+shi%10); xieling_shu(0,:); xieling_shu(0,0x30+fen

    18、/10); xieling_shu(0,0x30+fen%10); xieling_shu(0,:); xieling_shu(0,0x30+miao/10); xieling_shu(0,0x30+miao%10);void xingqi() switch(cc) case1: xieludizhi(3,7);xiezifuchuan(01);return; case2: xieludizhi(3,7);xiezifuchuan(02);return; case3: xieludizhi(3,7);xiezifuchuan(03);return; case4: xieludizhi(3,7)

    19、;xiezifuchuan(04);return; case5: xieludizhi(3,7);xiezifuchuan(05);return; case6: xieludizhi(3,7);xiezifuchuan(06);return; case7: xieludizhi(3,7);xiezifuchuan(07);return; void anjian() if(key4=0)delay(1);hm=-hm;while(key4=0); if(key1=0) delay(1);mm+; if(hm!=0)if(mm=4)mm=0; if(mm=1)xieludizhi(3,3);xie

    20、ling_shu(0,0x5f); if(mm=2)TR0=1;xieludizhi(3,2);xieling_shu(0,0x5f); if(mm=3)xieludizhi(3,0);xieling_shu(0,0x5f); if(mm=4)xieludizhi(2,5);xieling_shu(0,0x5f); if(mm=5)xieludizhi(2,3);xieling_shu(0,0x5f); if(mm=6)xieludizhi(2,1);xieling_shu(0,0x5f); if(mm=7)xieludizhi(3,7);xieling_shu(0,0x5f); if(mm=

    21、8)xieludizhi(2,7);xieling_shu(0,0x02); if(mm=9)xieludizhi(2,7);xieling_shu(0,0x02);mm=0; while(key1=0); if(mm=1&key2=0) if(hm=0)TR0=0;delay(1);if(key2=0)second+;if(second=60)second=0; if(hm!=0)delay(1);if(key2=0)miao+;if(miao=60)miao=0; while(key2=0); if(mm=1&key3=0) if(hm=0)TR0=0;delay(1);if(key3=0

    22、)second-;if(second=-1)second=59; if(hm!=0)delay(1);if(key3=0)miao-;if(miao=60)minute=0; if(hm!=0)delay(1);if(key2=0)fen+;if(fen=60)fen=0; while(key2=0); if(mm=2&key3=0) if(hm=0)delay(1);if(key3=0)minute-;if(minute=-1)minute=59; if(hm!=0)delay(1);if(key3=0)fen-;if(fen=24)hour=0; if(hm!=0)delay(1);if(

    23、key2=0)shi+;if(shi=24)shi=0; while(key2=0); if(mm=3&key3=0) if(hm=0)delay(1);if(key3=0)hour-;if(hour=-1)hour=23; if(hm!=0)delay(1);if(key3=0)shi-;if(shi=31)day=1; while(key2=0); if(mm=4&key3=0) delay(1);if(key3=0)day-;if(day=13)month=1; while(key2=0); if(mm=5&key3=0) delay(1);if(key3=0)month-;if(mon

    24、th=8)cc=1; while(key2=0); if(mm=7&key3=0) delay(1);if(key3=0)cc-;if(cc=0)cc=7; while(key3=0); void dsreset(void) uint i; wd=0; i=103; while(i=0)i-; wd=1; i=4; while(i0)i-;bit tempreadbit(void) uint i; bit dat; wd=0;i+; wd=1;i+;i+; dat=wd; i=8; while(i0)i-; return(dat);uchar tempread void() uchar i,j

    25、,dat; dat=0; for(i=1;j=8;i+) j=tempreadbit(); dat=(j1); return(dat);void tempwritebyte(uchar dat) uint i; uchar j; bit testb; for(j=1;j1; if(testb) wd=0; i+;i+; wd=1; i=8;while(i0)i-; else wd=0; i=8;while(i0)i-; wd=1; i+;i+; void main() uchar buff4; TMOD=0x01; EA=1; ET0=1; TR0=1; TH0=50000/256; TL0=

    26、50000%256; init_12864(); init_zifu(); hm=0; if(hm=0)display(); else display1(); anjian(); xingqi(); if(minute=59&second=59) fengmignqi(); if(shi=hour&fen=minute&miao=second&miao=second+3) fengmignqi(); void time()interrupt 1 TH0=-5000/256; TL0=-5000%256; count+; if(count=20) count=0; second+; if(second=60) second=0; minute+; if(minute=60) minute=0; hour+; if(hour=24) hour=0; day+; cc+; if(cc=8) cc=1;


    注意事项

    本文(片单机课程设计lcd12864液晶显示电子钟设计大学论文.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开