TIMER0控制流水灯设计说明书.docx
《TIMER0控制流水灯设计说明书.docx》由会员分享,可在线阅读,更多相关《TIMER0控制流水灯设计说明书.docx(18页珍藏版)》请在冰点文库上搜索。
![TIMER0控制流水灯设计说明书.docx](https://file1.bingdoc.com/fileroot1/2023-5/23/1bc471f0-8f4c-4481-98a1-6012e15da178/1bc471f0-8f4c-4481-98a1-6012e15da1781.gif)
TIMER0控制流水灯设计说明书
摘要
自计算机问世以来,单片机技术在社会各领域中得到了广泛的应用。
在流水灯控制系统中,单片机更是取代了由齿轮调节延迟时间的旧式市开展速度,成为日后此系统中的核心局部。
由于单片机具有一些突出的优点:
体积小、重量轻、电源单一、功耗低;功能强、价格低;数据大都在单片机内部传送,运行速度快、抗干扰能力强、可靠性高,所以单片机被广泛的应用于测控系统、数据采集、智能仪器仪表、机电一体化产品、智能接口、计算机通信以及单片机的多级系统等领域。
本文主要讲的是单片机,课题名称为单片机TIMER0控制流水灯,它使我们学会了如何使用单片机控制我们日常生活中的多设备设施的应用。
通过本课题的设计以后,使我了解到了单片机的许多方面的应用。
本课题详细地介绍了一种由MCS-89C51集成块编程实现的控制电路,它完成了单片机流水灯控制功能,并给出了具体的硬件电路和相应的程序。
这种控制电路可靠性,灵活性高,使用X围广,特别适合中小城市的交通灯、霓虹灯等的应用。
而且,它对其他类似系统的开发具有一定的借鉴意义。
通过本次实训实习,其目的是让软件工程专业的毕业生通过自己动手制作一些实际电子产品,掌握一定的电子产品设计、制作技能和调试技术,稳固电子技术的理论知识,锻炼和提高学生的动手能力和综合运用知识解决实际问题的能力及实践动手能力。
让学生完全体验电子产品开发的全过程,整个电路的制作、调试,让学生完全自己动手完成,真正受到工程实践的根本训练,培养成为电子信息领域内的高级应用型技术人才。
关键词:
单片机;集成块;I/O口;接口技术信号灯。
绪论
随着单片机功能的飞速开展,单片机的应用领域已经广泛渗透到了国民经济的各个领域,无是无处不在影响着每个现代人的生活。
单片机技术的出现给现代工业测控领域带来了一次技术革命。
目前,单片机仍以其高可靠性、高性价比,在工业控制系统、数据采集系统、智能画仪器仪表、智能家电等诸多领域得到了广泛的应用。
作为将要从事单片机应用系统开发方面的技术人员,掌握单片机的应用技术是必要的。
在单片机的应用过程中,单片机只是应用系统的一个核心部件,为把单片机系统应用于不同的领域,只掌握单片机的根底知识是远远不够的,要想构成一个完善的应用系统,还要熟悉执行机构及硬件接口电路的应用特性,同时,还应该掌握系统的构造布局、印刷电路板的构造布局及软件的设计技巧这些书本上学不到的知识,因此为设计出完善的应用系统,必须在实际工作中勤于实践,逐步积累这方面的经历。
当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。
单片机具有体积小、功能强、本钱低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。
学习单片机的最有效方法就是理论与实践并重,次此用AT89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以及给单片机初学者以启发,更快地成为单片机领域的优秀人才。
电子技术课程设计是电子技术课程的实践性环节,是对所学的电子技术根本理论知识的综合运用。
课程设计是根据某一课题技术指标或逻辑功能的要求,进展电路的独立设计,实验安装和调试,在实验板上进展电子产品的制作和写出实验总结报告。
根据这次课程设计的内容和要求,我首先进展了整体方案的构思,通过在图书馆和上网查阅资料,并分析和比拟,选取了一种简单而且可行性高的方案。
此方案主要由、定时计数电路、主控电路、程序译码驱动电路等组成。
通过查阅有关书籍、上网和综合已学机以及电子技术的知识,并考虑到电路的工作稳定性,设计本钱低,电路简单,功耗低等因素,同时还留有余地用于电路的功能扩展,鉴于此选用了比拟常见的元器件来构成各单元电路,选取所须的元件后,对各电路元件的参数进展了计算,然后进实验室进展仿真电路的绘制和调试。
经过几周紧X的工作,期间还进展了局部方案的的单片修改和改良,实现了课程设计的主要任务和具体要求。
第一章设计目的
1.1设计目的
1、通过单片机课程设计,熟练掌握单片机C语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。
2、通过定时器控制流水灯的设计,掌握定时/计数器使用方法,同时掌握简单程序的编写,最终提高我们的逻辑抽象能力。
1.2设计内容和要求
内容:
设计一个能够控制流水灯的仿真模拟系统。
要求:
利用单片机的定时器定时,控制流水灯。
1.3设计思路
1.先熟悉实验原理,了解16只滚动LED闪烁系统灯的工作过程,组成滚动闪烁系统需要的组件。
2.绘制电路原理图,编写程序,并进展仿真,根本实现LED滚动闪烁系统灯的功能。
第二章设计原理分析
2.1总体方案设计分析
要求用89C51的P0口和P2口做为输出,接16个发光二极管,从而实现16位流水灯的显示效果,根本的界限可如下列图所示
1根本流水灯显示电路
P0口和P2口两个端口不能同时复制,从而在试验中可以用BX进展需要复制的数据的存储,因为BX可以分从BHBL两个局部进展独立的操作,在本次试验中用BH对A口进展赋值,用BL对B口进展赋值,通过演示一段时间再对BHBL进展移位和输出,实现流水灯的效果。
2正反方向选择
把PC.0口接在开关上,编写程序对C端口的数据进展读取,并进展判断,使得当PC.0为高电平的时候那么灯进展左移,同时P2口与P0口相反。
3快慢速度控制
把PC.1口接在开关上,编写程序对C端口的数据进展读取,并进展判断,使得当PC.1为高电平的时候那么延时的时间缩短,使得流水灯的流水速度加快,低电平的时候那么进展延时的时间变长,使得流水灯的流水速度加快。
4硬件原理设计
A该模块的WR.RD分别练到PC总线接口模块的XIOW和XIOR
B该模块的数据〔AD0~AD7〕、地址线〔A0~A7〕分别连到PC总线接口模块的数据〔D0~D7〕、地址线〔A0~A7〕
C8255模块选通线CA连到PC总线接口模块的IOY3
D8255的PA0~PA7连到发光二极管的L1~L8;8255的PB0~PB7连到发光二极管的L9~L16
E软件流程框图及程序清单
2.2TIMER0控制流水灯的系统设计
通过编写程序,实现对发光二极管的控制,来16只LED滚动闪烁灯的管理。
每延时一段时间,灯的显示情况都会按LED灯的显示规律进展状态转换。
采用单片机内部的I/O口上的P0口和P2口中的8个引脚即可来控制16个LED灯。
2.3TIMER0控制流水灯的功能要求
本设计能模拟根本的LED滚动闪烁系统,是用中断的方式定时控制LED定的闪烁及滚动。
计时显示
定时/计数器工作方式存放器,定时器采用T0定时器0工作于模式2位数:
8位计数X围:
0-255具有自动加载功能
2.4定时器控制流水灯系统的根本构成及原理
单片机设LED灯闪烁系统,可用单片机直接控制信号灯的状态变化可以广泛的应用到商业和工业的流程控制测电路当中。
图2.1系统的总体框图
据此,本设计系统以单片机为控制核心,连接成最小系统。
系统的总体框图如上所示。
因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。
特别是较高的波特率(19600,19200),不管多么乖僻的值,这些晶振都是准确,常被使用的。
当定时器1被用作波特率发生器时,波特率工作于方式1和方式3是由定时器1的溢出率和SMOD的值(PCON.7------双倍速波特率)决定:
方式1、3波特率=(定时器1的溢出率)特殊时,定时器被设在自动重袋模式(模式2,TMOD的高四位为0100B),其为:
方式1、3波特率=11.0592MHZ晶振的一些典型波特率如下:
波特率SMODTH11920010FDH960000FDH480000FAH
240000F4H120000E8H30000A0H
更换一种计算方式,它将以修改公式到达我们需求的波特率来计算出晶振。
最小晶振频率=波特率x384x2SMOD这就是我们所需波特率的最小晶振频率,此频率能成倍增加到达我们需求的时钟频率。
第三章系统硬件电路的设计
3.1系统硬件总电路构成及原理
实现本设计要求的具体功能,可以选用AT89S51单片机及外围器件构成最小控制系统,16个发光二极管构成信号灯指示模块等。
主要器件的选择:
器件
个数
放光二极管
16
晶振〔11.0592〕
1
电阻
17
电容
3
表3-1
3.2主控制局部――AT89C51单片机简介
89C51是一种带4K字节闪存可编程可擦除只读存储器〔FPEROM—FlashProgrammableandErasableReadOnlyMemory〕的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51单片机为40引脚双列直插芯片,有4个I/O口,P0,P1,P2,P3,单片机的最小系统如下图,18引脚和19引脚接时钟脉冲电路,XTAL1接外部晶振和微调电容的一端,在片内它是震荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内她是振荡器倒相放大器的输出端,第9引脚为复位输入端,接上电容,电阻及开关后构成上电复位电路,20引脚为接地端,40引脚为电源端。
如下图:
图3.1晶振与单片机的连接
3.2.1AT89C51的内部构造功能
·中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
·数据存储器(内部RAM):
数据存储器用于存放变化的数据。
AT89S51中数据存储器的地址空间为256个RAM单元,但其中能作为数据存储器供用户使用的仅有前面128个,后128个被专用存放器占用。
·程序存储器(内部ROM):
程序存储器用于存放程序和固定不变的常数等。
通常采用只读存储器,且其又多种类型,在89系列单片机中全部采用闪存。
AT89C51内部配置了4KB闪存。
·定时/计数器(T0):
定时/计数器用于实现定时和计数功能。
AT89C51共有2个16位定时/计数器。
·并行输入输出(I/O)口:
8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。
每个口都由1个锁存器和一个驱动器组成。
它们主要用于实现与外部设备中数据的并行输入与输出,有些I/O口还有其他功能。
·全双工串行口:
A89C51内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
·时钟电路:
时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。
·中断系统:
中断系统的作用主要是对外部或内部的终端请求进展管AT89C51共有5个中断源,其中有2个外部中断源和3个内部中断源。
3.2.251单片机的串行接口工作方式
51单片机的串行接口有四种工作方式。
方式0是将SBUF作为8位同步移位存放器使用〔固定波特率〕;方式1是10位异步通信方式〔可变波特率〕;方式2是11位异步通信方式〔固定波特率〕;方式3是11位异步通信方式〔可变波特率〕。
图3.2 串行接口与单片机的连接
3.3其它器件
3.3.1发光二极管
根据本设计的特点,LED的显示不可少,LED的显示采用普通的发光二极管。
在硬件上连接图上也是对称分布的,如下列图3.4所示。
图3.3LED灯的连接
在本设计中,实际控制的灯只有16个,其中均是低电平有效,所以在运行前LED灯的状态是灭。
3.3.2晶体震荡器
石英晶体振荡器是一种高精度和高稳定度的振荡器,被广泛应用于彩电、计算机、遥控器等各类振荡电路中,以及通信系统中用于频率发生器、为数据处理设备产生时钟信号和为特定系统提供基准信号。
石英晶体振荡器是利用石英晶体〔二氧化硅的结晶体〕的压电效应制成的一种谐振器件,它的根本构成大致是:
从一块石英晶体上按一定方位角切下薄片〔简称为晶片,它可以是正方形、矩形或圆形等〕,在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振。
其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。
国际电工委员会〔IEC〕将石英晶体振荡器分为4类:
普通晶体振荡〔TCXO〕,电压控制式晶体振荡器〔VCXO〕,温度补偿式晶体振荡〔TCXO〕,恒温控制式晶体振荡〔OCXO〕。
目前开展中的还有数字补偿式晶体损振荡〔DCXO〕等
3.4定时器控制16只流水灯控制系统原理图
本系统以单片机为核心,系统硬件电路由单片机,电阻,LED显示组成。
其具体的硬件电路总图如图3.6所示。
图3.4系统原理
第四章系统软件程序的简单设计
软件设计是应用系统研制中工作量最大最重要也是最困难的任务,它可以分为两局部:
一是用于管理单片机系统工作的监控管理程序;二是用于执行完成实际具体任务的功能程序。
而功能程序通常应包括数据采集和处理程序、控制算法实现程序、人机联系程序和数据管理程序。
监控程序是控制单片机系统按预定操作方式运转的程序,它的任务是:
1.在系统投入运行的最初时刻,应对系统进展自检和初始化。
当用户操作键盘时,必须对键盘操作进展解释,调用相应的功能模块,完成预定的任务,并通过显示等方式给出执行的结果,即完成处理键盘命令的任务。
2.对于具有遥控通信接口的单片机系统,监控程序还应包括通信解释程序,即具有处理接口命令的功能。
3.单片机系统在运行时也能被某些预定的条件触发而完成规定的操作,这类条件中有定时信号、外部触发信号等,监控程序也应考虑处理条件触发并完成显示的功能。
软件设计通常才用模块化程序设计、自顶向下的程序设计方法。
4.1程序框图
﹕
图4.1程序框图
4.2程序流程图及程序
4.2.1程序流程图:
图4.2程序图
4.2.2程序清单:
主程序:
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
//主程序
voidmain()
{
ucharT_Count=0;
P0=0xfe;
P2=0xfe;
TMOD=0x01;//定时器0工作方式1
TH0=(65536-40000)/256;//40ms定时
TL0=(65536-40000)%256;
TR0=1;//启动定时器
while
(1)
{
if(TF0==1)
{
TF0=0;
TH0=(65536-40000)/256;//恢复初值
TL0=(65536-40000)%256;
if(++T_Count==5)
{
P0=_crol_(P0,1);
P2=_crol_(P2,1);
T_Count=0;
}
}
}
}
当上述程序编写好以后,我们需要使用编译软件对选的程序进展编译,得到单片机所能识别的二进制代码,然后再用编程器将二进制代码添加到protues仿真图中播放运行,我们就看到LED1~LED16的“流水〞效果了。
4.2.3实验仿真结果图:
图4.2实验仿真结果图
结论
定时器控制16只LED滚动闪烁对于单片机初学者有着非常重要的作用。
本文完成了基于单片机的定时器控制16只LED滚动闪烁系统的设计与模拟。
包括闪烁方案的设计,系统的硬件开发、软件编程与仿真调试等。
在论文完成过程中,主要做的工作有:
〔1〕确定LED滚动闪烁系统具体的通行方案以及要求其他多功能的实现。
〔2〕以ATMEL公司的AT89S51单片机为核心进展系统硬件设计,输入量包括:
输出LED灯亮灭状态及时间显示。
通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。
创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。
使之不断地战胜别人,超越前人。
同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。
设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。
参考文献
【1】谢维成.单片微型计算机原理及应用.清华大学,2009.
【2】余锡存曹国华.单片机原理及接口技术.XX电子科技大学,2011.
【3】雷丽文等.微机原理与接口技术.电子工业,1997.
【4】吴黎明,王桂棠,洪添胜,等.单片机原理及应用技术.科学,2005.
【5】韩克,柳秀山,等.电子技能与EDA技术.暨南大学,2004.
【6】X毅坤.单片微型计算机原理及应用.XX电子科技大学,1998