📄 main.c
字号:
//=======================================================================
// The information contained herein is the exclusive property of
// Sunnnorth Technology Co. And shall not be distributed, reproduced,
// or disclosed in whole in part without prior written permission.
// (C) COPYRIGHT 2003 SUNNORTH TECHNOLOGY CO.
// ALL RIGHTS RESERVED
// The entire notice above must be reproduced on all authorized copies.
//=======================================================================
//=======================================================================
// 工程名称:Music_Box.spj
// 功能描述: (1) 开机时有欢迎提示画面。
// (2) 键盘界面显示。
// (3) 液晶上显示歌曲的名字,可通过按键选择歌曲。
// (4) 按键后播放对应歌曲,显示界面对应的歌曲反色显示。
// 文件来源:课程设计 音乐盒的制作
// 硬件连接:SPCE061A ---- 液晶模块
// IOA8 ---- D0
// IOA9 ---- D1
// IOA10 ---- D2
// IOA11 ---- D3
// IOA12 ---- D4
// IOA13 ---- D5
// IOA14 ---- D6
// IOA15 ---- D7
// IOB4 ---- AO
// IOB5 ---- R/W
// IOB6 ---- EP
// +5 ---- +
// 地 ---- —
// -----------------------------------
// KEY1 ---- 功能播放
// KEY2 ---- 停止/播放
// KEY3 ---- 歌曲选择
// IDE环境: SUNPLUS u'nSPTM IDE 1.8.4
// 涉及的库:CMacro.lib、sacmv25.lib
// 组成文件:
// main.c
// splc501DisplayTAB.asm/splc501Hardware.asm/splc501sys.asm/splc501var.asm
// key.asm/system.asm
// A2000.h/hardware.h/Lab_parameter.h
// hardware.asm
// isr.asm
// resource.inc/resource.asm
// 日期: 2004-1-2
//======================================================================
#include "hardware.h"
#include "lab_parameter.h"
#include "a2000.h"
//======================= 全程变量设置开始 ================================
int gActivated; // 该变量用于检测是否有触发命令,当有识别出语句
int I_Key = 0; // 键值
int Step=0; // 播放歌曲序号
int Ret=0;
//======================= 全程变量设置结束 ================================
//============================================================
// 文件名称:main.c
// 实现功能:点亮整个显示屏,显示字符""
// 日期: 2004/1/2
//============================================================
main()
{
int i,j;
Init_sys(); // 初始化字库
FG_InitGraphic();
SP_Init_IOA(0xff00,0x0000,0xff00); // 初始化LCDIO口
//---------------------- 开机界面 ------------------------
FG_ClearScreen(1);
for(j=0;j<=7;j++) // 延时保持整个显示屏点亮
for(i=0;i<0xffff;i++)
Clear_Watch_Dog(); // 清看门狗
FG_ClearScreen(0);
FG_PutStr("Welcome to you!",3,122,60); // 显示字符
for(j=0;j<=13;j++) // 延时保持整个显示屏点亮
for(i=0;i<0x777;i++)
Clear_Watch_Dog(); // 清看门狗
FG_PutStr("Music_Box ",2,98,20); // 显示字符
for(j=0;j<=19;j++) // 延时保持整个显示屏点亮
for(i=0;i<0xffff;i++)
Clear_Watch_Dog(); // 清看门狗
//---------------------- 主屏界面 --------------------------
// FG_ClearScreen(1);
for(j=0;j<=7;j++) // 延时 保持整个显示屏点亮
for(i=0;i<0x777;i++)
Clear_Watch_Dog(); // 清看门狗
FG_ClearScreen(0);
FG_PutStr("1 Green ",0,122,60); // 显示字符
Clear_Watch_Dog(); // 清看门狗
FG_PutStr("2 mp3 ",0,122,52);
Clear_Watch_Dog(); // 清看门狗 函数定义在Splc501sys.asm
FG_PutStr("3 red ",0,122,44);
Clear_Watch_Dog(); // 清看门狗 函数定义在Splc501sys.asm
FG_PutStr("4 yueguan ",0,122,36);
Clear_Watch_Dog(); // 清看门狗 函数定义在Splc501sys.asm
FG_PutStr("5 tianhe ",0,122,28); // 显示字符
Clear_Watch_Dog(); // 清看门狗 函数定义在Splc501sys.asm
FG_SetLineStyle(6); // 设置线模式为实体,函数定义在Splc501sys.asm
FG_Ellipse(40,13,4,4); // 画一实体椭圆 , 函数定义在Splc501sys.asm
Clear_Watch_Dog(); // 清看门狗 函数定义在Splc501sys.asm
FG_PutStr("stop ",0,50,8); // 显示字符
Clear_Watch_Dog(); // 清看门狗 函数定义在Splc501sys.asm
FG_Ellipse(10,13,4,4); // 画一实体椭圆 , 函数定义在Splc501sys.asm
Clear_Watch_Dog(); // 清看门狗 函数定义在Splc501sys.asm
FG_PutStr("play ",0,20,8);
FG_SetLineStyle(6); // 反显第一首歌曲
FG_Rectangle(0,52,127,60);
Clear_Watch_Dog(); // 清看门狗
//---------------------- 键盘选择 --------------------------
while(1)
{
SP_Init_IOA(0xff00,0x0000,0xff00); // 初始化LCDIO口
I_Key = SP_GetCh();
switch(I_Key)
{
case 0x0000: // 无键按下
break;
case 0x0001:
FG_SetLineStyle(0); // 设置线模式为实体,函数定义在Splc501sys.asm
FG_Ellipse(10,13,4,4); // 画一空椭圆 , 函数定义在Splc501sys.asm
Clear_Watch_Dog();
FG_SetLineStyle(2); // 设置线模式为实体,函数定义在Splc501sys.asm
FG_Ellipse(10,13,4,4);
for(j=0;j<=19;j++) // 延时保持整个显示屏点亮
for(i=0;i<0x1111;i++)
Clear_Watch_Dog(); // 清看门狗
FG_SetLineStyle(0); // 设置线模式为实体,函数定义在Splc501sys.asm
FG_Ellipse(10,13,4,4); // 画一空椭圆 , 函数定义在Splc501sys.asm
Clear_Watch_Dog();
FG_SetLineStyle(6); // 设置线模式为实体,函数定义在Splc501sys.asm
FG_Ellipse(10,13,4,4);
// I_Key 1 播放
if (Step==0||Step==6)
{
Ret = SACM_A2000_Initial(1);
SACM_A2000_Play(0,DAC1+DAC2,Ramp_UpDn_On); // 播放第一首歌曲
}
else
{
Step--;
Ret = SACM_A2000_Initial(1);
SACM_A2000_Play(Step,DAC1+DAC2,Ramp_UpDn_On); // 播放对应的歌曲
Step++;
}
break;
case 0x0002:
FG_SetLineStyle(0); // 设置线模式为实体,函数定义在Splc501sys.asm
FG_Ellipse(40,13,4,4); // 画一空椭圆 , 函数定义在Splc501sys.asm
Clear_Watch_Dog(); // 清看门狗
FG_SetLineStyle(2); // 设置线模式为实体,函数定义在Splc501sys.asm
FG_Ellipse(40,13,4,4); // 画一空椭圆 , 函数定义在Splc501sys.asm
Clear_Watch_Dog(); // 清看门狗
for(j=0;j<=19;j++) // 延时保持整个显示屏点亮
for(i=0;i<0x666;i++)
Clear_Watch_Dog(); // 清看门狗
FG_SetLineStyle(0); // 设置线模式为实体,函数定义在Splc501sys.asm
FG_Ellipse(40,13,4,4); // 画一空椭圆 , 函数定义在Splc501sys.asm
Clear_Watch_Dog();
FG_SetLineStyle(6); // 设置线模式为实体,函数定义在Splc501sys.asm
FG_Ellipse(40,13,4,4); // I_Key 2 暂停
SACM_A2000_Pause();
break;
case 0x0004: // I_Key 3 选择歌曲
switch(Step)
{
case 0:
Step++;
break;
case 1:
FG_SetLineStyle(6); // 反显第一首歌曲
FG_Rectangle(0,52,127,60);
Clear_Watch_Dog(); // 清看门狗
FG_SetLineStyle(6); // 反显第二首歌曲
FG_Rectangle(0,44,127,52);
Clear_Watch_Dog(); // 清看门狗
Step++;
break;
case 2:
FG_SetLineStyle(6); // 反显第二首歌曲
FG_Rectangle(0,44,127,52);
Clear_Watch_Dog(); // 清看门狗
FG_SetLineStyle(6); // 反显第三首歌曲
FG_Rectangle(0,36,127,44);
Clear_Watch_Dog(); // 清看门狗
Step++;
break;
case 3:
FG_SetLineStyle(6); // 反显第三首歌曲
FG_Rectangle(0,36,127,44);
Clear_Watch_Dog(); // 清看门狗
FG_SetLineStyle(6); // 反显第四首歌曲
FG_Rectangle(0,28,127,36);
Clear_Watch_Dog(); // 清看门狗
Step++;
break;
case 4:
FG_SetLineStyle(6); // 反显第四首歌曲
FG_Rectangle(0,28,127,36);
Clear_Watch_Dog(); // 清看门狗
FG_SetLineStyle(6); // 反显第五首歌曲
FG_Rectangle(0,20,127,28);
Clear_Watch_Dog(); // 清看门狗
Step++;
break;
case 5:
FG_SetLineStyle(6); // 反显第五首歌曲
FG_Rectangle(0,20,127,28);
Clear_Watch_Dog(); // 清看门狗
FG_SetLineStyle(6); // 反显第一首歌曲
FG_Rectangle(0,52,127,60);
Clear_Watch_Dog(); // 清看门狗
Step = 1;
break;
default:
break;
}
}
System_ServiceLoop();
SACM_A2000_ServiceLoop(); // 调用系统初始化
}
}
//============================== main.c 结束 ======================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -