51单片机点灯实验(含程序+仿真+硬件实验)

一、实验原理

LED发光二极管核心为PN结,单向导电,有阴极和阳极,两极均可以控制,需要亮起来,电流不能过大和过小,过大,烧坏二极管,过小,电光效应弱,发光不明显,引入“限流电路”。为减少I/O引脚的消耗,一般控制一极,有阳极控制法和阴极控制法。阳极控制法:阴极接地(GND),阳极I/O口高电平亮,阳极低电平不亮;阴极控制法:阳极接高电平(+5V),阴极I/O口低电平亮,高电平不亮。8个同样LED灯阳极接一起,连接+5V,就是共阳极接法。8个同样LED灯阴极接一起,连接GND,就是共阴极接法。

 思考:亮灭怎么样,眼睛能分辨出来/p>

编程实现方案:端口电平维持想要的时间,通过延时,CPU空操作耗时来实现等。

如何依次亮灭:从左到右,8个LED灯亮,8种状态,如何实现,数组形式位形式/p>

参考共阳极接法:

Char s[8]={ 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

共阴极为对共阳极取反。

认识51单片机最小系统组成:51单片机、手动按键复位电路、外接晶体振荡器电路、电源和地。使用片内程序存储器,EA接高电平。

二、实验内容及步骤

(一)实验内容

1.8个LED灯接在P2端口的8个引脚上,编程实现8个LED从左到右依次不断亮灭一个灯,循环运行,实现流水灯状态,亮灭要求眼睛能分辨得出来。

2.8个LED灯接在P2端口的8个引脚上,编程实现8个LED从左到右顺序每次亮灭两个灯。如最开始D1和D2亮;接着D2和D3亮,D1灭;然后D3和D4亮,D2灭;………;D7和D8亮,D6灭;再回到D1和D2亮,按这个状态循环,亮灭要求眼睛能分辨得出来。

(二)实验步骤

软件仿真:

(1)基于Proteus软件绘制电路原理图。

51单片机点灯实验(含程序+仿真+硬件实验)

(2)基于Keil软件编程

思路:数组形式,表示8个亮状态,8个元素。状态保持采用时间延迟函数,延时函数具体可以通过调试来确定参数值。开始全部不亮,采用死循环不断循环,while或没有限制条件的for语句。利用宏定义、sbit定义等方式,使程序方便维护,养成良好的编程习惯。

51单片机点灯实验(含程序+仿真+硬件实验)

51单片机点灯实验(含程序+仿真+硬件实验)  (3)利用Keil软件,将编译好的hex文件下载到Proteus软件的虚拟单片机中以便整体虚拟仿真,默认单片机晶体振荡器12M,观察实验现象

(4)调试观察,注意不同时延时, LED的闪烁情况,若程序设计有逻辑错误,实验调试分析。

硬件实验:

(1)认识开发板,了解实验上的资源及作用,见图。

51单片机点灯实验(含程序+仿真+硬件实验)

51单片机点灯实验(含程序+仿真+硬件实验) 

(2)流水灯实验

开发板上使用的51单片机型号是 STC89C516RD+,此芯片共有40引脚,采用双列直插式封装。

开发板上的D1-D8(LED) 已经连接到单片机的 P20-P27 口。图3中 LED 采用共阳接法,即所有LED 阳极管脚接电源 VCC,阴极管脚通过一个 470 欧的限流电阻接到 P2 口上。要让LED发光即对应的阴极管脚应该为低电平,若为高电平则熄灭。

51单片机点灯实验(含程序+仿真+硬件实验)

 

(3)利用Keil软件,将编译好的hex文件下载到51单片机里,观察实验现象

六、实验结果  

1.实验一:Proteus绘制的电路原理图和Keil软件编写的C程序截图。

程序:

51单片机点灯实验(含程序+仿真+硬件实验)

仿真电路:

51单片机点灯实验(含程序+仿真+硬件实验)

 2.实验二:Proteus绘制的电路原理图和Keil软件编写的C程序截图。

程序:

51单片机点灯实验(含程序+仿真+硬件实验)

 仿真电路:

51单片机点灯实验(含程序+仿真+硬件实验)

 

来源:水上飞行家

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月23日
下一篇 2022年6月23日

相关推荐