stm32单片机节日彩灯控制系统器.docx

上传人:b****2 文档编号:23218189 上传时间:2023-05-15 格式:DOCX 页数:15 大小:226.44KB
下载 相关 举报
stm32单片机节日彩灯控制系统器.docx_第1页
第1页 / 共15页
stm32单片机节日彩灯控制系统器.docx_第2页
第2页 / 共15页
stm32单片机节日彩灯控制系统器.docx_第3页
第3页 / 共15页
stm32单片机节日彩灯控制系统器.docx_第4页
第4页 / 共15页
stm32单片机节日彩灯控制系统器.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

stm32单片机节日彩灯控制系统器.docx

《stm32单片机节日彩灯控制系统器.docx》由会员分享,可在线阅读,更多相关《stm32单片机节日彩灯控制系统器.docx(15页珍藏版)》请在冰豆网上搜索。

stm32单片机节日彩灯控制系统器.docx

stm32单片机节日彩灯控制系统器

燕山大学

课程设计说明书

 

题目:

节日彩灯控制器设计

 

学院(系):

__________________________________________

年级专业:

__________________________________________

学号:

__________________________________________

学生:

__________________________________________

指导老师:

__________________________________________

答辩日期:

__________________________________________

 

燕山大学课程设计(论文)任务书

院(系):

基层教学单位:

自动化系

学号

学生

专业(班级)

设计题目

节日彩灯控制器设计

1开始,按此键则灯开始流动(由上而下)

2停止,按此键则停止流动,所有灯为暗。

3上,按此键则灯由上向下流动。

4下,按此键则灯由下向上流动。

 

1、说明书一份,不少于6000字(如打印用B5纸,小四号字,汉字采用宋体,英文及数字采用TimesNewRoman,单倍行距,上边距2.6厘米,下边距2.2厘米,左右边距各2.3厘米,标出页码)。

2、说明书顺序:

封面、任务书、摘要、目录、正文、结论、参考文献、评审意见表

3、说明书封面与容需一致(打印或本人手抄),图表清晰,字迹工整。

4、完成A2图纸一。

1、说明书一份不少于6000字,可手写也可打印。

2、A2图纸一,手工绘图。

3、参考文献不少于3篇。

第一周:

1、确定系统总体设计方案(包括方案的选择说明)。

2、对所需元件进行选型。

第二周:

4、完成计算机、外设及被控设备的连接、调试、检验和计算机软件编程。

修正、改进系统的硬、软件设计。

5、编写说明书一份,绘制A2图纸一。

6、完成课程设计考核,评分。

《反馈控制理论》、《单片机原理与应用》、《半导体变流技术》、《电力拖动及自动化》、《电子技术》、《计算机控制》、《制图》、《计算机原理》、《微机控制原理及应用》、《电力电子技术》、《计算机操作系统》、《计算机控制系统》等课程教课书及相关专业报纸、杂志和论文。

指导教师签字

胡硕、广磊

基层教学单位主任签字

福才

摘要

节日彩灯是生活中常常的装饰物品,是我国普遍流行的传统的民间的综合工艺品。

彩灯艺术也是灯的综合性的装饰艺术。

在当今社会里,彩灯已经成为我们生活当中的一部分,能给我们带来视觉上的享受,还能美化我们的生活。

彩灯控制器主要是通过产生有规律变化的脉冲信号来实现彩灯的各种变化,他集中的应用了单片机、LED、自动控制等技术,是典型的基于单片机的电子产品。

本文以stm32单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现才在开启时满足不一样的闪亮方法及方式。

按K1—开始,按此键则灯开始流动(由上而下)。

K2—停止,按此键则停止流动,所有灯为暗。

K3—上,按此键则灯由上向下流动。

K4—下,按此键则灯由下向上流动。

通过按键能方便使用者选择不一样的亮法。

并用仿真软件进行仿真按不同的方式点亮LED。

还有就是这节日彩灯的制作成本低、精确度高、装调容易,为节日增添气氛,具一定的市场价值,因此制作了此节日彩灯。

关键词:

节日彩灯;单片机;LED;设计;仿真

1概述………………………………………………………………………1

2任务要求……………………………………………………………………1

3硬件电路分析……………………………………………………………2

3.1产品介绍…………………………………………………………2

3.2特点…………………………………………………………………4

3.3系统作用…………………………………………………………5

4设计与论证…………………………………………………………………7

4.1总体流程图设计……………………………………………………7

4.2按键模块设计………………………………………………………8

5心得体会………………………………………………………………10

6参考文献………………………………………………………………10

7程序设计代码……………………………………………………………11

 

一、概述

20世纪兴起的单片机以其先天的便捷、稳定的优点在现代电子技术电路中占有越来越重要的地位。

又有数字电路与模拟电路相比有显而易见的稳定性。

近年来,数字电路又有了巨大的发展。

可编程逻辑器件(PAL、GAL等)的发展和普及最终使IC的设计面向了用户(这是模拟电路无法做到的),而这毫无疑问会给用户带来巨大的便捷,从而奠定它在电子电路中的对位。

随着集成技术的进一步提高,各种新技术的出现和应用,人类历史横跨数码时代向更进一步发展已出现在各大型相关企业的宏伟蓝图中。

新世纪里谁掌握了新技术谁就得到了获胜的资本,也仅仅是资本而矣。

新世纪里电子行业的发展速度令人窒息,闻名的摩尔定律更把许多人威吓在门外。

可以展望,一个由数字构成的新世界即将出现。

那将是人类文明的又一飞跃,不仅可以获得良好的观赏效果,而且可以省电(与全部彩灯始终全亮相比)。

近年来,随着人们生活水平的较大提高,人们对于物质生活的要求也在逐渐提高,不光是对各种各样的生活电器的需要,也开始在环境的幽雅方面有了更高的要求。

比如日光灯已经不能满足于我们的需要,彩灯的运用已经遍布于人们的生活中,从歌舞厅到卡拉OK包房,从节日的祝贺到日常生活中的点缀。

这些不紧说明了我们对生活的要求有了质的飞跃,也说明科技在现实运用中有了较大的发展。

彩灯是我国普遍流行的传统的民间的综合性的工艺品。

彩灯艺术也就是灯的综合性的装饰艺术。

新中国成立后,彩灯艺术得到了更大的发展,特别是随着我国科学技术的发展,彩灯艺术更是花样翻新,奇招频出,传统的制灯工艺。

二、任务要求

(1)PD0:

开始,按此键则灯开始流动(由上而下);

(2)PD1:

停止,按此键则停止流动,所有灯为暗;

(3)PD2:

上,按此键则灯由上向下流动;

(4)PD3:

下,按此键则灯由下向上流动。

三、硬件电路分析

1.stm32单片机

(1)产品介绍

在STM32F105和STM32F107互连型系列微控制器之前,意法半导体已经推出STM32基本型系列、增强型系列、USB基本型系列、互补型系列;新系列产品沿用增强型系列的72MHz处理频率。

存包括64KB到256KB闪存和20KB到64KB嵌入式SRAM。

新系列采用LQFP64、LQFP100和LFBGA100三种封装,不同的封装保持引脚排列一致性,结合STM32平台的设计理念,开发人员通过选择产品可重新优化功能、存储器、性能和引脚数量,以最小的硬件变化来满足个性化的应用需求。

截至2010年7月1日,市面流通的型号有:

STM32F103“增强型”系列

STM32F101“基本型”系列

STM32F105、STM32F107“互联型”系列

增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是32位产品用户的最佳选择。

两个系列都置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。

时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。

 

(2)特点

核:

ARM32位Cortex-M3CPU,最高工作频率72MHz,1.25DMIPS/MHz。

单周期乘法和硬件除法。

存储器:

片上集成32-512KB的Flash存储器。

6-64KB的SRAM存储器。

时钟、复位和电源管理:

2.0-3.6V的电源供电和I/O接口的驱动电压。

上电复位(POR)、掉电复位(PDR)和可编程的电压探测器(PVD)。

4-16MHz的晶振。

嵌出厂前调校的8MHzRC振荡电路。

部40kHz的RC振荡电路。

用于CPU时钟的PLL。

带校准用于RTC的32kHz的晶振。

低功耗:

3种低功耗模式:

休眠,停止,待机模式。

为RTC和备份寄存器供电的VBAT。

调试模式:

串行调试(SWD)和JTAG接口。

DMA:

12通道DMA控制器。

支持的外设:

定时器,ADC,DAC,SPI,IIC和UART。

3个12位的us级的A/D转换器(16通道):

A/D测量围:

0-3.6V。

双采样和保持能力。

片上集成一个温度传感器。

2通道12位D/A转换器:

STM32F103xC,STM32F103xD,STM32F103xE独有。

最多高达112个的快速I/O端口:

根据型号的不同,有26,37,51,80,和112的I/O端口,所有的端口都可以映射到16个外部中断向量。

除了模拟输入,所有的都可以接受5V以的输入。

最多多达11个定时器:

4个16位定时器,每个定时器有4个IC/OC/PWM或者脉冲计数器。

2个16位的6通道高级控制定时器:

最多6个通道可用于PWM输出。

2个看门狗定时器(独立看门狗和窗口看门狗)。

Systick定时器:

24位倒计数器。

2个16位基本定时器用于驱动DAC。

最多多达13个通信接口:

2个IIC接口(SMBus/PMBus)。

5个USART接口(ISO7816接口,LIN,IrDA兼容,调试控制)。

3个SPI接口(18Mbit/s),两个和IIS复用。

CAN接口(2.0B)。

USB2.0全速接口。

SDIO接口。

ECOPACK封装:

STM32F103xx系列微控制器采用ECOPACK封装形式。

(3)系统作用

1、集成嵌入式Flash和SRAM存储器的ARMCortex-M3核。

和8/16位设备相比,ARMCortex-M332位RISC处理器提供了更高的代码效率。

STM32F103xx微控制器带有一个嵌入式的ARM核,所以可以兼容所有的ARM工具和软件。

2、嵌入式Flash存储器和RAM存储器:

置多达512KB的嵌入式Flash,可用于存储程序和数据。

多达64KB的嵌入式SRAM可以以CPU的时钟速度进行读写(不待等待状态)。

3、可变静态存储器(FSMC):

FSMC嵌入在STM32F103xC,STM32F103xD,STM32F103xE中,带有4个片选,支持四种模式:

Flash,RAM,PSRAM,NOR和NAND。

3个FSMC中断线经过OR后连接到NVIC。

没有读/写FIFO,除PCCARD之外,代码都是从外部存储器执行,不支持Boot,目标频率等于SYSCLK/2,所以当系统时钟是72MHz时,外部访问按照36MHz进行。

4、嵌套矢量中断控制器(NVIC):

可以处理43个可屏蔽中断通道(不包括Cortex-M3的16根中断线),提供16个中断优先级。

紧密耦合的NVIC实现了更低的中断处理延迟,直接向核传递中断入口向量表地址,紧密耦合的NVIC核接口,允许中断提前处理,对后到的更高优先级的中断进行处理,支持尾链,自动保存处理器状态,中断入口在中断退出时自动恢复,不需要指令干预。

5、外部中断/事件控制器(EXTI):

外部中断/事件控制器由用于19条产生中断/事件请求的边沿探测器线组成。

每条线可以被单独配置用于选择触发事件(上升沿,下降沿,或者两者都可以),也可以被单独屏蔽。

有一个挂起寄存器来维护中断请求的状态。

当外部线上出现长度超过部APB2时钟周期的脉冲时,EXTI能够探测到。

多达112个GPIO连接到16个外部中断线。

6、时钟和启动:

在启动的时候还是要进行系统时钟选择,但复位的时候部8MHz的晶振被选用作CPU时钟。

可以选择一个外部的4-16MHz的时钟,并且会被监视来判定是否成功。

在这期间,控制器被禁止并且软件中断管理也随后被禁止。

同时,如果有需要(例如碰到一个间接使用的晶振失败),PLL时钟的中断管理完全可用。

多个预比较器可以用于配置AHB频率,包括高速APB(PB2)和低速APB(APB1),高速APB最高的频率为72MHz,低速APB最高的频率为36MHz。

7、电源供电方案:

VDD,电压围为2.0V-3.6V,外部电源通过VDD引脚提供,用于I/O和部调压器。

VSSA和VDDA,电压围为2.0-3.6V,外部模拟电压输入,用于ADC,复位模块,RC和PLL,在VDD围之(ADC被限制在2.4V),VSSA和VDDA必须相应连接到VSS和VDD。

VBAT,电压围为1.8-3.6V,当VDD无效时为RTC,外部32KHz晶振和备份寄存器供电(通过电源切换实现)。

8、电源管理:

设备有一个完整的上电复位(POR)和掉电复位(PDR)电路。

这条电路一直有效,用于确保从2V启动或者掉到2V的时候进行一些必要的操作。

当VDD低于一个特定的下限VPOR/PDR时,不需要外部复位电路,设备也可以保持在复位模式。

设备特有一个嵌入的可编程电压探测器(PVD),PVD用于检测VDD,并且和VPVD限值比较,当VDD低于VPVD或者VDD大于VPVD时会产生一个中断。

中断服务程序可以产生一个警告信息或者将MCU置为一个安全状态。

PVD由软件使能。

9、电压调节:

调压器有3种运行模式:

主(MR),低功耗(LPR)和掉电。

MR用在传统意义上的调节模式(运行模式),LPR用在停止模式,掉电用在待机模式:

调压器输出为高阻,核心电路掉电,包括零消耗(寄存器和SRAM的容不会丢失)。

10、低功耗模式:

STM32F103xx支持3种低功耗模式,从而在低功耗,短启动时间和可用唤醒源之间达到一个最好的平衡点。

休眠模式:

只有CPU停止工作,所有外设继续运行,在中断/事件发生时唤醒CPU;停止模式:

允许以最小的功耗来保持SRAM和寄存器的容。

1.8V区域的时钟都停止,PLL,HSI和HSERC振荡器被禁能,调压器也被置为正常或者低功耗模式。

设备可以通过外部中断线从停止模式唤醒。

外部中断源可以使16个外部中断线之一,PVD输出或者TRC警告。

待机模式:

追求最少的功耗,部调压器被关闭,这样1.8V区域断电。

PLL,HSI和HSERC振荡器也被关闭。

在进入待机模式之后,除了备份寄存器和待机电路,SRAM和寄存器的容也会丢失。

当外部复位(NRST引脚),IWDG复位,WKUP引脚出现上升沿或者TRC警告发生时,设备退出待机模式。

进入停止模式或者待机模式时,TRC,IWDG和相关的时钟源不会停止。

四、设计与论证

本方案主要是通过对基于单片机的多控制、多闪烁方式的LED彩灯系统的设计,来达到本设计的要求。

其硬件以单片机为核心控制,由单片机最小系统、时钟电路、发光二极管和独立按键组成。

此设计方案中单片机的P1口接4路按键控制电路,实现彩灯花型的切换功能,单片机上的P0口接8路LED发光二极管组成彩灯电路,显示彩灯循环情况。

1、总体流程图设计

 

2、按键模块设计

由于在单片机按键操作中,存在按键抖动的问题,会造成取值不稳定的情况,如下图即为按键操作波形:

键按下

按键操作波形

所以必须考虑去抖动的问题,解决方法有如下两种:

●消除按键的抖动既可采用硬件方法,也可采用软件的方法。

使用硬件消抖的方式,需要在按键连接的硬件设计上增加硬件消抖电路,如采用R-S触发器或RC积分电路等。

采用硬件消抖方式增加了系统的成本,而利用软件方式消抖则是比较经济的做法,但增加了软件设计的复杂性。

●软件方式消抖的基本原理是在软件中对按键进行两次测试确认,即在第一次检测到按键按下后,间隔10ms左右再次检测该按键是否按下,只有在两次都测到按键按下时才最终确认有键按下,从而消除了抖动的影响。

由于用软件方式消抖比较方便,比较经济,而硬件消抖即复杂又不经济,所以本次设计我们采用的是软件消抖。

 

功能说明:

※S1-开始,按此键,灯开始流动(从上到下)

※S2-停止,按此键,灯停止流动(灭灯)

※S3-上,按此键,灯从上而下流动

※S4-下,按此键,灯从下而上流动

 

五、心得体会

本次课程设计既要求我们对知识掌握的牢固,又要求我们对知识能够灵活运用。

从所涉及的知识面来说,它不仅要求我们运用所学过的知识还要求我们去查找,学习,借鉴其他科目或门类的知识。

从时间上来说,这次设计的时间是最长的,因此我们有足够的时间去重新温习学过的知识,更有充足的时间去搜集学习一些我们没有涉猎过的知识。

这样不仅锻炼了我们学习新知识的能力,同时也拓宽了我们的知识面。

我们经过将近两周的努力,终于完成本次创新课程设计,过程虽是辛苦的,但从中我们却学到了很多东西。

首先巩固了课上学习的理论知识,对于计算机C语言的系统化整体化有了更深的认识。

整个设计过程最大的收获就是意识到理论知识扎实的重要性,实践是建立在理论之上的,平时的基础知识很重要。

另外就是合作的重要性,每个人都有他的特长一个人难免有疏漏,只有大家共同努力才能顺利的完成任务。

通过本次课程设计,提高了我的自学能力,提高了理论联系实际的能力,把自己所学应用到实验中,对所用到的硬件有了更加深刻的理解;同时提高了我克服困难的信心和勇气,为我今后的职业生涯打下了坚实的基础。

六、参考文献

1、倪云峰著《单片机原理与应用》电子科技大学出版

2、莫正康著《半导体变流技术》机械工业出版

3、边召海著《计算机原理》理工大学出版

 

七、程序设计代码

#include”stm32f10x.h”

#include”delay.h”

#include

Uint8_ttable[]={0xfe,0xfd,0xfb,0xf7,0xfb,0xfd}

VoidGPIO_Configuration(void)

{

GPIO_InitTypeDefGPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD,ENABLE);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;

GPIO_Pin=GPIO_Pin_1;

GPIO_Pin=GPIO_Pin_2;

GPIO_Pin=GPIO_Pin_3;

GPIO_InitStructure.GPIO_speed=GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

GPIO_Init(GPIOA,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;

GPIO_Pin=GPIO_Pin_1;

GPIO_Pin=GPIO_Pin_2;

GPIO_Pin=GPIO_Pin_3;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;

GPIO_Init(GPIOD,&GPIO_InitStructure);

}

Intmain(void)

{

Uint8_ti;

GPIO_Configuration();

Delay_init(72);

While

(1)

{

If(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_0==0))

{delay_ms(10);

for(i=0;i<4;i++)

{GPIO_write(GPIOA,table[i]);

delay_ms(500);

}

If(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_2==0))

{delay_ms(10);

for(i=0;i<4;i++)

{GPIO_write(GPIOA,table[i]);

delay_ms(500);

}}

If(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_3==0))

{delay_ms(10);

for(i=3;i>=0;i--)

{GPIO_write(GPIOA,table[i]);

delay_ms(500);

}}

}

If(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_1==0))

{delay_ms(10)

GPIO_SetBits(GPIOA,GPIO_Pin_0|

GPIO_Pin_1|

GPIO_Pin_2|

GPIO_Pin_3);

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1