闪烁灯跑马灯控制系统河南工院第1 章概述1.1设计的目的及意义⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..31.2单片机的概述与应用⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..3第2 章设计原理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.. ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯42.1设计要求与基本思路⋯⋯⋯⋯⋯⋯.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯42.2设计方案选择⋯⋯⋯⋯⋯.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯52.3设计框图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯. ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5第3 章硬件电路设计⋯⋯⋯⋯⋯⋯⋯.. ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯73.1时钟电路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯.73.2扩展电路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..8第4 章程序设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯94.1程序设计思路与流程图⋯⋯..⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ (9)4.2程序清单与代码⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯..⋯114.3程序调试⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯.⋯12第 5 章原件明细表⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13 总结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯14 参考文献15第1 章概论1.1设计的目的与意义当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。
单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
竞争日益剧烈的今天,当代大学生不仅需要扎实的理论知识,还需要过硬的动手能力。
作为自动化专业的学生,更应该熟练掌握各种电路编辑软件,作为专业必需的技能更要及时地对这一类软件的更新版本进行学习,其日趋强大的功能是对我们专业技能的补充。
闪烁灯控制系统是利用8051单片机的P1控制的8 个发光二极管。
可实现从右到左闪烁一次,再从左到右闪烁一次,每次亮灭1 秒,如此循环,紧急情况下,控制P3.1 进行报警2S停止。
闪烁灯控制系统是简易的单片机控制系统,作为课程设计课题,通过实际程序设计和调试,逐步掌握块化程序设计方法和调试技术,通过课程设计,掌握一单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法,通过完成一个包括电路设计和程序设计开发的完整过程,了解开发单片机应用系统的全过程,通过本次设计对单片机应用上有一个初步的了解,增强自我的动手、动脑能力,以及发现问题,解决问题,总计经验教训的能力,为以后走向工作岗位,以及更高更远的发展打下坚实的基础1.2单片机概述与应用单片机是将CPU、存储器、定时/计数器以及I/O 接口等主要部件集成在一块芯片上的微型计算机。
单片机是单片微机(Single Chip Microcomputer)的简称,但准确反映单片机本质的名称应是微控制器。
目前国外已经普遍称之为微控制器。
鉴于他完全作嵌入式应用,故又称为嵌入式微控制器单片微机从体系结构到指令系统都是按照嵌入式应用特点专门设计的,它能最好地满足面对控制对象,应用系统的嵌入、现场的可靠运行以及非凡的控制品质等要求。
自从20世纪70 年代推出单片机以来,作为微型计算机的一个分支,单片机经过30 多年的发展,已经在各行各业得到了广泛的应用,由于单片机具有可靠性高、体积小、干扰能力强、能在恶劣的环境下工作等特点,具有较高的性价比,因此广泛应用于工业控制、仪器仪表智能化,机电一体化、家用电器等(1)工业控制:工业设备如机床、锅炉、供水系统、生产自动化、自动报警系统。
(2)智能设备:用单片机改造普通仪器如:仪表、读卡器、医疗器械。
(3)家用电器:如高档洗衣机、电冰箱、微波炉、电视、音响、手机、空调器。
(4)商用产品:如自动售货机、电子收款机、电子秤。
第2 章设计原理2.1设计要求与基本思路这次单片机课程设计,选择了闪烁灯控制设计,通过查阅各种文献资料,再加上自己以前所学单片机课程的基础,大概的设计思路可概括为以下8 个步骤:⑴通过累加器A给P1口送二进制数,驱动八个发光二极管,低电平发光,高电平熄灭。
⑵编写延时一秒的子程序DELAY,可通过软件定时,也可通过与定时器中断配合来实现。
⑶调用DELAY延时程序。
⑷送0FFH给P1 口,使发光二极管熄灭,再调用DELAY延时程序。
使发光二极管闪烁。
⑸送闪烁次数10 给寄存器R0,通过DJNZ指令,配合DELAY延时程序,实现发关二极管闪烁,当闪烁十次后结束循环。
⑹执行RR(循环右移)指令,指向下一个二极管,重复第5 步。
⑺当8 个发光二极管从左至右依次闪烁完毕后,执行RL(循环左移)指令,重复第5 步,使二极管从右至左一次循环闪烁。
⑻当从右至左循环结束后,重复第6 步,循环闪烁。
由于在起初的硬件中选择了共阳的二极管接法,所以通过给P1 口输送低电平0 ,就可以使二极管发光,输送高电平1 可使二极管熄灭。
单片机中的定时器有四种工作方式,由于工作方式0 和工作方式1 计数溢出后,计数器都全为0,因此,循环定时或循环计数应用时就存在反复设置计数初值的问题。
这不但影响精度,而且也给程序设计带来了不便。
于是,选择工作方式2,它具有自动更新重新加载功能,即自动加载计数初值。
在这种方式下,把16 位计数器分为两部分,即TL 作计数器,TH 作预置寄存器,初始化时把初值分别装入TL和TH中。
为了能够清晰的看见二极管闪烁,选择定时器定时500us, 再通过配合DJNZ指令来实现延时1s的定时。
由于,DJNZ中操作数的范围不能达到2000,所以选择两条DJNZ 指令,一次置200,一次置10,依次循环就可达到要求。
2.2设计方案选择在做本次课程设计时,用到了8051 单片机,由于其程序存储器是掩膜ROM,其编程是由半导体制造厂家完成的,即在生产过程中进行编程,当掩膜ROM制造完成后,用户不能更改其内容。
因此,选择了型号为27256(32KB)的EPROM作为它的程序存储扩展。
同时EA引脚必须有效,方可访问外扩程序存储器。
在引脚的连接时,8051单片机的PSEN引脚须接EPROM 的OE 端,当PESN有效时,允许读出EPROM 中的指令码。
同时,ALE 接74LS373译码器的G引脚,当CPU 访问片外存储器时,ALE 输出信号作为锁存低8 位地址的控制信号,以实现低位地址和数据的隔离。
因此,其程序存储器扩展图如图2 所示。
单片机的复位操作有上电自动复位和按键自动复位两种方式。
上电复位是通过外部复位电路的电容充电来实现的。
电容C1选择10uf,电阻选择10K,这样,只要电源VCC 的上升时间不超过1ms,就可实现上电复位,即接通电源就完成了系统的复位初始化。
时钟电路用于产生单片机工作所需的时钟信号。
在MCS-51 系列单片机芯片外部,X1 和X2 之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路。
电容器C2 和C 通常3取30pf,对振荡频率有微调作用,选择振荡频率为12MHZ 的石英晶体。
2.3设计框图VCC图1 闪烁灯控制设计硬件接GNDP0.7P2.7VCC 线图第3 章硬件电路设计3.1 时钟电路图2 8051 内部时钟电路图3 8051 外部时钟电路扩展电路外扩程序存储器的空间地址,是由P2 口提供高八位地址,P0 口分时提供低8 位地址和用作8位双向数据总线。
在设计硬件接线时,使27256 芯片的片选信号CE 始终保持有效,低八位A0~A7 通过74LS373 译码器连接P1 口,高七位A8~A14 连接P2.0~P2.6,具体连接如图2 所示。
因此其地址范围位0000H~7FFFH 其程序存储扩展图如图所示。
图 4 8051 程序存储扩展图第四章程序设计4.1 程序设计思路与流程图闪烁灯分8 个发光二极管,从左到右闪烁,或者从右到左闪烁,均呈现一个亮,而其余全灭的现象,8 个灯有8051统一控制,其亮灯条件说明表如下表1 闪烁灯灯亮的条件说明表流程图的绘制为编程提供了便利,通过对控制要求的理解而绘制的流程图可以让我们对控制过程更加熟悉并且编程的进行也变得有据可寻。
流水灯控制设计的流程图如图所示。
图 5 闪烁灯流程图4.2 程序清单与代码 ORG 0000H;程序存放的起始地址AJMP MAIN;上电,转向主程序ORG 0003H;外部中断 0 入口地址AJMP LOOP;转向中断服务程序ORG 0030H;主程序MAIN: SETB EX0;允许外部中断 0 中断SETB IT0;选择边沿触发方式SETB EA;CPU 开中断MOV R0,#10;将闪烁次数 10 送入 R0MOV R2,#8;将灯的数量 8 送入 R2MOV A,#07FHLOOP: MOV P1,A;使最左边的一个二极管发光LCALL DELAY;调用延时 1s 的子程序MOV P1,#0FFH;使最左边的一个二极管熄灭LCALL DELAY;调用延时 1s 的子程序DJNZ R0,LOOP;循环闪烁十次RR A;指向下一个二极管MOV R0,#10;再次将闪烁次数 10 次送入 R0DJNZ R2,LOOP;8 个灯从左到右依次闪烁完毕MOV R2,#8LOOP1: MOV P1,A;使最右边的一个二极管发光LCALL DELAY;调用延时 1s 的子程序MOV P1,#0FFH;使最右边的一个二极管熄灭LCALL DELAY;调用延时 1s 的子程序DJNZ R0,LOOP;循环闪烁十次RL A;指向下一个二极管MOV R0,#10;再次将闪烁次数 10 次送入 R0DJNZ R2,LOOP1 ;8 个灯从右到左依次闪烁完毕LJMP MAIN;转向主程序DELAY: MOV R5,#200MOV R7,#10;定时器 1 工作于方式 2 ;送初值;允许定时器 1 中断 ;P2.0 输出置 1 ;启动定时器 1;定时 500us 到, 转向 LOOP4执行;停止定时器 1 ;P2.0 输出取反;循环 2000 次定时程序,延时 1s ;返回 ;程序结束4.3 程序调试将编好的程序写入,单片机外部电源等调试完成后按下 P1,可以看到发光二极管从左到右一次点亮,并且每个二极管再点亮到熄灭的时间维持在 1 秒;延时 1s 的 DELAY 子程序LOOP2: MOV TMOD,#20HMOV TH1,#06H MOV TL1,#06H SETB ET1 SETB P2.0 SETB TR1LOOP3: JBC TF1,LOOP4SJMP LOOP3LOOP4: CLR TR1CLR P2.0 DJNZ R7,$ DJNZ R5,LOOP2 RET END左右。