📄 main.c
字号:
//============================================================================================================
// 文件名称:main.c
//============================================================================================================
#include "SPCE061.H"
#include "s480.h"
extern unsigned int F_UART_Initial(void);
extern unsigned int F_UART_Read(void);
extern void F_LED_On(unsigned int);
extern lcda[34];
extern lcdb[34];
extern lcdc[34];
extern lcdd[34];
extern lcde[34];
extern lcdf[34];
extern lcd1[34];
extern lcd2[34];
extern lcd3[34];
int page,line;
int flaglcd=1;
int i,j;
//=========================================================================================================
void clearshow(void){
for(page=0xb8;page<0xbc;page++){
set_12232_ctrl(page);
set_12232_ctrl(0x00);
for(line=0;line<62;line++)
write_12232_data(0x00);}
set_12232_ctrl(0xc0);
set_12232_ctrl(0xaf);}
//=========================================================================================================
void delay(int number){
for(i=0;i<number;i++)
for(j=0;j<3000;j++)
*P_Watchdog_Clear=0x01;}
//==========================================================================================================
void lcdshowbitup(int bit,unsigned int *array){
if(bit<3){
set_12232_ctrl(0xba);
set_12232_ctrl(bit*0x11);
for(line=0;line<17;line++)
write_12232E1_data(array[line]);
set_12232_ctrl(0xbb);
set_12232_ctrl(bit*0x11);
for(line=17;line<34;line++)
write_12232E1_data(array[line]);}
else if(bit>3){
bit=bit-4;
set_12232_ctrl(0xba);
set_12232_ctrl(bit*0x11+7);
for(line=0;line<17;line++)
write_12232E2_data(array[line]);
set_12232_ctrl(0xbb);
set_12232_ctrl(bit*0x11+7);
for(line=17;line<34;line++)
write_12232E2_data(array[line]);}
else {
set_12232_ctrl(0xba);
set_12232_ctrl(bit*0x11);
for(line=0;line<10;line++)
write_12232E1_data(array[line]);
set_12232_ctrl(0xbb);
set_12232_ctrl(bit*0x11);
for(line=17;line<27;line++)
write_12232E1_data(array[line]);
set_12232_ctrl(0xba);
set_12232_ctrl(0x00);
for(line=10;line<17;line++)
write_12232E2_data(array[line]);
set_12232_ctrl(0xbb);
set_12232_ctrl(0x00);
for(line=27;line<34;line++)
write_12232E2_data(array[line]);}
set_12232_ctrl(0xc0);
set_12232_ctrl(0xaf);}
//==========================================================================================================
void lcdshowbitchup(int bit,unsigned int *array){
if(bit<6){
set_12232_ctrl(0xba);
set_12232_ctrl(bit*0x09);
for(line=0;line<9;line++)
write_12232E1_data(array[line]);
set_12232_ctrl(0xbb);
set_12232_ctrl(bit*0x09);
for(line=9;line<18;line++)
write_12232E1_data(array[line]);}
else if(bit>6){
bit=bit-7;
set_12232_ctrl(0xba);
set_12232_ctrl(bit*0x09+1);
for(line=0;line<9;line++)
write_12232E2_data(array[line]);
set_12232_ctrl(0xbb);
set_12232_ctrl(bit*0x09+1);
for(line=9;line<18;line++)
write_12232E2_data(array[line]);}
else {
set_12232_ctrl(0xba);
set_12232_ctrl(bit*0x09);
for(line=0;line<7;line++)
write_12232E1_data(array[line]);
set_12232_ctrl(0xbb);
set_12232_ctrl(bit*0x09);
for(line=9;line<16;line++)
write_12232E1_data(array[line]);
set_12232_ctrl(0xba);
set_12232_ctrl(0x00);
for(line=7;line<9;line++)
write_12232E2_data(array[line]);
set_12232_ctrl(0xbb);
set_12232_ctrl(0x00);
for(line=16;line<18;line++)
write_12232E2_data(array[line]);}
set_12232_ctrl(0xc0);
set_12232_ctrl(0xaf);}
//===========================================================================================================
void lcdshowbitdw(int bit,unsigned int *array){
if(bit<3){
set_12232_ctrl(0xb8);
set_12232_ctrl(bit*0x11);
for(line=0;line<17;line++)
write_12232E1_data(array[line]);
set_12232_ctrl(0xb9);
set_12232_ctrl(bit*0x11);
for(line=17;line<34;line++)
write_12232E1_data(array[line]);}
else if(bit>3){
bit=bit-4;
set_12232_ctrl(0xb8);
set_12232_ctrl(bit*0x11+7);
for(line=0;line<17;line++)
write_12232E2_data(array[line]);
set_12232_ctrl(0xb9);
set_12232_ctrl(bit*0x11+7);
for(line=17;line<34;line++)
write_12232E2_data(array[line]);}
else {
set_12232_ctrl(0xb8);
set_12232_ctrl(bit*0x11);
for(line=0;line<10;line++)
write_12232E1_data(array[line]);
set_12232_ctrl(0xb9);
set_12232_ctrl(bit*0x11);
for(line=17;line<27;line++)
write_12232E1_data(array[line]);
set_12232_ctrl(0xb8);
set_12232_ctrl(0x00);
for(line=10;line<17;line++)
write_12232E2_data(array[line]);
set_12232_ctrl(0xb9);
set_12232_ctrl(0x00);
for(line=27;line<34;line++)
write_12232E2_data(array[line]);}
set_12232_ctrl(0xc0);
set_12232_ctrl(0xaf);}
//============================================================================================================
void voice_play(int iSpeechIndex){
SACM_S480_Initial(1); //自动方式播放初始化
SACM_S480_Play(iSpeechIndex,3,3); //定义语音索引号、播放通道、允许音量增/减调节
while(SACM_S480_Status()&0x01){
SACM_S480_ServiceLoop(); //获取语音数据并将其填入解码队列
*P_Watchdog_Clear=0x0001;}
SACM_S480_Stop();
*P_SystemClock=0x0013;
*P_INT_Ctrl=0x04;
*P_INT_Mask=0x04;
__asm("IRQ ON");
}
//============================================================================================================
main()
{
unsigned int uiUARTCommand=0;
int numdw=0,numup=0,i=0,j;
*P_INT_Ctrl=0x04;
*P_INT_Mask=0x04;
__asm("IRQ ON");
system_IO_init();
set_12232_ctrl(0xe2);
set_12232_ctrl(0xae);
set_12232_ctrl(0xa9);
set_12232_ctrl(0xa0);
set_12232_ctrl(0xee);
F_System_Initial();
F_UART_Initial();
voice_play(9);
clearshow();
while(1)
{
uiUARTCommand = F_UART_Read();
switch(uiUARTCommand)
{
case 0x0000:
break;
case 0x0001:
voice_play(6);
voice_play(1);
flaglcd=0;
lcdshowbitdw(0,lcda);
lcdshowbitdw(1,lcdb);
lcdshowbitdw(2,lcdc);
lcdshowbitdw(3,lcdd);
lcdshowbitdw(4,lcde);
lcdshowbitdw(5,lcdf);
lcdshowbitdw(6,lcd1);
for(i=0;i<3;i++){
Set_IOA_Bit(0,1,1,1,1);
for(j=0;j<2000;j++) *P_Watchdog_Clear=0x01;
Set_IOA_Bit(0,1,1,0,0);
for(j=0;j<2000;j++) *P_Watchdog_Clear=0x01;}
break;
case 0x0002:
voice_play(6);
voice_play(2);
flaglcd=0;
lcdshowbitdw(0,lcda);
lcdshowbitdw(1,lcdb);
lcdshowbitdw(2,lcdc);
lcdshowbitdw(3,lcdd);
lcdshowbitdw(4,lcde);
lcdshowbitdw(5,lcdf);
lcdshowbitdw(6,lcd2);
for(i=0;i<3;i++){
Set_IOA_Bit(0,1,1,1,1);
for(j=0;j<2000;j++) *P_Watchdog_Clear=0x01;
Set_IOA_Bit(0,1,1,0,0);
for(j=0;j<2000;j++) *P_Watchdog_Clear=0x01;}
break;
case 0x0003:
voice_play(6);
voice_play(3);
flaglcd=0;
lcdshowbitdw(0,lcda);
lcdshowbitdw(1,lcdb);
lcdshowbitdw(2,lcdc);
lcdshowbitdw(3,lcdd);
lcdshowbitdw(4,lcde);
lcdshowbitdw(5,lcdf);
lcdshowbitdw(6,lcd3);
for(i=0;i<3;i++){
Set_IOA_Bit(0,1,1,1,1);
for(j=0;j<2000;j++) *P_Watchdog_Clear=0x01;
Set_IOA_Bit(0,1,1,0,0);
for(j=0;j<2000;j++) *P_Watchdog_Clear=0x01;}
break;
case 0x00ff:
voice_play(7);
voice_play(8);
for(i=0;i<50;i++){
Set_IOA_Bit(0,1,1,1,1);
for(j=0;j<2000;j++) *P_Watchdog_Clear=0x01;
Set_IOA_Bit(0,1,1,0,0);
for(j=0;j<2000;j++) *P_Watchdog_Clear=0x01;}
break;
case 0x0005:
voice_play(4);
break;
case 0x0006:
voice_play(5);
break;
case 0x0007:
voice_play(6);
break;
case 0x0008:
voice_play(7);
break;
default:
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -