北京邮电大学计算机原理 《流水灯实验》姓 名 吴挺斌 学 院 信息与通信工程学院 班 级 2025211116 学 号 2025210473 2025 年 5 月 18 日一、 实验目得 1、 掌握 ARM 开发工具得使用。 2、 掌握基本 IO 得使用。 二、实验要求 设计并实现一个流水灯系统,具体要求如下: 系统上电时,八个 LED 灯从左至右间隔 100ms 依次点亮,类似流水效果,前一个 LED 灯点亮然后熄灭时点亮下一个 LED 灯,循环往复。实验任务 1)基础部分(必做实验) 1)C 语言编程实现一个流水灯实验 2)汇编语言编程实现一个流水灯实验2. 提高部分(选做实验) 1)C 语言编程控制七段数码管显示自己得学号三、基础实验功能实现3、1 基础实验:在跑通流水灯得代码后,我尝试进行实验修改:通过设置合理时延与循环检查并修改相关变量,将八个 LED 灯从左到右依次点亮修改成为将八个 LED 灯由亮以此熄灭,然后循环往复。3、2 基础实验程序流程图: yesNO 3、3、基础实验程序代码 #include "stm32f4xx、h"#include "delay、h"int main(void){uint8_t cont = 1;开始将 led_data 赋值为 0xff(设置全亮)点亮推断led_data=0 ?led_data=led_datacont;依次熄灭uint16_t led_data = 0XFF;GPIO_InitTypeDef GPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE); // 开 启GPIOF 得时钟GPIO_InitStructure、GPIO_Pin = GPIO_Pin_All;GPIO_InitStructure、GPIO_Mode = GPIO_Mode_OUT; //输出模式GPIO_InitStructure、GPIO_OType = GPIO_OType_PP; //推挽输出GPIO_InitStructure 、 GPIO_Speed = GPIO_Medium_Speed; // 速 率2、5MHzGPIO_Init(GPIOF, &GPIO_InitStructure);GPIO_Write(GPIOF, 0x00FF);Delay_Init; //延时初始化 while(1) {if(cont==1){GPIO_Write(GPIOF,led_data); //全部点亮Delay_Ms(3000);}led_data=led_datacont; //控制依次熄灭GPIO_Write(GPIOF,led_data);cont=cont*2;Delay_Ms(3000);if(led_data==0x0000) //检测就是否全部熄灭{ led_data=0x00ff;cont=1;} }} 四、提高实验功能实现4、1 提高实验:C 语言编程控制七段数码管显示自己得学号。4、2 实验效果截图:4、3 实验代码//显示 17210473uint8_t digivalue[] = {0x06, 0x07, 0x5B, 0x06, 0x3F, 0x66, 0x07, 0x4F}; //函数void SMG_Sele(uint8_t index){ HC595_Send(digivalue[index]); swi...