嵌入式系统实验报告til03SE駅——-淹水灯电略L“.II 宀 IMI-™“ifl*Bi«iamnrlinkz辱 Mll«默盘I 嵌ar*.00E0实验一:流水灯案例、8 位数码管动态扫描案例一、实验目的1.1 进一步熟悉 KeilC51 集成开发环境调试功能的使用;1.2 学会自己编写程序,进行编译和仿真测试;1.3 利用开发板下载 hex 文件后验证功能。二、实验原理2.1:实验原理图2.2:工作原理2.2.1:流水灯电路中有 LO,1,L2,L3,4,L5,L6,L7 共八个发光二极管,当引脚 LED_SEL 输入为 1,对于A、B、C、D、E、F、G、H 引脚,只要输入为 1,则点亮相连接的发光二极管。A~H 引脚连接 STM32F108VB 芯片的 PE8~PE15,程序初始化时,对其进行初始设置。引脚 LED_SEL 为 1 时,发光二极管才工作,否则右边的数码管工作。注意,LEDSEL 连接于 PB3,该引脚具有复用功能,在默认状态下,该引脚的 10 不可用,需对 AFIO_MAPR 寄存器进行设置,设置其为 10 可用。2.2.2:8 位数码管数码管中的 A~G、DP 段分别连接到电路图中的 A~G、H 线上,当某段上有一-定的电压差值时,便会点亮该段。当 E3 输入为 1,也就是 LED_SEL 输入为 0 时,根据SELO~SEL2 的值确定选中的数码管,即位选,再根据 A~H 引脚的高低电平,点亮对应段,即段选。三、实验结果3.1:流水灯对于给出的流水灯案例,下载 HEX 文件后,在开发板上可观察到 L0-L7 从左至右依次点亮,间隔 300ms。当全部点亮八个发光二极管后,八个发光二极管同时熄灭,间隔 300ms 后,发光二极管再次从左至右依次点亮。如此反复循坏。3.2:8 位数码管对于给出的 8 位数码管动态扫描案例,下载后,在开发板上可观察到 8 个数码管从左至右依次显示对应的数字,且每一个数码显示的数字在 1-9 之间循环。可以通过加快扫描频率,使得八位数码管在人眼看上去是同时显示。在后续的案例中可以看到该现象。四、实验分析4.1:流水灯该题是后续做题的基础,通过对代码的分析,以及借助实验指导书对实验过程有了大致了解。4.2:8 位数码管在流水灯的基础上,首先只需要将 LED_SEL=O 修改为 LED_SEL=1,便可选中二极管,此时 8 个二极管从左往右依次显示数字,且每一个数字在 0-9 之间循环。应老师要求,将 8 个二极管显示出 1-181-07(班级学号),在 main.c 中直接调用 led.c中的 voidSetLed(u8w,u8value)函数,再加修改即可。五、实验总结通过本次实验,进一步熟悉 KeilC51 集成开发环境...