基于库函数的流水灯设计概论

2020-06-03 04:21张玲玲
科学与信息化 2020年9期
关键词:电路设计程序设计

张玲玲

摘 要 流水灯也叫跑马灯,它在很多场合都有应用,本文以AT89S51为控制芯片,用C51的库函数进行移位操作,实现LED灯以流水方式点亮。文章先介绍硬件电路设计,接着介绍了C51库函数,以及采用库函数方式实现流水灯的程序设计,经试验验证, 该设计是正确的、合理的。

关键词 AT89S51;流水灯;电路设计;库函数;程序设计

引言

流水灯,它在很多场合都有用到, 如滚动字幕、广告灯箱、信号指示、工业现场等形式多样。本项目以单片机为控制芯片,采用C51的库函数进行移位操作,实现LED灯以流水方式点亮。

1设计要求

利用单片机控制8个LED发光二极管亮点左流动(所谓亮点左流动是指8个LED只有一个亮,其它7个都不亮,并且8个LED从右向左轮流亮,循环不断)

2电路设计

电路如图所示,包括有:时钟电路、复位电路、跑马灯电路,下面我们具体来介绍下这些电路。

简易秒表电路的设计

2.1 单片机及输出端口的选择

单片机芯片选择AT89S51,采用P2口作为输出端口,控制8只发光二极管。P2口有8个引脚,每个引脚控制一个发光二极管,当引脚为低电平点亮发光二极管,当引脚为高电平,熄灭对应发光二极管。

2.2 时钟电路的设计

单片机是按照时序信号,一步一步完成相关工作。单片机系统正常工作,必须给单片机系统提供稳定的时序脉冲信号,本设计中采用2个30UF的瓷片电容C1、C2和一个12MHZ的晶振,组成系统的时钟电路向AT89S51提供时钟脉冲。

2.3 复位电路的设计

图中电解电容C3与电阻R8构成了单片机的复位电路。这是一个上电复位电路,当系统上电复位电路会给单片机的RST引脚輸入2个机器周期以上的高电平,单片机内部就执行复位操作, 复位电路很重要,如果复位电路出现故障,CPU也将无法工作[1]。

3采用库函数实现流水灯的程序设计

3.1 库函数

C51语言程序设计中,将经常用到的一些计算或操作编成通用的函数,可以随时调用。函数有库函数和自定义函数两类。C51的库函数由C51的编译器提供,每个库函数的原型放在头文件中。Keil C51编译器提供了100多个标准库函数。本设计中采用C51提供的循环左移函数:_crol_(P2,1),该函数的作用是将P2的值循环左移1位,将P2口的高位移出去的部分补到低位去。

因为_crol_()函数在intrins.h这个头文件当中,所有使用该库函数时,必须在源程序的开始,使用预处理命令#include intrins.h将该头文件包含进去。

3.2 程序清单

#include

#include

void   delay(unsigned int i)

{

while(i--);

}

void   main()

{

P2=0xfe;

while(1)

{

P2=_crol_(P2,1);

//调用内部函数_crol_,将P2的二进制数值左移一位

delay(20000);

}

}

4结束语

文中介绍了一款以AT89S51单片机为控制芯片,采用C51的库函数进行移位操作的跑马灯的设计,文章对系统的电路设计、库函数、软件设计做了详细介绍。经试验验证, 该设计具有硬件结构简单、扩展性强、驱动能力强等特点,具有较高的应用价值。

参考文献

[1] 陆璐.基于单片机的LED跑马灯设计[J].电子制作,2018,(9):83-84,63.

猜你喜欢
电路设计程序设计
基于OBE的Java程序设计个性化教学研究
基于Electron.js的风向玫瑰图绘制程序设计与实现
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
“C语言程序设计”课程混合教学探索
Multisim仿真软件在电子技术专业教学中的应用
Altium Designer元件布局方法
基于实验箱和Matlab相结合的信号与系统实验的改革
PCI9030及其PCI总线接口电路设计