基于Proteus和Keil的花样流水灯控制电路的设计与仿真
2017-08-22郑丽敏
郑丽敏
摘 要:在Proteus仿真软件与Keil编程软件的基础上设计了基于AT89C51单片机为控制核心的八位LED花样流水灯的控制电路。最终通过硬件电路的仿真,验证了电路设计的正确性,整个电路的设计过程,实现了将Proteus与Keil的完美结合,为单片机控制电路的设计提供了一种设计思想。
关键词:Proteus和Keil 流水灯 控制电路
中图分类号:TP369.2 文献标识码:A 文章编号:1672-3791(2017)07(b)-0055-02
1 Proteus与KeilμVision4简介
英国Labcenter Electronics公司研发的Proteus软件,是一种模拟单片机外围器件的工具,包含ARES、ISIS等软件模块,是一种电路设计与仿真软件。ARES模块的主要功能是进行PCB电路的设计,制作电路板,而ISIS模块的主要功能是在系统中进行电路原理图的绘制与仿真。PROTEUS的软件仿真基于VSM技术,最大的优势是它能仿真大量的单片机芯片,如MCS-51、PIC系列等,以及单片机外围电路,如键盘、LED等。
美国Keil Software公司出品的Keil C51,是一种兼容汇编和C语言的软件开发系统,是基于Windows的开发界面,界面友好,内涵非常多的库函数以及调试工具,功能强大,易学易用。Keil μVision4通过一个集成开发环境将包括C/C++编译器、宏汇编、连接/定位器和HEX文件生成器等一套完整的开发设计方案组合在一起的应用软件。Keil软件的运行要求在WIN98、NT、WIN2000、WINXP、WIN7等操作系统的环境下。
2 系统设计
2.1 任务目标
用AT89C51单片机的P1口控制8个LED灯,使其先从上到下D1到D8依次点亮,循环2次,然后从下到上D8到D1依次点亮,循环2次,接着8等全部点亮、全部熄灭,变化时间间隔为0.2 s,这样完成一次完整的循环,再重新第二次循环,并用Proteus软件和Keil软件仿真,进行联机调试。
2.2 硬件电路设计
该文是利用Proteus与Keil软件结合来实现电路设计与仿真的。Proteus主要负责电路硬件的设计与搭建,而Keil软件主要是利用C语言对Proteus中的80C51单片机进行编程,实现相关的指令控制。
该电路硬件结构由一片AT89C51单片机、8个LED灯、8个电阻等组成,其中单片机的八位P1口连接八位LED灯,外围电路包括输入电源电路、电源滤波电路、复位电路和LED指示电路。该设计中LED信号灯电路采用发光二极管,阳极通过限流电阻R与+5 V电源连接,阴极连接到单片机的P1口8个引脚,如图1所示。要实现LED灯点亮,依据二极管的单向导电性,以及电路设计可以使P1口引脚输出低电平(逻辑0)即可,要熄灭它,P1口引脚输出高电平(逻辑1)即可。
2.3 程序设计分析
对单片机AT89C51写入对应指令和相关数据后,来实现LED流水灯闪亮的任务目标。整个过程是在Keil μVision4软件编译环境下,应用C语言进行程序设计的,8个LED灯从上到下依次点亮、循环等通过数组可以实现。任务中要求LED灯点亮0.2 s,熄灭0.2 s。MCS-51单片机晶振频率为12 MHz,则一个机器周期是为1μs。由于单片机中多数指令都是单周期指令,因此执行一条指令的时间为一个机器周期,任务要求时间间隔为0.2 s,程序编写中用循环语句来完成计数和时间延迟。延时程序如下:
void delay(void)
{
unsigned char m,n,s;
for(m=20;m>0;m--) //m每减去一次
for(n=20;n>0;n--) //n要执行20次,n减到0为止
for(s=248;s>0;s--); //n每减去一次,执行一次for(s=248;s>0;s--)}
m减到0退出循环,单片机的时钟频率为12 MHz,在keil C中获得最为准确的延时函数将是void delay(unsigned char t),反汇编执行DJNZ指令需要2个机器周期,具体延时时间为1×1+20×1+400×1+99200×2+400×2+20×2=199661个机器周期,199 661μs,约0.2s,满足任务要求。
2.4 仿真
在Proteus7.8 软件环境下将生成的.HEX十六进制文件下载到AT89C51单片机中,将Keil所编译的程序通过Proteus 软件进行仿真,验证是否满足功能设计要求,通过应用Proteus 软件,最终验证了程序设计的正确性,整个仿真电路及单步执行效果如图2所示。
3 结语
该文以AT89C51单片机为控制核心,以八位LED灯为显示载体,来设计花样流水灯的硬件和软件电路,并详细分析了延时子程序。整个流水灯程序设计简单,功能可扩展性强,将Proteus和Keil仿真软件联调应用到单片机程序开发设计电路中,极大地缩减了单片机开发设计流程,具有一定的理論与现实意义。
参考文献
[1] 陈玉楼.单片机原理与应用技术[M].北京:科学出版社,2015.
[2] 杨延宁,刘立军,张志勇.基于Proteus的单片机汉字点阵显示电路设计[J].液晶与显示,2009,24(1):98-101.
[3] 吴晓苏.单片机原理与接口技术[M].人民邮电出版社,2009.