作者:山东科技大学 任祥华 王笑 李田政
指导老师:孙红雨
作品简介:
作品采用大赛指定单片机IAP15F2K61S2作为系统的主控制器。该单片机抗干扰能力强、无需外部晶振和复位电路、支持ISP/IAP在线编程,有2K字节SRAM、8路高速10位A/D转换器、6路外部中断。其运行速度快,能满足我们游戏系统的要求。
平台选型说明:
作品采用大赛指定单片机IAP15F2K61S2作为系统的主控制器。该单片机抗干扰能力强、无需外部晶振和复位电路、支持ISP/IAP在线编程,有2K字节SRAM、8路高速10位A/D转换器、6路外部中断。其运行速度快,能满足我们游戏系统的要求。
设计说明:
一、设计方案
方案一:用多个74LS138译码芯片级联控制流水灯。
方案二:用多个74HC595级联控制流水灯。
使用74LS138则每一个等都有固定的编码,用单片机可以随意控制灯的亮灭。但其硬件连线复杂,需要的I/0口资源较多。74HC595芯片有串行输入并行输出的功能并带有内部锁存器。使用该芯片控制,每条流水灯只需要一根数据线和一根时钟线,可节省单片机的I/0资源。并且控制流水点亮的软件实现简单,其弊端是对单个灯的控制不如方案一方便,还需要有一定的延时。
基于系统本身考虑,单纯的流水点亮完全可以满足设计要求。权衡一二,我们选择使用方案二。
二、硬件设计:
1. 控制平台
作品采用大赛指定单片机IAP15F2K61S2作为系统的主控制器。该单片机既有抗干扰能力强、支持超级加密、无需外部晶振和复位电路、支持ISP/IAP在线编程、2K字节SRAM、双串口、带有高速10位A/D转换器、低功耗的优点。
STC15F2K60S2系列单片机是STC生产的单时钟周期的单片机,是高速/高可靠/低功耗/超强抗干扰的新一代8051单片机,采用第八代加
密技术,加密性超强,指令代码完全兼容传统8051,但速度快8--12倍。内部集成高密度R/C时钟(±0.3%),±1%温飘,5MHZ~35MHZ宽范围可设置,可彻底省掉外部昂贵的晶振和外部复位电路(内部已集成高可靠复位电路,ISP编程时8级复位门槛可选)。3路CCP/PWM/PCA,8路高速10位A/D转换(30万次每秒),内置2K字节大容量SRAM,2组超高速异步串行通信端口(UART1/UART2,可在5组管脚之间进行切换,分时复用可作5组串口使用),1组高速同步串行通信端口SPI,针对多串口通信/电机控制、强干扰场合。
我们共使用了单片机31个I/0口,其中4路外部中断,2个定时器,2路ADC。
2. 音频采集调理电路
音频输入信号系统调理电路见图2。测量放大器INA128用于接收、放大来自MP3或低频信号发生器的音频电压信号。放大倍数可由电位器W1进行适当调节,计算公式:
(1)其中 为电位器W1的电阻。
1NA128的另外一个作用是将信号电压上移2.5V,将音频信号由双极性信号转化为单极性信号。
MAX296为8阶贝塞尔低通滤波器,用于抗混叠滤波。边界频率由内部时钟控制,时钟频率和边界频率的比率为50:1。内部时钟频率由CLK引脚上的电容C3确定,公式如下:
3. LED灯控模块和脚踏圆盘模块
灯控模块包括4排“音乐流水灯”(每排32个LED灯)、4个“音乐流水灯”脚踏圆盘、1个装饰圆盘、1中间扇形盘,见图2
4排“音乐流水灯”控制电路电路见图3。
74HC595的OUT接LED灯的负极,LED灯的正极接+3.3V的电压源。每排“音乐流水灯”都有4片74HC595级联,由相同的时钟信号控制。
圆盘周围接一圈三色LED小彩灯,在每个圆盘下面放置一个脚踏按键,踩下按键,单片机接收到信号,同时改变灯的颜色。
中间圆盘装有一周的五彩灯,常量,使游戏更炫动。中间扇形部分显示盘有8排LED小彩灯,用一片74HC595芯
流水灯整体布局 |
整个灯控系统成放射状排列,比竖直排列视野更宽,五彩的灯光随着节拍闪烁,让游戏更动感,炫目。增加了游戏的炫动性和趣味性。
4. 显示模块
得分显示采用84×48点阵液晶NOKIA5110。
5.各模块与单片机连接
液晶显示模块通过SPI接口与单片机相连。其RST、CS_、D/C切换、DIN、CLK分别与单片机的P2.0~P2.4相连。
三、软件设计
软件设计总思路见图4
中间扇形部分的流水灯根据由对音乐A/D转换值控制,A/D转换值越高,灯点亮的越多。用定时中断扫描A/D转换的值。
“音乐流水灯”也是根据音乐A/D转换值随机点亮的,每次点亮灯的个数也是随机数。
脚踏按键接单片机中断口,采取下降沿中断。当中断产生时,判断是否应该踏击,若判断为是,总成绩加10分,否则不加分。
四、开发环境
Keil C51开发系统基本知识
⒈系统概述
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil 的优势。下面详细介绍Keil C51开发系统各部分功能和使用。
⒉Keil C51单片机软件开发系统的整体结构
C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中
优点
⒈Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
⒉与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。
五、部分源程序代码
void main()
{
InitADC(); //初始化ADC
interrupt_init(); //初始化中断
LCD_init(); //初始化LCD模块
LCD_clear(); //清屏幕
SCK=0;//先拉低时钟线
SCK_COLOR=0;
while(inter_0!=0)//准备开始函数
{
set_parameter();
display_start();//屏幕显示开始
}
LCD_clear(); //清屏幕
shan_light();//开始闪灯
EA = 1; //开总中断
max_color=0; //底下大板的灯
while(1)
{
ff++;
if(ff>=zero_num)
{
ff=0;
music_flag=1;//有音乐
aa++;
LED_go(number_table[aa],LED_table[aa]);//流水灯执行
if(aa>=31)
{
aa=0; //循环31次
}
}
else
{
music_flag=0;
SI0=1;SI1=1;SI2=1;SI3=1;
SCK=1; //移位
SCK=0;
delay(cc); //延时控制流水灯速度
}
}