LED摇摇棒制作详情含代码

合集下载

毕业设计 msp430摇摇棒

毕业设计 msp430摇摇棒

毕业设计msp430摇摇棒毕业设计msp430摇摇棒摘要本设计以mSP430单片机为中央控制器,显示棒摇动时显示的字符或者图形由LEd灯显示。

LEd灯成线状排列,每个瞬间线阵只能显示数字编码后的文字或者图形的一列,利用人眼的视觉暂留原理,将需要显示的字符或者图形分成64列,因此,通过单片机控制LEd线阵以一较低频率扫描显示字符或者图形的每一刻,摆动显示棒时即可因视觉暂留看出显示的字符或者图形;左右摆动一次通过端口电平变化,调用相应的显示子程序,字符切换通过外部中断实现,该系统设计对程序设计的要求硬件电路要高。

整套系统由中央控制模块,LEd 显示模块,供电模块等部分构成。

关键词:mSP430单片机;LEd灯;摇摇棒abstractThe design for the central controller with msp430 csm and display great when shaken by the character or graphics appearred that LEd lights, LEd lights into linear array,cach miment only display dightal coding text or graphics after a column,using the principle of human vision,will need to display characters or graphics into 64,LEd by mcU control array in a low frequency scan character or graphic each column,swinging rod can show that for all the haracter or graphic display,swinging through port level changes,once the call display subroutines,characters,by external interruption swithing system design for program design of hardware circuit to high requirment,The system by the contral control module,the LEd display module,power supply module.Keywords: LEd;mSP430;Vision;yaoyaobang第一章绪论.................................................................................................................. .. 5第二章方案论证 (6)2.1 设计背景 (6)2.2系统设计要求 (6)2.3 整体方案比较与论证 (7)第三章系统硬件设3.1 硬件基本结构 (8)3.2 LEd显示部分 (8)3.3单片机最小系统部分 (9)3.4 电源部分 (9)3.5 mSP430单片机 (9)3.6 关于创新部分的讨论 (13)3.7按键模块 (13)3.8 LEd显示模块 (13)3.9惯性开关模块 (14)3.10总体设计 (15)第四章系统软件设4.1软件设计思路 (17)4.2软件系统流程图 (18)4.3动态图片的实现 (18)4.4软件实现功能的完善 (19)第五章系统调试第六章总结...................................................................................................................20致谢.................................................................................................................. . (21)参考文献.................................................................................................................. (22)附录.................................................................................................................. . (23)附录.................................................................................................................. (42)第一章绪论摇摇棒是当今比较流行的一种时尚娱乐电子产品,通过在手中左右摇晃棒体,就可在其摇摆出的扇形轨迹面上显示出文字或图像,摇摇棒具有质量轻,无污染,高强抗冲击等优点。

32led摇摇棒

32led摇摇棒

基于视觉暂留原理的摇动显示装置摘要:“摇动显示装置”,俗称“摇摇棒”,是基于人的视觉暂留原理的,通过分时刷新32个发光二极管来显示输出文字或图案等信息的显示装置。

输出信号频率的控制通过单片机来实现,用摇动传感器检测当前摇动状态。

当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一个视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动区域内产生图像,从而达到在该视觉平面上传达信息的作用。

关键字:单片机;摇摇棒;发光二极管;摇动前言:随着人们物质生活水平的提高,人们对精神生活的追求也愈加强烈,对信息的渴求已成为了人们必不可少的需要,更加简捷与新颖的信息传递方式无疑会给人们带来耳目一新的感受。

而现代工具务求简捷化、便携化,因此,摇动显示装置的到来,必将会给人们带来一种新的方便的文化传递方式。

一、系统硬件系统功能主要体现在3个部分:(1)单片机控制(STC12C2052)本装置采用了STC12C2052单片机,它支持直接通过串口线下载程序,对于本设计而言,显示文字需经常改变,STC12C2052方便许多,因此选择STC12C2052作为本设计所用的单片机。

(2)显示功能。

(D1~D32)信息传递主要由显示来完成,本设计显示功能由32个发光二极管来完成。

32个发光二极管分为4组,以共阳的方式连接,共用P1口作为数据输出口。

另外4条I/O口作为段选,通过三极管选通相应段。

(3)传感器系统。

(S2)硬件传感器主要为摇动传感器,本设计的摇动传感器由滚珠开关构成。

可选摇动开关有水银摇动开关和滚珠开关两种。

水银摇动开关稳定性较高,但容易发生破裂,水银外泄,安全性较差。

滚珠开关稳定性稍差,但不容易损坏,安全度很高。

考虑到实际应用环境,故选用滚珠开关作为系统的摇动传感器。

由滚珠开关带来的不稳定性可以通过软件进行弥补。

图1:滚珠开关内部结构图另外D_B1和D_B2为装饰用的蓝色发光二极管,J1为串口,供下载程序用。

基于单片机的摇摇棒设计

基于单片机的摇摇棒设计

基于单片机的摇摇棒设计摇摇棒是一种可以发出声音和光线的玩具,通过挥动摇摇棒,可以产生不同的声音和光线效果。

本文将介绍一个基于单片机的摇摇棒设计。

设计的摇摇棒主要由以下几个部分组成:单片机、声音发生器、光敏电阻、LED灯和蜂鸣器。

首先,我们选择了一块适用于这个项目的单片机。

在本设计中,我们选择了AT89S52单片机,因为它拥有较高的性能和丰富的接口。

其次,我们需要一个声音发生器来产生不同的声音效果。

我们选择了一个简单的脉冲宽度调制(PWM)声音发生器模块,通过改变PWM的占空比来改变声音的高低音。

然后,为了在摇动棒时产生声音和光线效果,我们使用了一个光敏电阻。

当摇动棒快速晃动时,光敏电阻会感知到光线变化,并通过单片机的模拟输入引脚将信号传递给单片机。

单片机根据接收到的信号来改变声音和光线的效果。

此外,我们还添加了一颗LED灯和一个蜂鸣器来增加摇动棒的趣味性。

当摇动棒晃动时,LED灯会闪烁并发出不同的颜色,蜂鸣器也会发出声音。

我们通过单片机的输出引脚将信号发送给LED灯和蜂鸣器,以控制它们的工作状态。

最后,我们使用编程语言来编写单片机的程序。

程序的功能是根据摇动棒的晃动情况来产生不同的声音和光线效果。

例如,在摇动棒缓慢晃动时,声音发生器会产生低音并使LED灯缓慢闪烁。

而在摇动棒快速晃动时,声音发生器会产生高音并使LED灯快速闪烁。

通过以上的设计,我们可以制作一个基于单片机的摇摇棒。

用户可以通过摇动棒来产生不同的声音和光线效果,增加了玩具的趣味性和可玩性。

综上所述,本文介绍了一个基于单片机的摇摇棒设计。

通过选择合适的单片机和相关组件,并编写相应的程序,我们可以制作出一个具有声音和光线效果的摇摇棒。

这个设计不仅可以增加玩具的趣味性,还可以培养孩子们对电子技术的兴趣和学习能力。

LED摇摇棒PPT课件

LED摇摇棒PPT课件
如果WP 管脚连接到Vcc 所有的内容都被写保护 只能读当WP 管脚连接到Vss 或悬空允许器件进行 正常的读/写操作
2019/6/18
泉州信息职业技术学院
第20页
情境 3 第10章 I2C总线
2、 I2C总线的信号时序
SDA
应答位
应答位
SCL 1 2
7 8 91 2
891
开始 信号
结束 信号
注意信号时延,详见表10-1 表10-2
LED摇摇棒设计与制作(16x1单红)
客户要求如下 : 1.使用32x1个LED作为显示输出。 2.使用89C52LE 3.3V低功耗单片机作为主控芯片。 3.采用水银开关作为中断源,产生中断当左右摇 晃时能够产生中断,并能稳定执行中断服务程序。 4.有按键切换功能,当没有触动图案切换按键时, 会间断地显示几个固定的字符或图案。 5.具有存储功能,能在上位机(C++开发)上输 入字符,把字符存储入存储器,并实时读取。
泉州信息学院
15
LOGO
单片机接口技术课件8
张苏嘉
2019/6/18
泉州信息学院
16
情境 3 第10章 I2C总线
第10章I2C总线接口设计
教学目的: 1. I2C总线的基本结构; 2. I2C总线信息传送方式; 3. I2C总线读、写操作; 4. 24C08总线程序编制。
重点难点: 24C08总线程序编制
2019/6/18
泉州信息学院
8
根据客户需求进行分析,开始总体设计
设计需包括: 1、16个LED(布线时,高端在下,例如P2.7在下, P2.0在上) 水银开关(接于外部中断P32或P33,用于控制字 符显示) 按键(用于设置24C08的存储读取) 24c08存储芯片(IIC总线读写程序) 稳压电路(5V 3.3V稳压) 最小系统(复位、电源、P3.0 P3.1烧写)

LED摇摇棒实际制作图文教程【含汇编程序】

LED摇摇棒实际制作图文教程【含汇编程序】

LED摇摇棒实际制作图文教程【含汇编程序】LED摇摇棒实际制作图文教程【含汇编程序】总体介绍:大家知道,人的眼睛存在视觉暂留现象,正因为眼睛的反应迟钝,才丰富了人的视觉感受。

意思是时间小于1/24秒人就分辨不出了,LED摇摇棒很好地利用了人眼的视觉暂留特性。

配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片等。

讲白了就和点阵的显示没什么去别,只是你的手摇晃的过程代替了点阵的片选。

下面是总体的设计电路图:D1是电源指示灯,习惯性做法,是为了更好的了解你电路的物理现象。

下面是摇摇棒的效果图:硬件模块:总体电路图有了我就说一下,焊接步骤及需要注意的细节,第一步:焊好16个LED灯,当然个数随喜好而定,LED颜色也随喜好,但最好不要用白光。

(正面) (背面)第二步:焊单片机最小系统元件放在里面一是为了保护元器件;二是为了美观、好看。

这里注意一下:我们可以在单片机的TXD和RXD及地那里接出来三根排针,接到单片机开发板上的TXD、RXD和地。

是为了烧程序方便,不用每烧一次程序就把它取出来,这样既减少了操作也减少了对单片机的损坏。

第三步:接线(正面)反面第四步:完成,还有按键和水银开关没接,等会会介绍。

总体以焊好下面介绍切换按键和水银开关的接发和作用。

1、水银开关在这里起的是防止镜像文字,深沉点给单片机一个下降沿的触发。

镜像文字通俗点讲是希望当文字向左晃动显示,向右晃动时不让其显示。

但如果没有水银开关给个中断的话,文字会一直显示,造成两排文字重叠在一起。

使人看不清。

当然我们要避免这种情况就接了个水银开关。

水银开关的安放最好是与LED成45度角,既容易触发、减少抖动也是为了安全,当装好后,可以用胶把它封起来,这样就避免了水银开关的破碎。

2、按键开关主要是为了切换模式,这个比较简单,端口随便接哪都可以,我接的是P0.2,软件模块:;===================================================== ;=====程序名称:摇摇棒================================ ;=====硬件说明:16个LED分别接P1、P2口,水银开关接P3.2,;===============按键开关接P0.2======================== ;=====软件说明:采用查表方式,外部中断0===============;=====程序编辑时间:2010-11-14-11-15================== ;=====程序编辑人:李阳辉============================== ;=====所用芯片:STC89C52============================== ;=====所用晶振:12MHz================================= ;=====版本:V1.0====================================== ;=====当前进度:完成================================== ;=====程序完成时间:2010-11-16-10-20================== ;================================================== === ;=====分配单元地址==================================== OUTPUT1 EQU 31H ;P2口查表的暂存器OUTPUT2 EQU 30H ;P1口查表的暂存器COUNT1 EQU 32HC1 EQU 33HC2 EQU 34HC3 EQU 35H C4 EQU 36H C5 EQU 37H C6 EQU 38H C7 EQU 39H C8 EQU 3AH C9 EQU 3BH C10 EQU 3CH KEY BIT P0.2ORG 0000H ;起始地址JMP RESETORG 0003H ;外部中断入口地址JMP INTORG 0030H/*===========================================复位程序===========================================*/RESET:MOV C1,#00H ;偏移量MOV C2,#00HMOV C3,#00HMOV C4,#00H/*MOV C5,#00HMOV C6,#00HMOV C7,#00HMOV C8,#00HMOV C9,#00HMOV C10,#00H */MOV OUTPUT1,#00HMOV OUTPUT2,#00HSETB KEY ;把P0.2置高,作为输入口MOV COUNT1,#00HSETB EX0 ;分中断SETB EA ;总中断SETB IT0 ;启动/*========================================== 主程序==========================================*/ MAIN:CALL KEY_SCANCALL NOADLJMP MAIN/*========================================= 按键处理程序只做了两种模式,大家可以再加=========================================*/ KEY_SCAN:JB KEY,KEY_RETLCALL DELAYJB KEY,KEY_RETINC COUNT1INC COUNT1MOV A,COUNT1CJNE A,#4,KEY_DMOV COUNT1,#00HKEY_D:JNB KEY,$KEY_RET:RET/*========================================== 散转程序==========================================*/ NOAD:MOV DPTR,#TAB_B ;设置散转表地址MOV A,COUNT1JMP @A+DPTRTAB_B: ;散转表AJMP OPR_0AJMP OPR_2OPR_0:MOV DPTR,#TAB1MOV A,C1MOVC A,@A+DPTRMOV OUTPUT1,AMOV DPTR,#TAB2MOV A,C2MOVC A,@A+DPTRMOV OUTPUT2,AMOV P2,OUTPUT1 MOV P1,OUTPUT2 CALL DELAYINC C1INC C2MOV A,C2CJNE A,#64,OPR_0 MOV C1,#00H MOV C2,#00H LJMP OPR_RET OPR_2:MOV DPTR,#TAB3 MOV A,C3MOVC A,@A+DPTR MOV OUTPUT1,A MOV DPTR,#TAB4 MOV A,C4MOVC A,@A+DPTR MOV OUTPUT2,A MOV P2,OUTPUT1 MOV P1,OUTPUT2 CALL DELAYINC C3INC C4MOV A,C4CJNE A,#64,OPR_2MOV C3,#00HMOV C4,#00HLJMP OPR_RETOPR_RET:RET/*===========================================中断处理程序===========================================*/ INT:MOV P1,#0FFHMOV P2,#0FFHCALL DELAYRETI/*===========================================延时程序===========================================*/ DELAY:MOV R7,#3D1: MOV R6,#0E0HDJNZ R6,$DJNZ R7,D1RET;===========================真心爱你========================== TAB1: DB0FFH,0F7H,0F3H,0F7H,0F7H,0F7H,0F0H,0F7H,0C7H,0E7H,0B7H,0CBH,0EFH,0 F0H,0FBH,0FDHDB0FFH,0F9H,0F8H,0ABH,0AH,0B2H,0BAH,0A2H,0DBH,0DAH,0C2H,0DAH,0DBH,0E8H ,0F9H,0FFHDB0FFH,0E1H,0DEH,0BFH,0BFH,0BFH,0DFH,0EFH,0EFH,0DFH,0BFH,0BFH,0BFH,0DE H,0E1H,0FFHDB0FFH,0FFH,0DFH,0DFH,0DFH,0D0H,0D5H,0A5H,95H,0D5H,0A5H,0D0H,0DFH,0DFH ,0FFH,0FFHTAB2:DB0FFH,0FFH,0CFH,0BFH,7FH,0FFH,03H,0F7H,0EFH,7FH,0BFH,0DFH,0FFH,03H,0F FH,0FFHDB0FFH,0FFH,0FCH,0FCH,0CCH,0CBH,0C7H,0CBH,5CH,9FH,0EFH,0F7H,0FBH,0FDH, 0FFH,0FFHDB0FFH,0FFH,0FFH,7FH,0BFH,0DFH,0EFH,0F7H,0F7H,0E7H,0DFH,0BFH,7FH,0FFH, 0FFH,0FFHDB0FFH,0DFH,0DFH,0DDH,0DBH,17H,4FH,5FH,5FH,5FH,4FH,07H,0DBH,0DDH,0DFH, 0FFH;=========================新年快乐============================TAB3:DB0FFH,0FFH,0FEH,0FEH,0BEH,0BEH,0DEH,0DEH,0D8H,0DEH,0DEH,0EEH,0EEH,0E0 H,0FFH,0FFHDB0FFH,0FFH,0FFH,0F8H,0FBH,0FBH,0E0H,0FBH,0FBH,0FEH,0FDH,0FBH,80H,0 FFH,0F8H,0FFHDB0FFH,0FFH,0FFH,0F7H,0F7H,0F5H,0F5H,0F0H,0F5H,0F5H,0F5H,0D4H,0E7H,0F7 H,0F8H,0FFHDB0DEH,0DEH,0DEH,0DEH,0EEH,0EEH,0E0H,0FFH,0EEH,0E6H,0EAH,0ECH,0CCH,0AA H,0E6H,0EEHTAB4:DB0FFH,0FFH,0F7H,0EFH,0DFH,0BFH,0FFH,0FFH,01H,0FBH,0F7H,0BFH,0DFH,0EFH ,0F7H,0FFHDB0BFH,0BFH,0BBH,37H,0AFH,9FH,3FH,9FH,0AFH,0B7H,0BBH,0FFH,01H,0FFH,0FF H,0FFHDB0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,01H,0DFH,0DFH,0DFH,1FH,0DFH,0DFH, 0DFH,0FFHDB0FFH,0FFH,0FFH,01H,0FFH,0FFH,0FH,0F1H,0FFH,0EFH,8FH,0B0H,03H,0B7H,9F H,0EFH;=======================================================END ;结束。

摇摇棒代码

摇摇棒代码

include <AT89X52.h>#define uchar unsigned char#define uint unsigned int //宏定义#define KEY P3_7 //定义画面切换按键uchar KY; //KY作用在后面说明uchar disp; //显示汉字指针uchar pic=0,num=0; //pic为按键次数;num为中断次数uchar code love[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,0x04,0x10,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x04,0x10,0xF8,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x10,0x00,0x08,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*LOVE */};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,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};/*****函数声明*****/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*****/。

摇摇棒课程设计(基于AT89S51单片机)

摇摇棒课程设计(基于AT89S51单片机)

09通信B班单片机课程设计摇摇棒制作余丽丽09152320352011/12/10仅以此摇摇棒先给敬爱的戴在平老师,向戴老师问好。

目录摘要 (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)一、引言LED显示棒,又称摇摇棒,是一种利用视觉暂留效应制作的“高科技”玩具。

可以用“静如处子,动如脱兔”来形容它,即当静止时,它只是几个LED发光二极管(后简称LED),而一旦按照一定的频率去摇晃它,它就会随着位置的变化而变化(亮或灭),最终显示一幅图片或字符串。

本设计要求制作完成一个LED的显示棒。

要求LED灯线状排列,通过摇动时形成的亮灯扇形区域能够分辨出如:“电”、“A”、五环之类的汉字或图案且可以使用按键对显示内容进行切换。

二、系统设计方案1.设计思路本系统要求设计一个LED显示棒,且需要有按键进行内容切换,它主要是由中央控制部分、LED驱动部分、LED显示部分以及电源部分组成,如图1所示:图1:LED显示棒系统框图单片机将提取的字模进行存储,当接收到按键输入的指令时单片机就将相应的字模代码通过I/O口输出,使LED点亮,利用视觉暂留原理最终使图案完整的显示在摆动的显示屏中。

本题的难点在于送数据的时间间隔以及较长画面或文字的完整显示。

以下将对各模块的方案进行论证与比较:2.模块方案的论证与比较2.1 LED灯的选择方案一:传统LED发光二极管。

颜色多样,在可以同样显示图案的前提下使用它更为经济,但是颜色较为黯淡,不鲜亮。

方案二:高亮LED发光二极管。

正如其名,它的亮度比传统二极管要亮,而且同样也有很多颜色,但是高亮LED的工作电流也要大于传统二极管。

摇摇棒项目报告

摇摇棒项目报告

生产实习报告实习课题:摇摇棒的制作与调试学院专业:信息科学与工程学院电子信息工程专业小组成员:指导教师:陈老师实习时间:2014、9、01-2014一:绪论1、前言人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称“后像”,视觉的这一现象则被称为“视觉暂留”。

摇摇棒就是基于人的视觉暂留原理的,通过分时刷新16个发光二极管来显示输出文字或图案等信息的显示装置。

本次设计要求制作完成一个LED灯显示的摇摇棒,16个LED灯一字纵向排列,通过摇动时形成的亮灯扇形区域来显示预先设定的汉字或图案,且可以用按键对所显示内容进行切换。

学习了protel软件的用法,初步了解以单片机为核心的电子系统体系,对将要学习的单片机技术有了初步的认识。

2.实习目的1.非常重要的实践教学环节2.培养理论知识与生产实际相结合的能力3.了解单片技术4.锻炼实际动手能力,掌握电子线路焊接、装配的基本技能5.了解并掌握本专业软硬件设计的一些基本问题3.实习时间、进程安排、地点9月12日:介绍实习的具体情况和各个项目的要求,选定所做项目:摇摇棒。

进行需求分析、自由分组。

选定项目及分组后,进行资料收集、查找及学习。

9月14日:根据所选项目,选择器件类型(我们选择的是AT89s52芯片),初步了解原理图的分析与设计,提交需求报告。

9月15日:确定最终的原理图设计方案,并确定多需元器件的具体类型和数量,同时初步了解相应的设计程序。

参考硬件电路绘制原理图及PCB绘制,进行了proteus 仿真,进一步了解软件设计程序。

9月16日:参照原理图及开发板进行焊接,尚未对焊接好的PCB版进行程序的写入和调试,芯片中的程序演示正常。

利用ISP下载端口进行程序的写入,总结实习报告。

实习地点:湖南电子集信息实训基地二:实习内容1、系统原理框图2、视觉暂留原理人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称“后像”,视觉的这一现象则被称为“视觉暂留”。

摇摇棒代码C语言

摇摇棒代码C语言

/**************************************************************************** *******************************************************************************/ #include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit key = P1^0;//定义切换画面开关uchar Key_num=0;//定义按键次数/****************************汉字与字符数据************************************/uchar code led[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};uchar code xlh[] ={0x00,0x20,0x02,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0xFE,0x3F,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0xC3,0x20,0x82,0x30,0x00,0x20,0x00,0x00,/*"王",0*/0x00,0x40,0x00,0x30,0xFC,0x0F,0x44,0x40,0x44,0x20,0x44,0x10,0x44,0x0C,0xC5,0x03,0x7E,0x00,0xC4,0x01,0x44,0x06,0x44,0x18,0x44,0x30,0x44,0x60,0x44,0x20,0x00,0x00,/*"庆",1*/0x10,0x04,0x60,0x04,0x01,0xFE,0xC6,0x01,0x30,0x00,0x88,0x00,0x88,0xFE,0x88,0x42,0x88,0x42,0xFF,0x42,0x88,0x42,0x88,0x42,0x88,0xFE,0x88,0x00,0x08,0x00,0x00,0x00,/*"洁",2*/};uchar code xlh[] ={0x20,0x21,0x24,0x11,0x2C,0x4D,0x35,0x81,0xE6,0x7F,0x34,0x05,0x2C,0x59,0x24,0x21,0x00,0x18,0xFC,0x07,0x24,0x00,0x24,0x00,0xE2,0xFF,0x22,0x00,0x22,0x00,0x00,0x00,/*"新",0*/0x40,0x04,0x20,0x04,0x10,0x04,0x0C,0x04,0xE3,0x07,0x22,0x04,0x22,0x04,0x22,0x04,0xFE,0xFF,0x22,0x04,0x22,0x04,0x22,0x04,0x22,0x04,0x02,0x04,0x00,0x04,0x00,0x00,/*"年",1*/0x70,0x00,0x00,0x00,0xFF,0xFF,0x08,0x00,0xB0,0x80,0x88,0x40,0x88,0x30,0x88,0x0E,0xFF,0x01,0x88,0x06,0x88,0x08,0x88,0x30,0xF8,0x60,0x80,0xC0,0x80,0x40,0x00,0x00,/*"快",0*/0x00,0x00,0x00,0x20,0x40,0x18,0xFC,0x0C,0x44,0x07,0x44,0x12,0x44,0x20,0x46,0x40,0xFA,0x3F,0x42,0x00,0x43,0x00,0x43,0x02,0x42,0x0C,0x40,0x38,0x00,0x10,0x00,0x00,/*"乐",1*/ };uchar code Smile[] ={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,0xF0,0x1F,0x3C,0x3C,0x0E,0xF7,0x06,0xEF,0xF3,0xDC,0xF3,0xB0,0x63,0xB0,0x03,0xB0,0xF3,0xB0,0xF3,0xB8,0x03,0xDD,0x06,0xEF,0x0E,0x76,0x3C,0x3C,0xF8,0x1F,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,0x00,0x00,/*笑脸图案*/ };uchar code wal[]={0x20,0x04,0x20,0x04,0x22,0x42,0x22,0x82,0xFE,0x7F,0x21,0x01,0x21,0x01,0x20,0x10,0x20,0x10,0xFF,0x08,0x20,0x07,0x22,0x1A,0xAC,0x21,0x20,0x40,0x20,0xF0,0x00,0x00,/*"我",0*/0x00,0x40,0x40,0x20,0xB2,0xA0,0x96,0x90,0x9A,0x4C,0x92,0x47,0xF6,0x2A,0x9A,0x2A,0x93,0x12,0x91,0x1A,0x99,0x26,0x97,0x22,0x91,0x40,0x90,0xC0,0x30,0x40,0x00,0x00,/*"爱",1*/0x80,0x00,0x40,0x00,0xF0,0x7F,0x2C,0x00,0x43,0x10,0x20,0x0C,0x98,0x03,0x0F,0x21,0x0A,0x40,0xE8,0x3F,0x08,0x00,0x88,0x00,0x28,0x03,0x1C,0x1C,0x08,0x08,0x00,0x00,/*"你",2*/ };uchar code love[] ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x20,0x00,0x20,0x00,0x20,//L0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,0x04,0x10,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x04,0x10,0xF8,0x0F,0x00,0x00,//O0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x10,0x00,0x08,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x82,0x20,0x82,0x20,//V0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//E};uchar code love_picture[] ={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,/*心形图案*/};uchar code wal1[]={0x08,0x01,0x08,0x41,0x88,0x80,0xFF,0x7F,0x48,0x80,0x28,0x40,0x00,0x20,0x88,0x18,0xFF,0x07,0x08,0x02,0x08,0x04,0x08,0x00,0xF8,0x3F,0x00,0x40,0x00,0xF0,0x00,0x00,/*"执",0*/0x00,0x01,0x00,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x41,0x02,0x81,0xE2,0x7F,0x12,0x01,0x0A,0x01,0x06,0x01,0x02,0x01,0x00,0x01,0x80,0x01,0x00,0x01,0x00,0x00,/*"子",1*/0x00,0x20,0x08,0x60,0x08,0x30,0x08,0x08,0x08,0x18,0x08,0x24,0x09,0x24,0x0A,0x22,0x0C,0x41,0x88,0x40,0x48,0x40,0x28,0x40,0x1C,0x40,0x08,0x40,0x00,0x40,0x00,0x00,/*"之",2*/0x00,0x02,0x24,0x02,0x24,0x02,0x24,0x02,0x24,0x02,0x24,0x42,0x24,0x82,0xFE,0x7F,0x22,0x02,0x22,0x02,0x22,0x02,0x22,0x02,0x22,0x02,0x20,0x02,0x00,0x02,0x00,0x00,/*"手",3*/ };uchar code xqwal[]={0x00,0x00,0x00,0x04,0x00,0x04,0x00,0x04,0x7E,0x04,0x48,0x04,0x48,0x04,0x48,0x04,0x48,0x04,0x48,0x24,0x48,0x46,0x48,0x44,0x48,0x20,0xCC,0x1F,0x08,0x00,0x00,0x00,/*"与",0*/0x00,0x01,0x00,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x41,0x02,0x81,0xE2,0x7F,0x12,0x01,0x0A,0x01,0x06,0x01,0x02,0x01,0x00,0x01,0x80,0x01,0x00,0x01,0x00,0x00,/*"子",1*/0x40,0x00,0x20,0x00,0xF8,0xFF,0x07,0x00,0x02,0x00,0x7F,0x00,0x48,0xFF,0x28,0x49,0x44,0xFF,0x46,0x00,0x74,0x00,0x00,0x00,/*"偕",2*/0x40,0x08,0x44,0x08,0x44,0x04,0x44,0x04,0x44,0x02,0x44,0x3E,0x7F,0x49,0xC4,0x48,0xC4,0x44,0x44,0x44,0x64,0x42,0x54,0x42,0x4E,0x40,0x44,0x70,0x40,0x00,0x00,0x00,/*"老",3*/ };uchar code srkl[]={0x00,0x00,0x40,0x80,0x42,0x40,0x42,0x20,0x42,0x10,0x42,0x08,0x42,0x06,0xFE,0x01,0x42,0x02,0x42,0x04,0x42,0x08,0x42,0x10,0x42,0x30,0x42,0x60,0x40,0x20,0x00,0x00,/*"天",0*/0x00,0x00,0x40,0x80,0x42,0x40,0x42,0x20,0x42,0x10,0x42,0x08,0x42,0x06,0xFE,0x01,0x42,0x02,0x42,0x04,0x42,0x08,0x42,0x10,0x42,0x30,0x42,0x60,0x40,0x20,0x00,0x00,/*"天",1*/0x40,0x00,0x42,0x40,0x42,0x20,0x42,0x10,0x42,0x0C,0xFE,0x03,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0xFE,0x7F,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x00,0x00,/*"开",2*/0x00,0x04,0x80,0x03,0x00,0x00,0x00,0x00,0xF0,0x3F,0x00,0x40,0x01,0x40,0x02,0x40,0x1C,0x40,0x08,0x40,0x00,0x40,0x40,0x78,0x80,0x00,0x00,0x07,0x00,0x02,0x00,0x00,/*"心",3*/};uchar code ylg[] ={ //3字0x00,0x00,0xF8,0xFF,0x01,0x00,0x06,0x10,0x20,0x1E,0xA8,0x12,0xEA,0x1E,0xBE,0x12,0xAA,0x1E,0xEA,0x12,0xA2,0x1E,0x22,0x50,0x02,0x80,0xFE,0x7F,0x00,0x00,0x00,0x00,/*"阖",0*/0x00,0x00,0x18,0x29,0x04,0x29,0x14,0x15,0x94,0x14,0x94,0x4A,0xD5,0x89,0xB6,0x44,0x14,0x3F,0x14,0x06,0x94,0x09,0x04,0x09,0x14,0x20,0x24,0x10,0x44,0x4C,0x84,0x43,0x64,0x43,0x1C,0x2C,0x20,0x20,0x18,0x10,0x0F,0x0C,0xE8,0x03,0x08,0x06,0x08,0x18,0x28,0x30,0x18,0x60,0x08,0x20,0x00,0x00,/*"欢",2*/0x00,0x00,0x00,0x20,0x40,0x18,0xFC,0x0C,0x44,0x07,0x44,0x12,0x44,0x20,0x46,0x40,0xFA,0x3F,0x42,0x00,0x43,0x00,0x43,0x02,0x42,0x0C,0x40,0x38,0x00,0x10,0x00,0x00,/*"乐",3*/};uchar code ydkl[]={ //4字0x08,0x01,0xC8,0x40,0x38,0x70,0xFF,0x01,0x18,0x38,0x68,0x40,0x08,0x40,0x00,0x44,0xFE,0x59,0x2A,0x41,0x2A,0x41,0x2A,0x61,0x2A,0x01,0xFE,0x09,0x00,0x30,0x00,0x00,/*"想",0*/0x80,0x00,0x40,0x00,0xF0,0x7F,0x2C,0x00,0x43,0x10,0x20,0x0C,0x98,0x03,0x0F,0x21,0x0A,0x40,0xE8,0x3F,0x08,0x00,0x88,0x00,0x28,0x03,0x1C,0x1C,0x08,0x08,0x00,0x00,/*"你",1*/0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x40,0x02,0x80,0xF2,0x7F,0x12,0x00,0x0A,0x00,0x0A,0x00,0x06,0x00,0x06,0x00,0x02,0x00,0x00,0x00,0x00,0x00,/*"了",2*/ };uchar code xll[]={ //4字0x00,0x00,0x00,0x80,0x00,0x41,0xF0,0x20,0x00,0x10,0x00,0x0C,0x00,0x03,0xFF,0x00,0x02,0x03,0x40,0x04,0x20,0x18,0x18,0x30,0x10,0x60,0x00,0x20,0x00,0x00,0x00,0x00,/*"火",0*/0x00,0x00,0x00,0x48,0x00,0x46,0xBE,0x41,0x2A,0x49,0x2A,0x49,0x2A,0x49,0xEA,0x7F,0x2A,0x49,0x2A,0x49,0x2A,0x49,0x2A,0x49,0x00,0x20,0x80,0x20,0x84,0x10,0x84,0x10,0x94,0x08,0xA4,0x04,0xC4,0x02,0xFF,0xFF,0x84,0x01,0xC4,0x02,0xB4,0x04,0x94,0x08,0x84,0x18,0x84,0x30,0x80,0x10,0x00,0x00,/*"来",2*/0x00,0x00,0xF8,0x7F,0x8C,0x10,0x8B,0x10,0x88,0x10,0xF8,0x3F,0x40,0x00,0x30,0x00,0x8F,0x00,0x08,0x03,0x08,0x26,0x08,0x40,0x08,0x20,0xF8,0x1F,0x00,0x00,0x00,0x00,/*"的",3*/};uchar code fqyz[]={ //4};/*uchar code Thanks[] ={};uchar code zzzs[]={};uchar code yzxl[]={};uchar code mtxcr[]={};uchar code znxf[]={};uchar code yxwo[]={};uchar code zjl[]={};*//****************************延时函数***************************************/ void delay(uint X){uint i;for(i=0;i<=X;i++);}/*******************************显示驱动**********************************/ /*****王庆洁*******/void display0(){uchar i;delay(5000);for(i=0;i<48;i++){P0=~xlh[i*2];P2=~xlh[i*2+1];delay(120);}}/********新年快乐*********/void display1(){uchar i;delay(5000);for(i=0;i<64;i++){P0=~xqwal[i*2];P2=~xqwal[i*2+1];delay(120);}}/*********生日快乐************/{uchar i;delay(5000);for(i=0;i<64;i++){P0=~srkl[i*2];P2=~srkl[i*2+1];delay(120);}}/*********新年快乐************/ void display3(){uchar i;delay(5000);for(i=0;i<64;i++){P0=~ylg[i*2];P2=~ylg[i*2+1];delay(120);}}/*笑脸图案显示64*16像素*/ void display5(){uchar i;delay(4000);for(i=0;i<64;i++){P0=~Smile[i*2];P2=~Smile[i*2+1];delay(120);}}/*****我爱你*****//*void display1(){uchar i;for(i=0;i<48;i++){P0=~wal1[i*2];P2=~wal1[i*2+1];delay(120);}} *//*'LOVE'显示64*16像素*/void display4(){uchar i;delay(4500); //延时时间,让画面显示在中间for(i=0;i<64;i++){P0=~love[i*2];P2=~love[i*2+1];delay(100);}}/*心形图案显示64*16像素*/void display6(){uchar i;delay(5000);for(i=0;i<64;i++){P0=~love_picture[i*2];P2=~love_picture[i*2+1];delay(120);}}/**********天天开心**************/void display7(){uchar i;delay(4500);for(i=0;i<64;i++){P0=~ydkl[i*2];P2=~ydkl[i*2+1];delay(100);}}/************何家欢乐**************/void display8(){uchar i;delay(5000);for(i=0;i<64;i++){P0=~xll[i*2];P2=~xll[i*2+1];delay(120);}}/**** 火星来的小丫头********显示64*16像素*/ void display9(){uchar i;delay(4500);for(i=0;i<64;i++){P0=~fqyz[i*2];P2=~fqyz[i*2+1];delay(100);}}/************想你了!**************//*void display11(){uchar i;delay(5000);for(i=0;i<64;i++){P0=~Thanks[i*2];P2=~Thanks[i*2+1];delay(120);}} *//*******执子之手***********//* void display10(){uchar i;delay(5000);for(i=0;i<64;i++){P0=~zzzs[i*2];P2=~zzzs[i*2+1];delay(120);}}*//**********与子偕老********/ /*void display11(){uchar i;delay(5000);for(i=0;i<64;i++){P0=~yzxl[i*2];P2=~yzxl[i*2+1];delay(120);}} *//**********腼腆小潮人*******/ /*void display12(){uchar i;delay(5000);for(i=0;i<80;i++){P0=~mtxcr[i*2];P2=~mtxcr[i*2+1];delay(120);}} *//***********祝你辛福*******/ /*void display13(){uchar i;delay(5000);for(i=0;i<64;i++){P0=~znxf[i*2];P2=~znxf[i*2+1];delay(120);}}*//*********miss you**********/ /*void display14(){uchar i;delay(5000);for(i=0;i<48;i++){P0=~yxwo[i*2];P2=~yxwo[i*2+1];delay(120);}} *//***********再见啦!*********/ /*void display15(){uchar i;delay(5000);for(i=0;i<64;i++){P0=~zjl[i*2];P2=~zjl[i*2+1];delay(120);}} *//*外部中断0子函数*/void int0(void) interrupt 0{switch(Key_num){case 0:display0();break;case 1:display1();break;case 2:display2();break;case 3:display3();break;case 4:display4();break;case 5:display5();break;case 6:display6();break;case 7:display7();break;case 8:display8();break;case 9:display9();break;/*case 10:display10();break;case 11:display11();break;case 12:display12();break;case 13:display13();break;case 14:display14();break;case 15:display15();break; */default :display1();}}void main(void){uchar i;P0=0xff;P1=0xff;P2=0xff;P3=0xff;//端口初始化EA=0;//关总中断for(i=0;i<8;i++){P0=led[i];delay(10000);}P0=0xff;for(i=0;i<8;i++){P2=led[i];delay(10000);}P2=0xff;IT0=0;//低电平触发中断接水银开关EX0=1;//启动外部中断0EA=1;//开总中断while(1){key=1;if(key==0){delay(1000); // 去抖,可以跟自己的电路适当选择时间if(key==0){Key_num++;if(Key_num>9)//如果超过切换页面的次数就清零{Key_num=0;}}delay(5000);while(key==0); //检测按键抬起delay(5000);}// P0=led[Key_num];}}。

项目八:数码摇摇棒的制作

项目八:数码摇摇棒的制作

LED正极
LED负极
集成块插座
电池盒
完成了
安装注意事项
(1) 按照原理图正确安装并焊接元器件。 (2) 在刚刚焊接完成时,先不要在IC 座上插上IC 芯片,用 万用表测试两块IC 芯片的供电脚电压,以确保电路不会 烧坏芯片。 (3) 完成以上步骤,正确安装两片IC 芯片 (注意缺口方向)和电池,打开拨动开关,如果安装正确, 此时应该显示32 路花样流水灯。 (4) 按动按钮开关可以切换显示的内容,当出现比较杂乱 的闪灯时,用手紧握摇摇棒底部,以一定的频率左右摇晃 电路,即可看见显示的文字内容了。 (5)完成制作后,如长期不使用需卸下电池。
电原理图
方框图
驱动
存储容 量2Kbit
显示电路
ULN2803驱动芯片介绍
显示原理
根据LED 点阵屏的显示原理: 点阵屏的显示分为行扫描与列扫描两种, 列扫描是将我们的字模数组通过点阵屏的 行驱动进行输入,然后通过列对每一行进 行扫描,当列为低(高)电平、行为高 (低)电平时则表示该点为图案的一部分, 将其读出、显示。
数码摇摇棒的制作
长兴职教中心邵老师
著名影星周迅
数码摇摇棒原理分析
本电路采用STC11F02 单片机为核心控制系统,使 用32 只LED 灯作为显示屏,它们分为4组,由 Q1~Q4 来选通其中的一组,4 组LED 共用8 个数 据位,直接由单片机的通用I/O 口来控制,采用 UN2803 驱动LED。
滚珠开关结构
它由真空玻璃管、水银柱、以及导电极 组成。通过使用单片机的P3.3 引脚连接滚 珠开关检测周期,使摇动时间自适应,图 像始终保持在中间。使用这种方法就可以 让数据单程传输,解决了双程均传输时产 生的重影,使得 电池盒

摇摇棒

摇摇棒

设计具有市场前景,可满足 各种大型演出、集会、游行等 宣传需要,为人们的生活提供 便利,通过这次课程设计,使 我们学会了编写程序,焊接电 路板,增强了我的动手能力, 为以后打下了坚实的基础!
——龙彬 李强
二0一一年十二月十四号
·设计摇摇棒心得体会
通过两天的时间完成了摇摇棒的设计,本次设计以 传感器和单片机的实际应用为背景,介绍了以单片 机和传感器为核心系统摇动传感器和显示设计的基 本结构和基本原理。本次将使用单片机对摇动显示 进行实例化,设计一个LED摇动显示器来显示文字、 图像等信息。输出信号频率的控制通过单片机来实 现,用摇动传感器检测当前摇动状态,用16个发光 二极管进行不同频率的亮灭刷新,通过手动摇动可 显示输出文字及图案等信息。当进行摇动时,由于 人的视觉暂留原理,会在发光二极管摇动区域产生 一个视觉平面,在视觉平面内的二极管通过不同频 率的刷新,会在摇动区域内产生图像,从而达到在 该视觉平面上传达信息的作用。
设计制作摇摇棒
——龙彬 李强
·基本原理与硬件电路设计
本项目以STC89C52单片机为中 央控制器,16只高亮度LED发 光二极管构成的摇摇棒。利用 人眼的视觉暂留配合手的左右 摇晃就可以呈现一副完整的画 面。
·外部中断的产生
中断是处理器处理外部突发事件的一个重 要技术。 要技术。它能使处理器在运行过程中对外 部事件发出的中断请求及时地进行处理, 部事件发出的中断请求及时地进行处理, 处理完成后又立即返回断点, 处理完成后又立即返回断点,继续进行处 理器原来的工作。 理器原来的工作。 这里是使用水银开关。 这里是使用水银开关。通过摇摆使得水银 开关中的水银珠与两个触点接触, 开关中的水银珠与两个触点接触,利用这 种接触产生的电频变化来触发中断,结合 种接触产生的电频变化来触发中断, 软件控制显示,制作简单,控制方便。 软件控制显示,制作简单,控示部分是依照数码管的动态显示 的原理,8个LED灯相当一个数码管。 用两个PNP的三极管控制16个LED 灯的片选,以单片机STC89C52的 PO口做数据输入口,控制LED灯的 显示。

摇摇棒

摇摇棒
流水灯及其拓展——摇 摇棒的设计制作
二进制十六进制转换
• 0xa2= 10100010 • 0xdc= 11011100 • 0xe7= 11100111
《001》C语言点亮LED灯
• • • • • • #include<reg52.h> void main() { P0=0xaa; P1=0xaa; }
• void main() • { • unsigned char i; • { • for(i=0;i<16;i++) //共16组扫描码 • { • P1=~LS[2*i]; // P1口取扫描码 • P0=~LS[2*i+1]; // P0口取扫描码 • Delay(1); //延时 • } • } • }
• • • • • • •
//** 延时函数 ** void Delay(unsigned int msec) { unsigned int x,y; for(x=0; x<=msec;x++) for(y=0;y<=110;y++• • • • •
//** 主程序 ** main(void) { unsigned char i; { for(i=0;i<16;i++) //共16组扫描码 { P0=~LS[2*i]; // P0口取扫描码 P1=~LS[2*i+1]; // P1口取扫描码 Delay(10); //延时 } } }
从流水灯到摇摇棒
大家知道,人的眼睛存在视 觉暂留现象,正因为眼睛的反应 迟钝,才丰富了人的视觉感受。 LED摇摇棒的制作就是很好地利 用了人眼的视觉暂留特性。
《004》手拉手图形显示
//取模方式全都为:纵向取模,字节倒序

LED摇摇棒设计与制作技术报告

LED摇摇棒设计与制作技术报告

成绩课程论文题目: LED摇摇棒设计与制作学生姓名:张勇学生学号:1008030328系别:电气信息工程专业:电子信息工程年级:10级任课教师:朱士永LED摇摇棒设计与制作张勇1008030328电气信息工程学院电子信息工程(3)2012 年 10月设计主要内容和完成功能:LED摇摇棒很好地利用了人眼的视觉暂留特性。

基于51单片机控制、16只高亮度LED发光二极管构成的摇摇棒,配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片等。

16只LED发光管作为画面每一列的显示,左右摇晃起到了扫描的作用,人眼的视觉暂留现象使得看到的是一幅完整的画面。

与LED 点阵的显示有几分相仿。

摘要本设计以AT89C2051单片机为中央控制器,显示棒摇动时显现的字符或图形由LED 灯显示,LED 灯成线状排列,每个瞬间线阵只能显示数字编码后的文字或图形的一列,利用人眼的视觉暂留原理,将需要显示的字符或图形分成64 列(,一般人手左右摆动的频率为几赫兹到十几赫兹,因此,通过单片机控制LED 线阵以一较低频率扫描显示字符或图形的每一列,摆动显示棒时即可因视觉暂留看出显示的字符或图形;左右摆动一次通过端口电平变化,调用相应的显示子程序,字符切换通过外部中断实现,该系统设计对程序设计的要求较硬件电路要高。

整套系统由中央控制模块、LED显示模块、供电模块等部分构成。

目录1、系统概述----------------------------------------52、硬件设计----------------------------------------62.1单片机选择------------------------------------62.2 外部中断信号产生方式---------------------------62.3LE显示模块-----------------------------------82.单片机最小系统的设计----------------------------9 3软件设计----------------------------------------10 4系统调试----------------------------------------11 5结束语------------------------------------------11 6参考文献----------------------------------------11 7附录--------------------------------------------121、系统概述本系统要求设计一个LED显示棒,它主要是由中央控制部分、LED显示部分以及电源部分组成,如图1-1所示,图1-1 系统组成部分单片机提取的字模进行存储,当接收到指令时单片机就讲字模代码通过I/O口输出,使LED点亮,利用视觉停留原理最终使图案显示在摆动的显示屏中。

多功能数码摇摇棒制作

多功能数码摇摇棒制作
臣互卜
S1l;cllF∞
匝巫卜
tt
图1总体系统框
万方数据
2.显示部设计 首先,我们根据LED点阵屏的显示原理: 点阵屏的显示分为行扫描与列扫描两种,列扫描 是将我们的字模数组通过点阵屏的行驱动进行输 入,然后通过列对每~行进行扫描,当列为低 (高)电平、行为高(低)电平时则表示该点为 图案的一部分。将其读出、显示。它的顺序可以 总结为:行不断的送数据,每送完设置的信息后 列进行读取,然后行再次送数据,列再次读取…… 依次循环下去。一幅完整的图案就显示在了显示 屏上。 而本次设计的LED显示棒数据传输原理与 LED点阵屏相似。可以把LED显示棒看成是 LED点阵屏中的一列。为了使显示的图案清晰, 我们使用了32个LED管将它们排成一列。整个 屏在静止时也就相当于32行X 1列。数据传输 时我们同样使用行送数据、列扫描。在摆动过程 中。应用视觉暂留原理,我们点亮的列不会很快 的消失,而是随着摆动的方向继续向前移动,只 要移动的速度高于视觉暂留的最短时间显示内容 就不会熄灭,至此,一幅图案也就可以这样被“摆 动”出来了。 显示部分设计原理图如图2所示。
万方数据
ITl=0://中断1为边沿触发方式 IP=0x08;//设置中断嵌套
TMOD=0x20;
//定时器1方式2。8位重装载 THl=0x80;//设定定时器初值
TLl=0x80;
EA=1://开放中断 ETl=1:,,开放定时器1中断 TRl=1:II启动定时器O。开始计时 key=0;//初始化显示第一组文字 while(1) {,/等待中断
IIII I I I广———————————————————————————~———————~制一17作1b1天亩期地一篮淄誓
多功能数码摇摇棒制作

单片机--摇摇棒

单片机--摇摇棒

摇摇棒制作这是关于摇摇棒原理的解释:我们知道屏幕上显示连续的画面是通过扫描实现的,电影就是如此,一秒钟播放二十四张画面,这样在眼睛的暂留时间内就会显示下一张画面,看起来就是动起来的连续的动画,摇摇棒的原理也是如此,在纵向有16个发光二极管,我们可以通过横向移动来进行扫描,把程序中流水灯变化的时间间隔设置在眼睛暂留时间内一般小于0.04S就可以,因此我们在横向扫描时触动水银开关,程序开始执行,因此就可以显示一幅完整的画面。

关于硬件的制作:首先当然是电路方面的设计,由于本热是第一次做单片机方面的东西,很多需要注意的事还得通过学习才能掌握,因此这次使用的原理图与网上找到的煤油什么分别,自己现将我的PCB展现如下,很丑陋的,经验不足元件参考:晶振:12MHZC1:20uF的电解电容,C2,C3:30pF的独石电容LED为IN4007稳压二极管K1为普通开关K2为水银开关LED(1~16)为3MM发光二极管用到的电阻都是10K,排阻由于买元件时没有考虑到,故自己焊接了电阻在对应的引脚元件买回来后开始是想按照网上的做成一个长条形状,因此很轻易的将一块万用板损坏,建议没有必要的工具千万不要乱裁剪万用板,得不偿失。

焊元件是很简单的事,只要按照原理图细心就是,下面是我焊的板子,比较丑陋的,不过毕竟是第一次啊,嘿嘿正面,将P1口的排阻焊在IC插槽内,比较美观背面就很差劲,特别是有线交叉的时候一定要测试好,避免短路我的一点点焊接方面的经验,在清除原理图的情况下,模块与模块之间要分开焊接,比如焊接起振模块时就不要去焊接其他模块,那样就不会漏掉要焊接的细节,比如接地和接电源。

最好是焊好一个模块后用万用表检查一遍,尽量减少错误的产生,当然最后一次检查是有必要的。

焊接时细心细心还是细心。

硬件具备好后就可以设计软件来调试了,通过原理图很清楚的知道,利用到单片机的资源很少,可以说只用到一些基本的IO借口,和一个外部中断,因此这也是我选择摇摇棒做我的第一个设计的原因,从简单的学起嘛。

摇摇棒程序及PCB图

摇摇棒程序及PCB图

综合实训报告系部:专业:班级:学生姓名:学号:2010年 11月 26日实训任务书1.时间:2010年11月15日~2010年11月26日2. 实训单位:河南机电高等专科学校3. 实训目的:深入学习电子产品设计制作的全过程4. 实训任务:①了解电路图绘制软件的相关常识及其特点;②熟悉电路图绘制软件的使用方法;③会用Protel软件绘制电路原理图;④会在Protel软件环境中自定义库元件;⑤掌握电路板布局布线规则的设置方法;⑥会使用Protel软件生成实用的电路板图;⑦学有余力的同学制作出电子产品;⑧作好实习笔记,对自己所发现的疑难问题及时请教解决;⑨联系自己专业知识,体会本软件的具体应用,总结自己的心得体会;○10参考相关的的书籍、资料,认真完成实训报告。

前言:大家知道,人的眼睛存在视觉暂留现象,正因为眼睛的反应迟钝,才丰富了人的视觉感受。

LED摇摇棒很好地利用了人眼的视觉暂留特性。

下图是基于51单片机控制、16只高亮度LED发光二极管构成的摇摇棒,配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片等。

制作名称:LED摇摇棒1、设计要求1)利用单片机AT89S51设计一个LED摇摇棒。

2)要求手握LED摇摇棒左右挥动时,显示一行文字(或图形)。

3)在挥动时,利用水银开关自动产生中断。

4)整个系统采用4.5V(三节干电池)供电。

4、装配图(中间部分)5、制作实物照片6、PCB图7、参考程序#include <AT89X51.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[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x20,0x00,0x20,0x00,0 x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0 x0F,0x04,0x10,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x04,0x10,0xF8,0x0F,0x00,0 x00,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0 x10,0x00,0x08,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x82,0x20,0x82, 0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,/*LOVE*/};uchar code loveyou[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,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,0xF C,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,/*心形图案*/};uchar code hehe[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x40,0x01,0xC0,0x01,0x00,0x00,0x00,0 x00,0xF0,0x0F,0x08,0x10,0x04,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00,0x04,0 x00,0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0 x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00,0x04,0 x00,0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x04,0x20,0x08,0 x10,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,0 x00,/*呵呵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,//-- 用--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,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*****/。

摇摇棒源代码汇总

摇摇棒源代码汇总

#include #define ucliai unsigned chai#define unit unsigned mt //宏定义#define KEY P3_7 〃定义画面切换按键ucliai KY; //KY作用在后面说明ucliai disp; 〃显示汉字扌旨针ucliai pic=O,num=O; //pic为按键次数;num为中断次数uchai code love[] = {0x00,0x00,0x00,0x00.0x00.0x00,0x00.0x00.0x00,0x00.0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00、0x00Qx0(X0x0(X0x00,0xFEq0x3E0x00,0x20,0x00,0x20,0x00,0x20, 0x00,0x20,0x00,0x20.0x00.0x20.0x00.0x20.0x00,0x00.0x00.0x00.0x00.0x00.0xF8,0x0F,0x04,0x10,0x02,0x20、0x02、0x2(X0x02q0x2(X0x02,0x2(X0x04、0xl0,0xF&0x0E0x00,0x00,0x00,0x00,0x00,0x00、0xFE』x07、0x00,0x 0&OxOO.Ox 10,0x00,0x20,0x00,0x20、0x00、Ox 10,0x00,0x0&OxFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20.0x82.0x20.0x82.0x20.0x82,0x20.0x00.0x00.0x00.0x00.0x00.0x00,0x00,0x00,0x00,0x00.0x00.0x00,0x00.0x00.0x00,0x00.0x00.0x00.0x00.0x00.0x00.0x00,/*LOVE*/};uchai 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,0x7&0x00,0xFC,0x00,0xFE.0x01,0xFE,0x03,0xFE,0x07,0xFE,0x0F,0xFE,0xlF,0xFC,0x3F,OxF&0x7F,0xFC,0x3F,0xFE,0xlF,0xFE』x0F,0xFE,0x07,OxFE,0x03,OxFE,0x01,0xFC,0 xOO,0x78,0x00,0x00,0x00、0x00、0x00、0x0(X0x0(X0x00,0x00,0x00,0x0(X0x0(X0x00,0x00,0x00、0x00,0x00,0x00,0x00、0x00、0x00、0x0(X0x0(X0x00,0x00,0x00,0x0(X0x0(X0x00,0x00,0x00、0x00,0x00,0x00,0x00、0x00、0x00、0x0(X0x0(X0x00,0x00,0x00,0x0(X0x0(X0x00,0x00,0x00、严心形图案》/};uchai code helie[] = {0x00,0x00,0x00,0x00、0x00、0x00、0x0(X0x0(X0x00,0x00,0x00,0x0(X0x0(X0x00,0x00,0x00、0x00,0x00,0x00,0x00、0x00、0x0(X0xC0,0x01,0x40.0x01,0xC0,0x01,0x00,0x00,0x00,0x0 0,OxFO.OxOF,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、0x2(X0x0(X0x0(X0x00,0x00,0xF0、0x3E0x0&0x00,0x04.0x00,0x04,0x00,0x04,0x00.0x08.0x00.0xF0.0x3F.0x00.0x00.0x00.0x00.0x04.0x20.0x08.0xl0, OxFO.OxOF,0x00,0x00,0x00.0x0050xC050x01,0x40.0x01,0xC0,0x01,0x00,0x00,0x00,0x0 0,0x00,0x00,0x00,0x00、0x00、0x00、0x0(X0x0(X0x00,0x00,0x00,0x0(X0x0(X0x00,0x00,0x00、严呵呵o(n_no图案*/};unsigned chai code lianzi[] = {0x00,0x04,0x00,0x02,0x00,0x01,OxCO,0x00,0x70,0x00,0x20,0x40,0x00,0x80,OxFF,0x7 F,0x00,0x00,Ox10,0x00,0x20,0x00,OxCO,0x00,0x80,0x01,0x00,0x07,0x00,0x02,0x00,0x00 严Wo*/0x00,0x04,0x10,0x03,0xD0,0x00,0xFF,0xFF,0x90,0x00,0x00,0x07,OxDO,0x00,OxFF,OxFF,0x50,0x00,0x90,0x47,0x00,0x22,0x10,0x1 l,0x8C,Oxl &0xE7,0x0E,0x42,0x04,0x00,0x0 0严彬” Q/Ox 14,0x20,0x24,Ox 10、0x44、0x4C,0x84,0x43,0x64.0x43,0x 1 C,0x2C,0x20,0x20,Ox 18,0x10,0x0F,0x0C,0xE 8,0x03,Ox08,0x06,0x08,0x18,0x2&0x30,Ox 1&0x60,0x08,0x20,0x00,0x0 0,/*”欢”,2*/0x40,0x40,0x41,0x20,OxCE,OxlF,0x04,0x20,0x00,0x40,OxFC,0x47,0x04,0x42,0x02,0x4 1,0x02,0x40,0xFC,0x5F,0x04,0x40,0x04,0x42,0x04,0x44,OxFC,0x43,0x00,0x40,0x00,0x0 0严■迎役3*/ 0x80,0x00,0x40,0x20.0x30.0x3&0xFC,0x03,0x03』x3&0x90、0x40、0x6&0x40、0x06.0x49,0x04,0x52,0xF4.0x41,0x04.0x40,0x24,0x70,0x44,0x00,0x8C,0x09,0x04,0x30,0x00,0x00 严*您“,4*/0x00,0x00,0X0050X00.0X00.0X00.0X F0.0X5F.0X00.0X00.0X00.0X00.0X00.0X00.0X00.0X00,0x00,0x00,0x00,0x00.0x00.0x00,0x00.0x00.0x00,0x00.0x00.0x00.0x00.0x00.0x00.0x00 /*H I H S*/};void displavl_ltoi(void;void displav2_ltoi(void;void displav2_itol(void;void displav3(void;void displav4(void;/*****11 (us)延时子程序*****/void DelavUs(uint N unit x;foi(x=0; xv=N;x卄;}/*♦**♦中断服务程序*****/void mteisviO(void mteinipt 0KY=〜KY; 〃每个摇动来回水银开关会在摆幅两端分别产生下降沿中断.只提取其中一次(从左向右摇才显示)if(KY==0{11U111++; //计算中断次数switcli(pic 〃选择画面{case 0:{display 1_1 toi(;}break;case 1: {display2(;} break;case 2:{display3(;}bieak;case 3:{display4(;}bieak;default: {display 1 _ltoi(;}}}}/*****显示子程序1 (汉字)*****/void display 1」toi(void{ucliai i;if(num>10{disp卄;num=0;} 〃12个汉字分为3次显示完(每次显示4个),每中断10次切换if(disp>2disp=0;DelayUs(5200;〃此处延时时间依各硬件差别而各不相同,试着调整使得显示内容居中即可fbr(i=0;i<64;i++{P2=〜hanzi[disp* 128十1*2];PO=〜hanzi [disp * 12 8十i*2十1 ]; DelavUs(100;}}/*****显示子程序 2 (LOVE) ****♦/ void display2_ltoi(void{uchai i;DelavUs(4000;fbr(i=0;i<64;i++{P2=^love[i*2];P0=~love[i*2+1];DelavUs(140;}}/*****显示子程序3 (心形图案)*****/ void displav3(voiduchai i;DelavUs(4000;fbr(i=0;i<64;i++{P2=^loveyou[i*2];PO=〜lo veyou [i* 2十1 ];DelavUs(120;}}/*****显示子程序4 (呵呵o(n_Ao图案)*****/ void displav4(void uchai i;DelavUs(4000;fbr(i=0;i<64;i++P2=〜liehe [产2];P0=〜hehe[i*2+l];DelavUs(120;}}void main(voidITO=1;EXO=1;EA=1;〃开中断,下降沿中断KY=O;KEY=1;wlule(l //主程序中只检测按键{if(KEY==O 〃画面切换键按下{DelavUs( 10000; 〃按键去抖if(KEY==0;pic十十;wlule(KEY==0;}if(pic>3pic=0;}}。

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

【LED摇摇棒的详细制作资料【图】大家知道,人的眼睛存在视觉暂留现象,正因为眼睛的反应迟钝,才丰富了人的视觉感受。

LED摇摇棒很好地利用了人眼的视觉暂留特性。

下图是基于51单片机控制、16只高亮度LED发光二极管构成的摇摇棒,配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片等。

演示效果见自制LED摇摇棒展示【图】。

实物外形图(点击可放大):基本原理与硬件电路设计:16只LED发光管作为画面每一列的显示,左右摇晃起到了扫描的作用,人眼的视觉暂留现象使得看到的是一幅完整的画面。

与LED点阵的显示有几分相仿。

硬件电路如下图(点击可放大)。

系统电源VCC为5V,下载程序和调试时一定要保证5 V电压,实际使用时用3节干电池串联4.5V即可。

AT89S52单片机作为控制器,在它的P0、P 2口接有16只以共阳的方式连接的高亮度LED,由单片机输出低电平点亮。

P0口的上拉电阻R A1不能少。

串在LED公共端的二极管D1会产生一定的压降,用来保护LED,经实测LED点亮时两端电压为3V左右,在LED的安全承受范围内。

K1是画面切换开关,用于切换显示不同内容;S1为水银开关。

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

硬件制作:使用的是直径5mm的红色高亮LED,感觉太大了些,远看效果很好但近看时字不够连贯。

建议使用直径为3mm的高亮LED,颜色可根据个人喜好选择。

水银开关里的水银珠很活跃,导致在接通时容易产生抖动,所以将水银开关斜向上放置(尖尖朝斜上方45°角),靠水银珠自身重力的作用减少抖动:IC座里面隐藏元件,既美观又能保护元件:软件设计:/**********************************************************程序名称:LED摇摇棒显示64*16像素简要说明:外部中断方式INT0显示;取模方式:纵向取模、字节倒序编写:最后更新:08/11/15晚**********************************************************/#include <AT89X52.h>#define usher 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[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,0x04,0x10,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x04,0x10,0xF8,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x10,0x00,0x08,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*LOVE*/ };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,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};/*****函数声明*****/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*****/。

相关文档
最新文档