基于单片机的数字时钟设计与仿真内容摘要:

=H,E=H输出D0—D7=状态字写指令输入RS=L,R/W=L,D0—D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0—D7=数据写数据输入RS=H,R/W=L,D0—D7=数据,E=高脉冲输出无。 接口电路15基于单片机的数字时钟设计与仿真 程序流程图第3章 程序流程图 中断时钟流程图。 流程图分析:由中断查询当有中断请求时,及进行现场保护,保护断点,将定时器赋初值,且开定时器便于计数,且赋值50000,当中断进行20次刚好一秒,当秒计数60时便向分进位,当分计数60时,向时进位,当时到24时,清零,及恢复现场。 流程图分析:开始进入初始化DS18B20,就是通过主机拉低单线产生复位脉冲然后释放该线,如果有应答脉冲,及发起ROM命令当成功的执行操作命令后,就使用内存操作命令,即温度转换等,当转换完后,又初始化DS18B20是否有应答脉冲,若有,就发起读时隙命令,既同时读出第1,2个字节,既为温度的数据。 温度显示流程图 万年历流程图。 流程图分析:开始既当日加一天,同时星期也就相应的加1,看星期是否加到7,若加到了7,就返回到1,若没有就返回到时钟状态,当日加到相应的最大数时,月分就相应的加1,看月份是否加到了13, 若没有到13,就一直等待,若到了13就返回1,且年份就加1,当年份到2099时就清到2005年,若没有,就一直等待,直到2099为止。 万年历流程图3基于单片机的数字时钟设计与仿真 结论第4章 操作与调试 KEIL uVision3简介 8051开发工具    KEIL C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。 C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。 C51已被完全集成到uVision3的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。 uVision3 IDE可为它们提供单一而灵活的开发环境。 C51 V7版本是目前最高效、灵活的8051开发平台。 它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具。 因此,C51 V7版本无疑是8051开发用户的最佳选择。 uVision3集成开发环境 (1)、项目管理 工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。 一个单一的uVision3工程能够产生一个或多个目标程序。 产生目标程序的源文件构成“组”。 开发工具选项可以对应目标,组或单个文件。 uVision3包含一个器件数据库(device database),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定 微控制器的要求。 此数据库包含:片上存储器和外围设备的信息,扩展数据指针(extra data pointer)或者加速器(math accelerator)的特 性。 uVision3可以为片外存储器产生必要的连接选项:确定起始地址和规模。 (2)、集成功能: uVision3的强大功能有助于用户按期完工。 用详细的符号信息来优化用户变数存储器。 :在特定文件中执行全局文件搜索。 :允许在V3集成开发环境下启动用户功能。 :提供对版本控制系统的入口。 -LINT接口:对应用程序代码进行深层语法分析。 :集成块集代码产生。 :协助用户的CPU和外部程序。 DAVE工程可被直接输入uVision3。 Proteus简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。 它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。 具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 ②支持主流单片机系统的仿真。 目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。 ③提供软件调试功能。 在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision3等软件。 ④具有强大的原理图绘制功能。 总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。 本章介绍Proteus ISIS软件的工作环境和一些基本操作。 ISIS双击桌面上的ISIS 6 Professional图标或者单击屏幕左下方的“开始”→“程序”→“Proteus 6 Professional” →“ISIS 6 Professional”,表明进入Proteus ISIS集成环境。 Proteus ISIS集成环境 工作界面Proteus ISIS的工作界面是一种标准的Windows界面。 包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。 Proteus ISIS的工作界面软件调试的任务是利用ISIS开发工具进行仿真调试,发现和纠正程序错误,同时也能发现仿真结果故障。 试运行后,检查是否能开始正确显示时间、温度。 比如说,时钟显示不稳定,易乱跳,显示乱码,是由于单片机的运行与程序的执行不能同步进行造成的,应该尽量减少跳转指令的使用。 修改万年历显示缓冲区内容为2012年5月18日,运行进位键,检验能否正确进位,以及试调时间看能否正确的进位,以及调温度是否能显示。 结 论从这次的论文设计中,让我们更加了解和掌握单片机结构以及液晶内部的结构,提高我们编程的能力,理解软件对硬件的控制以及硬件对软件的制约。 本次设计的重点在于定时中断的合理使用,各相互独立的程序通过有机的组合,来完成所需功能则是本次设计的精妙之所在,也正是因为此,深刻领悟到“实践出真知”这句俗语。 其实有好多的知识需要在一步一步的实际动手当中慢慢地体会,慢慢地学习。 不能只是想当然怎样就会怎样,还要靠自己亲手去验证它才行在设计的过程中还是会学到不少东西,但是经过这次实验使我对它们有了一定的了解。 经过这一次论文设计我们认识到实际动手才是一门能够提高个人能力的课程,同时也帮助了我们,怎么样把书本上理论的知识应用到实践中去。 通过这次的锻炼,我们不仅动手能力得到了加强,更重要的是学到了很多新的专业技能知识,经验也更加丰富了。 我觉得我还有很多不足的地方,如:基本知识掌握不牢固、动手能力不强、知识面不够宽。 我争取在以后的学习当中弥补它,不断的完善自己。 虽然期间我们遇到了不少的难题,但是经过努力,再大的困难也被我们给一一的解决了。 本设计还有很多做的不够好的地方,还望老师批评指正。 5基于单片机的数字时钟设计与仿真 参考文献致 谢大学阶段的学习生活即将结束,这篇论文作为我在校期间学习的最后一份答卷,敬礼给各位老师。 在大学这几年的学习和生活,我不仅学到了丰富的专业知识,更学到了老师认真工作、爱岗敬业、为人师表的优良品质。 在此,谨向老师表示深深的敬意和谢意。 尤其感谢我的指导老师,他在毕业设计过程中给予我极大的关心和帮助。 从硬件制作、调试以及论文的完成都投入了他大量的心血。 在课余时间还给我们讲解有关硬件的重要知识,使我们在不仅掌握了自己的所设计东西的同时,还对其它的知识有了更深的了解。 老师对待学生有如此的态度,令人敬佩。 同时也感谢在毕业设计过程中给予我精神上的鼓励和支持的同学,在我遇到困难时尽其所能地为我排忧解难。 感谢学校提供的优越实验环境,使我能全身心的投入到我的设计中。 当查阅大量参考文献后设计原理图时,感谢指导老师向老师给我的仔细检查和改正。 在向老师的帮助下对系统的方案进行了论证,并对本系统不足进行了修改。 在论文修改过程中,衷心的感谢指导老师尽心尽力的对论文进行了仔细的修改,无论是在论文格式还是论文内容上,都要求的较为严格,使我在设计过程中学到了很多东西。 参 考 文 献[1] 余锡存,[M].西安电子科技大学出版社,2004年[2] 张志良, 主编 :《单片机原理及控制技术》(第2版).北京:机械工业出版社,2005[3] 余永权, MCS51系列单片机实用接口技术[M].北京:北京航空航天大学出版,1993[4] 余西存, [M].西安:西安电子科技大学出版,2000年 [5] 求是科技,单片机典型模块设计实例导航[M].北京:人民邮电出版社,2004年5月[6] 张振荣, . 人民邮电出版社,2000年[7] 吉雷,主编 :《Protel99从入门到精通》.西安:西安电子科技大学出版社,2004 [8]徐爱钧,彭秀华.Keil Cx51 单片机高级语言编程与uVision2应用实践.北京:电子工业出版社.2004.6[9] 何立民.MCS51系列单片机应用系列设计[M].北京:航空航天大学出版社[10] . Xu,Electronic design,2000年 [11] Microcontroller handbook. Inter [12] MCS51 Family of Single Chip Microputers User’s Manual. Inter Corp. 1981 30基于单片机的数字时钟设计与仿真 附录1附录1 仿真电路图完整电路图 键盘电路 温度传感器电路28基于单片机的数字时钟设计与仿真 附录2 程序附录2 程序includeincludedefine uint unsigned intdefine uchar unsigned charuchar a,miao,shi,fen,ri,yue,nian,week,flag,key1n,temp。 //flag用于读取头文件中的温度值,和显示温度值define yh 0x80 //LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)define er 0x80+0x40 //LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)//液晶屏的与C51之间的引脚连接定义(显示数据线接C51的P0口)sbit rs=P2^0。 sbit en=P2^2。 sbit rw=P2^1。 //如果硬件上rw接地,就不用写这句和后面的rw=0了sbit led=P2^6。 //LCD背光开关//DS1302时钟芯片与C51之间的引脚连接定义sbit IO=P1^1。 sbit SCLK=P1^0。 sbit RST=P1^2。 sbit ACC0=ACC^0。 sbit ACC7=ACC^7。 /************************************************************ACC累加器=A=E0H。 Acc可以位寻址。 累加器ACC是一个8位的存储单元,是用来放数据的。 但是,这个存储单元有其特殊的地位,是单片机中一个非常关键的单元,很多运算都要通过ACC来进行。 以后在学习指令时,常用A来表示累加器。 但有一些地方例外,比如在PUSH指令中,就必须用ACC这样的名字。 一般的说法,A代表了累加器中的内容、而ACC代表的是累加器的地址。 ***************************************************************///校时按键与C51的引脚连接定义sbit key1=P1^5。 //设置键sbit key2=P1^6。 //加键sbit key3=P1^7。 //减键sbit buzzer=P1^3。 //蜂鸣器,通过三极管9012驱动,端口低电平响/**************************************************************/uchar code tab1[]={20 }。 //年显示的固定字符uchar code tab2[]={ : : }。 //时间显示的固定字符//延时函数,后面经常调用void delay(uint xms)//延时函数,有参函数{ uint x,y。 for(x=xms。 x0。 x) for(y=110。 y0。 y)。 }/********液晶写入指令函数与写入数据函数,以后可调。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。