最新Proteus课程设计报告.doc
精品资料Proteus课程设计报告.protous课程设计报告题 目: 数码管流动显示12345678 摘 要1.内容:利用动态扫描让八位数码管稳定的显示1、2、3、4、5、6、 7、82.目标:(1)掌握单片机控制八位数码管的动态扫描技术,包括程序设计和电路设计,本任务的效果是让八位数码管稳定的显示12345678。(2)用PROTEUS进行电路设计和实时仿真3.知识点链接(1)数码管动态扫描 (动态扫描的定义以及与静态显示的区别)动态显示的特点是将所有位数码管的段选线s一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。 (2)总线的应用元器件与总线的连线P0口的接线采用总线方式,详细如电路图1所示。 选择总线按钮 绘制总线:与普通电线的绘制方法一样,选择合适的起点、终点单击。如果终点在空白处,左键双击结束连线。画总线的时候为了和一般的导线区分,我们一般喜欢画斜线来表示分支线。此时我们需要自己决定走线路径,只需在想要拐点处单击鼠标左键即可。在画斜线时,需要关闭线路自动路径功能才好绘制。Proteus的线路自动路径功能简称WAR,当选中两个连接点后,WAR将选择一个合适的路径连线。WAR可通过使用标准工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。 给与总线连接的导线贴标签PART LABELS与P0口相连的线标签名依次为P00P06,本电路中的P0口的上拉电阻通过总线与P0口相连,数码管也是通过总线与P0口相连,这些都需要标注,以表明正确的电气连接。单击绘图工具栏中的导线标签按钮,使之处于选中状态。将鼠标置于图形编辑窗口的欲标标签的导线上,跟着鼠标的指针就会出现一个“×”号,表明找到了可以标注的导线,单击鼠标左键,弹出编辑导线标签窗口,如图-所示。 在“string”栏中,输入标签名称(如p00),单击“OK”按钮,结束对该导线的标签标定。同理,可以标注其它导线的标签,如图516所示。注意,在标定导线标签的过程中,相互接通的导线必须标注相同的标签名。目 录5 参考文献 1.前言1.1课题开发背景随着电子科技的飞速发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们多带来一点生活上的乐趣。基于当前市场上的智能数字市场需求量大,其中数码管显示技术就是一个很好的应用方面。单片机技术使我们可以利用软硬件实现数码管准确显示各种数码。1.2 课题研究的目的和意义利用AT89C51单片机自带资源,设计一款能流动显示12345678的设备。1.3 课题的主要研究工作本课题设计的主要工作如下:设计出用一个能够动态显示12345678的设备。2 系统硬件设计及说明2.1系统组成及总体框图硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。该设计要实现一种由单片机控制的秒表,单片机工作于12MHZ时钟频率。该设计具有一个按钮,方便、便捷。系统结构图如电路图1示。2.2硬件电路图12.3元件清单1.单片机:AT89C512.八位共阴极数码管:7SEG-MPX8-CA-BLUE3.NPN型三极管8个4.普通电容2个(22PF),电解电容1个(10UF)5.晶振1个(12MHZ)6.排阻1个.2207.电阻1个(220)8.电源1个(5V)2.4 AT89C51简介 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图片见左图:1)主要特性:·与MCS-51 兼容 ·4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源 ·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路2)管脚说明: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。3)振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4)芯片擦除: 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3系统软件设计3.1程序及程序描述#include <reg52.h> /52系列单片机头文件 #include <intrins.h> #define uchar unsigned char#define uint unsigned int /定义uchar code DSY_CODE= 0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /显示12345678void DelayMS(uint x) /延时子程序 uchar i;while(x-) for(i=200;i>0;i-);void main() uchar i,k=0x80;while(1) /循环 for(i=8;i>0;i-) P2=0xff;k=_crol_(k,1);P0=DSY_CODE8-i;P2=k;DelayMS(200); /延时3.2程序流程图开始声明变量, 数码管编码数组声明子程序数码管显示子程序主程序4总结与展望此次课程设计,系统部分功能已实现。可以准确高效地计时,基本达到预定的效果。在设计的过程中,小组各成员各负其责,设计不同模块。不仅提高了设计的效率,而且体现了实践动手及团队合作的精神。在此次设计过程中,虽然有很多程序的原理仍然没有弄懂,各器件的功能也不是完全了解,但是秉着勤奋刻苦和好学的态度,我在这次设计中对单片机的了解程度更增一步,也很大程度增大了我对单片机设计程序的兴趣。同时我们这次设计是通过团队来完成的,我们互相商量、讨论,力争得到最简单、最有用的设计程序。另外,遇到难题时,我们就会请教班级里的同学或老师,这样对于我们的进展也起到了很大的作用。在设计的过程中,小组各成员各负其责,设计不同模块。不仅提高了设计的效率,而且体现了实践动手及团队合作的精神。本次课程设计是大学学习阶段一次非常难得的理论与实践相结合的机会,通过这次比较系统的项目设计提高了我们运用所学的专业基础知识来解决面临实际问题的能力。为了尽早完成作品,我们坚持努力,经过课下大量的实践操作,我们丰富了各种器件常识,收获了难得的实践经验。参考文献1.单片机入门实践程利民、宋胜利主编。.湖北科学技术出版社2.C语言综合实践程利民、姜新桥、朱晓玲主编。内部试用3.接口应用实践 程利民、姜新桥、朱晓玲主编。内部试用