《(单片机课程设计报告).docx》由会员分享,可在线阅读,更多相关《(单片机课程设计报告).docx(18页珍藏版)》请在优知文库上搜索。
1、单片机课程设计报告题目:可控流水灯摘要单片机是一种集成电路芯片,采纳超大规模技术,把具有数据处理实力的微处理器、随机存取数据存储器、只读程序存储器、输入输出电路、可能还包括定时计数器、串口通信口、显示驱动电路,脉宽调制电路、模拟多路转换器及A/D转换器等电路集成到一块芯片上,构成一个最小而完善的计算机系统。这些电路在软件的限制下精确、快速、高效地完成程序设计者事先规定的任务。对可控流水灯设计通过编写代码实现10个1.ED灯4种流水灯显示方式。在设计中主要采纳89C51这款芯片作为限制主体,用发光二极管来作为显示灯。系统通过P2口外接8个发光二极管,P3口接2个发光二极管。设计中辅以简洁的设备和
2、必要的电路,设计了一款流水灯,最终达到预期的目的。关键词单片机89C51发光二极管流水灯1引言12课题综述11. 1课题来源与意义12. 2面临的问题13系统设计13.1总体设计13. 2模块设计23.3硬件设计64代码编写65系统调试76系统运行结果与分析8结论9致谢10参考文献11附录121引言单片机限制系统能够取代以前利用困难电子线路或者数字电路构成的限制系统,可以软件限制来实现,并能够实现智能化。现在的单片机的限制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程限制和专用限制装置等等,单片机的应用领域越来越广泛。2课题综述1.1 课题来源与意义随着经济的发展、科技的突飞猛进,芯
3、片业得到了快速的发展,是单片机技术在各种民用和工业限制等领域得到更广泛的应用。单片机凭借其低成本、高性能的不行代替优势已经成为了微电脑限制的主力军。学习单片机的有效方法是将理论与实践并重,因此通过对单片机可控流水灯的设计和探讨,激励学生在熟识基本原理的前提下,与实际应用相联系,提出自己的方案,来完善设计,使得他们更好的驾驭单片机的应用。2. 2面临的问题本次课程设计的要求是对10个1.ED灯设计4种流水灯显示方式.解决的问题有流水灯显示方式的设计。下面将对各个问题绽开论述。3系统设计2.1 总体设计实现这个课题我们运用89C51作为限制主体,运用十个共阳极发光二极管作为1.ED显示流水灯。外接
4、一个晶振来供应外接时钟脉冲,和复位电路.模块图如下:复位电路模块显示电路模块时钟电路模块流程图如下:核心限制模块AT89C51图3-1系统模块图起先启动发光管显示模式结束图3-2系统流程图3. 2模块设计主体限制模块及介绍POPkP2、P3口均可以作为I/O口运用。发光管经过上拉芯片89C51是核心,电阻接在89C51的P3口上两个,P2口外接8个发光二极管.鞋片机的外形图p.omESJvccpi.m3PO.O/(ADO)pi.2m3PO.1/(ADDPl.303Po.2/CW2)Pl4司iPO.3/(AOJ)pi.5m3PO.4/(AM)pi.6m3PO.5(AD5)Pl.7国3PO.6/(
5、KDt)RST国FO.?(D11(RXD)P1003Ea/Vpp1fflAT89C51U3K1.E/PROGETOP3.2回E(TSTT)P3.3面三P2.7U5)(TQ)P3回3.6/(Al4)np5国P2.5/(A13厮P3.6百DIP2.4(AU)(InhP3.7回3P2.3AiXTA1.2国3P2.2/(AIO)XTA1.103?2.1(A9)0D国F11P2.0(AS)AT89C51的引脚博列图3-3主体限制模块图管脚说明:VCC:供电电压。GND:接地。PO:PO口为一个8位漏级开路双向I/O口,每脚可汲取8TT1.门电流。当PO口的管脚第一次写1时,被定义为高阻输入。PO能够用于
6、外部程序数据存储器,它可以被定义为数据/地址的第八位。在FlASH编程时,PO口作为原码输入口,当FlASH进行校验时,PO输出原码,此时Po外部必需被拉高。Pl口:Pi口是一个内部供应上拉电阻的8位双向I/O口,Pl口缓冲器能接收输出4TT1.门电流。Pl口管脚写入1后,被内部上拉为高,可用作输入,Pl口被外部下拉为低电平常,将输出电流,这是由于内部上拉的原因。在F1.ASH编程和校验时,Pl口作为第八位地址接收。P2:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TT1.门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的
7、管脚被外部拉低,将输出电流。这是由于内部上拉的原因。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特别功能寄存器的内容。P2口在F1.ASH编程和校验时接收高八位地址信号和限制信号。P311:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TT1.门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(I1.1.)这是由于上拉电阻的原因。P3口也可作为AT89C51的一些特别功能口,如下表所示
8、:P3口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外部中断0)P3.3/INTl(外部中断1)P3.4T0(记时器0外部输入)P3.5Tl(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪耀编程和编程校验接收一些限制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平常间。A1.E/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在F1.ASH编程期间,此引脚用于输入编程脉冲。在平常,A1.E端以不变的频率周期输出正脉冲信号,此频率为振荡
9、器频率的l6o因此它可用作对外部输出的脉冲或用于定时目的。然而要留意的是:每当用作外部数据存储器时,将跳过一个A1.E脉冲。如想禁止A1.E的输出可在SFR8EH地址上置0。此时,A1.E只有在执行MoVX,MoVC指令是A1.E才起作用。另外,该引脚被略微拉高。假如微处理器在外部执行状态A1.E禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平常,则在此期间外部程序存储器(OooOH-FFFFH),不管是否有内部程序存储器。留意加密方
10、式1时,/EA将内部锁定为RESET;当/EA端保持高电平常,此间内部程序存储器。在F1.ASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTA1.1:反向振荡放大器的输入及内部时钟工作电路的输入。振荡器特性:XTA1.l和XTA1.2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采纳。如采纳外部时钟源驱动器件,XTA1.2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必需保证脉冲的凹凸电平要求的宽度。3.1 2时钟模块时钟电路用于产生单片机工作时所需的时钟信号,在芯片的外部通过18脚、19脚接晶体
11、振荡器和微调电容,形成反馈电路,构成一个稳定的自激振荡器。电路中的Cl、C2取30Pf左右,二晶体振荡器的频率范围通常是1.2-12MHZ,晶体振荡器的频率越高,振荡频率越高。C1图3-5时钟模块图I1Xl.CRYSTA1.3.2.3流水灯模块发光二极管就是1.ED,是一种由磷化钱等半导体材料制成的、能干脆将电能转换成光能的发光显示器件。当其内部有肯定电流通过时,就是发光。发光二极管具有功耗低、体积小、牢靠性高、寿命长和相应快等优点。流水灯模块采纳10个1.ED发光二极管,通过代码的编写,实现4种流水移动,其中电阻的作用是爱护二极管,向它供应较小的电流,防止二极管因为电流过大而烧毁。设计中,发
12、光二极管是共阴极接法的,我们只须要将其初值不断的左移就会看到1.ED轮番的被点亮,也就实现了流水灯的功能。3-5流水灯模块图3.3硬件设计图37硬件连接图4代码编写定义各个端口:sbitledl=P20;定义P1.o端口为了Iedlsbitlcd2=P2T;sbitled3=P22;sbitled4=P23;sbitled5=P24;sbitled6=P25;sbitled7=P26;sbitled8=P27;sbitled9=P30:sbitIedO=P延时:delay(uintz)延时环节uintx,y;for(x-z;x0;x-)for(y=110;y0;y一);)方式1:for(i=l
13、;i20;i+)第一种状况,全部亮P2=0XFF;P3=0XFF;delay(100);P2=0X00;P3=0X00;delay(100);第一种状况,使十个发光二极管全部亮方式2:让第1,3,5,7,9灯依次亮方式3:让十个灯依次亮方式4:让两个一组依次亮5系统调试通过对编写好的代码用keil进行编译后,因为对keil不是太熟识,以至于花了很长时间都无法载入到PrOtUeS中进行仿照。后来在请同学帮忙,才得以完成。并且每种方式都可以很好的得以实现。6系统运行结果与分析通过USB线接通供应电源后,Ied灯能正常显示,Ieel灯首先一全部亮的方式实现,在循环了20次后第一种状况结束:接着自动进
14、行其次种状况,使奇数的灯依次亮,同样的在循环了20次后自动进入进入第三种循环方式,如此进行直至结束。但是,由于技术达不到,不能运用开关进行选择哪一种循环方式;同时也不能自动停止,须要人工停止。通过这次的课程设计,让我学习到了许多学问以及相识到了许多问题。同时我意识到了一个很重要的问题,那就是课程设计之前的打算工作也是很重要的,包括提前预习设计的题目,上网和去图书馆查阅资料。我清晰的知道了,资料也是那么重要,否则在一个新奇的题目面前,你将无从下手。通过打算工作,这样可以保正在设计的时候,有了足够的打算,使得自己不会在真刚要起先课程设计的时候,对着题目发呆,没有什么进展。因此,我觉得这个也是对待学
15、习的一种好的看法,以后在学习中,也要始终以这种好的看法对待。除此之外,让我发觉这次的可控流水灯设计,对于我以前的学习如Ied灯等的学问,不仅是一次很好的运用,而且让我再次花心思去复习了以前学习的学问点,运用之初相互结合学问点,使得学问点可以联系起来,对我的学习有了很大的好处。在程序设计的过程中,也遇到了好多的问题,刚起先在代码调试的时候,始终会存在错误,也有过很悲观的时候,在通过同学的帮助后,经过许多次的修改以后,最终把程序代码改好。在大家的帮助下,才得以完成了可控流水灯基本功能。总的来说,这次设计获益胜多。因为本次课程设计是一个团队的合作,所以,不仅使得我们团结合作,学习到了学问,还让我们更加的学会沟通