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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机数显计时系统.docx

1、单片机数显计时系统江西 学院毕业设计说明书(论文)课题名称 单片机数显计时系统 专业 班学生姓名 学号 指导老师 技术职称 2014年 12 月 31 日 毕业设计(论文)任务书学生姓名 班级 1.毕业设计(论文)题目 单片机数显计时系统 2.毕业设计(论文)使用的原始资料数据及设计技术要求:要求能够对025KHZ的脉冲信号频率进行准确计数,计数误差不超过2HZ。计数的频率结果通过6位动态数码管显示出来。 3.毕业设计(论文)工作内容及完成时间:本课程设计主要任务是设计一个频率计数器,其主要功能如下:利用AT89C51单片机的T0、T1的定时计数器功能,来完成对输入的信号进行频率计数,计数的频

2、率结果通过6位动态数码管显示出来。要求能够对025KHZ的信号频率进行准确计数,计数误差不超过2HZ。 日期:自 20 年 12 月 21 日至 20 年 3 月 31 日指导老师评语: 指导老师 系主任 目录一、前言-1.1、 课程设计任务-1.2、 课程设计任务完成要求-1.3、 设计目的-二、方案提出与论证-2.1频率测量原理与方法-三、系统硬件设计-3.1电路原理图总图-3.1.1电源供电电路-3.1.2 单片机时钟电路-3.1.3单片机复位电路-3.1.4显示及驱动电路-3 .2 AT89C51单片机芯片的功能及其参数-四、系统软件设计-4.1软件流程图-4.2程序调试及误差分析-五

3、、元器件明细表-六、总结-前言 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,会被经常使用到。1.1、 课程设计任务任务要求: 1、要求能够对025KHZ的脉冲信号频率进行准确计数,计数误差不超过2HZ。 2、计数的频率结果通过6位动态数码管显示出来。分析:本课程设计主要任务是设计一个频率计数器,其主要功能如下:利用AT89C51单片机的T0、T1的定时计数器功能,来完成对输入的信号进行频率计数,计数的频率结果通过6位动态数码管显示出来。要求能够对025KHZ的信号频率

4、进行准确计数,计数误差不超过2HZ。1.2、 课程设计任务完成要求 1、根据题目要求设计控制系统。 2、完成硬件系统的制作。3、完成软件的编写及调试(先用PROTEUS软件仿真)。4、完成的控制系统能达到题目的要求。1.3、设计目的:A、熟悉和掌握51单片机的原理、结构和应用; B、用 PROTEL进行电路的设计,进一步了解相关软件的功能以及设计的一些规则; C、熟悉用C语言进行程序设计的一般方法、步骤和应用; D、积极发扬团队精神和集体荣誉感,互相协作、互相帮助; E、熟悉电路的调试的接线方法和调试方法及其原理 F、锻炼自己的实践和动手能力,为以后能更快的投入工作而做准备;二、方案提出与论证

5、2.1频率测量原理与方法方案一:直接测频法。把被测频率信号经过脉冲形成电路后加到闸门的一个输入端,只有在闸门开通时间 1秒内,被计数的脉冲被送到计数器进行计数。设计数器的值为N,由频率定义式计算得到被测信号频率为fN/T=N。 方案二:测量周期法。将被测量信号经过过零检测后转换成方波信号,利用单片机查询两个下降沿,在此期间根据晶体振荡器产生的时钟经过12分频的脉冲送计数器进行计数,设计数值为N,送入计数器的时钟周期为T,则得被测量信号的周期值为NT,然后取其倒数即为被测量信号的频率(1/NT) 。 理论上分析:采用直接测频法在测量低频段信号时的相对测量误差较大,但在高频段测量信号的频率有较高的

6、精度。如果采用测频法测量低频段频率信号,要想提高精确度,势必会大幅度增加闸门开通时间T,时效性较差。相反,采用测量信号周期然后取其倒数的方法在低频段测量时精度很高。但是本题目要求误差为2HZ,经过试验分析,加上必要的软件编程的措施,可以直接用高频的测法,在高频段,误差与示波器的显示频率基本一致,低频时,误差小于0.5HZ,满足题目的要求!52单片机中断的进入都是需要一定的时间的,如果我们没有把这个考虑进去,直接进行软件的设计,误差达到了20HZ。不满足题目的要求!因而在编程的时候,把中断事件也考虑进去!这样可以使得误差减小!三、系统硬件设计3.1电路原理图总图3.1.1电源供电电路 3.1.2

7、 单片机时钟电路如图所示是采用内部振荡方式使8052单片机产生时钟信号,在单片机芯片的X1和X2引脚两端跨接石英晶体振荡器和两个电容构成稳定的自激振荡电路,其中电容对振荡频率起微调作用。晶振频率为12MHZ。3.1.3单片机复位电路复位是单片机的初始化操作。其功能是使CPU从0000H单元开始执行程序。除了使系统正常初始化外,当程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需要按复位键重新启动。如图为按键手动复位方式,通过复位端经电阻和电源+5V接通实现复位功能,兼备上电复位功能。3.1.4显示及驱动电路共阳四位LED数码管三极管放大电路10K上拉电阻驱动电路该系统采用两个四位 L

8、ED共阳极显示器动态显示6位数。当某一字段发光二极管的阴极极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。要使数码管正常发光一般都要加驱动电路,不加驱动电路是很暗的(特别是共阴极数码管)。经计算本次设计需采用上拉电阻+三极管放大器来驱动整个发光电路,在三极管基极加以分压限流电阻,以防止数码管因电流过大而烧坏。确保了试验器件的安全。3 .2 AT89C51单片机芯片的功能及其参数 AT89C51是一个有40个引脚的芯片,引脚配置如下 图所示。与8031相比,AT89C51自带4K的ROM和128B的RAM,因此编写中小型系统就无需任何硬件进行扩展。AT89C51引脚配置

9、AT89C51芯片的40个引脚功能为:VCC:电源电压。GND:接地。RST:复位输入。当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至“1”。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡放大器的输出。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8E

10、H地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。P0口:8位漏级开

11、路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:8位双向I/O口。引脚P1.2P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA电流,并能直接驱动LED显示器;P1口引脚写入“1” 后,可用作输入。在闪速

12、编程与编程校验期间,P1口也可接收编码数据。P2口:带内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:引脚P3.0P3.7为带内部上拉的双向I/0引脚。P3口的输出缓冲

13、器能接收20mA的灌电流;P3口写入“1”后,内部上拉,可用输入。P3口也可用作特殊功能口,其功能见表1。P3口同时也可为闪速存储器编程和编程校验接收控制信号。表3-1 P3口特殊功能 P3口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)四、系统软件设计4.1软件流程图1 设计思路及原理单片机当工作方式寄存器TMOD的C/T位=1时为计数方式,多路开关与定时器0的外部引脚连通,外部计数脉冲由

14、引脚输入。当外部信号由1至0跳变时,计数器加1,此时T0成为外部事件的计数器。由于确认一次由1至0的跳变要用24个振荡器周期,所以所设计计数器的最高计数频率为单片机时钟频率的1/24。1) 定时/计数器T0和T1的工作方式设置,T0是工作在计数状态下,对输入的频率信号进行计数,但对工作在计数状态下的T0,最大计数值为fOSC/24,由于fOSC12MHz,因此:T0的最大计数频率为250KHz。所以对于设计要求即测量范围为025KHZ是完全满足的。对于频率的概念就是在一秒只数脉冲的个数,即为频率值。所以T1工作在定时状态下,每定时1秒中到,就停止T0的计数,而从T0的计数单元中读取计数的数值,

15、然后进行数据处理。送到数码管显示出来2) T1工作在定时状态下,最大定时时间为65ms,达不到1秒的定时,所以采用定时50ms,共定时20次,即可完成1秒的定时功能。因此每次放入定时器1的初值为TH1=65536/256,TL1=65536%256.3) 工作方式的确定。首先,两个定时器都采用软件启动定时器,都工作在16位计数器状态,即方式1,所以TMOD的高四位和低四位的GATE=0,M1M0=01;定时器1用于定时,所以D6位=0,定时器0用于技术,所以D3位=1。所以TMOD=0x15.控制方式寄存器TCON的相应位在程序中确定。编写并调试好的程序如下:#include unsigned

16、 char code dispbit=0x20,0x10,0x08,0x04,0x02,0x01; unsigned char code dispcode=0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09; unsigned char dispbuf8=0,0,0,0,0,0,10,10; unsigned char temp8; unsigned char dispcount; unsigned char T0count=0; unsigned char timecount=0; unsigned int delay_count=0; bit

17、 flag; unsigned long x;void main(void) unsigned char i; TMOD=0x15;/定时器1为定时模式 定时器0为技术模式 TH0=0; TL0=0; TH1=(65536-50000)/256;/50ms定时 TL1=(65536-50000)%256; TR1=1;/定时器1开 TR0=1;/定时器0开 ET0=1;/定时器中断开 ET1=1; EA=1;/中断开 while(1) /P2=dispcode9; if(flag=1) /如果1S定时到 flag=0; x=T0count*65536+TH0*256+TL0; /1S脉冲计数总

18、量 for(i=0;i8;i+) tempi=0; i=0; while(x/10) tempi=x%10; /取个位 x=x/10; i+; tempi=x; for(i=0;i=100)/计时变量大于等于100时清零 delay_count=0; P0=0xff;/ P2=dispcodedispbufdispcount; P0=dispbitdispcount; dispcount+; if(dispcount=6)/如果位数大于6位 dispcount=0; void t0(void) interrupt 1 using 0 T0count+; /脉冲计数溢出 void t1(void

19、) interrupt 3 using 0 TH1=(65536-50000)/256;/重装计时器 TL1=(65536-50000)%256; timecount+; if(timecount=20) TR0=0; timecount=0; flag=1; /1S定时到,标志位置1 4.2程序调试及误差分析写好程序后用protues仿真。第一次仿真结果为:在低频时测得的数据很准确,在5khz以上开始有误差,且随着频率的上升,误差增大。当信号频率为25khz时,误差为+77hz。分析了一下程序觉得T1重装次多太多造成计数时间偏大是误差的主要原因。修改了程序,让T0从原来的每次定时5ms,定时

20、1s重装200次变为每次定时50ms,定时1s重装20次后,第二次仿真。误差大大减小,为+5hz。此时,误差还是不能满足要求。在程序中加以下几个语句if(x12000)&(x18000)&(x20000)&(x30000)x=x-3;来减小较高频时的误差。虽然觉得这样不合理,不过这样处理后,误差真的减了好多。满足了设计的初始要求。六、元器件明细表名称型号参数数量STC89C52 带底座1套4X共阳极数码管2个晶振12M1个电容30pf、104pf2个电解电容10uf1个小按键2个电阻10k1个8X排阻10k2个8050三极管8个收获和体会我认为,在这次的毕业设计中,在收获知识的同时,还收获了阅

21、历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,不仅培养了独立思考、动手操作的能力,更重要的是,在实验中,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这样我们才能成为一名合格的大学生。我们在这过程中遇到很多困难,不管怎样,这些都是一种锻炼,一种知识的积累,能力的提高。完全可以把这个当作基础东西,只有掌握了这些最基础的,才可以更进一步,取得更好的成绩。很少有人会一步登天吧。永不言弃才是最重要的。而且,这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像

22、中国提倡的艰苦奋斗一样,我们都可以在设计结束之后变的更加成熟,会面对需要面对的事情。 与队友的合作更是一件快乐的事情,只有彼此都付出,彼此都努力维护才能将作品做的更加完美。而团队合作也是当今社会最提倡的。相信以后我们会以更加积极地态度对待我们的学习、对待我们的生活。我们的激情永远不会结束,相反,我们会更加努力,努力的去弥补自己的缺点,发展自己的优点,去充实自己,只有在了解了自己的长短之后,我们会更加珍惜拥有的,更加努力的去完善它,增进它。只有不断的测试自己,挑战自己,才能拥有更多的成功和快乐!Tous,happinessequalssuccess!快乐至上,享受过程,而不是结果!认真对待每一个

23、实验,珍惜每一分一秒,学到最多的知识和方法,锻炼自己的能力,这个是我们在实时测量技术试验上学到的最重要的东西,也是以后都将受益匪浅的!致谢 非常感谢 老师在课程设计中给予了我很多的指导。 老师从最初的定题,到资料收集,到写作、修改,到说明书定稿,她给了我耐心的指导和无私的帮助。为了帮助我们开拓视角,在我遇到困难的时候给予我最大的支持和鼓励。 老师严谨求实的治学态度,踏实坚韧的工作精神,将使我终生受益。再多华丽的言语也显苍白。在此,谨向易老师致以诚挚的谢意和崇高的敬意。感谢电子信息工程系的老师们为我们精心选题,让我们在这次课程设计中有所得。感谢我的伙伴们,我们在这次课题上能够团结一致,共同分析电路的问题,才能使这次课程设计顺利完成。最后要感谢学院给我提供了一次很好的实践机会,在这次课程设计期间,无论是从技术上还是从对环境的适应能力上来讲,都对我今后的学习打下了一个良好的基础。由于本次课程设计时间紧促,再加上我的能力有限,设计做的不是很完美,有些功能都没有实现,希望老师在今后的学习生活中给予我多加教育指导。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1