基于51单片机摇摇棒的设计.docx

上传人:b****8 文档编号:10229684 上传时间:2023-02-09 格式:DOCX 页数:22 大小:266.29KB
下载 相关 举报
基于51单片机摇摇棒的设计.docx_第1页
第1页 / 共22页
基于51单片机摇摇棒的设计.docx_第2页
第2页 / 共22页
基于51单片机摇摇棒的设计.docx_第3页
第3页 / 共22页
基于51单片机摇摇棒的设计.docx_第4页
第4页 / 共22页
基于51单片机摇摇棒的设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

基于51单片机摇摇棒的设计.docx

《基于51单片机摇摇棒的设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机摇摇棒的设计.docx(22页珍藏版)》请在冰豆网上搜索。

基于51单片机摇摇棒的设计.docx

基于51单片机摇摇棒的设计

学校代码10126学号之迟辟智美创作

本科学年论文

题目基于51单片机摇摇棒的设计

院系

专业名称

年级

学生姓名

指导教师

2014年06月20日

学年论文指导教师评阅意见

学生

姓名

专业

班级

(论文)题目

基于51单片机摇摇棒的设计

指导教师

教师职称

学年

评语

评定成果:

指导教师签名:

年月日

摘要

随着人们物质生活水平的提高,人们对精神生活的追求也愈加强烈,对信息的渴求已成了人们必不成少的需要,更加简捷与新颖的信息传递方式无疑会给人们带来耳目一新的感受.而现代工具务求简捷化、便携化,因此,摇动显示装置的到来,势必会给人们带来一种新的方便的文化传递方式.“摇动显示装置”,俗称“摇摇棒”,是基于人的视觉暂留原理的,通过分时刷新16个发光二极管来显示输出文字或图案等信息的显示装置.输出信号频率的控制通过单片机来实现,用摇动传感器检测以后摇动状态.当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域发生一个视觉平面,在视觉平面内的二极管通过分歧频率的刷新,会在摇动区域内发生图像,从而到达在该视觉平面上转达信息的作用.本文以传感器和单片机的实际应用为布景,介绍了以单片机和传感器为核心系统

摇动传感器和显示设计的基本结构和基来源根基理.

关键字:

单片机,发光二极管,传感器

Abstract

Aspeoplematerialstandardoflivingrise,peoplepursuittoculturallifealsobecomesstrong,thedesireofinformationhavebecomethepeopleoftheessentialneeds,moreforthrightandnoveltheinformationtransfermodewillundoubtedlybringpeopletofindeverythingnewandfreshfeeling.Andmoderntoolstothesimple,portable,therefore,shakingthedisplaydevice,thearrivalofwillgivepeoplebringsakindofnewconvenientculturaltransfermode."Shakedisplaydevice,"called"toshakethegreat",itistobebasedonvisualtemporarilyleavetheprinciple,throughthetimesharerefresh16ledstodisplaytextordesignoutputinformationdisplaydevice.Theoutputsignalfrequencycontrolthroughthesingle-chipmicrocomputertorealize,withshakingsensortestcurrentmovedstate.Whenshaken,asthemen'svisionforaprinciple,willbeinthelightemittingdiodeshakingareaproduceavisualplane,theplanewithinthevisionofdifferentfrequencyrefreshdiodethrough,willproduceanimageinshakingarea,soastoachievethevisionintheplaneofconveyinginformationfunction.BasedonthesensorandMCUapplicationforbackground,introducesthesingle-chipmicrocomputerandsensorasthecoresystemmovedsensoranddisplaydesignthebasicstructureandthebasicprinciple.

Keywords:

microcontroller,leds,sensor

绪论

单片机是随着年夜规模集成电路的呈现极其发展,将计算机的CPU,RAM,ROM,按时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片微型计算机.它拥有优异的性价比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗的显著优点.主要应用于智能仪器仪表、工业检测控制、机电一体化等方面,而且取得了显著的功效.单片机应用系统可以分为:

(1)最小应用系统是指能维持单片机运行的最简单配置的系统.这种系统本钱昂贵,结构简单,常构成一些简单的控制系统,如开关状态的输入/输出控制等.片内有ROM/EPROM的单片机,其最小应用系统即为配有晶振,复位电路,电源的单个单片机.片内无ROM/EPROM的单片机,其最小应用系统除外部配置晶振,复位电路,电源外,还应外接EPROM或EEPROM作为法式存储器用.

(2)最小功耗应用系统是指为了保证正常运行,系统的功耗最小.(3)典范应用系统是指单片机要完成工业测控功能所必需的硬件结构系统.

本文将使用单片机对摇动显示进行实例化,设计一个LED摇动显示器来显示文字、图像等信息.掌握利用8051型单片机对发光二极管阵列进行摇动控制的方法.输出信号频率的控制通过单片机来实现,用摇动传感器检测以后摇动状态,用16个发光二极管进行分歧频率的亮灭刷新,通过手摆荡动可显示输出文字及图案等信息.当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域发生一个视觉平面,在视觉平面内的二极管通过分歧频率的刷新,会在摇动区域内发生图像,从而到达在该视觉平面上转达信息的作用.LED显示棒,又称摇摇棒,是一种利用视觉暂留效应制作的“高科技”玩具.可以用“静如处子,动如脱兔”来形容它,即当静止时,它只是几个LED发光二极管(后简称LED),而一旦依照一定的频率去摇晃它,它就会随着位置的变动而变动(亮或灭),最终显示一幅图片或字符串.

1.系统设计方案

本次设计制作的是一个显示棒,基本要求就是要小巧、轻便,所以要将单片机的系统板简化设计.通过本次设计,加强学生对MCS-51单片机的深刻理解,提高学生的设计能力和入手能力.

设计一个16只高亮度LED发光二极管构成的摇摇棒,通过单片机编程配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片.

本系统要求设计一个LED显示棒且需要有按键进行内容切换,它主要是由中央控制部份,LED驱动部份,LED显示部份以及电源部份组成,如图1.1所示.

单片机将提取的字模进行存储,当接收到按键输入的指令时单片机就将相应的字模代码通过I/O口输出,使LED灯点亮,利用视觉暂留原理最终使图案完整的显示在摆动的显示屏中.

LED灯的选择:

传统LED发光二极管.颜色多样,在可以同样显示图案的前提下使用它更为经济.

外部中断信号发生方式:

通过外部中断可以控制数据开始传输的时刻.选择好外部中断来源是本次制作的难点及重点.使用惯性开关.通过摇晃使得惯性开关的摆杆与焊接的左右两个触点接触,利用这种接触发生的电平变动来触发中断,结合软件控制显示,制作简单,使用方便.

抗重影方案的选择:

使用外部中断控制数据传输时刻.外部中断信号由惯性开关发生,触发方式为下降沿触发.惯性开关左右两边的触点分别与单片机两个外部中断接口相连,默认为高电平,摇动的摆杆接地.惯性开关处于分歧位置进入分歧的中断,从而决定何时送数据.该方案简单易行,可以保证数据是单程传输的,防止了重影.不摇动时把惯性开关处在左边就可以使LED棒熄灭,可以到达省电的效果.

2.系统硬件设计

2.1基来源根基理图为:

基来源根基理与硬件电路设计:

16只LED发光管作为画面每一列的显示,左右摇晃起到了扫描的作用,人眼的视觉暂留现象看到的是一幅完整的画面.与LED点阵的显示有几分相仿.

其硬件电路如上图中所示:

系统电源VCC为5V,下载法式和调试时一定要保证5V电压,MCS-51单片机作为控制器,在它的P1,P2口接有16只以共阳的方式连接的高亮度LED,由单片机输出低电平点亮.P1口,P2口的上拉电阻不能少.串在LED公共真个二极管D1会发生一定的压降,用来呵护LED,经试验测试LED点亮时两端电压为3V左右,在LED的平安接受范围之内.

2.2各部份功能

按键模块

使用一个按键对显示的所有内容进行切换,通过按钮按下的次数确定显示的内容.

S1:

水银开关 功能为棒在摇动时,只能在朝某一方向摇动时显示,否则会呈现镜像字或镜像画面,所以通过接一支水银开关来控制,使摇摇棒从左向右摇动时将内容显示出来.

S2:

画面切换开关 功能为用于切换显示分歧内容.

S3:

手动复位开关 功能为可以控制系统的启停

LED显示模块

首先,我们根据LED点阵屏的显示原理:

点阵屏的显示分为行扫描与列扫描两种,列扫描是将我们的字模数组通过点阵屏的行驱动进行输入,然后通过列对每一行进行扫描,当列为低(高)电平、行为高(低)电平时则暗示该点为图案的一部份,将其读出、显示.它的顺序可以总结为:

行不竭的送数据,每送完设置的信息后列进行读取,然后行再次送数据,列再次读取……依次循环下去,一幅完整的图案就显示在了显示屏上.

而本次设计的LED显示棒数据传输原理与LED点阵屏相似.可以把LED显示棒看成是LED点阵屏中的一列.为了使显示的图案清晰,我们使用了16个LED管将它们排成一列,整个屏在静止时也就相当于16行×1列.数据传输时我们同样使用行送数据、列扫描.在摆动过程中,应用视觉暂留原理,我们点亮的列不会很快的消失,而是随着摆动的方向继续向前移动,只要移动的速度高于视觉暂留的最短时间显示内容就不会熄灭,至此,一幅图案也就可以这样被“摆动”出来了.

单片机控制(STC89C051)本装置采纳了STC12C2051单片机,它支持直接通过串口线下载法式,对本设计而言,显示文字需经常改变,STC12C2051方便许多,因此选择STC12C2051作为本设计所用的单片机.

显示功能.(D1~D16)

信息传递主要由显示来完成,本设计显示功能由16个发光二极管来完成.16个发光二极管分为4组,以共阳的方式连接,共用P1口和P2口作为输出口.

2.4传感器系统

硬件传感器主要为摇动传感器,本设计的摇动传感器由滚珠开关构成.可选摇动开关有水银摇动开关和滚珠开关两种.水银摇动开关稳定性较高,但容易发生破裂,水银外泄,平安性较差.滚珠开关稳定性稍差,但不容易损坏,平安度很高.考虑到实际应用环境,故选用滚珠开关作为系统的摇动传感器.由滚珠开关带来的不稳定性可以通过软件进行弥补.

经过分析论证,我们决定了系统各模块的最终方案,流程图如下:

整套系统以STC12C2051单片机为核心控制系统,使用16只LED灯作为显示屏,其中16只直接与单片机I/O口相连.当惯性开关触发中断T1时,单片机向16只LED传送数据,依据人体的视觉暂留原理,随着显示棒的摆动前进,输出数据的列也不会立刻消失而是随着摆动逐渐显示在了形成的扇形区域.

系统的元器件明细表2.1:

1

单片机STC12C2051

1片

2

发光二极管

16只

3

12M晶振

1个

4

电阻、电容

若干

5

USB接口

1个

6

按钮及开关

若干

3.系统软件设计

3.1软件设计思路

在摇动LED棒的时候单片机必需单程传送数据否则显示的图形会发生重影,影响视觉效果.因此当系统开始工作后通过惯性开关的位置来使单片机实现单程传送数据给LED.如果惯性开关位于右边,则进入外部中断1并将一变量置1,.在变量为1期间让单片机以一定的频率将数据传送给LED.如果惯性开关位于左边,则进入外部中断0并将变量置0,.在这期间单片机不会传送数据给LED.在送数据时,数据送完后应延时一段时间来使摇动时显示的每个字不会太拥挤.之后再立刻熄灭LED并开始重新判断惯性开关的位置.

3.2主法式流程图

通过软件设计思路分析,获得该系统的主法式流程图3.1如下:

系统开始运行,内部进行初始化后,等候外部中断.当摇动到指定位置时,由滚珠开关出触发外部中断,再经过一段时间延时后开始显示.显示完成返回主法式,等候下一个摇动周期的到来.

经过文字取模后,系统的源法式编制如下:

#include

#defineucharunsignedchar

#defineuintunsignedint//宏界说

#defineKEYP3_0//界说画面切换按键

ucharKY;//KY作用在后面说明

uchardisp;//显示汉字指针

ucharpic=0,num=0;//pic为按键次数;num为中断次数

ucharcodelove[]={

/*--文字:

李--*/

/*--楷体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x00,0x00,0x80,0x48,0x28,0x98,0x88,0x7F,0x4C,0xD4,0x24,0x24,0x40,0x40,0x40,0x00,

0x00,0x04,0x04,0x04,0x04,0x04,0x24,0x46,0x3B,0x02,0x02,0x02,0x02,0x02,0x00,0

/*--文字:

好--*/

/*--楷体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x80,0x80,0x80,0x7E,0x40,0xE0,0x40,0x88,0x88,0xA4,0xD4,0x4C,0x44,0x40,0x40,0x00,

0x00,0x10,0x08,0x05,0x02,0x05,0x08,0x00,0x00,0x10,0x3F,0x00,0x00,0x00,0x00,0x00,x00,}

ucharcodeloveyou[]={

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x78,0x00,0xFC,0x00,0xFE,0x01,0xFE,0x03,0xFE,0x07,0xFE,0x0F,0xFE,0x1F,0xFC,0x3F,

0xF8,0x7F,0xFC,0x3F,0xFE,0x1F,0xFE,0x0F,0xFE,0x07,0xFE,0x03,0xFE,0x01,0xFC,0x00,

0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*心形图案*/

};

ucharcodehehe[]={

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x40,0x01,0xC0,0x01,0x00,0x00,0x00,0x00,

0xF0,0x0F,0x08,0x10,0x04,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00,0x04,0x00,

0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,

0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00,0x04,0x00,

0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x04,0x20,0x08,0x10,

0xF0,0x0F,0x00,0x00,0x00,0x00,0xC0,0x01,0x40,0x01,0xC0,0x01,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*呵呵o(∩_∩)o图案*/

};

unsignedcharcodehanzi[]={

//--欢--

0x04,0x10,0x34,0x08,0xC4,0x06,0x04,0x01,

0xC4,0x82,0x3C,0x8C,0x20,0x40,0x10,0x30,

0x0F,0x0C,0xE8,0x03,0x08,0x0C,0x08,0x10,

0x28,0x60,0x18,0xC0,0x00,0x40,0x00,0x00,

//--迎--

0x40,0x00,0x42,0x40,0x44,0x20,0xC8,0x1F,

0x00,0x20,0xFC,0x47,0x04,0x42,0x02,0x41,

0x82,0x40,0xFC,0x7F,0x04,0x40,0x04,0x42,

0x04,0x44,0xFE,0x63,0x04,0x20,0x00,0x00,

//--使--

0x40,0x00,0x20,0x00,0xF8,0xFF,0x07,0x00,

0x04,0x80,0xF4,0x43,0x14,0x45,0x14,0x29,

0x14,0x19,0xFF,0x17,0x14,0x21,0x14,0x21,

0x14,0x41,0xF6,0xC3,0x04,0x40,0x00,0x00,

//--用--

0x00,0x80,0x00,0x60,0xFE,0x1F,0x22,0x02,

0x22,0x02,0x22,0x02,0x22,0x02,0xFE,0x7F,

0x22,0x02,0x22,0x02,0x22,0x42,0x22,0x82,

0xFF,0x7F,0x02,0x00,0x00,0x00,0x00,0x00,

//--神--

0x08,0x01,0x88,0x00,0x49,0x00,0xEE,0xFF,

0x58,0x00,0x88,0x00,0x00,0x00,0xF8,0x1F,

0x88,0x08,0x88,0x08,0xFF,0xFF,0x88,0x08,

0x88,0x08,0xFC,0x1F,0x08,0x00,0x00,0x00,

//--奇--

0x40,0x00,0x40,0x00,0x44,0x00,0x44,0x3E,

0x64,0x12,0x54,0x12,0x4C,0x12,0x47,0x12,

0x4C,0x3F,0x54,0x42,0x74,0x80,0xC6,0x7F,

0x44,0x00,0x60,0x00,0x40,0x00,0x00,0x00,

//--魔--

0x00,0x40,0x00,0x30,0xFE,0x8F,0x4A,0x80,

0xAA,0x5F,0x9A,0x4A,0xFE,0x2A,0xAA,0x1A,

0xCB,0x0F,0xAA,0x7A,0xFE,0x8A,0x9A,0xAA,

0xAA,0x8F,0x6B,0x80,0x22,0xE0,0x00,0x00,

//--幻--

0x80,0x20,0xC0,0x30,0xA0,0x28,0x98,0x24,

0x87,0x22,0x80,0x21,0xC4,0x30,0x04,0x60,

0x04,0x00,0x04,0x20,0x04,0x40,0x04,0x80,

0x04,0x40,0xFE,0x3F,0x04,0x00,0x00,0x00,

//--摇--

0x10,0x02,0x10,0x42,0x10,0x81,0xFF,0x7F,

0x90,0x04,0x54,0x05,0xCC,0xF4,0xB4,0x44,

0x84,0x44,0xBC,0x7F,0x82,0x44,0xA2,0x44,

0x9B,0xF4,0x82,0x06,0x00,0x04,0x00,0x00,

//--摇--

0x10,0x02,0x10,0x42,0x10,0x81,0xFF,0x7F,

0x90,0x04,0x54,0x05,0xCC,0xF4,0xB4,0x44,

0x84,0x44,0xBC,0x7F,0x82,0x44,0xA2,0x44,

0x9B,0xF4,0x82,0x06,0x00,0x04,0x00,0x00,

//--棒--

0x10,0x04,0x10,0x03,0xD0,0x00,0xFF,0xFF,

0x90,0x00,0x54,0x05,0x44,0x12,0xD4,0x15,

0x74,0x14,0x5F,0xFF,0xD4,0x14,0x54,0x15,

0x56,0x12,0x44,0x06,0x40,0x02,0x00,0x00,

//--!

--

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x7C,0x10,0xFE,0x3B,

0xFE,0x3B,0x7C,0x10,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

/*****函数声明*****/

voiddisplay1(void);

voiddisplay2(void);

voiddisplay3(void);

voiddisplay4(void);

/*****n(us)延时子法式*****/

voidDelayUs(uintN)

{

uintx;

for(x=0;x<=N;x++);

}

/*****中断服务法式*****/

vo

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

当前位置:首页 > 求职职场 > 简历

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

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