LED摇摇棒制作
总体介绍:
大家知道,人的眼睛存在视觉暂留现象,正因为眼睛的反应迟钝,才丰富了人的视觉感受。意思是时间小于1/24秒人就分辨不出了,LED摇摇棒很好地利用了人眼的视觉暂留特性。配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片等。讲白了就和点阵的显示没什么区别,只是你的手摇晃的过程代替了点阵的片选。下面是总体的
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
电路图:
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 32H
C1 EQU 33H
C2 EQU 34H
C3 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.2
ORG 0000H
;起始地址
JMP RESET
ORG 0003H
;外部中断入口地址
JMP INT
ORG 0030H
/*===========================================
复位程序
===========================================*/
RESET:
MOV C1,#00H
;偏移量
MOV C2,#00H
MOV C3,#00H
MOV C4,#00H
/*
MOV C5,#00H
MOV C6,#00H
MOV C7,#00H
MOV C8,#00H
MOV C9,#00H
MOV C10,#00H */
MOV OUTPUT1,#00H
MOV OUTPUT2,#00H
SETB KEY
;把P0.2置高,作为输入口
MOV COUNT1,#00H
SETB EX0
;分中断
SETB EA
;总中断
SETB IT0
;启动
/*==========================================
主程序
==========================================*/
MAIN:
CALL KEY_SCAN
CALL NOAD
LJMP MAIN
/*=========================================
按键处理程序
只做了两种模式,大家可以再加
=========================================*/
KEY_SCAN:
JB KEY,KEY_RET
LCALL DELAY
JB KEY,KEY_RET
INC COUNT1
INC COUNT1
MOV A,COUNT1
CJNE A,#4,KEY_D
MOV COUNT1,#00H
KEY_D:
JNB KEY,$
KEY_RET:
RET
/*==========================================
散转程序
==========================================*/
NOAD:
MOV DPTR,#TAB_B
;设置散转表地址
MOV A,COUNT1
JMP @A+DPTR
TAB_B:
;散转表
AJMP OPR_0
AJMP OPR_2
OPR_0:
MOV DPTR,#TAB1
MOV A,C1
MOVC A,@A+DPTR
MOV OUTPUT1,A
MOV DPTR,#TAB2
MOV A,C2
MOVC A,@A+DPTR
MOV OUTPUT2,A
MOV P2,OUTPUT1
MOV P1,OUTPUT2
CALL DELAY
INC C1
INC C2
MOV A,C2
CJNE A,#64,OPR_0
MOV C1,#00H
MOV C2,#00H
LJMP OPR_RET
OPR_2:
MOV DPTR,#TAB3
MOV A,C3
MOVC A,@A+DPTR
MOV OUTPUT1,A
MOV DPTR,#TAB4
MOV A,C4
MOVC A,@A+DPTR
MOV OUTPUT2,A
MOV P2,OUTPUT1
MOV P1,OUTPUT2
CALL DELAY
INC C3
INC C4
MOV A,C4
CJNE A,#64,OPR_2
MOV C3,#00H
MOV C4,#00H
LJMP OPR_RET
OPR_RET:
RET
/*===========================================
中断处理程序
===========================================*/
INT:
MOV P1,#0FFH
MOV P2,#0FFH
CALL DELAY
RETI
/*===========================================
延时程序
===========================================*/
DELAY:
MOV R7,#3
D1: MOV R6,#0E0H
DJNZ R6,$
DJNZ R7,D1
RET
;===========================真心爱你==========================
TAB1:
DB 0FFH,0F7H,0F3H,0F7H,0F7H,0F7H,0F0H,0F7H,0C7H,0E7H,0B7H,0CBH,0EFH,0F0H,0FBH,0FDH
DB 0FFH,0F9H,0F8H,0ABH,0AH,0B2H,0BAH,0A2H,0DBH,0DAH,0C2H,0DAH,0DBH,0E8H,0F9H,0FFH
DB 0FFH,0E1H,0DEH,0BFH,0BFH,0BFH,0DFH,0EFH,0EFH,0DFH,0BFH,0BFH,0BFH,0DEH,0E1H,0FFH
DB 0FFH,0FFH,0DFH,0DFH,0DFH,0D0H,0D5H,0A5H,95H,0D5H,0A5H,0D0H,0DFH,0DFH,0FFH,0FFH
TAB2:
DB 0FFH,0FFH,0CFH,0BFH,7FH,0FFH,03H,0F7H,0EFH,7FH,0BFH,0DFH,0FFH,03H,0FFH,0FFH
DB 0FFH,0FFH,0FCH,0FCH,0CCH,0CBH,0C7H,0CBH,5CH,9FH,0EFH,0F7H,0FBH,0FDH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,7FH,0BFH,0DFH,0EFH,0F7H,0F7H,0E7H,0DFH,0BFH,7FH,0FFH,0FFH,0FFH
DB 0FFH,0DFH,0DFH,0DDH,0DBH,17H,4FH,5FH,5FH,5FH,4FH,07H,0DBH,0DDH,0DFH,0FFH
;=========================新年快乐============================
TAB3:
DB 0FFH,0FFH,0FEH,0FEH,0BEH,0BEH,0DEH,0DEH,0D8H,0DEH,0DEH,0EEH,0EEH,0E0H,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0F8H,0FBH,0FBH,0E0H,0FBH,0FBH,0FEH,0FDH,0FBH,80H,0FFH,0F8H,0FFH
DB 0FFH,0FFH,0FFH,0F7H,0F7H,0F5H,0F5H,0F0H,0F5H,0F5H,0F5H,0D4H,0E7H,0F7H,0F8H,0FFH
DB 0DEH,0DEH,0DEH,0DEH,0EEH,0EEH,0E0H,0FFH,0EEH,0E6H,0EAH,0ECH,0CCH,0AAH,0E6H,0EEH
TAB4:
DB 0FFH,0FFH,0F7H,0EFH,0DFH,0BFH,0FFH,0FFH,01H,0FBH,0F7H,0BFH,0DFH,0EFH,0F7H,0FFH
DB 0BFH,0BFH,0BBH,37H,0AFH,9FH,3FH,9FH,0AFH,0B7H,0BBH,0FFH,01H,0FFH,0FFH,0FFH
DB 0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,01H,0DFH,0DFH,0DFH,1FH,0DFH,0DFH,0DFH,0FFH
DB 0FFH,0FFH,0FFH,01H,0FFH,0FFH,0FH,0F1H,0FFH,0EFH,8FH,0B0H,03H,0B7H,9FH,0EFH
;=======================================================
END
;结束