实验二 流水灯实验

电信19-2 翁大弟

一、实验目的

  1. 熟练掌握Keil和Proteus软件的C51设计与仿真操作
  2. 熟练掌握并行口P口的编程
  3. 熟悉C51编程的变量、存储等概念及使用方法
  4. 初步掌握延时程序的原理,初步掌握P口的输入检测编程

二、实验要求

  1. 电路图设计:
    1. 可以用P1或更多的P口分别连接八个LED灯进行组合
    2. 可以用四个P口连的LED灯构成一个4×8的矩阵
    3. 可以用不同数量的LED等构成一个特定图案
  2. 程序要求:
    1. 要尽量考虑for、while、switch、函数等用途,巩固C语言设计能力
    2. 各种效果可以考虑做成函数,通过按键进行不同函数的调用
  3. 效果提示:
    1. 常规流水灯效果
    2. 多种流水灯效果切换
    3. 多种流水灯以某种规律切换

三、实验实现的功能说明

  1. LED灯构成一个4×8的矩阵按键4按下后,实现了流水灯的效果;
  2. 按键1到按键3按下后,会分别显示:“甲”,“旧”,“由”字;

四、实验实现的原理及仿真电路设计

实验原理:利用74hc595寄存器,将十六进制的串行数据,转化为二进制数据,来驱动led,实现流水灯以及设置相应的数字图案。

实验原理电路图:

五、实验流程图:

六、实验主要功能代码

在main.c文件中:

(1)实现用Led设置文字效果的功能,如:“甲”;

 (2)用led实现流水灯

(3)延时函数:

 在hc595.c文件中:

将数据通过74HC595发送到第一到第四

七、实验过程及实验情况

在该实验中主要遇到了两个问题:1、遇到protues中的p0口的上拉电阻问题,导致实验不能顺利进行。

2、另一个是程序编写问题,设置流水灯时,遇到了流水灯在一行刚结束时,灯不再往下走。

解决方法:

1、经过检查,发现了这个小问题,添加上拉电阻后顺利解决该问题。

2、对于灯的这种情况,原来是没有设置一个变量,让这个变量在第二行时重新添加初始值,继续累加,实现流水灯的效果。添加后顺利完成了实验效果。

八、实验小结

经过该实验,进一步让我熟悉了Keil和Proteus软件的使用。更重要的是让我熟悉了利用74hc595寄存器的具体应用,将十六进制的串行数据,转化为二进制数据,能够用来驱动led灯,让我所学的数电知识得到了实践,提高了动手能力。也让我明白了自己的不足,今后仍会继续加强自身的学习。

​​​​​​​附件:链接:https://pan.baidu.com/s/1AJBeENfxhM_oLMIyCmhLQA?pwd=lmsd 
提取码:lmsd 
--来自百度网盘超级会员V2的分享

猜你喜欢

转载自blog.csdn.net/weixin_45784275/article/details/125262317