电信19-2 翁大弟
一、实验目的
- 熟练掌握Keil和Proteus软件的C51设计与仿真操作
- 熟练掌握并行口P口的编程
- 熟悉C51编程的变量、存储等概念及使用方法
- 初步掌握延时程序的原理,初步掌握P口的输入检测编程
二、实验要求
- 电路图设计:
- 可以用P1或更多的P口分别连接八个LED灯进行组合
- 可以用四个P口连的LED灯构成一个4×8的矩阵
- 可以用不同数量的LED等构成一个特定图案
- 程序要求:
- 要尽量考虑for、while、switch、函数等用途,巩固C语言设计能力
- 各种效果可以考虑做成函数,通过按键进行不同函数的调用
- 效果提示:
- 常规流水灯效果
- 多种流水灯效果切换
- 多种流水灯以某种规律切换
三、实验实现的功能说明
- 用LED灯构成一个4×8的矩阵,按键4按下后,实现了流水灯的效果;
- 按键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的分享
搜索
复制