当前位置:
文档之家› 单片机8管跑马闪烁灯控制课程设计
单片机8管跑马闪烁灯控制课程设计
#define Key_ON 0
#define Beep_ON 1
#define Beep_OFF 0
if(Key==Key_ON)
{
Beep=Beep_ON;
}
else
{
Beep=Beep_OFF;
}
//5秒延时函数
void delay5s()
{
unsigned charI;
TMOD=0x10;
For(i=0;i<0x64;i++){
temp=0x01;
for(i=0;i<8;i++) //8个流水灯逐个闪动
{
P1^=temp;
delay0.5s(); //调用延时函数
temp<<=1;
}
temp=0x80;
for(i=0;i<8;i++) //8个流水灯反向逐个闪动
{
P1^=temp;
delay0.5s(); //调用延时函数
2.1设计要求与基本思路……………….……………………………………4
2.2设计方案选择…………….………………………………………………5
2.3设计框图………………………….…………………………………5
第3章 硬件电路设计…………………..……………………………………7
3.1时钟电路…………………………………………………………….….7
竞争日益剧烈的今天,当代大学生不仅需要扎实的理论知识,还需要过硬的动手能力。作为自动化专业的学生,更应该熟练掌握各种电路编辑软件,作为专业必需的技能更要及时地对这一类软件的更新版本进行学习,其日趋强大的功能是对我们专业技能的补充。
闪烁灯控制系统是利用8051单片机的P1控制的8个发光二极管。可实现从右到左闪烁一次,再从左到右闪烁一次,每次亮灭0.5秒,如此循环,紧急情况下,控制P3.1进行报警5S停止。
2.3设计框图
图1闪烁灯控制设计硬件接线图
第3章硬件电路设计
3.1时钟电路
图2 8051内部时钟电路
扩展电路
外扩程序存储器的空间地址,是由P2口提供高八位地址,P0口分时提供低8位地址和用作8位双向数据总线。在设计硬件接线时,使27256芯片的片选信号CE始终保持有效,低八位A0~A7通过74LS373译码器连接P1口,高七位A8~A14连接P2.0~P2.6,具体连接如图2所示。因此其地址范围位0000H~7FFFH。
P1.1
P1.0
说明
L8
L7
L6
L5
L4
L3
L2
L1
1
1
1
1
1
1
1
0
L1
1
1
1
1
1
1
0
1
L2
1
1
1
1
1
0
1
1
L3
1
1
1
1
0
1
1
1
L4
1
1
1
0
1
1
1
1
L5
1
1
0
1
1
1
1
1
L6
1
0
1
1
1
1
1
1
L7
0
1
1
1
1
1
1
1
L8
流程图的绘制为编程提供了便利,通过对控制要求的理解而绘制的流程图可以让我们对控制过程更加熟悉并且编程的进行也变得有据可寻。流水灯控制设计的流程图如图所示。
⑻当从右至左循环结束后,重复第6步,循环闪烁。
由于在起初的硬件中选择了共阳的二极管接法,所以通过给P1口输送低电平0,就可以使二极管发光,输送高电平1可使二极管熄灭。
单片机中的定时器有四种工作方式,由于工作方式0和工作方式1计数溢出后,计数器都全为0,因此,循环定时或循环计数应用时就存在反复设置计数初值的问题。这不但影响精度,而且也给程序设计带来了不便。于是,选择工作方式2,它具有自动更新重新加载功能,即自动加载计数初值。在这种方式下,把16位计数器分为两部分,即TL作计数器,TH作预置寄存器,初始化时把初值分别装入TL和TH中。为了能够清晰的看见二极管闪烁,选择定时器定时500us,再通过配合DJNZ指令来实现延时0.5s的定时。由于,DJNZ中操作数的范围不能达到1000,所以选择两条DJNZ指令,一次置200,一次置5,依次循环就可达到要求。
图5闪烁灯流程图
4.2源程序
#include<reg51.h> //51系列单片机定义文件
#define unsigned char //定义无符号字符
void delay(unsigned char i); //声明延时函数
void main()
{
char i;
chartemp;
while(1)
{
第5章 原件明细表……………………………………………………13
总结…………………………………………………………………………………14
参考文献……………………………………………………..……………………15
第章 概论
1.1设计的目的与意义
当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
单片微机从体系结构到指令系统都是按照嵌入式应用特点专门设计的,它能最好地满足面对控制对象,应用系统的嵌入、现场的可靠运行以及非凡的控制品质等要求。
自从20世纪70年代推出单片机以来,作为微型计算机的一个分支,单片机经过30多年的发展,已经在各行各业得到了广泛的应用,由于单片机具有可靠性高、体积小、干扰能力强、能在恶劣的环境下工作等特点,具有较高的性价比,因此广泛应用于工业控制、仪器仪表智能化,机电一体化、家用电器等
⑶调用DELAY延时程序。
⑷送0FFH给P1口,使发光二极管熄灭,再调用DELAY延时程序。使发光二极管闪烁。
⑸送闪烁次数10给寄存器R0,通过DJNZ指令,配合DELAY延时程序,实现发关二极管闪烁,当闪烁十次后结束循环。
⑹执行RR(循环右移)指令,指向下一个二极管,重复第5步。
⑺当8个发光二极管从左至右依次闪烁完毕后,执行RL(循环左移)指令,重复第5步,使二极管从右至左一次循环闪烁。
闪
烁
灯
控
制
系
统
院系:电气工程系
班级:电气1002
学号:0401100207
姓名:
第1章概述…………………………………………….…………………………3
1.1设计的目的及意义………………………………………………………..3
1.2单片机的概述与应用……………………………………………………..3第2章 设计原理…………………………..……………………………………4
2.2设计方案选择
在做本次课程设计时,用到了8051单片机,由于其程序存储器是掩膜ROM,其编程是由半导体制造厂家完成的,即在生产过程中进行编程,当掩膜ROM制造完成后,用户不能更改其内容。因此,选择了型号为27256(32KB)的EPROM作为它的程序存储扩展。同时EA引脚必须有效,方可访问外扩程序存储器。在引脚的连接时,8051单片机的PSEN引脚须接EPROM的OE端,当PESN有效时,允许读出EPROM中的指令码。同时,ALE接74LS373译码器的G引脚,当CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号,以实现低位地址和数据的隔离。因此,其程序存储器扩展图如图2所示。
3.2扩展电路………………………………………………………………..8
第4章 程序设计……………………………………………………………9
4.1程序设计思路与流程图……..…………………………………………...9
4.2源程序………………………………………………….…..…11
4.3程序调试………………………………………………………….….…12
这次单片机课程设计,选择了闪烁灯控制设计,通过查阅各种文献资料,再加上自己以前所学单片机课程的基础,大概的设计思路可概括为以下8个步骤:
⑴通过累加器A给P1口送二进制数,驱动八个发光二极管,低电平发光,高电平熄灭。
⑵编写延时0.5秒的子程序DELAY,可通过软件定时,也可通过与定时器中断配合来实现。
(1)工业控制:工业设备如机床、锅炉、供水系统、生产自动化、自动报警系统。
(2)智能设备:用单片机改造普通仪器如:仪表、读卡器、医疗器械。
(3)家用电器:如高档洗衣机、电冰箱、微波炉、电视、音响、手机、空调器。
(4)商用产品:如自动售货机、电子收款机、电子秤。
第2章 设计原理
2.1设计要求与基本思路
其程序存储扩展图如图所示。
图38051程序存储扩展图
第四章程序设计
4.1程序设计思路与流程图
闪烁灯分8个发光二极管,从左到右闪烁,或者从右到左闪烁,均呈现一个亮,而其余全灭的现象,8个灯有8051统一控制,其亮灯条件说明表如下
表1闪烁灯灯亮的条件说明表
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。
其次,在这次课程设计中,清晰的分析过程也起到很大的作用。在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。