定时器控制四个LED滚动闪烁.docx
《定时器控制四个LED滚动闪烁.docx》由会员分享,可在线阅读,更多相关《定时器控制四个LED滚动闪烁.docx(9页珍藏版)》请在冰豆网上搜索。
定时器控制四个LED滚动闪烁
摘要
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
Keil软件是目前最流行开发MCS-51系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
本次设计就是使用Keil软件和STC89C51芯片进行数码管动态显示的设计与实现。
关键词:
单片机;STC89C51;数码管;keil
目录
1背景及意义1
2设计原理及设计方案2
2.1设计原理.....................................................2
2.1.1功能原理介绍……………………………………………………2
2.1.2程序流程图…………………………………………………………3
2.1.3电路图…………………………………………………………3
2.2设计方案4
3设计过程4
3.1控制源程序清单4
3.2程序调试及结果5
结论7
参考文献8
1背景及意义
(1)单片机综述
在计算机出现以前,有不少能工巧匠做出了不少精巧的机械。
进入电器时代后,人们借助电气技术实现了自动控制机械,自动生产线甚至自动工厂,并且大大地发展了控制理论。
然而,在一些大中型系统中自动化结果均不理想。
只有在计算机出现后,人们才见到了希望的曙光。
如今借助计算机逐渐实现了人类的梦想。
但是,计算机出现后的相当长的时间里,计算机作为科学武器,在科学的神圣殿堂里默默地工作,而工业现场的测控领域并没有得到真正的应用。
只有在单片机(Microcontroller)出现后,计算机才真正地从科学的神圣殿堂走入寻常百姓家,成为广大工程技术人员现代化技术革新,技术革命的有利武器。
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机也是了解计算机原理与结构的最佳选择。
(2)单片机发展前景
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
(3)Keil软件简介
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果使用C语言编程,那么Keil几乎就是不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会事半功倍。
2设计原理及设计方案
2.1设计原理
2.1.1功能原理介绍
通过编写程序,实现对发光二极管的控制来实现4只LED滚动闪烁灯的管理。
每延时一段时间,灯的显示情况都会按LED灯的显示规律进行状态转换。
采用单片机内部的I/O口上的P0口中的4个引脚即可来控制4个LED灯实现本设计要求的具体功能,可以选用AT89S51单片机及外围器件构成最小控制系统,4个发光二极管分成1组蓝绿红黄4灯构成信号灯指示模块等。
在本设计中,实际控制的灯只有4个,其中均是低电平有效,所以在运行前LED灯的状态是灭。
主要器件的选择:
器件
个数
LED
4
晶振(11.0592)
1
电阻
若干
电容
2
表2-1
2.1.2程序流程图:
开始
初始化
设置计数器
i=0;i++
LED灯开始循环闪烁
计数器开始计数
计数完成
程序中断,i自加1,下一个LED灯开始闪烁
图2.1程序图
2.1.3电路图
定时器控制4个LED滚动闪烁如图2.2所示。
图2.2定时器控制4个LED滚动闪烁
2.2设计方案
可采用C语言编程,声明并调用延时函数编写源程序,实现定时器控制4个LED滚动闪烁,运行程序经调试后下载可运行得到结果。
3设计过程
采用单片机STC89C51控制,使用Keil软件,基于C语言编程,得到定时器控制4个LED滚动闪烁程序。
3.1控制源程序清单
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitB1=P0^0;
sbitG1=P0^1;
sbitR1=P0^2;
sbitY1=P0^3;
uinti,j,k;
//主程序
voidmain()
{
i=j=k=0;
P0=0xff;
TMOD=0x02;//定时器0工作方式2
TH0=256-200;//200us定时
TL0=256-200;
IE=0x82;
TR0=1;//启动定时器
while
(1);
}
//T0中断函数
voidLED_Flash_and_Scroll()interrupt1
{
if(++k<35)return;//定时中断若干次后执行闪烁
k=0;
switch(i)
{
case0:
B1=~B1;break;
case1:
G1=~G1;break;
case2:
R1=~R1;break;
case3:
Y1=~Y1;break;
default:
i=0;
}
if(++j<300)return;//每次闪烁持续一段时间
j=0;
P0=0xff;//关闭显示
i++;//切换到下一个LED
}
3.2程序调试及结果
启动Keil软件,输入源程序,并保存起来;然后建立工程文件,加入源程
序,设置工程。
调试编译结果如图3.1所示。
图3.1调试结果
结论
定时器控制4只LED滚动闪烁对于单片机初学者有着非常重要的作用。
本文完成了基于单片机的定时器控制4只LED滚动闪烁系统的设计与模拟。
包括闪烁方案的设计,系统的硬件开发、软件编程与仿真调试等。
在论文完成过程中,主要做的工作有
(1)确定LED滚动闪烁系统具体的通行方案以及要求其他多功能的实现。
(2)以ATMEL公司的AT89S51单片机为核心进行系统硬件设计,输入量包括:
输出LED灯亮灭状态及时间显示。
通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。
创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。
使之不断地战胜别人,超越前人。
同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。
设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。
参考文献
[1]张宏伟,李新德主编.单片机应用技术.北京:
北京理工大学出版社,2010
[2]毛谦敏主编.单片机原理及应用系统设计.北京:
国防工业出版社,2005
[3]陈光东,赵性初主编.单片微型计算机原理与接口技术(第二版).武汉:
华中科技大学出版社,1999
[4]郁汉琪主编.数字电子技术实验及课题设计.北京:
高等教育出版社,1997
[5]高钦和主编.可编程控制器应用技术与设计实例.北京:
人民邮电出版社,2004
[6]张洪润,兰清华主编.单片机应用技术教程.北京:
清华大学出版社,1997
[7]张凯主编.LED介绍完全手册.北京:
北京航空航天大学出版社,2000