51单片机 摇摇棒显示我爱你
基于单片机STC89C52的摇摇棒-推荐下载

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,/*心形图 案*/ };
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电通,力1根保过据护管生高线0产中不工资仅艺料可高试以中卷解资配决料置吊试技顶卷术层要是配求指置,机不对组规电在范气进高设行中备继资进电料行保试空护卷载高问与中题带资22负料,荷试而下卷且高总可中体保资配障料置23试时23卷,各调需类控要管试在路验最习;大题对限到设度位备内。进来在行确管调保路整机敷使组设其高过在中程正资1常料中工试,况卷要下安加与全强过,看2度并55工且22作尽2下可护1都能关可地于以缩管正小路常故高工障中作高资;中料对资试于料卷继试连电卷接保破管护坏口进范处行围理整,高核或中对者资定对料值某试,些卷审异弯核常扁与高度校中固对资定图料盒纸试位,卷置编工.写况保复进护杂行层设自防备动腐与处跨装理接置,地高尤线中其弯资要曲料避半试免径卷错标调误高试高等方中,案资要,料求编5试技写、卷术重电保交要气护底设设装。备备4置管高调、动线中试电作敷资高气,设料中课并3技试资件且、术卷料拒管中试试调绝路包验卷试动敷含方技作设线案术,技槽以来术、及避管系免架统不等启必多动要项方高方案中式;资,对料为整试解套卷决启突高动然中过停语程机文中。电高因气中此课资,件料电中试力管卷高壁电中薄气资、设料接备试口进卷不行保严调护等试装问工置题作调,并试合且技理进术利行,用过要管关求线运电敷行力设高保技中护术资装。料置线试做缆卷到敷技准设术确原指灵则导活:。。在对对分于于线调差盒试动处过保,程护当中装不高置同中高电资中压料资回试料路卷试交技卷叉术调时问试,题技应,术采作是用为指金调发属试电隔人机板员一进,变行需压隔要器开在组处事在理前发;掌生同握内一图部线纸故槽资障内料时,、,强设需电备要回制进路造行须厂外同家部时出电切具源断高高习中中题资资电料料源试试,卷卷线试切缆验除敷报从设告而完与采毕相用,关高要技中进术资行资料检料试查,卷和并主检且要测了保处解护理现装。场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
基于51单片机的红外遥控+液晶LCD1602显示程序源代码

基于51单片机的红外遥控+液晶LCD1602显示程序源代码/*******************红外遥控+液晶LCD1602测试程序源代码******************** 单片机型号:STC15W4K56S4,内部晶振:22.1184M。
功能:红外遥控+液晶LCD1602显示功能测试。
操作说明:按下红外遥控器上的“CH-”键,液晶LCD1602上显示“CH-”。
按下红外遥控器上的“CH”键,液晶LCD1602上显示“CH”。
按下红外遥控器上的“CH+”键,液晶LCD1602上显示“CH+”。
按下红外遥控器上的“|<<”键,液晶LCD1602上显示“|<<”。
按下红外遥控器上的“>>|”键,液晶LCD1602上显示“>>|”。
按下红外遥控器上的“>||”键,液晶LCD1602上显示“>||”。
按下红外遥控器上的“-”键,液晶LCD1602上显示“-”。
按下红外遥控器上的“+”键,液晶LCD1602上显示“+”。
按下红外遥控器上的“EQ”键,液晶LCD1602上显示“EQ”。
按下红外遥控器上的“0”键,液晶LCD1602上显示“0”。
按下红外遥控器上的“100+”键,液晶LCD1602上显示“100+”。
按下红外遥控器上的“200+”键,液晶LCD1602上显示“200+”。
按下红外遥控器上的“1”键,液晶LCD1602上显示“1”。
按下红外遥控器上的“2”键,液晶LCD1602上显示“2”。
按下红外遥控器上的“3”键,液晶LCD1602上显示“3”。
按下红外遥控器上的“4”键,液晶LCD1602上显示“4”。
按下红外遥控器上的“5”键,液晶LCD1602上显示“5”。
按下红外遥控器上的“6”键,液晶LCD1602上显示“6”。
按下红外遥控器上的“7”键,液晶LCD1602上显示“7”。
按下红外遥控器上的“8”键,液晶LCD1602上显示“8”。
基于单片机实现的显示摇摇棒的系统设计毕业设计(论文)word格式

基于单片机的LED显示摇摇棒的设计1 引言1.1系统设计要求设计并制作一个依靠摇动能显示字符、图形的LED显示棒。
系统设计的基本要求:设计一个基于LED的显示棒,其中LED灯必须呈线状排列,并至少使用16只,系统采用电池供电,摇动显示棒时形成的亮灯扇形区域能让人分辨出字符“A”、文字“电”以及国际奥委会五环图形,并用按键实现显示的切换。
系统设计的发挥部分:摇动显示棒时形成的亮灯扇形区域能够让人分辨出英文单词“Welcome”、汉字词组“美亚”和北京奥运会会徽图形,并适当增加设计特色与创新。
1.2 系统设计思路及特点该LED显示棒摇动时显现的字符或图形由LED灯显示,LED灯成线状排列,每个瞬间线阵只能显示数字编码后的文字或图形的一列,利用人眼的视觉暂留原理,将需要显示的字符或图形分成N列(N≥16),一般人手左右摆动的频率为几赫兹到十几赫兹,因此,通过单片机控制LED线阵以一较低频率扫描显示字符或图形的每一列,摆动显示棒时即可因视觉暂留看出显示的字符或图形;左右摆动一次通过端口电平变化,调用相应的显示子程序,字符切换通过外部中断实现,该系统设计对程序设计的要求较硬件电路要高。
2 系统理论设计2.1 系统总体方案比较及说明方案一:选用单片机AT89C51作为扫描显示控制核心,由其直接控制LED 线阵的显示,并外加扫描控制开关控制字符或图形的扫描显示,原理框图如图-1所示。
图-1 方案一原理框图该方案线路简单,扫描控制开关可选择机械开关或编码开关或水银开关,在基于单片机的LED显示摇摇棒的设计显示棒摇摆时接通线路控制单片机扫描输出字符或图形的列编码信号;单片机外另接有中断控制按钮用以切换不同字符或图形的显示,LED线阵采用普通三极管驱动,电路采用4节充电电池供电。
此方案的优点是:单片机C51的端口较多,可实现显示数据并行传输,速度较快,且外围电路简单,调试较方便。
缺点是:为了增大显示清晰度,除去可能由背景LED灯占用的端口外,单片机剩余端口无法使线阵中LED灯数量扩展至24只以上;单片机使用的晶振频率较大,软件不易实现对计数的控制。
51单片机爱心流水灯原理及制作

51单片机爱心流水灯原理及制作一、引言爱心流水灯是一种常见的电子制作项目,它使用51单片机控制LED灯的亮灭顺序,形成一个流动的爱心图案。
本文将详细介绍51单片机爱心流水灯的原理及制作过程。
二、原理介绍1. 51单片机51单片机是一种非常常见的单片机,具有广泛的应用领域。
它具有强大的计算能力和丰富的外设接口,非常适合用于控制LED灯的亮灭。
2. LED灯LED灯是一种半导体发光二极管,具有低功耗、长寿命和高亮度等特点。
在爱心流水灯中,我们使用红色的LED灯来形成爱心图案。
3. 流水灯原理流水灯是一种常见的电子灯光效果,通过控制LED灯的亮灭顺序,形成一个流动的效果。
在爱心流水灯中,我们将多个LED灯按照特定的顺序亮灭,形成一个流动的爱心图案。
4. 原理图以下是51单片机爱心流水灯的原理图:(在此处插入原理图)三、制作材料准备在开始制作爱心流水灯之前,我们需要准备以下材料:1. 51单片机开发板2. LED灯(红色)3. 电阻4. 面包板5. 连接线6. 电源四、制作步骤1. 连接电路首先,将51单片机开发板和面包板连接起来。
然后,根据原理图连接LED灯、电阻和51单片机的引脚。
确保连接正确且稳固。
2. 编写程序使用C语言编写51单片机的程序。
程序的主要功能是控制LED灯的亮灭顺序,形成一个流动的爱心图案。
以下是一个简单的示例程序:(在此处插入示例程序)3. 烧录程序将编写好的程序烧录到51单片机中。
可以使用专业的烧录工具,也可以使用通用的USB转串口模块进行烧录。
4. 测试将电源接入电路,打开电源开关,观察LED灯的亮灭情况。
如果一切正常,LED灯将按照程序中设定的顺序亮灭,形成一个流动的爱心图案。
五、注意事项在制作爱心流水灯时,需要注意以下几点:1. 连接线的接触要牢固,确保电路的稳定性。
2. 程序的编写要准确无误,确保LED灯按照预期的顺序亮灭。
3. 使用适当的电阻限流,以保护LED灯和51单片机。
单片机驱动点阵向上流动显示I Love U -Love漂亮的心形

单片机驱动点阵向上流动显示I Love U -Love 漂亮的心形原理图可以从51hei/f/ks51.pdf 这里下载,单片机型号是stc89c51/***功能:点阵向上流动显示I Love U -Love 是漂亮的心形*时间:2014 年3 月10 日16:19:14*作者:寒竹子*备注:动画显示原理:动画由32 张图片形成,每一毫秒刷新一帧图片,每250ms 变化一帧,共32 帧。
**/#includetypedef unsigned int uint;typedef unsigned char uchar;//74HC138sbit ADDR0 = P1;sbit ADDR1 = P1;sb it ADDR2 = P1 ;sbit ADDR3 = P1;sb it ENLED = P1;//I Love U 取模编码uchar code table[] = {/*宽8,高40*/0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//开始全黑0xFF,0xC3,0xE7,0xE7,0xE7,0xE7,0xC3,0xFF,//I0xFF,0x99,0x00,0x00,0x00,0x81,0 xC3,0xE7,//heart0xFF,0x99,0x99,0x99,0x99,0x99,0x81,0xC3,//U0xFF,0xFF,0xFF,0 xFF,0xFF,0xFF,0xFF,0xFF//消隐,去掉乱码};uchar counter = 0, index = 0;//图片刷新索引(要刷新32 张,每张间隔250ms) void timer0_init();void HC138_init();void main(void){timer0_init();HC138_init();while (1);}/********timer0 init**********/void timer0_init(){TMOD |= 0x01;//T1 方式1TH0 = 0xFC;TL0 = 0x67;//装入初值,定时1msTR0 = 1;//start T0EA = 1;//开总中断ET0 = 1;//开定时器T0 中断}/**********74HC138 init************/void HC138_init(){ADDR3 = 0;ENLED。
基于SST51单片机的梦幻摇摇棒汇总

基于SST51单片机的梦幻摇摇棒一、任务设计并制作一个梦幻时钟摇摇棒,系统逻辑控制框图大致如下所示:二、要求设计并进行理论分析,绘制相应的实验原理图、电路图等,并确定其实验验证方法(通过人手臂的挥动显示还是通过电动机带动旋转,或者通过相应的按键等进行相应的选择等其他方法)。
实验的最终结果必须包含设计作品和相关文档资料。
1、简单题:制作简单手摇式摇摇棒(50分)1)显示HUST.STI(20分)2)显示一个简单动画(20分)3)其他创意(10分)2、提高题:将摇摇棒固定到旋转电机(可以使用电风扇的电机)上,制作钟式摇摇棒(100分)1)显示HUST.STI(20分)2)显示一个稳定的石英钟画面,包括数字1-12、刻度及分针、秒针(30分)3)让分针、秒针走起来(30分)4)其他创意,如对钟的遥控、数字钟、显示动画等(20分)3、其他创意除了将摇摇棒固定到电机上以外,若有其他炫的创意,也一并鼓励。
就摇摇棒制作来说,好看、好玩、有新意,就是我们的宗旨。
三、评分标准.四、附加说明1、如果采用中断技术,应注意中断的优先级;2、如果采用可以调节的显示方式应该注意显示的图像的复杂程度和人眼的滞留效应的影响;3、采用不同的摇动方式的时候,要注意不同的控制方式和频率的变化速度;4、绘制电路应采用相关工具软件,并进行相应的仿真,验证可行性和正确性;5、对于数字、汉字等进行编码的时候可以采用“字模提取”等相应的软件。
题目分析1 原理及制作基本手摇式摇摇棒的制作是相对简单的,无非是单片机加一排LED再加一些必要的功能芯片、电路构成,建议自己设计。
若为了节省时间,也可以到百度上搜索相关资料。
按一定次序、一定时间依次点亮不同数量、不同位置的LED,并用左右摇晃扫描画面。
根据视觉暂留原理,人眼就能看到一幅图画。
显示什么样的图,就取决于同学们程序的编写了。
时钟的制作,从某种意义上说,也仅是将画面拉长到一整个圆周而已。
手摇式摇摇棒中,为了显示正常的、稳定的画面,必须限制摇摇棒只在朝某一个方向摇动的时候才依次点亮LED,向另一个方向摇动时则不能显示,否则画面会乱。
我爱你

1.1原理图图1-1 电子琴电路图1.2系统板硬件连线系统板硬件连线如图1-1所示,发生模块,键盘模块,及LED显示模块连接如下1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上;2.把“单片机系统”区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4 R1-R4端口上;3.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。
1.3主要功能特性与MCS-51单片机产品兼容8K字节在系统可编程Flash存储器1000次擦写周期全静态操作:0Hz~33Hz三级加密程序存储器32个可编程I/O口线三个16位定时器/计数器八个中断源全双工UART串行通道、低功耗空闲和掉电模式掉电后中断可唤醒看门狗定时器双数据指针掉电标识符1.4设计目的主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。
利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。
并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。
1.5程序框图程序框图如图所示:键盘识别程序框图如图所示:音乐发声程序框图如图所示:程序KEYBUF EQU 30HSTH0 EQU 31HSTL0 EQU 32HTEMP EQU 33HSPK EQU P1.0 ; 蜂鸣器所在端口ORG 0000HLJMP STARTORG 0BHLJMP INT_T0START: MOV TMOD,#01HSETB ET0SETB EAWAIT:MOV P2,#0FFHCLR P2.4 ;从第四行开始扫描MOV A,P2ANL A,#0FH ;屏蔽高四位,高四位为行,低四位为列XRL A,#0FHJZ NOKEY1 ;判断是否有键按下,没有就跳转LCALL DELY10MSMOV A,P2 ;消除抖动和干扰ANL A,#0FHXRL A,#0FHJZ NOKEY1MOV A,P2 ;确定有键按下以后的处理ANL A,#0FHCJNE A,#0EH,NK1 ;是否为第四行第一列的键被按下MOV KEYBUF,#0 ;保存列号LJMP DK1NK1: CJNE A,#0DH,NK2MOV KEYBUF,#1LJMP DK1NK2: CJNE A,#0BH,NK3MOV KEYBUF,#2LJMP DK1NK3: CJNE A,#07H,NK4MOV KEYBUF,#3LJMP DK1NK4: NOPDK1: ;第四行的处理MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2 ;Table1以字保存,所以散转MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,@A+DPTRMOV STH0,A ;送入高字节MOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,A ;送入低字节MOV TL0,ASETB TR0DK1A: M OV A,P2 ;判断按键是否松开ANL A,#0FHXRL A,#0FHJNZ DK1ACLR TR0NOKEY1:MOV P2,#0FFHCLR P2.5MOV A,P2ANL A,#0FHXRL A,#0FHJZ NOKEY2LCALL DELY10MSMOV A,P2ANL A,#0FHXRL A,#0FHJZ NOKEY2MOV A,P2ANL A,#0FHCJNE A,#0EH,NK5MOV KEYBUF,#4LJMP DK2NK5: CJNE A,#0DH,NK6MOV KEYBUF,#5LJMP DK2NK6: CJNE A,#0BH,NK7MOV KEYBUF,#6LJMP DK2NK7: CJNE A,#07H,NK8MOV KEYBUF,#7LJMP DK2NK8: NOPDK2:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK2A: M OV A,P2ANL A,#0FHXRL A,#0FHJNZ DK2ACLR TR0NOKEY2:MOV P2,#0FFHCLR P2.6MOV A,P2ANL A,#0FHXRL A,#0FHJZ NOKEY3LCALL DELY10MSMOV A,P2ANL A,#0FHXRL A,#0FHJZ NOKEY3MOV A,P2ANL A,#0FHCJNE A,#0EH,NK9MOV KEYBUF,#8LJMP DK3NK9: CJNE A,#0DH,NK10 MOV KEYBUF,#9LJMP DK3NK10: CJNE A,#0BH,NK11 MOV KEYBUF,#10LJMP DK3NK11: CJNE A,#07H,NK12 MOV KEYBUF,#11LJMP DK3NK12: NOPDK3:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK3A: M OV A,P2ANL A,#0FHXRL A,#0FHJNZ DK3ACLR TR0NOKEY3:MOV P2,#0FFHCLR P2.7MOV A,P2ANL A,#0FHXRL A,#0FHJZ NOKEY4LCALL DELY10MSMOV A,P2ANL A,#0FHXRL A,#0FHJZ NOKEY4MOV A,P2ANL A,#0FHCJNE A,#0EH,NK13MOV KEYBUF,#12LJMP DK4NK13: CJNE A,#0DH,NK14 MOV KEYBUF,#13LJMP DK4NK14: CJNE A,#0BH,NK15 MOV KEYBUF,#14LJMP DK4NK15: CJNE A,#07H,NK16 MOV KEYBUF,#15LJMP DK4NK16: NOPDK4:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,@A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,@A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK4A: M OV A,P2ANL A,#0FHXRL A,#0FHJNZ DK4ACLR TR0NOKEY4: JNB P1.0,MUSIC LJMP WAITMUSIC:MOV R3,#00H NEXT:MOV A,R3MOV DPTR,#TABLE2MOVC A,@A+DPTRJZ MUSICMOV R7,AINC R3MOV A,R3MOVC A,@A+DPTRMOV R2,AACALL SONGINC R3SJMP NEXT;============================================================ ===================;=== 歌曲播放子程序===SONG:MOV A,R2 ; 取出节拍RL AJNZ K EEPMOV A,#01HKEEP:MOV R2,AREPEAT:ACALL EIGHTHDJNZ R2,REPEATRET;============================================================ ===================;=== 产生1/8拍延时子程序===EIGHTH:MOV A,R7 ; 查表取出廷时参数,保存到R4MOV DPTR,#DELAY_TMOVC A,@A+DPTRMOV R4,AMOV A,R7 ; 查表取出1/8拍周期数,保存到R5MOV DPTR,#S_PARAMOVC A,@A+DPTRMOV R5,ANEXTCYC:ACALL SOUNDDJNZ R5,NEXTCYCRET;============================================================ ===================;=== 发声子程序===SOUND:SETB SPKACALL SDELAYCLR SPKACALL SDELAYRET;============================================================ ===================;=== 延时子程序===SDELAY:MOV A,R4 ; 廷时值在R4内MOV R0,AXL2:MOV R1,#03HDL1:NOPDJNZ R1,DL1DJNZ R0,XL2RET;============================================================ ===================;=== 1/8拍周期表===S_PARA:DS 1DHDB 15H,16H,00DB 19H,00H,1CH,00H,1FH,21H,00H,25HDB 00H,29H,2CH,00H,31H,34H,37H,00HDB 3EH,41H,00H,49H,00H,52H,57H,00HDB 62H;============================================================ ===================;=== 延时参数表===DELAY_T:DS 1DHDB 7EH,77H,00HDB 6AH,00H,5EH,00H,54H,4FH,00H,46HDB 00H,3FH,3BH,00H,35H,32H,2FH,00HDB 2AH,27H,00H,23H,00H,1FH,1DH,0C0HDB 1AHDELY10MS:MOV R6,#10D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RETINT_T0:MOV TH0,STH0MOV TL0,STL0CPL P1.5RETITABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71HTABLE1: DW 64021,64103,64260,64400DW 64524,64580,64684,64777DW 64820,64898,64968,65030DW 65058,65110,65157,65178;============================================================ ===================;=== 歌曲表===TABLE2:DW 2202H,2902H,2902H,2902H,2906H,2702H ;我从山中来DW 2502H,2702H,2502H,2402H,2208H ;带着兰花草DW 2E02H,2E02H,2E02H,2E02H,2E06H,2C02H ;种在小园中DW 2902H,2C02H,2D02H,2A02H,2908H ;祈祷花开早DW 2902H,2E02H,2E02H,2C02H,2906H,2702H ;一日看三回DW 2502H,2702H,2502H,2402H,2206H,1D02H ;看得花时过DW 1D02H,2502H,2502H,2402H,2206H,2902H ;兰花却依然DW 2702H,2502H,2402H,2002H,2208H ;苞也无一个DW 0000H ;END。
51单片机爱心流水灯原理及制作

51单片机爱心流水灯原理及制作引言:在现代科技发展的背景下,电子产品已经成为我们生活中不可或者缺的一部份。
而作为电子制作的入门级项目,流水灯因其简单而受到泛博爱好者的爱慕。
本文将介绍使用51单片机制作爱心流水灯的原理及制作过程。
1. 原理介绍:爱心流水灯是一种特殊的流水灯效果,通过控制LED灯的亮灭顺序和时间间隔,形成一个爱心图案在LED灯带上流动的效果。
其原理基于51单片机的GPIO (通用输入输出)口控制LED灯的亮灭,通过改变LED灯的状态来实现流动效果。
2. 材料准备:制作爱心流水灯所需的材料如下:- 51单片机开辟板- LED灯带- 面包板- 杜邦线- 电阻- 电容- 电源适配器3. 硬件连接:首先,将51单片机开辟板和面包板连接起来。
然后,将LED灯带连接到面包板上,确保正极和负极正确连接。
接下来,通过杜邦线将51单片机的GPIO口与LED灯带连接起来。
最后,将电阻和电容连接到电路中,以保护电路免受过电流和过电压的伤害。
4. 软件编程:使用Keil C编译器进行软件编程。
首先,需要定义LED灯带的控制引脚,并初始化为输出模式。
然后,编写程序来控制LED灯的亮灭顺序和时间间隔。
在本例中,我们将使用循环语句和延时函数来实现流水灯效果。
通过改变LED灯的状态和延时时间,可以形成一个爱心图案在LED灯带上流动的效果。
5. 程序调试:将编写好的程序下载到51单片机开辟板上,并连接电源适配器。
打开开关,LED灯带上的爱心流水灯效果就会开始显示出来。
如果浮现问题,可以通过调试程序和检查硬件连接来解决。
6. 制作扩展:如果你对爱心流水灯的效果满意,你还可以进一步扩展你的制作。
例如,你可以添加一个按键来控制流水灯的启停,或者通过蓝牙模块和手机APP来远程控制流水灯的效果。
这些扩展可以增加你的制作的趣味性和创造性。
结论:通过本文的介绍,我们了解了51单片机爱心流水灯的原理及制作过程。
通过硬件连接和软件编程,我们可以制作出一个具有特殊效果的流水灯。
基于51单片机摇摇棒的设计

学校代码10126 学号之公保含烟创作本迷信年论文题目基于51单片机摇摇棒的设计院系专业名称年级学生姓名指导教员2014年06月20日学年论文指导教员评阅意见学生姓名专业班级学号(论文)题目基于51单片机摇摇棒的设计指导教员教员职称摘要随着人们物质生死水平的提高,人们对肉体生活的追求也愈增强烈,对信息的渴求已成为了人们必不成少的需要,更加简捷与新颖的信息传递方式无疑会给人们带来耳目一新的感受.而现代工具务求简捷化、便携化,因此,摇动显示装置的到来,势必会给人们带来一种新的方便的文化传递方式.“摇动显示装置”,俗称“摇摇棒”,是基于人的视觉暂留原理的,通过火时刷新16个发光二极管来显示输出文字或图案等信息的显示装置.输出信号频率的控制通过单片机来实现,用摇动传感器检测以后摇动状态.当停止摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域发作一个视觉平面,在视觉平面内的二极管通过火歧频率的刷新,会在摇动区域内发作图像,从而到达在该视觉平面上转达信息的作用.本文以传感器和单片机的实际应用为布景,介绍了以单片机和传感器为中心系统摇动传感器和显示设计的根本构造和基来源根基理.关键字:单片机,发光二极管,传感器AbstractAs peoplematerial standardof living rise, people pursuit to cultural life also becomesstrong,the desire of information have become the people of the essential needs, more forthright and novel the information transfer modewillundoubtedlybring people to find everything new and fresh feeling. And modern tools to the simple, portable, therefore, shaking the display device, the arrival of will give people brings a kind of new convenient cultural transfer mode."Shake display device,"called"to shake the great", it is to be based on visual temporarilyleave the principle, through the timeshare refresh 16ledsto display text or design output information display device. The output signal frequency control through the single-chip microcomputer to realize, withshaking sensor test current moved state. When shaken, as themen's vision for a principle, will be in the light emitting diode shaking area produce a visual plane, the plane within the vision of different frequency refresh diode through,will producean image in shaking area, so as to achieve the vision in the plane ofconveying information function.Based on the sensor and MCU applicationfor background, introduces the single-chip microcomputer and sensor as the core system moved sensor and display design the basic structure and the basic principle.Key words:microcontroller,leds,sensor目录绪论11.系统设计方案11222.系统硬件设计32.1基来源根基理图为:32.2 各局部功用42.2.1 按键模块42.2.2 LED显示模块442.3.2 显示功用(D1~D16)42.4 传感器系统 (5)3.系统软件设计63.1 软件设计思路63.2 主顺序流程图63.3 软件实现功用的完善134.系统的硬件调试及软件调试1414144.1.2 器件失效144.1.3 牢靠性差144.1.4 电源故障144.2 硬件调试办法144.2.1 脱机调试144.2.2 联机调试154.3 软件调试办法15致谢17参考文献17绪论单片机是随着年夜规模集成电路的出现极端开展,将计算机的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单片机STC12C20511片2发光二极管16只312M晶振1个4电阻、电容若干5USB接口1个6按钮及开关若干3.系统软件设计3.1 软件设计思路在摇动LED棒的时候单片机必需单程传送数据否则显示的图形会发作重影,影响视觉效果.因此当系统开端任务后通过惯性开关的位置来使单片机实现单程传送数据给LED.如果惯性开关位于右边,则进入外部中断1并将一变量置1,.在变量为1期间让单片机以一定的频率将数据传送给LED.如果惯性开关位于左边,则进入外部中断0并将变量置0,.在这期间单片机不会传送数据给LED.在送数据时,数据送完后应延时一段时间来使摇动时显示的每个字不会太拥挤.之后再立即熄灭LED并开端重新判断惯性开关的位置.3.2 主顺序流程图通过软件设计思路剖析,失掉该系统的主顺序流程图3.1如下:系统开端运行,内部停止初始化后,等候外部中断.当摇动到指定位置时,由滚珠开关出触发外部中断,再经过一段时间延时后开端显示.显示完成返回主顺序,等候下一个摇动周期的到来.经过文字取模后,系统的源顺序编制如下:#include <AT89X52.h>#define uchar unsigned char#define uint unsigned int //宏定义#define KEY P3_0 //定义画面切换按键uchar KY; //KY作用在前面说明uchar disp; //显示汉字指针uchar pic=0,num=0; //pic为按键次数;num为中断次数uchar code love[] = {/*-- 文字: 李--*//*-- 楷体_GB231212; 此字体下对应的点阵为:宽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/*-- 文字: 好--*//*-- 楷体_GB231212; 此字体下对应的点阵为:宽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,} uchar code loveyou[] = {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,/*心形图案*/};uchar code hehe[] = {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图案*/};unsigned char code hanzi[] = {//-- 欢--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,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,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};/*****函数声明*****/void display1(void);void display2(void);void display3(void);void display4(void);/*****n(us)延时子顺序*****/void DelayUs(uint N){uint x;for(x=0; x<=N;x++);}/*****中断效劳顺序*****/void intersvr0(void) interrupt 0 using 1{KY=~KY; //每个摇动来回水银开关会在摆幅两端辨别发作下降沿中断,只提取其中一次(从左向右摇才显示)if(KY==0)num++; //计算中断次数switch(pic) //选择画面{case 0:{display1();}break;case 1:{display2();}break;case 2:{display3();}break;case 3:{display4();}break;default:{display1();}}}}/*****显示子顺序1(汉字)*****/void display1(void){uchar i;if(num>10){disp++;num=0;} //12个汉字分为3次显示完(每次显示4个),每中断10次切换if(disp>2)disp=0;DelayUs(5200); //此处延时时间依各硬件分歧而各不相同,试着调整使得显示内容居中即可for(i=0;i<64;i++){P0=~hanzi[disp*128+i*2];P2=~hanzi[disp*128+i*2+1];DelayUs(100);}}/*****显示子顺序2(LOVE)*****/void display2(void)uchar i;DelayUs(4000);for(i=0;i<64;i++){P0=~love[i*2];P2=~love[i*2+1];DelayUs(120);}}/*****显示子顺序3(心形图案)*****/void display3(void){uchar i;DelayUs(4000);for(i=0;i<64;i++){P0=~loveyou[i*2];P2=~loveyou[i*2+1];DelayUs(120);}}/*****显示子顺序4(呵呵o(∩_∩)o图案)*****/ void display4(void){uchar i;DelayUs(4000);for(i=0;i<64;i++){P0=~hehe[i*2];P2=~hehe[i*2+1];DelayUs(120);}}/*****主函数*****/void main(void){IT0=1;EX0=1;EA=1; //开中断,下降沿中断KY=0;while(1) //主顺序中只检测按键{if(KEY==0) //画面切换键按下{DelayUs(10000); //按键去抖if(KEY==0);pic++;}if(pic>3)pic=0;}}/*****END*****/3.3 软件实现功用的完善本次设计的一个难点是去除重影,我们的解决办法是使用外部中断让数据单程传输.第二个难点是当显示较长字符时不能完整的显示在一次摇摆的扇形区域内.通过重复试验,我们改动了送数据方式:由一个字符接一个字符传送改为一组字符一起传送,传送完毕后再延时,通过不竭调试实现了完整显示的功用,同时也解决了画面延续出现没有连续的问题.综上,只要控制好数据传输方式以及每次传输数据间的延时就可以实现多种数据的显示办法.4.系统的硬件调试及软件调试单片机应用系统的硬件调试和软件调试是分不成的,许多硬件故障是在调试软件时才发现的.但通常是先排除系统中明显的硬件故障后才和软件结合起来调试的.其一般的调试进程如下:逻辑毛病样机硬件的逻辑毛病是由于设计毛病和加工进程中的工艺性毛病所造成的.这类毛病包括:错线,开路,短路等几种,其中短路时最罕见的故障.在印刷电路板布线密度高的情况下,极易因工艺原因造成短路.器件失效元器件失效的原因有两个方面:一是器件自己已损坏或性能不契合要求;二是由于组装毛病而造成的元器件失效,如电解电容,二极管的极性毛病,集成块装置方向毛病等.牢靠性差引起系统不成靠的因素很多,如金属化孔,接插件接触不良会造成系统时好时坏;内部和外部的搅扰,电源纹波系数过年夜,器件负载过年夜等造成逻辑电平不稳定;另外,走线和规划的分歧理等也会引起系统牢靠性差.电源故障若样机中存在电源故障,则加电后将造成器件损坏.电源的故障包括:电压值不契合设计要求,电源引出线和插座分歧毛病应,电源功率缺乏,负载能力差.4.2 硬件调试办法脱机调试脱机调试是在电路板加电之前,先用万用表等工具,依据硬件电气原理图和装配图仔细反省样机线路的正确性,并核对元器件的型号,规格和装置是否契合要求.应特别注意电源的走线,避免电源之间的短路和极性毛病,偏重点反省拓展系统总线是否存在相互间的短路或其他信号线的短路.关于样机所用的电源事先必需独自调试,调试好后,反省其电压值,负载能力,极性等均契合要求,才华加到系统的各个部件上.在不插片子的情况下,加电反省各插件上引脚的电位,仔细反省各所在电位是否正常,尤其应注意单片机插座上的各点电位是否正常,若有高压,联机时将会损坏开发机.联机调试通过脱机调试可排除一些明显的硬件故障.有些硬件故障还是要通过联机调试才华发现和排除.联机前先断电,把开发系统的仿真插头插到样机的单片机插座上,反省一下开发机与样机之间的电源、接地是否良好.一切正常,即可翻开电源.通电后执行开发机读写指令,对用户机的存储器、I/O端口停止读写把持、逻辑反省,若有故障,可用示波器察看波形.通过对波形的察看剖析,寻找故障原因,并进一步排除故障.能够的故障有:线路衔接上的逻辑毛病、有断线或短路现象、集成电路失效等.4.3 软件调试办法软件调试与所选用的软件构造和顺序设计技术有关.如果采用模块顺序设计技术,则逐个模块调试好以后,再停止系统顺序总调试.如果采用实时多任务把持系统,一般是逐个任务,下面进一步予以说明.关于模块构造顺序,要一个个子顺序辨别调试.调试子顺序时,一定要契合现场环境,即入口条件和出口条件.调试的手段可采用单步运行方式和断点运行方式,通过反省用户系统CPU的现场、RAM的内容和I/O口的状态,检测顺序执行后果是否契合设计要求.通过检测,可以发现顺序中的死循环毛病、机器码毛病及转移地址的毛病,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计毛病.在调试进程中不竭调整用户系统的软件和硬件,逐步通过一个个顺序模块.各顺序模块通当时,可以把各功用块联络起来一起停止整体顺序综合调试.在这阶段若发作故障,可以思索各子顺序在运行时是否破坏现场,缓冲单位是否发作抵触,零位的树立和清除在设计上有否失误,堆栈区域有否溢出,输入设备的状态是否正常,等等.若用户系统是在开发系统的监控顺序下运行时,还要思索用户缓冲单位是否和监控顺序的任务单位发作抵触.单步和断点调试后,还应停止延续调试,这是因为单步运行只能验证顺序的正确与否,而不能确定定时精度、CPU的实时响应等问题.待全部完成后,应重复运行屡次,除了察看稳定性之外,还要察看用户系统的把持是否契合原始设计要求、安插的用户把持是否合理等,需要时还要做适当修正.关于实时多任务把持系统的应用顺序是由若干个任务顺序组成,一般是逐个任务停止调试,在调试某一个任务时,同时也调试相关的子顺序、中断效劳顺序和一些把持系统的顺序.逐个任务调试好以后,再使各个任务同时运行,如果把持系统中没有毛病,一般情况下系统就能正常运转.在全部调试修改完成后,将用户软件固化于EPROM 中,拔出用户样机后,用户系统即能分开发机独立任务,至此系统研制完成.在开端实验设计前,依据实验要求,剖析实验所涉及的相关知识点,查阅身边的资料,并依据自己以前所学的实际知识,有了年夜约设计框图后,在PROTEL中画出原理图,然后依据原理图剖析模块焊出电路板,并对模块停止测试.第一步,测试LED显示电路和C51单片机最小系统.首先测试LED,输入一个复杂顺序(#include<reg51.h>main(){p1=0*00;p2=0*00;}),发现有一个LED不亮,于是反省该LED 的引脚,发现线路断了,接好后LED亮了.于是输入摇摇棒顺序,但LED灯不闪,猜想是数码管芯片与插槽接触不良的问题,就把插槽重新焊接,之后,再次检测时,发现有时闪烁有时灯不亮.说明不是插槽的问题,于是重复反省最小系统模块,通过用电压表最数码管的每个引脚停止上下电平测试,最总发现原来是接线问题,即是一根线忘了衔接.使得硬件与软件的设置不匹配,从而招致了LED显示不正常.矫正后重新测试.手坚定晃可出现图像.第二步,测试驱动电路,该模块完好.第三步,软件测试.在软件方面,改局部主要调延时函数,调试进程复杂但费时.于是,屡次耐心检验考试后软件调试才胜利,能够完整并较为清晰地完整图像.最终,实现摇摇棒功用总结在李艳萍教员的指导下,通过一周的时间完成了摇摇棒的设计,本次设计以传感器和单片机的实际应用为布景,介绍了以单片机和传感器为中心系统摇动传感器和显示设计的根本构造和基来源根基理.本次将使用单片机对摇动显示停止实例化,设计一个LED摇动显示器来显示文字、图像等信息.掌握应用8051型单片机对发光二极管阵列停止摇动控制的办法.输出信号频率的控制通过单片机来实现,用摇动传感器检测以后摇动状态,用16个发光二极管停止分歧频率的亮灭刷新,通过手坚定动可显示输出文字及图案等信息.当停止摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域发作一个视觉平面,在视觉平面内的二极管通过火歧频率的刷新,会在摇动区域内发作图像,从而到达在该视觉平面上转达信息的作用.设计具有市场前景,可满足各种年夜型演出、集会、游行等宣传需要,为人们的生活提供便利,通过这次课程设计,使我学会了编写顺序,焊接电路板,增强了我的入手能力,为以后打下了坚实的根底!致谢本设计的完成是在我们的导师教员李艳萍的细心指导下停止的.在每次设计遇到问题时教员任劳任怨的解说才使得我的设计顺利的停止.从设计的选题到资料的搜集直至最后设计的修改的整个进程中,破费曲教员很多的宝贵时间和精神,在此向教员暗示衷心地感谢!教员严谨的治学态度,开拓进取的肉体和高度的责任心都将使学生受益终生!还要感谢和我同一班级的同学,是你们在我平时设计中和我一起探讨问题,并指出我设计上的误区,使我能及时的发现问题把设计顺利的停止下去,没有你们的帮助我不成能这样顺利地结稿,在此暗示深深的谢意.再次感谢李教员临时以来悉心的指导和在设计进程提供的少量资料、修改意见及屡次的欣赏和试验的时机,让我对单片机有了较全面了解,为日后的任务和更进一步的学习打下了坚实的根底,也积聚了许多宝贵的设计经历.参考文献[1] 邹逢兴,陈立刚,计算机意见技术根底(第二版),初等教育出书社,2003[2] 余锡存,曹国华,单片机原理与接口技术(第二版),西安电子科技年夜学出书社,2007[3] 冯博琴,吴宁,微型计算机原理与接口技术(第三版),清华年夜学出书社,2004[4] 张毅刚,MCS-51单片机应用设计,哈尔滨工业年夜学出书社,2004。
基于51单片机的摇摇棒 简版(少图)

基于STC89C52单片机的摇摇棒系统沈阳工业大学信息科学与工程学院电子信息工程0802班闫博謇080402056摘要随着科技的不断发展,社会的不断进步,供人们娱乐休闲的工具越来越多,摇摇棒也随之成为一个热点产品。
“摇摇棒”是基于人眼视觉暂留原理而产生的, 当进行摇动时,由于人的视觉暂留会在发光二极管摇动区域产生一个视觉平面,从而达到在该视觉平面上传达信息的作用。
本文介绍了以STC89C52单片机控制为主控芯片、配合高亮度LED二极管以及水银开关构成简易摇摇棒的设计过程,通过分时刷新20个发光二极管来显示输出文字或图案等信息。
并在此基础上,利用DS1302时钟芯片显示当前时间,可通过按键对时间进行设置。
关键词:视觉暂留;单片机;LED;DS1302AbstractWith the continuous development of the science and technology and the society, a lot of tools , providing the entertainment and leisure for people, have been more and more .So the shaking stick has been a kind of hot produces gradually. It is based on the principle of the human visual and temporary leave to product .when shaken it , the men's visual and temporary leave can produce a visual plane in the LED’s shaking region, in order to achieve the function conveying information in the plane of vision. This paper introduces the process of designing the simple shaking stick with the controlling chip (It is controlled mainly by the STC89c52 MCU ) , a high brightness LED and the mercury switch .It is completed through refreshing 20 LED in the time—sharing to display some information like the text--- output or the design. And on this basis, the use of the chip of the DS1302 would show current time .It would be set time through the button.Keywords: Visual staying phenomenon,MCU,LED,DS1302目录摘要…………………………………………………………第一章基本原理……………………………………………1.1 视觉暂留现象…………………………………………1.2 STC单片机简介………………………………………1.3 水银开关………………………………………………1.4 时钟芯片………………………………………………1.5 按键……………………………………………………1.6 LED ……………………………………………………第二章原理图………………………………………………第三章实物说明图…………………………………………第四章使用说明……………………………………………步骤一………………………………………………………步骤二………………………………………………………步骤三………………………………………………………步骤四………………………………………………………步骤五………………………………………………………第五章软件设计………………………………………………5.1 设计思路………………………………………………5.2 系统工作流程…………………………………………5.3 主程序流程图…………………………………………第六章部分效果图……………………………………………参考文献………………………………………………………附件……………………………………………………………第一章基本原理1.1视觉暂留现象(Visual staying phenomenon,duration of vision)人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称“后像”,视觉的这一现象则被称为“视觉暂留”。
51单片机I love you

P0 = ww[3];// 存入相应的数据(控制到底显示哪一位数码管)
wei=0; // 关闭锁存
duan=1; // 打开段控制锁存,准备存入数据
P0=w[4]; //存入相应的数据(控制这一数码管显示什么数字)
sbit wei=P1^1; //位控制端
sbit duan=P1^0; //段控制端
sbit Leden=P1^2;//LED灯控制端
sbit Line=P1^3;//点阵行控制端
sbit k1=P2^4;
sbit k2=P2^5;
sbit k3=P2^6;
sbit k4=P2^7;
// 按K2,PWM值减小,则占空比增加,LED 灯渐亮。
// 当PWM值增加到最大值或减小到最小值时,蜂鸣器将报警。
//download by
/*********************************************************/
sbit Row=P1^1; //点阵列
sbit LeDen=P1^2;//LED灯控制端
sbit duan=P1^0;//数码管段控制
/***************************************/
/* 主程序 */
duan=0;
while(!k4);
}
}
}
void delay(unsigned int sm)
{
for(i=sm;i>0;i--)
for(j=70;j>0;j--);
}
PWM 控制
摇摇棒课程设计(基于AT89C51单片机)

目录摘要 (1)一、引言 (2)二、系统设计方案 (2)1.设计思路 (2)2.模块方案的论证与比较 (2)三、系统硬件设计 (3)1.总体设计 (3)2.单元电路设计 (4)四、系统软件设计 (5)1.软件设计思路 (5)2.系统流程图 (6)3.软件实现功能的完善 (6)五、结论 (7)参考文献 (8)附录 (8)附录一元器件明细表 (8)附录二系统程序 (9)附录三电路图 (12)魔幻摇摇棒摘要:“摇摇棒”是基于人的视觉暂留原理的,通过分时刷新16个发光二极管来显示输出文字或图案等信息的显示装置。
输出信号频率的控制通过单片机来实现,用摇动传感器检测当前摇动状态。
当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一个视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动区域内产生图像,从而达到在该视觉平面上传达信息的作用。
关键字:单片机;摇摇棒;发光二极管;摇动一、引言LED显示棒,又称摇摇棒,是一种利用视觉暂留效应制作的“高科技”玩具。
可以用“静如处子,动如脱兔”来形容它,即当静止时,它只是几个LED发光二极管(后简称LED),而一旦按照一定的频率去摇晃它,它就会随着位置的变化而变化(亮或灭),最终显示一幅图片或字符串。
本设计要求制作完成一个LED的显示棒。
要求LED灯线状排列,通过摇动时形成的亮灯扇形区域能够分辨出如:“电”、“A”、五环之类的汉字或图案且可以使用按键对显示内容进行切换。
二、系统设计方案1.设计思路本系统要求设计一个LED显示棒,且需要有按键进行内容切换,它主要是由中央控制部分、LED驱动部分、LED显示部分以及电源部分组成,如图1所示:图1:LED显示棒系统框图单片机将提取的字模进行存储,当接收到按键输入的指令时单片机就将相应的字模代码通过I/O口输出,使LED点亮,利用视觉暂留原理最终使图案完整的显示在摆动的显示屏中。
本题的难点在于送数据的时间间隔以及较长画面或文字的完整显示。
最简单的摇摇棒51c程序

/****************************************************************************** ****对于摇摇棒,关键就是控制时间与扫描,没有多大难度和技巧,为了广大同学对电子的热爱**我就以我的名字为例,写一段源程序来给大家讲解。
请仔细看好每一句,祝你们在学习电**子的世界里早日成功。
**** 鄂州职业大学电子协会王徐思远********************************************************************************** **/#include<reg52.h>#define uint unsigned int#define uchar unsigned char/* "王", 0x00,0x08,0x7F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x08,0x7F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x00,0x00,**************************************"徐", 0x08,0x40,0x08,0x40,0x10,0xA0,0x21,0x10, * 对于这些字库,大家大可不必烦恼,想*0x42,0x0E,0x0C,0x04,0x13,0xF8,0x30,0x40, *改成其他字是非常简单的,有能力的我建*0x50,0x48,0x97,0xFC,0x10,0x40,0x11,0x50, *议可以自己去画去算,不会写字库的在网*0x12,0x4C,0x14,0x44,0x11,0x40,0x10,0x80, *上有很多字库取模软件,自己下载一个学**着用吧,当你学会用时,就离成功不远了*"思", 0x00,0x08,0x3F,0xFC,0x21,0x08,0x21,0x08, *哦。
51单片机爱心流水灯原理及制作

电路原理图:原件清单:1、51单片机x1、40Pin 座x12、LED x32(建议用5mm 七彩的)3、电阻470Ωx334、晶振12MHz x15、10uf 电解电容x1、谐振瓷片电容30pf x26·其他的可以看自己的爱好去加7、其实也可以不用那么多的电阻,用几个排阻就OK了。
效果展示:作品程序:#include<reg52.h>#define uchar unsigned charuchar flag=200;///////////////////////////////////////////////////////////////////////uchar code Tab1[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF};//暗中左移向下uchar code Tab2[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF};//暗中右移向上uchar code Tab3[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00};//亮中左移向下uchar code Tab4[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x00};//亮中右移向上uchar code Tab11[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0xff};//暗中左移向下uchar code Tab22[]={0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00,0xff};////////////////////////////////////////////////////////////////////uchar code Tab33[]={0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF};uchar code Tab44[]={0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};uchar code Tab55[]={0x08,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff};uchar code Tab5[]={0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xff};uchar code Tab6[]={0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xff};uchar code Tab7[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};uchar code Tab8[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; ////////////////////////////////////////////////////////////////void shansuo();void xl();///////////////////////////////////////////////////////////////void delay(void){unsigned char m,n;for(m=0;m<flag;m++)for(n=0;n<250;n++);}///////////////////////////////////void hy1(void) //点亮状态逆时针旋转90度(一个一个灭){unsigned char i;for(i=0;i<8;i++){P0=Tab11[i];P1=Tab22[i];P2=Tab11[i];P3=Tab22[i];delay();}for(i=0;i<8;i++){P0=Tab44[i];P1=Tab55[i];P2=Tab44[i];P3=Tab55[i];delay();}}///////////////////////////////////////////void hy2(void) //暗中逆时针转360。
(仅供参考)51单片机中文字符显示

#define uint unsigned int
#define blkn 2
//一列数据由两块 8×8 的 LED 点阵显示器显示
sbit EN74138=P1^7;
//74138 片选线
sbit ST_CP74595=P1^6;
//74595 内部输出(从移位寄存器到输出锁存器)控制
sbit CLEAR74595=P1^5;
{0x42,0x08,0x42,0x08,0x7f,0xf0,0x42,0x11, 0x40,0x92,0x07,0x04,0x00,0x18,0xff,0xe0, 0x00,0x04,0x42,0x04,0x42,0x04,0x7f,0xfc, 0x42,0x04,0x42,0x04,0x42,0x04,0x00,0x00},
15 1 2 3 4 5 6 7 9
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
U3 74CH595
E1 E2 E3 E4 E5 E6 E7 E8
15 1 2 3 4 5 6 7 9
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
SH_CP DS
ST _ CP MR OE
11 14 12 10 13
{0x00,0x00,0x00,0x00,0x1f,0xf0,0x12,0x20, 0x12,0x20,0x12,0x20,0x12,0x20,0xff,0xfc, 0x12,0x22,0x12,0x22,0x12,0x22,0x12,0x22, 0x1f,0xf2,0x00,0x02,0x00,0x0e,0x00,0x00},
51单片机项目教程项目 18 8乘8点阵显示爱心

(4)扫描界限寄存器(地址0BH):该寄存器中D0~D3 位数据 设定值为0~7H,设定值表示显示器动态扫描个数位1~8。
(5)停机寄存器(地址0CH):当D0=0 时,MAX721 处于停机 状态;当D0=1 时,处于正常工作状态。 (6)显示测试寄存器(地址0FH):当D0=0时,MAX7219 按设 定模式正常工作;D0=1 时,处于测试状态。在该状态下,不管 MAX7219 处于什么模式,全部LED 将按最大亮度显示。
MAX7219介绍 MAX7219/MAX7221是一种集成化的串行输入/输出共阴极显示驱 动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接 条线图显示器或者64个独立的LED。其上包括一个片上的B型BCD 编码器、多路扫描回路,段字驱动器,而且还有一个8*8的静态 RAM用来存储每一个数据。只有一个外部寄存器用来设置各个 LED的段电流。 MAX7219和单片计算机连接有三条引线(DIN、CLK、 LOAD)采用16位数据串行移位接收方式。即单片机将16位二进制 数逐位发送到DIN端,在CLK上升沿到来前准备就绪,CLK的每个上 升沿将一位数据移入MAX7219内移位寄存器,当16位数据移入 完,在LOAD引脚信号上升沿将16位数据装入MAX7219内的相应 位置,MAX7219内部硬件动态扫描显示控制电路作用下实现动态 显示。
可寻址的数据寄存器和控制寄存器 (1)内部RAM 地址01~08H 分别对应于DIG0~DIG7。 (2)译码方式寄存器(地址09H):该寄存器的8 位二进制数的 各位分别控制8 个LED 显示器的译码方式。当高电平时,选择 BCD-B 译码模式,当低电平时选择不译码模式(即送来数据为字 型码)。 (3)亮度寄存器(地址0AH):亮度可以用硬件和软件两种方法 调节。亮度寄存器中的D0~D3位可以控制LED 显示器的亮度。
单片机告白气球代码

单片机告白气球代码单片机告白气球代码介绍告白气球是一首很受欢迎的歌曲,很多人也会选择用这首歌来表达自己的心意。
而在现代科技的帮助下,我们还可以通过单片机来实现一个有趣的告白方式,即通过控制LED灯和气球的升降来展示出一个“我爱你”的字样。
下面将详细介绍如何使用单片机实现这个功能。
材料准备1. 单片机(AT89C51或者其他型号)2. LED灯若干(建议使用红色)3. 气球一个4. 电路板一个5. 杜邦线若干6. 电池或者电源适配器一个7. 热熔胶枪和胶棒若干8. 其他常用工具(如螺丝刀、镊子等)硬件设计及连接1. LED灯连接:将LED灯按照一定规律连接到电路板上。
建议采用串联方式,即将所有LED灯连接在同一条线上,并且在每个LED之间加入适当大小的电阻以保证正常工作。
2. 气球升降装置设计:采用直流减速电机驱动气球升降。
将电机与气球连接在一起,通过电路板上的开关控制电机的正反转,从而实现气球的升降。
3. 单片机连接:将单片机与电路板上的其他元件连接在一起,以实现对LED灯和气球升降装置的控制。
代码编写下面是一个简单的代码示例,可以通过修改其中的参数来实现不同的效果。
#include <reg52.h> //头文件sbit motor1 = P2^0; //定义直流减速电机引脚sbit motor2 = P2^1;void delay(unsigned int xms) //延时函数{unsigned int i,j;for(i=xms;i>0;i--)for(j=112;j>0;j--);}void main() //主函数{while(1){motor1 = 1; //电机正转motor2 = 0;delay(5000); //延时5秒motor1 = 0; //电机反转motor2 = 1;delay(5000);for(int i=0;i<8;i++) //循环控制LED灯亮灭{P1 = ~(1<<i);delay(100);P1 = 0xff;delay(100);}}}代码解析该代码首先定义了两个引脚(motor1和motor2)用于控制直流减速电机的正反转,然后通过一个无限循环来实现气球的升降效果。