光立方电路原理图595 +程序代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DS=xie&0x01; DS=xie1&0x01; DS=0; DS=1; xie>>=1; xie1>>=1;
//移位上升沿有效? } } /**********************************************************************/
/*倒计时*/ /**********************************************************************/ void daojishi(void) {
uchar i,j,k; for(j=0;j<8;j++) {
for(k=0;k<60;k++) for(i=0;i<8;i++) {
Set595(shuzi[7][i]); Set595(shuzi[6][i]); Set595(shuzi[5][i]); Set595(shuzi[4][i]); Set595(shuzi[3][i]); Set595(shuzi[2][i]); Set595(shuzi[1][i]); Set595(shuzi[0][i]); P1=y1[j]; P2=z1[7-i]; dis595(); } } } /**********************************************************************/
+5V
U1
d1 19 XTAL1
d2 18 XTAL2
e1
9 RST
+5V
29 30 31
PSEN ALE EA
C2 C1 C3
C4
220UF
1 2 3 4 5 6 7 +58V
P1.0/T2 P1.1/T2EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
AT89C52
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
下面我会给你一段程序,我的的时间有点忙,没有那么多时间来写花样。
#include<reg52.h>
#include <intrins.h>
//空语句调用头文件
#include"zimo.h"
#define uchar unsigned char
#define uint unsigned int
/**********************************************************************/
C3 12 ST_CP
C4 10 a0 13
MR OE
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q7'
15 1 2 3 4 5 6 7 9
74HC595 PECKAGE=SOP16
C1 11 14
C312
U4
SH_CP DS
ST_CP
C410 a0 13
MR OE
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q7'
74HC595 PECKAGE=SOP16
U9
C1 11 14
SH_CP DS
C312 ST_CP
C410 a0 13
MR OE
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q7'
15 1 2 3 4 5 6 7 9
74HC595 PECKAGE=SOP16
U10:A
b0 1
2
74HC04
U10:B
/*方框缩放*/ /**********************************************************************/
void delayms(uchar xms)
{
uchar i,j;
for(i=0;i<xms;i++)
{
for(j=0;j<110;j++);
}
} /************************************************************************/
15 1 2 3 4 5 6 7 9
74HC595 PECKAGE=SOP16
U5
C1 11 14
SH_CP DS
C3 12 ST_CP
C4 10 a0 13
MR OE
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q7'
15 1 2 3 4 5 6 7 9
74HC595 PECKAGE=SOP16
if(temp&0x01) {
DS=1; } else DS=0; temp=temp>>1; CLK=0; _nop_(); _nop_(); CLK=1; //移位上升沿有效? } } /**********************************************************************/
/**********************************************************************/
void dis595(void)
{
STB=0;
_nop_();
_nop_();
STB=1;
//串行输出上升沿有效
}
/**********************************************************************/
/*亮度调整*/ /************************************************************************/ /*void PWM_LIGHT(unsigned char p) {
OE=0; delay(p); OE=1; delay(10-p); } */ /***********************************************************************/
b1 3
4
74HC04
U10:C
b2
5
6
74HC04
U10:D
b3 13
12
74HC04
U10:E
b4 11
10
74HC04
U10:F
b5
9
8
74HC04
U11:A
b6
1
2
74HC04
U11:B
b7
3
4
74HC04
这是用 595 的电路,材料清单如下: 1:8 个 74HC595(封装为 DIP—16); 2:2 个 74HC04(封装为 DIP—14); 3:2 个 30PF 的瓷介电容;一个 10UF 的电解电容;一个 220UF 的电解电容; 4:一块 89C516(单片机); 5:每个芯片配套的座子; 6:24 或者 12MHZ 的晶振; 7: 1 个 1K,1 个 10K(都是碳膜电阻); 8:一个按键开关,3 个按键; 9:最好买 600 个灯,因为焊接的时候可能会损坏(颜色随便你自己选择); 10:你可以考虑买 4 个铜柱;
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15
P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1
P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD
39 38 37 36 35 34 33 32
}
}
/**********************************************************************/
/*ms 延时*/
/**********************************************************************/
R9
50k
PECKAGE=res300th
U2
C1 11 C2 14
SH_CP DS
C3 12 ST_CP
C410 a0 13
MR OE
ຫໍສະໝຸດ Baidu
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q7'
15 1 2 3 4 5 6 7 9
74HC595 PECKAGE=SOP16
U3
C1 11 14
SH_CP DS
sbit DS=P1^0;
/**********************************************************************/
/**********************************************************************/
/*亮度调节延时*/
/************************************************************************/
void delay(unsigned int i)
{
unsigned int j;
for(;i>0;i--)
{
for(j=5;j>0;j--);
/*595 发送一字节*/ /***********************************************************************/ void Set595(unsigned char xie) {
unsigned char i; unsigned int temp; temp=xie; for(i=0;i<8;i++) {
U6
C1 11 14
SH_CP DS
C3 12 ST_CP
C4 10 a0 13
MR OE
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q7'
15 1 2 3 4 5 6 7 9
74HC595 PECKAGE=SOP16
C111 14
U7
SH_CP DS
C3 12 ST_CP
C4 10 a0 13
备注:上面的 3 个按键可以只要 1 个,另外 2 个是我设计的外部中断,你可以不用它;同时 我自己有开发板,所以我没有设计程序下载电路,全以最节省的方案为前提,你只要把单片 机在开发板上下载好程序,再插到光立方上就好了。同时画电路时每个芯片的电源引脚隐藏 了,(单片机是 20 接负,40 接正;595 是 8 接负,16 接正;7404 是 7 接负,14 接正。),还 有注意电解电容的极性。关于你接电源的问题是你自己的事,我是在板子上面安装了一个 USB 的接口供电。
21 b0 22 b1 23 b2 24 b3 25 b4 26 b5 27 b6 28 b7
10 11 12 f1 13 f2 14 15 16 17
C1
30pF
C2
30pF
x3 d1
C3
10uF
x1 f1
X1
R10
CRYSTAL
x2 f2 e1
NET=b0 1k
d2
PECKAGE=res300th
MR OE
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q7'
15 1 2 3 4 5 6 7 9
74HC595 PECKAGE=SOP16
U8
C1 11 14
SH_CP DS
C3 12 ST_CP
C4 10
a0
13
MR OE
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q7'
15 1 2 3 4 5 6 7 9
sbit CLK=P1^1; //74HC595 的 SH-CP(11 脚)
sbit STB=P1^2; //74HC595 的时钟和输出锁存(12 脚)
/**********************************************************************/
/*坐标数组*/
/**********************************************************************/
uchar code shu[8]={0,1,2,3,4,5,6,7};
//十进制数选
uchar code x1[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//595 数据
/**********************************************************************/ void Set595_1(unsigned char xie,unsigned char xie1) {
unsigned char i; for(i=0;i<8;i++) {
uchar code y1[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//595 使能
uchar code z1[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//层扫描
/************************************************************************/
相关文档
最新文档