实验一 LED灯实验
一、实验目的
1.熟悉实验软件和硬件,进行正确的接线;
2.编程使得LED的闪烁;
3.编程实现跑马灯效果。
二、实验软硬件
1.Keil uVision4
2.PZISP自动下载软件
3.HC6800S开发板
三、实验原理
连接单片机管脚与共阴极二极管,并对于单片机的P0口进行编程。如果需要闪烁,可以先让P0口输出高电平,然后延时一段时间,让P0口保持高电平,此时二极管亮;然后再让P0口输出低电平,然后延时一段时间,让P0口保持低电平,此时二极管灭;如此循环,便实现了二极管亮灭的功能。
单片机接口
如果需要实现流水灯,可以先让P0口输出0X01(0000 0001),然后延时一段时间,让P0口保持,此时二极管最右边的灯亮,其余的灭;然后再让P0口输出0X02(0000 0010),然后延时一段时间,让P0口保持,此时第二个二极管亮;如此对于P0口进行写入,便实现了流水灯的功能。
共阴二极管电路
其中,74LS373:8数据锁存器。主要用于数码管、按键等等的控制。当使能为低时,将输出锁存在已建立的数据电平上。MCU的引脚有限,锁存器对于外设的控制非常有必要。
锁存器的真值表
Dn LE OE Qn
H H L H
L H L L
X L L Qo
X X H Z
H为高电平 L为低电平 X为不定 Z为高阻
四、软件流程图
二极管亮灭程序流程图
流水灯程序流程图
五、实验代码
1.// 二极管亮灭程序:
2.#include <reg51.h>
3.void Delay10ms(unsigned int c); //延时10ms
4.void main()
5.{
6. while(1)
7. {
8. P0 = 0x00;
9. Delay10ms(50);
10. P0 = 0xff;
11. Delay10ms(50);
12. }
13.}
14.void Delay10ms(unsigned int c) //误差 0us
15.{
16. unsigned char a, b;
17. for (;c>0;c--)
18. {
19. for (b=38;b>0;b--)
20. {
21. for (a=130;a>0;a--);
22. }
23. }
24.}
25.//流水灯程序:
26.#include <reg51.h>
27.#include <intrins.h>
28.void Delay10ms(unsigned int c); //延时10ms
29.void main(void)
30.{
31. unsigned char LED;
32. LED = 0x01;
33. while(1)
34. {
35. P0 = LED;
36. Delay10ms(50);
37. LED = _crol_(LED,1);
38. }
39.}
40.void Delay10ms(unsigned int c)
41.{
42. unsigned char a, b;
43. for (;c>0;c--)
44. {
45. for (b=38;b>0;b--)
46. {
47. for (a=130;a>0;a--);
48. }
49. }
50.}
六、实验步骤
1.连接开发板LED模块相关电路连线
硬件路线图
2.打开开发板电源
电源位置
3.编写调试LED程序,生成hex文件,下载程序。
程序下载界面
流水灯程序下载之后,发光二极管按照预定的方向相继点亮,亮灭的间隔时间基本符合预定的时间。文章来源:https://www.toymoban.com/news/detail-476697.html
七、实验思考
这是用51单片机做的第一个实验,也是一个单片机入门的经典程序——点亮一颗灯。
我最大的收获是明白了为什么要用延时函数。因为单片机执行一条代码所需要的时间是微秒级别的,人是分辨或者感觉不出来的。比说,我们要灯闪烁,如果灯亮灭的频率太快,我们就会觉得灯是一直亮的,可能亮的程度有所变暗。这是实验中有切身体会到的事情,合理应用延时函数非常重要,关系到单片机的效率和功能实现等问题。
对寄存器进行读写非常接近单片机的底层,要对与硬件电路非常熟悉才行。单片机大部分时间是一直在工作的,如果代码写的非常短,这些代码执行完了之后,单片机就不工作了。所以一定要有一个死循环,作为主程序,一般用While(1)来实现。但是死循环是最初学C语言所极力避免的,因为之前学的课程所编写的代码需要确切的结果,要么是一个计算结果,要么是一段显示。但是单片机是一个系统,需要长时间保持工作,因此我们将会面临一个不会结束的程序。在程序执行过程中会遇到各种情况,我们需要在最初的编码时候想到并规避。总之,单片机不同以往我们所接触到的东西,里面还有很多东西需要探索。文章来源地址https://www.toymoban.com/news/detail-476697.html
到了这里,关于单片机实验一 LED灯实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!