单片机流水灯

  • 格式:docx
  • 大小:109.88 KB
  • 文档页数:7

下载文档原格式

  / 7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式单片机原理及应用

三级项目报告

学院:电气工程学院

班级:仪表三班

姓名:荣光耀

学号:140103020178

指导教师:张淑清

2016年11月

项目内容简介:

单片机:近年来,随着电子技术和微型计算机的发展,单片机的档次不断提高,起应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到广泛的应用、成为现代电子系统中最重要的智能化的核心部件。

流水灯:随着现代社会的发展,人们越来越追求审美和新颖,而流水灯就是其中一种,以前简单的照明工具变得越来越多样化,流水灯的千姿百态恰能给人一种视觉冲击,现在不管大街小巷我们都可以随处可见这种变幻万千的流水灯,而这种流水灯我们可以产用电子电路去设计,我们主要可以用装套控制器和状态译码器来实现灯光的流水效果,但是现在我们可以用单片机来实现,因为其相对于电子电路有明显的优越性,控制硬件电路比较简单,软件方面程序也不复杂,因此制作的远离简单,但功能作用并不低于电子电路设计的,由于它的小巧方便、通俗易懂,所以我们往往采用单片机来做流水灯。

设计原理:

1. 软件框图

2.详细程序清单

/*

************************************************************** * First project

* 2016/10/21

* LED آµأ†أ‰أپأ‹آ¸

************************************************************** */

#include "stm32f10x.h"

//include "led.h"

#include "main.h"

void delay(void);

int main(void)

{

LED_Init();

while(1)

{

delay();

GPIO_SetBits(GPIOA,GPIO_Pin_6);

GPIO_SetBits(GPIOA,GPIO_Pin_7);

GPIO_SetBits(GPIOA,GPIO_Pin_8);

GPIO_SetBits(GPIOD,GPIO_Pin_1);

GPIO_SetBits(GPIOD,GPIO_Pin_2);

GPIO_SetBits(GPIOB,GPIO_Pin_3);

GPIO_ResetBits(GPIOB,GPIO_Pin_4); delay();

GPIO_ResetBits(GPIOA,GPIO_Pin_6);

delay();

GPIO_SetBits(GPIOA,GPIO_Pin_5);

GPIO_SetBits(GPIOA,GPIO_Pin_7);

GPIO_SetBits(GPIOA,GPIO_Pin_8);

GPIO_SetBits(GPIOD,GPIO_Pin_1);

GPIO_SetBits(GPIOD,GPIO_Pin_2);

GPIO_SetBits(GPIOB,GPIO_Pin_3);

GPIO_SetBits(GPIOB,GPIO_Pin_4); delay();

GPIO_ResetBits(GPIOA,GPIO_Pin_7);

delay();

GPIO_SetBits(GPIOA,GPIO_Pin_5);

GPIO_SetBits(GPIOA,GPIO_Pin_6);

GPIO_SetBits(GPIOA,GPIO_Pin_8);

GPIO_SetBits(GPIOD,GPIO_Pin_1);

GPIO_SetBits(GPIOD,GPIO_Pin_2);

GPIO_SetBits(GPIOB,GPIO_Pin_3);

GPIO_SetBits(GPIOB,GPIO_Pin_4);

delay();

GPIO_ResetBits(GPIOA,GPIO_Pin_8);

delay();

GPIO_SetBits(GPIOA,GPIO_Pin_5);

GPIO_SetBits(GPIOA,GPIO_Pin_6);

GPIO_SetBits(GPIOA,GPIO_Pin_7);

GPIO_SetBits(GPIOD,GPIO_Pin_1);

GPIO_SetBits(GPIOD,GPIO_Pin_2);

GPIO_SetBits(GPIOB,GPIO_Pin_3);

GPIO_SetBits(GPIOB,GPIO_Pin_4); delay();

GPIO_ResetBits(GPIOD,GPIO_Pin_1);

delay();

GPIO_SetBits(GPIOA,GPIO_Pin_5);

GPIO_SetBits(GPIOA,GPIO_Pin_6);

GPIO_SetBits(GPIOA,GPIO_Pin_8);

GPIO_SetBits(GPIOD,GPIO_Pin_2);

GPIO_SetBits(GPIOB,GPIO_Pin_3);

GPIO_SetBits(GPIOB,GPIO_Pin_4); delay();

GPIO_ResetBits(GPIOD,GPIO_Pin_2);

delay();

GPIO_SetBits(GPIOA,GPIO_Pin_5);

GPIO_SetBits(GPIOA,GPIO_Pin_6);

GPIO_SetBits(GPIOA,GPIO_Pin_8);

GPIO_SetBits(GPIOA,GPIO_Pin_8);

GPIO_SetBits(GPIOD,GPIO_Pin_1);

GPIO_SetBits(GPIOB,GPIO_Pin_3);

GPIO_SetBits(GPIOB,GPIO_Pin_4); delay();

GPIO_ResetBits(GPIOB,GPIO_Pin_3);

delay();

GPIO_SetBits(GPIOA,GPIO_Pin_5);

GPIO_SetBits(GPIOA,GPIO_Pin_6);

GPIO_SetBits(GPIOA,GPIO_Pin_7);

GPIO_SetBits(GPIOA,GPIO_Pin_8);

GPIO_SetBits(GPIOD,GPIO_Pin_1);

GPIO_SetBits(GPIOD,GPIO_Pin_2);

GPIO_SetBits(GPIOB,GPIO_Pin_4); delay();

GPIO_ResetBits(GPIOB,GPIO_Pin_4);

delay();

GPIO_SetBits(GPIOA,GPIO_Pin_5);

GPIO_SetBits(GPIOA,GPIO_Pin_6);

GPIO_SetBits(GPIOA,GPIO_Pin_7);

GPIO_SetBits(GPIOA,GPIO_Pin_8);

GPIO_SetBits(GPIOD,GPIO_Pin_1);

GPIO_SetBits(GPIOD,GPIO_Pin_2);

GPIO_SetBits(GPIOB,GPIO_Pin_3); delay();

}

}

void delay(void)

{

int i=0xffff;

while(i--);

}