模块
VCC_电源5V
GND_电源地
RX_
TX_
SPK1/SPK2为喇叭两个引脚
由于程序是对串口进行配置,故其他引脚的连接不过多陈述
程序
MAIN文件
/******************************************************************************************************************
+--------------------------------------------------+
主函数部分
+--------------------------------------------------+
- 实现功能:
- 目前进展:
- 日期 :2013-05-06
- 作者 :
- 运行环境:STC 晶振:11.0592M 波特率:9600
- 备注 :在普中科技的51开发板上调试OK --- STC89C516RD+
1、实现芯片上电分别指定播放第一曲和第二曲,基本的程序供用户测试
2、该测试程序必须是模块或者芯片方案中,有设备在线,譬如U盘、TF卡、FLASH等等
3、
******************************************************************************************************************/
#include "STK6037.h"
//运行晶振:11.05926MHZ
#define TIMER0_H (65536-1800)/256//定时2Ms
#define TIMER0_L (65536-1800)%256
#define SYS_Fosc 11059200 //晶振频率
#define COMM_BAUD_RATE 9600 //串口波特率
#define OSC_FREQ 11059200 //11059200
static INT8U Send_buf[10] = {0} ;
static INT8U Recv_buf[10] = {0} ;
static INT8U SendDataLen = 0 ;
static INT8U ResendDataLen = 0 ;
/******************************串口1的波特率********************************/
//T1作波特率发生器
//在波特率加倍情况下
#define BAUD_57600 256 - (OSC_FREQ/192L)/57600L // 254 FF
#define BAUD_28800 256 - (OSC_FREQ/192L)/28800L // 254 FE
#define BAUD_19200 256 - (OSC_FREQ/192L)/19200L // 253 FD
#define BAUD_14400 256 - (OSC_FREQ/192L)/14400L // 252 FC
#define BAUD_9600 256 - (OSC_FREQ/192L)/9600L // 250 FA
/*****************************************************************************************************
- 功能描述:10us的延时函数
- 隶属模块:常用函数库(内部)
- 参数说明:无
- 返回参数:无
- 注: 在这里的运行环境是51,晶振为12MHZ
*****************************************************************************************************/
void Delay_Us(INT32U z)
{
while(z--);
}
/***********************毫秒级别延时************************/
void Delay_Ms(INT32U z)
{
INT32U x=0 , y=0;
for(x=110 ; x>0 ;x--)
for(y=z; y>0;y-- );
}
/*****************************************************************************************************
- 功能描述: 串口1初始化
- 隶属模块: 外部
- 参数说明: 无
- 返回说明: 无
- 注: 都是9600波特率
*****************************************************************************************************/
void Serial_init(void)
{
TMOD = 0x20; // 设置 T1 为波特率发生器
SCON = 0x50; // 0101,0000 8位数据位, 无奇偶校验
PCON = 0x00; //PCON=0;
TH1=256-(SYS_Fosc/COMM_BAUD_RATE/32/12);//设置为9600波特率
TL1=256-(SYS_Fosc/COMM_BAUD_RATE/32/