毕业设计(论文)-基于单片机的广州塔设计.doc_第1页
毕业设计(论文)-基于单片机的广州塔设计.doc_第2页
毕业设计(论文)-基于单片机的广州塔设计.doc_第3页
毕业设计(论文)-基于单片机的广州塔设计.doc_第4页
毕业设计(论文)-基于单片机的广州塔设计.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的广州塔姓名:专业:学校:指导教师:01 目 录摘要11 绪论21.1 项目研究背景及意义22 总体设计方案及论证22.1 总体方案设计23 硬件实现及单元电路设计33.1 主控制模块33.2 电源设计43.3 模块设计43.3.1 LED驱动模块53.3.2 底座LED驱动6 3.3.3 音频电路的设计8 3.3.4 时钟电路的设计84 软件设计154.1 主程序155 总结176 参考文献17附 录18附件1:原理图18附件2:元件清单29附件3:实物图3011摘要STC12C5A60S2是STC系列单片机里应用比较广泛的一款,在自动控制领域里享有很高的价值,以其易用性和多功能性受到了广大电子设计爱好者的好评。本次设计主要是利用STC12C5A60S2单片机、该系统采用增强型8051单片机STC12C5A60S2为主控制器,利用单片机控制点阵的原理,控制广州塔展示效果,还通过单片机内置的ADC对音频信号进行采样,然后控制广州塔亮的层数达到根据音乐跳舞的效果。该方案具有电路结构简洁,开发、生产成本低的优点。关键词:点阵 STC12C5A60S2 广州塔 1 绪论1.1 项目研究背景及意义 广州塔其实又称广州新电视塔,昵称小蛮腰。它是广州最高建筑,整个塔身的设计非常有特点,特别是在夜晚的灯光装饰下,更是显得美轮美奂。现已俨然成为广州的地标。如此美的建筑怎能不让人心动。我们结合所学的单片机点阵显示技术,我们也能做出广州塔的美。我们采用STC12C5A60S2作为控制系统,显示部分采用的是16*16的点阵显示原理,通过对广州塔的制作,能更好的提升单片机对点阵显示原理的掌握。2 总体设计方案及论证2.1 总体方案设计 本设计包括硬件和软件设计两个部分。系统总体的设计方框图如图1所示。电源STC12C5A60S2主控制器模块按键控制音频输入16*16 LED显示图1 系统方框图 3 硬件实现及单元电路设计3.1 主控制模块主控制最小系统电路如图2所示。 图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) (n21)&0x80)|(n18)&0x40)|(n15)&0x20)|(n12)&0x10)|(n9)&0x08)|(n6)&0x04)|(n3)&0x02)|(n)&0x01)#define BIN(n) LongToBin(0x#n#)sbit H1=P20; sbit H2=P21; sbit L1=P22; sbit L2=P23; sbit anjian=P32;uint yanshi;char moshi=0;char flag=0;void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j120;j+); void dh1()char i;yanshi=400;P0=0XFF;L1=L2=1;L1=L2=0;for(i=0;i12;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;P0=0X10;H1=1;H1=0;H2=1;H2=0;delay_1ms(yanshi);P0=0X20;H1=1;H1=0;H2=1;H2=0;delay_1ms(yanshi);if(anjian=0)while(anjian=0);moshi=1;break;P0=0X40;H1=1;H1=0;H2=1;H2=0;delay_1ms(yanshi);P0=0X80;H1=1;H1=0;H2=1;H2=0;delay_1ms(yanshi);void dh2()char i,j;yanshi=500;P0=0XFF;H1=H2=1;H1=H2=0; for(i=0;i1;i+)P0=0X00;L1=1;L1=0;P0=0X01;L2=1; L2=0;if(anjian=0)while(anjian=0);moshi=1;break;delay_1ms(yanshi);for(j=0;j7;j+)P0=P01;L2=1; L2=0;delay_1ms(yanshi);if(anjian=0)while(anjian=0);moshi=1;break;P0=0X00;L2=1;L2=0;P0=0X01;L1=1; L1=0;delay_1ms(yanshi);if(anjian=0)while(anjian=0);moshi=1;break;for(j=0;j7;j+)P0=P01;L1=1; L1=0;delay_1ms(yanshi);if(anjian=0)while(anjian=0);moshi=1;break;P0=0X80;L1=1; L1=0;delay_1ms(yanshi);for(j=0;j1;L1=1; L1=0;delay_1ms(yanshi);if(anjian=0)while(anjian=0);moshi=1;break;P0=0X00;L1=1; L1=0;P0=0X80;L2=1; L2=0;delay_1ms(yanshi);for(j=0;j1;L2=1; L2=0;delay_1ms(yanshi);if(anjian=0)while(anjian=0);moshi=1;break;void dh3()char i,j;yanshi=400;P0=0XFF;H1=H2=1;H1=H2=0; for(i=0;i2;i+)P0=0X01;L2=1; L2=0;if(anjian=0)while(anjian=0);moshi=1;break;delay_1ms(yanshi);for(j=0;j7;j+)P0=(P01)|0x01;L2=1; L2=0;delay_1ms(yanshi);if(anjian=0)while(anjian=0);moshi=1;break;P0=0X01;L1=1; L1=0;delay_1ms(yanshi);for(j=0;j7;j+)P0=(P01)|0x01;L1=1; L1=0;delay_1ms(yanshi);if(anjian=0)while(anjian=0);moshi=1;break;delay_1ms(5000);P0=0X7F;for(j=0;j1;L1=1; L1=0;delay_1ms(yanshi);if(anjian=0)while(anjian=0);moshi=1;break;P0=0X7F;L2=1; L2=0;delay_1ms(yanshi);for(j=0;j1;L2=1; L2=0;delay_1ms(yanshi);if(anjian=0)while(anjian=0);moshi=1;break;void dh4()char i;P0=0X81;L1=1;L1=0;P0=0X02;L2=1;L2=0;for(i=0;i5;i+)P0=0X33;H1=1;H1=0;H2=1;H2=0;delay_1ms(600);P0=0X66;H1=1;H1=0;H2=1;H2=0;delay_1ms(600);if(anjian=0)while(anjian=0);moshi=1;break;P0=0XCC;H1=1;H1=0;H2=1;H2=0;delay_1ms(600);P0=0X99;H1=1;H1=0;H2=1;H2=0;delay_1ms(600);char s1,s2;void dh5()char i,j;yanshi=500;P0=0XFF;H1=H2=1;H1=H2=0; for(i=0;i5;i+)s1=0x01;s2=0x80;P0=s1;L1=1; L1=0;P0=s2;L2=1; L2=0;if(anjian=0)while(anjian=0);moshi=1;break;delay_1ms(yanshi);for(j=0;j1)&0x7F;P0=s2;L2=1; L2=0;s1=s11;P0=s1;L1=1; L1=0;delay_1ms(yanshi);if(anjian=0)while(anjian=0);moshi=1;break;void dh6()char i,j;yanshi=500;P0=0XFF;H1=H2=1;H1=H2=0; for(i=0;i5;i+)P0=0x00;L2=1; L2=0;P0=0x80;L1=1; L1=0;if(anjian=0)while(anjian=0);moshi=1;break;delay_1ms(yanshi);for(j=0;j1)|0x80;L1=1; L1=0;delay_1ms(yanshi);if(anjian=0)while(anjian=0);moshi=1;break;P0=0x80;L2=1; L2=0;delay_1ms(yanshi);for(j=0;j1)|0x80;L2=1; L2=0;delay_1ms(yanshi);if(anjian=0)while(anjian=0);moshi=1;break;void dh7()char i;P0=0XFF;L1=1;L1=0;P0=0XFF;L2=1;L2=0;for(i=0;i5;i+)P0=0X11;H1=1;H1=0;H2=1;H2=0;delay_1ms(700);P0=0X22;H1=1;H1=0;H2=1;H2=0;delay_1ms(700);if(anjian=0)while(anjian=0);moshi=1;break;P0=0X44;H1=1;H1=0;H2=1;H2=0;delay_1ms(700);P0=0X88;H1=1;H1=0;H2=1;H2=0;delay_1ms(700);void dh8()char i;P0=0XFF;L1=1;L1=0;P0=0XFF;L2=1;L2=0;for(i=0;i5;i+)P0=0X33;H1=1;H1=0;H2=1;H2=0;delay_1ms(600);P0=0X66;H1=1;H1=0;H2=1;H2=0;delay_1ms(600);if(anjian=0)while(anjian=0);moshi=1;break;P0=0XCC;H1=1;H1=0;H2=1;H2=0;delay_1ms(600);P0=0X99;H1=1;H1=0;H2=1;H2=0;delay_1ms(600);void dh9()char i;P0=0XFF;L1=1;L1=0;P0=0XFF;L2=1;L2=0;for(i=0;i10;i+)if(anjian=0)while(anjian=0);moshi=1;break;P0=0X55;H1=1;H1=0;H2=1;H2=0;delay_1ms(600);P0=0XAA;H1=1;H1=0;H2=1;H2=0;delay_1ms(600);void dh10()char i,j;yanshi=500;P0=0X01;H1=H2=1;H1=H2=0; for(i=0;i5;i+)P0=0x00;L2=1; L2=0;P0=0x80;L1=1; L1=0;if(anjian=0)while(anjian=0);moshi=1;break;delay_1ms(yanshi);for(j=0;j1)|0x80;L1=1; L1=0;delay_1ms(yanshi);if(anjian=0)while(anjian=0);moshi=1;break;P0=0x80;L2=1; L2=0;delay_1ms(yanshi);for(j=0;j1)|0x80;L2=1; L2=0;delay_1ms(yanshi);if(anjian=0)while(anjian=0);moshi=1;break;uchar STC_ADC() /!根据数据手册写一个ad读取函数 uchar i; ADC_RES = 0; ADC_RESL = 0; ADC_CONTR = BIN(10001000); i=3; while(i-); while (1) if (ADC_CONTR & BIN(10000) break; ADC_CONTR = BIN(10000000); return( ADC_RESL2) ;uchar date;void init() TMOD= 0x10; TL1 = (65536-50000)/256; /设置定时初值 TH1 = (65536-50000)%256; /设置定时初值 ET1 = 1; TR1 = 1; EA = 0;char h=0,v=0;void pp()if(date0)h=1;if(vh)v=h;if(flag=0)P0=0X01;L2=1; L2=0;delay_1ms(2);P0=0X00;L1=1; L1=0;if(flag=1)P0=0X01;L2=1; L2=0;delay_1ms(2);P0=0X00;L1=1; L1=0;if(date15)h=2;if(vh)v=h;if(flag=0)P0=0X03;L2=1; L2=0;delay_1ms(2);P0=0X00;L1=1; L1=0;if(flag=1)P0=0X02;L2=1; L2=0;delay_1ms(2);P0=0X00;L1=1; L1=0;if(date30)h=3;if(vh)v=h;if(flag=0)P0=0X07;L2=1; L2=0;delay_1ms(2);P0=0X00;L1=1; L1=0;if(flag=1)P0=0X04;L2=1; L2=0;delay_1ms(2);P0=0X00;L1=1; L1=0;if(date45)h=4;if(vh)v=h;if(flag=0)P0=0X0F;L2=1; L2=0;delay_1ms(2);P0=0X00;L1=1; L1=0;if(flag=1)P0=0X08;L2=1; L2=0;delay_1ms(2);P0=0X00;L1=1; L1=0;if(date60)h=5;if(vh)v=h;if(flag=0)P0=0X1F;L2=1; L2=0;delay_1ms(2);P0=0X00;L1=1; L1=0;if(flag=1)P0=0X10;L2=1; L2=0;delay_1ms(2);P0=0X00;L1=1; L1=0;if(date75)h=6;if(vh)v=h;if(flag=0)P0=0X3F;L2=1; L2=0;delay_1ms(2);P0=0X00;L1=1; L1=0;if(flag=1)P0=0X20;L2=1; L2=0;delay_1ms(2);P0=0X00;L1=1; L1=0;if(date90)h=7;if(vh)v=h;if(flag=0)P0=0X7F;L2=1; L2=0;delay_1ms(2);P0=0X00;L1=1; L1=0;if(flag=1)P0=0X40;L2=1; L2=0;delay_1ms(2);P0=0X00;L1=1; L1=0;if(date105)h=8;if(vh)v=h;if(flag=0)P0=0XFF;L2=1; L2=0;delay_1ms(2);P0=0X00;L1=1; L1=0;if(flag=1)P0=0X80;L2=1; L2=0;delay_1ms(2);P0=0X00;L1=1; L1=0;if(date130)h=9;if(vh)v=h;if(flag=0)P0=0XFF;L2=1; L2=0;delay_1ms(2);P0=0X01;L1=1; L1=0;if(flag=1)P0=0X00;L2=1; L2=0;delay_1ms(2);P0=0X01;L1=1; L1=0;if(date145)h=10;if(vh)v=h;if(flag=0)P0=0XFF;L2=1; L2=0;delay_1ms(2);P0=0X03;L1=1; L1=0;if(flag=1)P0=0X00;L2=1; L2=0;delay_1ms(2);P0=0X02;L1=1; L1=0;if(date160)h=11;if(vh)v=h;if(flag=0)P0=0XFF;L2=1; L2=0;delay_1ms(2);P0=0X07;L1=1; L1=0;if(flag=1)P0=0X00;L2=1; L2=0;delay_1ms(2);P0=0X04;L1=1; L1=0;if(date175)h=12;if(vh)v=h;if(flag=0)P0=0XFF;L2=1; L2=0;delay_1ms(2);P0=0X0F;L1=1; L1=0;if(flag=1)P0=0X00;L2=1; L2=0;delay_1ms(2);P0=0X08;L1=1; L1=0;if(date190)h=13;if(vh)v=h;if(flag=0)P0=0XFF;L2=1; L2=0;delay_1ms(2);P0=0X1F;L1=1; L1=0;if(flag=1)P0=0X00;L2=1; L2=0;delay_1ms(2);P0=0X10;L1=1; L1=0;if(date205)h=14;if(vh)v=h;if(flag=0)P0=0XFF;L2=1; L2=0;delay_1ms(2);P0=0X3F;L1=1; L1=0;if(flag=1)P0=0X00;L2=1; L2=0;delay_1ms(2);P0=0X20;L1=1; L1=0;if(date220)h=15;if(v235)h=16;if(v=0 & t1=300 & t1=600)t1=0;t2+;if(t2=0 & t2=600 & t2=1200)t2=0;if(flag=0)if(v=16)P0=0X7F;L1=1;L1=0;if(v=15)P0=0X3F;L1=1;L1=0;if(v=14)P0=0X1F;L1=1;L1=0;if(v=13)P0=0X0F;L1=1;L1=0;if(v=12)P0=0X07;L1=1;L1=0;if(v=11)P0=0X03;L1=1;L1=0;if(v=10)P0=0X01;L1=1;L1=0;if(v=9) P0=0X00;L1=1;L1=0;if(v=8) P0=0X00;L1=1;L1=0;P0=0X7F;L2=1;L2=0;if(v=7) P0=0X00;L1=1;L1=0;P0=0X3F;L2=1;L2=0;if(v=6) P0=0X00;L1=1;L1=0;P0=0X1F;L2=1;L2=0;if(v=5) P0=0X00;L1=1;L1=0;P0=0X0F;L2=1;L2=0;if(v=4) P0=0X00;L1=1;L1=0;P0=0X07;L2=1;L2=0;if(v=3) P0=0X00;L1=1;L1=0;P0=0X03;L2=1;L2=0;if(v=2) P0=0X00;L1=1;L1=0;P0=0X01;L2=1;L2=0;if(v=1) P0=0X00;L1=1;L1=0;P0=0X00;L2=1;L2=0;if(v=0) P0=0X00;L1=1;L1=0;P0=0X00;L2=1;L2=0;if(flag=1)if(v=16)P0=0X80;L1=1;L1=0;P0=0X00;L2=1;L2=0;if(v=15)P0=0X40;L1=1;L1=0;P0=0X00;L2=1;L2=0;if(v=14)P0=0X20;L1=1;L1=0;P0=0X00;L2=1;L2=0;if(v=13)P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论