项目简介
本项目基于C语言,以微控制器为平台开展数字IO与模拟输入应用的实验。通过一系列实验达成对LED阵列的控制、按钮按压计数以及模拟电压的采样与显示。此项目助力开发者深入理解数字与模拟信号处理,掌握利用函数和头文件组织代码,实现复杂任务与代码复用。
项目的主要特性和功能
- 数字IO操作:操作二进制数据控制LED阵列显示数值;对按钮按压计数,将结果以二进制或十进制在LED阵列显示;实现类似《霹雳游侠》中KITT汽车格栅的LED扫描效果。
- 模拟输入处理:利用微控制器10位模拟数字转换器(ADC),连接光敏电阻(LDR)获取模拟电压并转换为数字值,以二进制或线性强度计方式在LED阵列显示采样结果。
- 峰值功率计效果:实现峰值功率计功能,记录并显示过去一秒内的峰值读数和当前值,峰值读数每秒递减一个LED,直至被新的当前值超越。
安装使用步骤
前提条件
假设用户已下载本项目的源码文件,且具备MPLAB开发环境。
具体步骤
- 复制项目并创建MPLAB项目:复制本项目仓库,按实验1步骤创建新的MPLAB项目,将
main.c
、LEDarray.c
、LEDarray.h
、ADC.c
和ADC.h
文件添加到项目。 - 硬件连接
- LED阵列连接:按文档图示连接LED阵列和带公共端的电阻,注意LED正负极和电阻公共端连接方向。
- 光敏电阻(LDR)连接:按图示连接LDR和1k电阻,无需考虑极性。
- 代码实现与调试
- 实验1 - 进一步数字IO:完成
LEDarray.c
文件中LEDarray_init()
和LEDarray_disp_bin()
函数,实现软件计数器值二进制显示;修改main()
函数实现LED来回扫描;编写新函数初始化按钮输入,修改main()
函数计数并二进制显示;使按钮长按连续递增、短按递增一次;完成LEDarray_disp_dec()
函数并在main()
函数调用。 - 实验2 - 模拟输入:添加
ADC.c
和ADC.h
文件,用其函数读取LDR电压并二进制显示;改为线性强度计形式显示并校准。 - 实验3 - 峰值功率计:完成
LEDarray_disp_PPM()
函数,扩展代码实现峰值功率计效果。
- 实验1 - 进一步数字IO:完成
- 编译与下载:在MPLAB中编译项目代码,确保无编译错误,将编译生成的固件下载到微控制器。
- 运行与测试:给微控制器供电,观察LED阵列显示效果,测试按钮按压计数、模拟电压采样显示和峰值功率计功能。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】