数字钟实验报告-9_第1页
数字钟实验报告-9_第2页
数字钟实验报告-9_第3页
数字钟实验报告-9_第4页
数字钟实验报告-9_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE10目录一、实验整体思路框图及电路图………..1二、模块分析……………..2晶振电路…………2AT89C51单片机…………………2显示电路………….2三、软件设计……………...3四、仿真实验调试…………4五、总结体会………………5六、参考文献………………6七、附录……………………6一、实验整体思路框图及电路图数字钟是将时钟信号送入单片机内部,再经单片机输出到显示电路上显示时钟的实验装置。晶振电路晶振电路AT89C51单片机显示电路复位置数图1整体框图数字钟实验是利用片外晶振电路产生12MHZ的振荡频率,并送入AT89C51单片机作为时钟的控制频率。将1s分为20个等分,则每个等分为50ms,设定片内定时器初值,使其定时50ms,则20次后给秒针加一,再20次再给秒针加一,60s满给分针进一,60min满给时针加一,24h满数字钟清零重新计数。最后将信号送入六位的7段数码显示管显示。还可实现开始、暂停、复位、置数等功能。二、模块分析1.晶振电路晶体振荡器电路给数字钟提供一个频稳定准确的12MHz的方波信号,可保证数字钟的走时准确及稳定.不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路. 图2晶振电路2.AT89C51单片机图3单片机接口电路P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。这里只用到了P2.0~P2.5六个端口,都是作为输出端口控制显示电路的寄存器选择、读写信号和使能端口。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,在这里用到了P3.3/INT1(外部中断1)、P3.6/WR(外部数据存储器写选通)、P3.7/RD(外部数据存储器读选通)。3.显示电路接口分配设计如图4所示:图4显示电路选用7段共阳极数码显示管图4显示电路1接口控制数码管的十位,2接口控制数码管的个位,高电平时读入数据,低电平无效。NYYNYYNYNY图5程序流程图开始三、软件设计开始有键按下?程序流程图如图所示有键按下?S-J按下?S-J按下?时针加一F-J按下?时针加一F-J按下?分针加一分针加一K-F按下?K-F按下?复位并重新计时复位并重新计时K-Q按下?K-Q按下?计数开始计数开始结束结束仿真实验调试1.打开Keil软件,菜单栏选择“project”中的“newproject”,在弹出的窗口中选“AtemlAT89C51”,然后新建,编写程序,然后保存后缀为“***.c2.选择“Target”中“Output”中的“HEX”,菜单栏选择“project”中的“buildtarget”,如果程序无误即编译成功,否则修改程序直至编译成功。3.打开Proteus软件,新建文件File→NewDesign,同样在弹出的原理图编辑窗口中绘制原理图,然后保存。4.加载程序,双击AT89C51加载程序,在弹出的对话框中点击“programfile”选择在Keil软件中编写保存的程序如“***.HEX”,点击“OK”即加载成功。5.在Proteus软件中的左下方点击图标仿真调试开始,即可看到仿真调试的结果。总结与体会这虽然是一个数字钟的设计但是实际上就是一个进制数的程序设计。虽然这个单片机的课题比较简单,但是从中我还是学到了许多新东西。在之前的学习过程中没有用到Proteus这个软件,所以刚刚开始的时候一边在百度里看Proteus入门教程一边实践操作Proteus这个软件,举一反三的在短时间内把Proteus磕磕碰碰学会了。想想我们在大学里速学软件还是比较有心得:在一两周内只学这个软件,或许还算不上熟练但是入门还是可以了。在Proteus软件部分的设计中也让我感受良多。以前做的单片机的设计都只是写写程序,下载到单片机上运行,都只是编程方面的工作,很少涉及选择单片机试验台上已有芯片以外的芯片,更不用说芯片的一些管脚作用。在局部电路图中遇到很多问题,通过查阅大量资料以及老师和同学的帮助讲解才逐渐懂得如何应用。如在Proteus软件中仿真选用了最常用的7段共阳极数码显示管。这种方法是平时很少注意到的基础性知识运用,在这次的课程设计中让我又有了新的收获。虽然整个过程有点不顺利,总的来说结果还是完成了设计任务,而且还是温故而知新,对单片机有了一种新的认识。参考文献倪云峰.单片机原理与应用.西安电子科技大学出版社王迎旭.单片机原理与应用.机械工业出版社周向红.51系列单片机应用与实践教程.北京航空航天大学出版社何立民.单片机应用系统设计.北京航空航天大学出版社附录1.程序清单#include"reg51.h"#defineucharunsignedchar#defineuintunsignedintsbitp21=P2^1;sbitp20=P2^0;sbitp22=P2^2;sbitp23=P2^3;sbitp24=P2^4;sbitp25=P2^5;sbitF_J=P3^3;sbitS_J=P3^4;sbitK_Q=P3^5;sbitK_F=P3^6;ucharm,f,s,k;ucharmg,ms,fg,fs,sg,ss;constuchartab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};voiddelay(void) //1MS{uinti;for(i=100;i>0;i--);}voidtime0_server_(void)interrupt1{TH0=(65536-50000)/256; TL0=(65536-50000)%256; k++; }voidF_ADD(void){f++;if(f==60) f=0;while(!F_J);}voidS_ADD(void){s++;if(s==24) s=0;while(!S_J);}voiddisplay(void){ss=s/10;sg=s%10; fs=f/10;fg=f%10; ms=m/10; mg=m%10; P1=tab[ss]; p20=1; delay(); p20=0; P1=tab[sg]; p21=1; delay(); p21=0; P1=tab[fs]; p22=1; delay(); p22=0; P1=tab[fg]; p23=1; delay(); p23=0; P1=tab[ms]; p24=1; delay(); p24=0; P1=tab[mg]; p25=1; delay(); p25=0; }voidmain(){k=0;m=0;f=0;s=0;while(K_Q){if(F_J==0){delay(); if(F_J==0) F_ADD();} if(S_J==0) {delay(); if(S_J==0) S_ADD();} display();} while(!K_Q);TMOD=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; while(1) { if(K_F==1) TR0=1; if(k==20) { k=0; m++; if(m==60) {m=0; f++; if(f==60) {f=0; s

温馨提示

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

评论

0/150

提交评论