好文档 - 专业文书写作范文服务资料分享网站

计算机原理第一次实验

天下 分享 时间: 加入收藏 我要投稿 点赞

邮电大学计算机原理

《流水灯实验》

姓 名 吴挺斌 学 院 信息与通信工程学院 班 级 2017211116 学 号 2017210473

2019年 5月 18日

一. 实验目的

1. 掌握 ARM 开发工具的使用。 2. 掌握基本 IO 的使用。

二.实验要求

设计并实现一个流水灯系统,具体要求如下: 系统上电时,八个 LED 灯从左至右间隔 100ms 依次点亮,类似流水效果,前一个 LED 灯点亮然后熄灭时点亮下一个 LED 灯,循环往复。

实验任务

1)基础部分(必做实验)

1)C 语言编程实现一个流水灯实验 2)汇编语言编程实现一个流水灯实验 2. 提高部分(选做实验)

1)C 语言编程控制七段数码管显示自己的学号

三.基础实验功能实现

3.1基础实验:在跑通流水灯的代码后,我尝试进行实验修改:通过设置合理时延和循环检查并修改相关变量,将八个LED灯从左到右依次点亮修改成为将八个LED灯由亮以此熄灭,然后循环往复。

3.2基础实验程序流程图:

将led_data赋值为0xff(设置全亮) 开始 点亮 yes led_data=led_data-cont;依次熄灭 NO 判断led_data=0? 3.3.基础实验程序代码

#include \#include \int main(void) {

uint8_t cont = 1;

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.5MHz GPIO_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_data-cont; //控制依次熄灭 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实验代码

//显示17210473

uint8_t digivalue[] = {0x06, 0x07, 0x5B, 0x06, 0x3F, 0x66, 0x07, 0x4F}; //函数

void SMG_Sele(uint8_t index) {

HC595_Send(digivalue[index]); switch(index) {

case 0:

HC138_C(0); HC138_B(0); HC138_A(0); break; case 1:

HC138_C(0); HC138_B(0); HC138_A(1); break; case 2:

HC138_C(0); HC138_B(1); HC138_A(0); break; case 3:

HC138_C(0); HC138_B(1); HC138_A(1); break; case 4:

HC138_C(1); HC138_B(0); HC138_A(0); break; case 5:

41efv4lcyd1lh1d7s0l19lpyv23wp8008ob
领取福利

微信扫码领取福利

微信扫码分享