基于单片机的广州塔论文

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

基于单片机的广州塔

姓名:

专业:

学校:

指导教师:

目录

摘要 0

1 绪论 (1)

1.1 项目研究背景及意义 (1)

2 总体设计方案及论证 (1)

2.1 总体方案设计 (1)

3 硬件实现及单元电路设计 (2)

3.1 主控制模块 (2)

3.2 电源设计 (3)

3.3模块设计 (3)

3.3.1 led驱动模块 (3)

3.3.2 底座4个LED (4)

3.3.3 音频输入电路的设计 (4)

音频电路的设计主要是采用了T型口的USB接口,因为该接口包含了音频和电源

的输入,又因为控制模板的单片机是自带了AD的,所以通过按键切换到音频模

式下,我们可以看到广州随音乐在跳舞。 (4)

3.3.4 时钟电路的设计 (5)

4 软件设计 (5)

5 总结 (29)

6 参考文献 (30)

附录 (31)

附件1:原理图 (31)

附件2:元件清单 (31)

附件3:实物图 (32)

摘要

STC12C5A60S2是STC系列单片机里应用比较广泛的一款,在自动控制领域里享有很高的价值,以其易用性和多功能性受到了广大电子设计爱好者的好评。本次设计主要是利用STC12C5A60S2单片机、该系统采用增强型8051单片机STC12C5A60S2为主控制器,利用单片机控制点阵的原理,控制广州塔展示效果,还通过单片机内置的ADC对音频信号进行采样,然后控制广州塔亮的层数达到根据音乐跳舞的效果。该方案具有电路结构简洁,开发、生产成本低的优点。

关键词:点阵 STC12C5A60S2 广州塔

1 绪论

1.1 项目研究背景及意义

广州塔其实又称广州新电视塔,昵称小蛮腰。它是广州最高建筑,整个塔身的设计非常有特点,特别是在夜晚的灯光装饰下,更是显得美轮美奂。现已俨然成为广州的地标。如此美的建筑怎能不让人心动。我们结合所学的单片机点阵显示技术,我们也能做出广州塔的美。我们采用STC12C5A60S2作为控制系统,显示部分采用的是16*16的点阵显示原理,通过对广州塔的制作,能更好的提升单片机对点阵显示原理的掌握。

2 总体设计方案及论证

2.1 总体方案设计

本设计包括硬件和软件设计两个部分。系统总体的设计方框图如图1所示。

图1 系统方框图

3 硬件实现及单元电路设计

3.1 主控制模块

主控制最小系统电路如图2所示。

电源

音频输入

STC12C5A60S2

主控制器模块

16*16 LED 显示

按键控制

图2 最小系统

硬件电路总设计见图3。

图3 总设计电路图

3.2 电源设计

电源部分的设计采用DC5V供电。

3.3模块设计

3.3.1 led驱动模块

LED模块采用的是74HC573+ULN2803驱动,其中74HC573控制LED的正极,ULN2803控制LED的负极。如下图:

图4 led驱动电路

3.3.2 底座4个LED

底座4个LED使用的七彩LED,为了控制方便,4个LED都接到了单片机的IO口,可以方便的控制其亮灭,使用七彩LED的原因是,其发出的LED光多姿多彩,给广州塔的绚丽增添多一份优美,电路如下图所示:

图5 底座led驱动电路

3.3.3 音频输入电路的设计

音频电路的设计主要是采用了T型口的USB接口,因为该接口包含了音频和电源的输入,又因为控制模板的单片机是自带了AD的,所以通过按键切换

到音频模式下,我们可以看到广州随音乐在跳舞。

3.3.4时钟电路的设计

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。

因为一个机器周期含有6个状态周期,而每个状态周期为2个振荡周期,所以一个机器周期共有12个振荡周期,如果外接石英晶体振荡器的振荡频率为12MHZ,一个振荡周期为1/12us,故而一个机器周期为1us。如图13所示为时钟电路。

图13 时钟电路图

4 软件设计

#include

#define uchar unsigned char

#define uint unsigned int

#define LongToBin(n)

(((n>>21)&0x80)|((n>>18)&0x40)|((n>>15)&0x20)|((n>>12)&0x10)|((n>>9)&0x08 )|((n>>6)&0x04)|((n>>3)&0x02)|((n)&0x01))

#define BIN(n) LongToBin(0x##n##)

sbit H1=P2^0;

sbit H2=P2^1;

sbit L1=P2^2;

sbit L2=P2^3;

sbit anjian=P3^2;

uint yanshi;

char moshi=0;

char flag=0;

void delay_1ms(uint q)

{

uint i,j;

for(i=0;i

for(j=0;j<120;j++);

}

void dh1()

{

char i;

yanshi=400;

P0=0XFF;

L1=L2=1;

L1=L2=0;

for(i=0;i<12;i++)

{

P0=0X01;

H1=1;

H1=0;

H2=1;

H2=0;

delay_1ms(yanshi);

P0=0X02;

H1=1;

H1=0;

H2=1;

H2=0;

delay_1ms(yanshi);

if(anjian==0){while(anjian==0);moshi=1;break;}

P0=0X04;

H1=1;

H1=0;

H2=1;

H2=0;

delay_1ms(yanshi);

P0=0X08;

H1=1;

H1=0;

H2=1;

H2=0;

delay_1ms(yanshi);

if(anjian==0){while(anjian==0);moshi=1;break;}

相关文档
最新文档