1 / 18
文档名称:

基于51单片机的计数器设计.doc

格式:doc   大小:12,609KB   页数:18页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于51单片机的计数器设计.doc

上传人:读书之乐 2020/2/7 文件大小:12.31 MB

下载得到文件列表

基于51单片机的计数器设计.doc

文档介绍

文档介绍:单片机课程设计目录1课程设计的目的 12设计思路 13设计过程 2方案论证 2电路的设计 54应用程序 65系统调试与焊接 8 8系统试调 96结论 107心得体会 10参考文献 13附录1:总体电路原理图 14附录2:实物图 15附录3:元器件清单 16 ,0到99的累加。《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。、外部中断的设置和编程原理的全面认识复习和掌握,对单片机实际的应用作进一步的了解。,增强自己的动手能力。认识单片机在日常生活中的应用的广泛性,实用性。明确学习目的,端正学习态度,提高对课程设计重要性的认识,以积极认真的态度参加课程设计工作,按要求完成规定的设计任务。2设计思路本实验利用单片机的定时器/计数器定时和计数的原理,通过采用仿真软件来模拟实现。模拟利用AT89C2052单片机、LED数码管以及各种控制器件来控制表的计数以及计数的开启/计数与复位等。利用单片机AT89S51单片机来制作一个手动计数器,,作为手动计数的按钮,,作为00-99计数的个位数显示,,作为00-99计数的十位数显示,,作为00-99计数的二进制显示。设计总图如图2-1所示 图2-1设计总图3设计过程方案论证AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高并且价廉的方案。数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,可以节省大量的I/O端口,而且功耗更低。用单片机技术来实现双显计数器的控制。多功能定时计数器控制系统的原理。它主要由单片机、发光二极管、晶振和双位数码管等部分组成。。:七段四位共阴极数码管,P1口接7个LED二极管,用二进制显示数据;P0和P2口分别接两个数码管,用十进制显示数据。:有触发按键完成输入,一次按键LED显示和数码管显示分别加1,LED满二进位,数码显示满十进位。:电路接通电源后电源指示灯亮起,表示电源接通。设计总体框架图如图3-1所示数码管显示STC89C51触发电路LED显示图3-1总体框架图最小控制系统的设计,STC89C51单片机最小系统包括晶体振荡电路、复位开关和电源部分。STC89C51单片机的最小系统图如图3-2所示图3-2单片机最小控制系统当RST引脚有一个高电平并维持两个机器周期,则 CPU就可以响应并将系统复位。需要100欧,10k电阻各一个,22pf电容一个,按键一个。时钟电路需要在XTAL1,2,两个端口跨接石英晶体及两个电容,电容一般取10uF左右。-3所示图3-,八段选端接P1口,四个位选端接P3口,如上图所示。数码管显示电路如图3-4所示。图3--5所示。图3-5复位电路4应用程序#include<>#include<>#include<>voiddelay5ms(void){unsignedchari,j;for(i=10;i>0;i--)for(j=248;j>0;j--);}voiddelay2ms(void){unsignedchari,j,k;for(i=20;i>