嵌入式开发试验嵌入式简易电子琴系统设计ARM2110实验开发板,外接矩阵键盘、蜂鸣器、LED显示屏、LED灯模块(带4.7K电阻)主程序#include "systemInit.h"#include "buzzer.h"#include "music.h"#include "systemInit.h"#define lcden GPIO_PIN_0 //PB0;#define lcdrs GPIO_PIN_2// 定义LED#define LED1_PERIPH#define LED1_PORT#define LED1_PIN#define LED2_PERIPH#define LED2_PORT#define LED2_PIN#define LED3_PERIPH#define LED3_PORT#define LED3_PIN#define LED4_PERIPH#define LED4_PORT#define LED4_PIN#define LED5_PERIPH#define LED5_PORT#define LED5_PIN#define LED6_PERIPH#define LED6_PORT#define LED6_PIN#define LED7_PERIPH#define LED7_PORT#define LED7_PIN#define LED8_PERIPH#define LED8_PORT#define LED8_PIN// 定义KEY#define KEY_PERIPH2#define KEY_PORT2#define KEY_PIN2//PB2; SYSCTL_PERIPH_GPIOA GPIO_PORTA_BASE GPIO_PIN_4SYSCTL_PERIPH_GPIOA GPIO_PORTA_BASE GPIO_PIN_5SYSCTL_PERIPH_GPIOA GPIO_PORTA_BASE GPIO_PIN_6SYSCTL_PERIPH_GPIOG GPIO_PORTG_BASE GPIO_PIN_0SYSCTL_PERIPH_GPIOF GPIO_PORTF_BASE GPIO_PIN_2SYSCTL_PERIPH_GPIOG GPIO_PORTG_BASE GPIO_PIN_1SYSCTL_PERIPH_GPIOE GPIO_PORTE_BASE GPIO_PIN_0SYSCTL_PERIPH_GPIOE GPIO_PORTE_BASE GPIO_PIN_1SYSCTL_PERIPH_GPIOB GPIO_PORTB_BASEGPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4//连接方式矩阵键盘的行线接PC4~7 列线接PA0~3unsigned char data; //PD0-PD7;unsigned char num;int guan;int jian;int numm;//lcd显示模块技术//lcd模块void write_com(unsigned char com) //写命令{GPIOPinWrite(GPIO_PORTB_BASE,lcdrs,0x00); // lcdrs=0;GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2| GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,com);//PD=com; SysCtlDelay(5 * (TheSysClock / 4000)); // 延时 5ms}void write_data(unsigned char date){GPIOPinWrite(GPIO_PORTB_BASE,lcdrs,0xFF); // lcdrs=1;GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2| GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,date);//PD=date; SysCtlDelay(5 * (TheSysClock / 4000));GPIOPinWrite(GPIO_PORTB_BASE,lcden,0xFF); // lcden=1;SysCtlDelay(5 * (TheSysClock / 4000));GPIOPinWrite(GPIO_PORTB_BASE,lcden,0x00); // lcden=0;GPIOPinWrite(GPIO_PORTB_BASE,lcden,0xFF); // lcden=1; SysCtlDelay(5 * (TheSysClock / 4000)); GPIOPinWrite(GPIO_PORTB_BASE,lcden,0x00); // lcden=0; }void init(){SysCtlPeriEnable(SYSCTL_PERIPH_GPIOD); //使能A端口GPIOPinTypeOut(GPIO_PORTD_BASE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2| GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7); SysCtlPeriEnable(SYSCTL_PERIPH_GPIOB);GPIOPinTypeOut(GPIO_PORTB_BASE, GPIO_PIN_0|GPIO_PIN_2); GPIOPinWrite(GPIO_PORTB_BASE,lcden,0x00); // lcden=0;}write_com(0x38);write_com(0x0c); write_com(0x06);write_com(0x01); // 在开始清屏 write_com(0x80+0x10); //数据指针地址//lcd模块结束,矩阵键盘模块开始 unsigned char KeyScan(void){ if (GPIOPinRead(KEY_PORT2, KEY_PIN2) == 0x30) // 如果按下KEY2 { num=17; return num; }else if (GPIOPinRead(KEY_PORT2, KEY_PIN2) == 0x50) // 如果按下KEY3{ num=18;return num; }else if (GPIOPinRead(KEY_PORT2, KEY_PIN2) == 0x60) // 如果按下KEY4{ num=16; return num;}GPIOPinTypeOut(GPIO_PORTC_BASE,GPIO_PIN_4| GPIO_PIN_7); GPIOPinTypeOut(GPIO_PORTA_BASE,GPIO_PIN_0| GPIO_PIN_3); GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_4| GPIO_PIN_7,0Xf0); GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_0| GPIO_PIN_3,0X00); GPIOPinTypeIn(GPIO_PORTC_BASE,GPIO_PIN_4| GPIO_PIN_7);guan=GPIOPinRead(GPIO_PORTC_BASE, 0xff)&0xf0;jian=GPIOPinRead(GPIO_PORTA_BASE,0xff)&0x0f; guan=jian|guan; if(guan!=0xf0) { SysCtlDelay(5 * (TheSysClock / 4000));if(guan!=0xf0){ GPIOPinTypeOut(GPIO_PORTC_BASE,GPIO_PIN_4| GPIO_PIN_5| GPIO_PIN_6| GPIO_PIN_7);GPIOPinTypeOut(GPIO_PORTA_BASE,GPIO_PIN_0| GPIO_PIN_3); GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_4| GPIO_PIN_7,0Xf0);GPIO_PIN_1| GPIO_PIN_5|GPIO_PIN_2| GPIO_PIN_6|GPIO_PIN_5| GPIO_PIN_1| GPIO_PIN_5| GPIO_PIN_1| GPIO_PIN_5|GPIO_PIN_6| GPIO_PIN_2| GPIO_PIN_6| GPIO_PIN_2| GPIO_PIN_6| GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_0| GPIO_PIN_1| GPIO_PIN_2| GPIO_PIN_3,0X07);GPIOPinTypeIn(GPIO_PORTC_BASE,GPIO_PIN_4| GPIO_PIN_5| GPIO_PIN_6| GPIO_PIN_7);guan=GPIOPinRead(GPIO_PORTC_BASE, GPIO_PIN_4| GPIO_PIN_5|GPIO_PIN_6| GPIO_PIN_7)&0xf0;jian=GPIOPinRead(GPIO_PORTA_BASE,GPIO_PIN_0| GPIO_PIN_1| GPIO_PIN_2| GPIO_PIN_3)&0x0f;guan=jian|guan;if(guan==0x77){ SysCtlDelay(5 * (TheSysClock / 4000));if(guan==0x77){num=11;return num;}}if(guan==0xb7){ SysCtlDelay(5 * (TheSysClock / 4000));if(guan==0xb7){num=7;return num;}}if(guan==0xd7){ SysCtlDelay(5 * (TheSysClock / 4000));if(guan==0xd7){ num=4;return num;}}if(guan==0xe7){ SysCtlDelay(5 * (TheSysClock / 4000));if(guan==0xe7){ num=0;return num;}}GPIOPinTypeOut(GPIO_PORTC_BASE,GPIO_PIN_4| GPIO_PIN_5|GPIO_PIN_7);GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_0| GPIO_PIN_1|GPIO_PIN_3,0X0b);GPIOPinTypeIn(GPIO_PORTC_BASE,GPIO_PIN_4| GPIO_PIN_5| GPIO_PIN_6| GPIO_PIN_2| GPIO_PIN_6|GPIO_PIN_7);GPIOPinTypeOut(GPIO_PORTA_BASE,GPIO_PIN_0| GPIO_PIN_1| GPIO_PIN_3); GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_4| GPIO_PIN_5|GPIO_PIN_7,0Xf0);guan=GPIOPinRead(GPIO_PORTC_BASE, 0xff)&0xf0;jian=GPIOPinRead(GPIO_PORTA_BASE,0xff)&0x0f;guan=jian|guan;if(guan==0x7b){ SysCtlDelay(5 * (TheSysClock / 4000));if(guan==0x7b){ num=13;return num;}}if(guan==0xbb){ SysCtlDelay(5 * (TheSysClock / 4000));if(guan==0xbb){ num=9;return num;}}if(guan==0xdb){ SysCtlDelay(5 * (TheSysClock / 4000));if(guan==0xdb){ num=6;return num;}}if(guan==0xeb){ SysCtlDelay(5 * (TheSysClock / 4000));if(guan==0xeb){ num=2;return num;}}GPIOPinTypeOut(GPIO_PORTC_BASE,GPIO_PIN_4| GPIO_PIN_5| GPIO_PIN_7); GPIOPinTypeOut(GPIO_PORTA_BASE,GPIO_PIN_0| GPIO_PIN_1| GPIO_PIN_3); GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_4| GPIO_PIN_5|GPIO_PIN_7,0Xf0);GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_0| GPIO_PIN_1| GPIO_PIN_2| GPIO_PIN_6| GPIO_PIN_6| GPIO_PIN_2| GPIO_PIN_6| GPIO_PIN_2|GPIO_PIN_3,0X0d);GPIOPinTypeIn(GPIO_PORTC_BASE,GPIO_PIN_4| GPIO_PIN_5| GPIO_PIN_7); guan=GPIOPinRead(GPIO_PORTC_BASE, 0xff)&0xf0;jian=GPIOPinRead(GPIO_PORTA_BASE,0xff)&0x0f;guan=jian|guan;if(guan==0x7d){ SysCtlDelay(5 * (TheSysClock / 4000));if(guan==0x7d){ num=14;return num;}}if(guan==0xbd){ SysCtlDelay(5 * (TheSysClock / 4000));if(guan==0xbd){ num=10;return num;}}if(guan==0xdd){ SysCtlDelay(5 * (TheSysClock / 4000));if(guan==0xdd){ num=15;return num;}}if(guan==0xed){ SysCtlDelay(5 * (TheSysClock / 4000));if(guan==0xed){ num=3;return num;}}GPIOPinTypeOut(GPIO_PORTC_BASE,GPIO_PIN_4| GPIO_PIN_5| GPIO_PIN_7); GPIOPinTypeOut(GPIO_PORTA_BASE,GPIO_PIN_0| GPIO_PIN_1| GPIO_PIN_3); GPIOPinWrite(GPIO_PORTC_BASE,GPIO_PIN_4| GPIO_PIN_5|GPIO_PIN_7,0Xf0);GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_0| GPIO_PIN_1|GPIO_PIN_3,0X0e);GPIOPinTypeIn(GPIO_PORTC_BASE,GPIO_PIN_4| GPIO_PIN_5| GPIO_PIN_6| GPIO_PIN_6| GPIO_PIN_2| GPIO_PIN_6| GPIO_PIN_2| GPIO_PIN_6|GPIO_PIN_7);guan=GPIOPinRead(GPIO_PORTC_BASE, 0xff)&0xf0;jian=GPIOPinRead(GPIO_PORTA_BASE,0xff)&0x0f; guan=jian|guan;if(guan==0x7e){ SysCtlDelay(5 * (TheSysClock / 4000));if(guan==0x7e){ num=12;return num;}}if(guan==0xbe){ SysCtlDelay(5 * (TheSysClock / 4000));if(guan==0xbe){ num=8;return num;}}if(guan==0xde){ SysCtlDelay(5 * (TheSysClock / 4000));if(guan==0xde){ num=5;return num;}}if(guan==0xee){ SysCtlDelay(5 * (TheSysClock / 4000));if(guan==0xee){ num=1;return num;}}}}}// 主函数(程序入口)int main(void){SysCtlPeriEnable(LED1_PERIPH); // 使能LED所在的GPIO端口GPIOPinTypeOut(LED1_PORT, LED1_PIN); // 设置LED所在的管脚为输出SysCtlPeriEnable(LED2_PERIPH); // 使能LED所在的GPIO端口GPIOPinTypeOut(LED2_PORT, LED2_PIN); // 设置LED所在的管脚为输出SysCtlPeriEnable(LED3_PERIPH); GPIO端口GPIOPinTypeOut(LED3_PORT, LED3_PIN); 的管脚为输出SysCtlPeriEnable(LED4_PERIPH); GPIO端口GPIOPinTypeOut(LED4_PORT, LED4_PIN); 的管脚为输出SysCtlPeriEnable(LED5_PERIPH); GPIO端口GPIOPinTypeOut(LED5_PORT, LED5_PIN); 的管脚为输出SysCtlPeriEnable(LED6_PERIPH); GPIO端口GPIOPinTypeOut(LED6_PORT, LED6_PIN); 的管脚为输出SysCtlPeriEnable(LED7_PERIPH); GPIO端口GPIOPinTypeOut(LED7_PORT, LED7_PIN); 的管脚为输出SysCtlPeriEnable(LED8_PERIPH); GPIO端口GPIOPinTypeOut(LED8_PORT, LED8_PIN); 的管脚为输出clockInit(); 6MHzbuzzerInit(); init();SysCtlPeriEnable(SYSCTL_PERIPH_GPIOA); // 使能LED所在的 // 设置LED所在// 使能LED所在的 // 设置LED所在 // 使能LED所在的 // 设置LED所在 // 使能LED所在的 // 设置LED所在 // 使能LED所在的 // 设置LED所在 // 使能LED所在的 // 设置LED所在// 时钟初始化:晶振, // 使能LED所在的GPIO端口SysCtlPeriEnable(SYSCTL_PERIPH_GPIOC);GPIOPinTypeIn(GPIO_PORTA_BASE, GPIO_PIN_0| GPIO_PIN_3); GPIOPinTypeIn(GPIO_PORTC_BASE, GPIO_PIN_4| GPIO_PIN_7); SysCtlPeriEnable(KEY_PERIPH2); // 使能KEY所在的GPIO_PIN_1| GPIO_PIN_5| GPIO_PIN_2| GPIO_PIN_6|GPIO端口GPIOPinTypeIn(KEY_PORT2, KEY_PIN2); 管脚为输入for (;;) {switch( KeyScan()) {case 14:GPIOPinWrite(LED1_PORT, LED1_PIN, 0x00); GPIOPinWrite(LED2_PORT,LED2_PIN, 0xFF); GPIOPinWrite(LED3_PORT, LED3_PIN, 0xFF); GPIOPinWrite(LED4_PORT, LED4_PIN, 0xFF); GPIOPinWrite(LED5_PORT,LED5_PIN, 0xFF); GPIOPinWrite(LED6_PORT, LED6_PIN, 0xFF); GPIOPinWrite(LED7_PORT, LED7_PIN, 0xFF);GPIOPinWrite(LED8_PORT, LED8_PIN, 0xFF); //lcd滚动显示musicPlay(0);//调用电子琴音频write_com(0x82); //设定上排的显示位置 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格write_data(76); //整型数据转换为ASC2//l write_data(53); //整型数据转换为ASC2 //5 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 //lcd显示结束buzzerQuiet(); break;// 设置KEY所在 // 点亮LED // 熄灭LED // 熄灭LED // 熄灭LED // 熄灭LED // 熄灭LED // 熄灭LED //熄灭LEDcase 7:GPIOPinWrite(LED1_PORT, LED1_PIN, 0x00); // 点亮LEDGPIOPinWrite(LED2_PORT, LED2_PIN, 0xFF); // 熄灭LEDGPIOPinWrite(LED3_PORT, LED3_PIN, 0xFF); // 熄灭LEDGPIOPinWrite(LED4_PORT, LED4_PIN, 0xFF); // 熄灭LEDGPIOPinWrite(LED5_PORT, LED5_PIN, 0xFF); // 熄灭LEDGPIOPinWrite(LED6_PORT, LED6_PIN, 0xFF); // 熄灭LEDGPIOPinWrite(LED7_PORT, LED7_PIN, 0xFF); // 熄灭LEDGPIOPinWrite(LED8_PORT, LED8_PIN, 0xFF); musicPlay(2);//调用电子琴音频write_com(0x82); //设定上排的显示位置 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格write_data(76); //整型数据转换为ASC2//l write_data(54); //整型数据转换为ASC2 //6 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格SysCtlDelay(100 * (TheSysClock / 4000)); buzzerQuiet();break;case 11:GPIOPinWrite(LED1_PORT, LED1_PIN, 0x00); GPIOPinWrite(LED2_PORT,LED2_PIN, 0x00); GPIOPinWrite(LED3_PORT, LED3_PIN, 0xFF); GPIOPinWrite(LED4_PORT, LED4_PIN, 0xFF); GPIOPinWrite(LED5_PORT, LED5_PIN, 0xFF); GPIOPinWrite(LED6_PORT, LED6_PIN, 0xFF); GPIOPinWrite(LED7_PORT, LED7_PIN, 0xFF); GPIOPinWrite(LED8_PORT, LED8_PIN, 0xFF);musicPlay(1);//调用电子琴音频write_com(0x82); //设定上排的显示位置 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格// 熄灭LED // 点亮LED // 点亮LED // 熄灭LED // 熄灭LED // 熄灭LED // 熄灭LED // 熄灭LED // 熄灭LEDwrite_data(32); // 空格write_data(32); // 空格write_data(76); //整型数据转换为ASC2//l write_data(55); //整型数据转换为ASC2 //6 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格SysCtlDelay(100 * (TheSysClock / 4000)); buzzerQuiet(); break;case 1:GPIOPinWrite(LED1_PORT, LED1_PIN, 0x00); GPIOPinWrite(LED2_PORT,LED2_PIN, 0x00); GPIOPinWrite(LED3_PORT, LED3_PIN, 0xFF); GPIOPinWrite(LED4_PORT, LED4_PIN, 0xFF); GPIOPinWrite(LED5_PORT, LED5_PIN, 0xFF); GPIOPinWrite(LED6_PORT, LED6_PIN, 0xFF); GPIOPinWrite(LED7_PORT, LED7_PIN, 0xFF); GPIOPinWrite(LED8_PORT, LED8_PIN, 0xFF); musicPlay(2);write_com(0x82); //设定上排的显示位置 write_data(32); // 空格write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(77); //整型数据转换为ASC2//l write_data(49); //整型数据转换为ASC2 //6 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格SysCtlDelay(100 * (TheSysClock / 4000)); buzzerQuiet(); break;case 5:GPIOPinWrite(LED1_PORT, LED1_PIN, 0x00); // 点亮LED // 点亮LED // 熄灭LED // 熄灭LED // 熄灭LED // 熄灭LED // 熄灭LED // 熄灭LED // 点亮LED GPIOPinWrite(LED2_PORT, LED2_PIN, 0x00); // 点亮LEDGPIOPinWrite(LED3_PORT, LED3_PIN, 0x00); // 点亮LEDGPIOPinWrite(LED4_PORT, LED4_PIN, 0xFF); // 熄灭LEDGPIOPinWrite(LED5_PORT, LED5_PIN, 0xFF); // 熄灭LEDGPIOPinWrite(LED6_PORT, LED6_PIN, 0xFF); // 熄灭LEDGPIOPinWrite(LED7_PORT, LED7_PIN, 0xFF); // 熄灭LEDGPIOPinWrite(LED8_PORT, LED8_PIN, 0xFF); // 熄灭LED musicPlay(3); SysCtlDelay(40 * (TheSysClock / 3000));write_com(0x82); //设定上排的显示位置 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格write_data(77); //整型数据转换为ASC2//l write_data(50); //整型数据转换为ASC2 //6 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格SysCtlDelay(100 * (TheSysClock / 4000)); buzzerQuiet(); break;case 8:GPIOPinWrite(LED1_PORT, LED1_PIN, 0x00); GPIOPinWrite(LED2_PORT,LED2_PIN, 0x00); GPIOPinWrite(LED3_PORT, LED3_PIN, 0x00); GPIOPinWrite(LED4_PORT, LED4_PIN, 0xFF); GPIOPinWrite(LED5_PORT, LED5_PIN, 0xFF); GPIOPinWrite(LED6_PORT, LED6_PIN, 0xFF); GPIOPinWrite(LED7_PORT, LED7_PIN, 0xFF); GPIOPinWrite(LED8_PORT, LED8_PIN, 0xFF); musicPlay(4);SysCtlDelay(40 * (TheSysClock / 3000));write_com(0x82); //设定上排的显示位置 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格// 点亮LED // 点亮LED // 点亮LED // 熄灭LED // 熄灭LED // 熄灭LED // 熄灭LED // 熄灭LEDwrite_data(77); //整型数据转换为ASC2//l write_data(51); //整型数据转换为ASC2 //6 write_data(32); // 空格 write_data(32); // 空格 write_data(32);// 空格write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格SysCtlDelay(100 * (TheSysClock / 4000)); buzzerQuiet(); break;case 12:GPIOPinWrite(LED1_PORT, LED1_PIN, 0x00); GPIOPinWrite(LED2_PORT,LED2_PIN, 0x00); GPIOPinWrite(LED3_PORT, LED3_PIN, 0x00); GPIOPinWrite(LED4_PORT, LED4_PIN, 0x00); GPIOPinWrite(LED5_PORT,LED5_PIN, 0xFF); GPIOPinWrite(LED6_PORT, LED6_PIN, 0xFF); GPIOPinWrite(LED7_PORT, LED7_PIN, 0xFF); GPIOPinWrite(LED8_PORT, LED8_PIN, 0xFF); musicPlay(5);SysCtlDelay(40 * (TheSysClock / 3000));write_com(0x82); //设定上排的显示位置 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格 write_data(32); // 空格write_data(77); //整型数据转换为ASC2//l write_data(52); //整型数据转换为ASC2 //6 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格SysCtlDelay(100 * (TheSysClock / 4000)); buzzerQuiet(); break;case 3:GPIOPinWrite(LED1_PORT, LED1_PIN, 0x00); GPIOPinWrite(LED2_PORT,LED2_PIN, 0x00); // 点亮LED // 点亮LED // 点亮LED // 点亮LED // 熄灭LED // 熄灭LED // 熄灭LED // 熄灭LED // 点亮LED // 点亮LEDGPIOPinWrite(LED3_PORT, LED3_PIN, 0x00); // 点亮LEDGPIOPinWrite(LED4_PORT, LED4_PIN, 0x00); // 点亮LEDGPIOPinWrite(LED5_PORT, LED5_PIN, 0xFF); // 熄灭LEDGPIOPinWrite(LED6_PORT, LED6_PIN, 0xFF); // 熄灭LEDGPIOPinWrite(LED7_PORT, LED7_PIN, 0xFF); // 熄灭LEDGPIOPinWrite(LED8_PORT, LED8_PIN, 0xFF); // 熄灭LED musicPlay(6); SysCtlDelay(40 * (TheSysClock / 3000));write_com(0x82); //设定上排的显示位置 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(77); //整型数据转换为ASC2//l write_data(53); //整型数据转换为ASC2 //6 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格SysCtlDelay(100 * (TheSysClock / 4000)); buzzerQuiet(); break;case 15:GPIOPinWrite(LED1_PORT, LED1_PIN, 0x00); GPIOPinWrite(LED2_PORT,LED2_PIN, 0x00); GPIOPinWrite(LED3_PORT, LED3_PIN, 0x00); GPIOPinWrite(LED4_PORT, LED4_PIN, 0x00); GPIOPinWrite(LED5_PORT,LED5_PIN, 0x00); GPIOPinWrite(LED6_PORT, LED6_PIN, 0xFF); GPIOPinWrite(LED7_PORT, LED7_PIN, 0xFF); GPIOPinWrite(LED8_PORT, LED8_PIN, 0xFF); musicPlay(7);SysCtlDelay(40 * (TheSysClock / 3000));//lcd显示write_com(0x82); //设定上排的显示位置 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格// 点亮LED // 点亮LED // 点亮LED // 点亮LED // 点亮LED // 熄灭LED // 熄灭LED // 熄灭LEDwrite_data(32); // 空格write_data(77); //整型数据转换为ASC2//l write_data(54); //整型数据转换为ASC2 //6 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格SysCtlDelay(100 * (TheSysClock / 4000)); buzzerQuiet(); //lcd显示结束 break; case 10:GPIOPinWrite(LED1_PORT, LED1_PIN, 0x00); GPIOPinWrite(LED2_PORT,LED2_PIN, 0x00); GPIOPinWrite(LED3_PORT, LED3_PIN, 0x00); GPIOPinWrite(LED4_PORT, LED4_PIN, 0x00); GPIOPinWrite(LED5_PORT,LED5_PIN, 0x00); GPIOPinWrite(LED6_PORT, LED6_PIN, 0xFF); GPIOPinWrite(LED7_PORT, LED7_PIN, 0xFF); GPIOPinWrite(LED8_PORT, LED8_PIN, 0xFF); musicPlay(8);SysCtlDelay(40 * (TheSysClock / 3000));write_com(0x82); //设定上排的显示位置 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格write_data(77); //整型数据转换为ASC2//l write_data(55); //整型数据转换为ASC2 //6 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格SysCtlDelay(100 * (TheSysClock / 4000)); buzzerQuiet(); break;case 2:// 点亮LED // 点亮LED // 点亮LED // 点亮LED // 点亮LED // 熄灭LED // 熄灭LED // 熄灭LEDGPIOPinWrite(LED1_PORT, LED1_PIN, 0x00); // 点亮LEDGPIOPinWrite(LED2_PORT, LED2_PIN, 0x00); // 点亮LEDGPIOPinWrite(LED3_PORT, LED3_PIN, 0x00); // 点亮LEDGPIOPinWrite(LED4_PORT, LED4_PIN, 0x00); // 点亮LEDGPIOPinWrite(LED5_PORT, LED5_PIN, 0x00); // 点亮LEDGPIOPinWrite(LED6_PORT, LED6_PIN, 0x00); // 点亮LEDGPIOPinWrite(LED7_PORT, LED7_PIN, 0xFF); // 熄灭LEDGPIOPinWrite(LED8_PORT, LED8_PIN, 0xFF); // 熄灭LED musicPlay(9);SysCtlDelay(40 * (TheSysClock / 3000));write_com(0x82); //设定上排的显示位置 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(72); //整型数据转换为ASC2//l write_data(49); //整型数据转换为ASC2 //6 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格SysCtlDelay(100 * (TheSysClock / 4000)); buzzerQuiet(); break;case 6:GPIOPinWrite(LED1_PORT, LED1_PIN, 0x00); GPIOPinWrite(LED2_PORT,LED2_PIN, 0x00); GPIOPinWrite(LED3_PORT, LED3_PIN, 0x00); GPIOPinWrite(LED4_PORT, LED4_PIN, 0x00); GPIOPinWrite(LED5_PORT,LED5_PIN, 0x00); GPIOPinWrite(LED6_PORT, LED6_PIN, 0x00); GPIOPinWrite(LED7_PORT, LED7_PIN, 0xFF); GPIOPinWrite(LED8_PORT, LED8_PIN, 0xFF); musicPlay(10);SysCtlDelay(40 * (TheSysClock / 3000));write_com(0x82); //设定上排的显示位置 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格// 点亮LED // 点亮LED // 点亮LED // 点亮LED // 点亮LED // 点亮LED // 熄灭LED // 熄灭LEDwrite_data(32); // 空格write_data(72); //整型数据转换为ASC2//l write_data(50); //整型数据转换为ASC2 //6 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格SysCtlDelay(100 * (TheSysClock / 4000)); buzzerQuiet(); break;case 9:GPIOPinWrite(LED1_PORT, LED1_PIN, 0x00); GPIOPinWrite(LED2_PORT,LED2_PIN, 0x00); GPIOPinWrite(LED3_PORT, LED3_PIN, 0x00); GPIOPinWrite(LED4_PORT, LED4_PIN, 0x00); GPIOPinWrite(LED5_PORT,LED5_PIN, 0x00); GPIOPinWrite(LED6_PORT, LED6_PIN, 0x00); GPIOPinWrite(LED7_PORT, LED7_PIN, 0x00); GPIOPinWrite(LED8_PORT,LED8_PIN, 0xFF); musicPlay(11);SysCtlDelay(40 * (TheSysClock / 3000));write_com(0x82); //设定上排的显示位置 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(72); //整型数据转换为ASC2//l write_data(51); //整型数据转换为ASC2 //6 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格SysCtlDelay(100 * (TheSysClock / 4000)); buzzerQuiet(); break;case 13:GPIOPinWrite(LED1_PORT, LED1_PIN, 0x00); // 点亮LED // 点亮LED // 点亮LED // 点亮LED // 点亮LED // 点亮LED // 点亮LED // 熄灭LED // 点亮LED GPIOPinWrite(LED2_PORT, LED2_PIN, 0x00); // 点亮LEDGPIOPinWrite(LED3_PORT, LED3_PIN, 0x00); GPIOPinWrite(LED4_PORT,LED4_PIN, 0x00); GPIOPinWrite(LED5_PORT, LED5_PIN, 0x00); GPIOPinWrite(LED6_PORT, LED6_PIN, 0x00);// 点亮LED // 点亮LED // 点亮LED // 点亮LEDGPIOPinWrite(LED7_PORT, LED7_PIN, 0x00); // 点亮LEDGPIOPinWrite(LED8_PORT, LED8_PIN, 0xFF); // 熄灭LED musicPlay(12); SysCtlDelay(40 * (TheSysClock / 3000));write_com(0x82); //设定上排的显示位置 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格write_data(72); //整型数据转换为ASC2//l write_data(52); //整型数据转换为ASC2 //6 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格SysCtlDelay(100 * (TheSysClock / 4000)); buzzerQuiet(); break;case 0:GPIOPinWrite(LED1_PORT, LED1_PIN, 0x00); GPIOPinWrite(LED2_PORT,LED2_PIN, 0x00); GPIOPinWrite(LED3_PORT, LED3_PIN, 0x00); GPIOPinWrite(LED4_PORT, LED4_PIN, 0x00); GPIOPinWrite(LED5_PORT,LED5_PIN, 0x00); GPIOPinWrite(LED6_PORT, LED6_PIN, 0x00); GPIOPinWrite(LED7_PORT, LED7_PIN, 0x00); GPIOPinWrite(LED8_PORT,LED8_PIN, 0x00); musicPlay(13);SysCtlDelay(40 * (TheSysClock / 3000));write_com(0x82); //设定上排的显示位置 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格// 点亮LED // 点亮LED // 点亮LED // 点亮LED // 点亮LED // 点亮LED // 点亮LED // 点亮LEDwrite_data(72); //整型数据转换为ASC2//l write_data(53); //整型数据转换为ASC2 //6 write_data(32); // 空格 write_data(32); // 空格 write_data(32);// 空格write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格SysCtlDelay(100 * (TheSysClock / 4000)); buzzerQuiet(); break;case 4:GPIOPinWrite(LED1_PORT, LED1_PIN, 0x00); GPIOPinWrite(LED2_PORT, LED2_PIN, 0x00); GPIOPinWrite(LED3_PORT, LED3_PIN, 0x00); GPIOPinWrite(LED4_PORT, LED4_PIN, 0x00); GPIOPinWrite(LED5_PORT, LED5_PIN, 0x00); GPIOPinWrite(LED6_PORT, LED6_PIN, 0x00); GPIOPinWrite(LED7_PORT, LED7_PIN, 0x00); GPIOPinWrite(LED8_PORT, LED8_PIN, 0x00); musicPlay(14);SysCtlDelay(40 * (TheSysClock / 3000)); write_com(0x82); //设定上排的显示位置write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格 write_data(32); // 空格write_data(72); //整型数据转换为ASC2//l write_data(54); //整型数据转换为ASC2 //6 write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格SysCtlDelay(100 * (TheSysClock / 4000)); buzzerQuiet(); break;//barbers 理发师case 18:write_com(0x82); //设定上排的显示位置// 点亮LED // 点亮LED // 点亮LED // 点亮LED // 点亮LED // 点亮LED // 点亮LED // 点亮LEDwrite_data(32); // 空格write_data(32); // 空格write_data(32); // 空格write_data(66); // Bwrite_data(97); // awrite_data(114); // rwrite_data(66); // bwrite_data(101); // ewrite_data(114); // rwrite_data(115); // swrite_data(32); // 空格write_data(32); // 空格write_data(32); // 空格SysCtlDelay(100 * (TheSysClock / 4000)); musicPlayyyy();SysCtlDelay(40 * (TheSysClock / 3000)); buzzerQuiet();break;//The Butterfly 化蝶case 16:write_com(0x82); //设定上排的显示位置 write_data(84); // Twrite_data(104); // hwrite_data(101); // ewrite_data(32); // 空格write_data(66); // Bwrite_data(117); // uwrite_data(116); // twrite_data(116); // twrite_data(101); // ewrite_data(114); // rwrite_data(102); // fwrite_data(108); // lwrite_data(121); // ySysCtlDelay(100 * (TheSysClock / 4000)); //SysCtlDelay(800 * (TheSysClock / 4000)); musicPlayy();SysCtlDelay(40 * (TheSysClock / 3000)); buzzerQuiet();break;//A penny 一分钱case 17:write_com(0x82); //设定上排的显示位置 write_data(32); // 空格write_data(32); // 空格write_data(32); // 空格write_data(65); // Awrite_data(32); // 空格write_data(112); // pwrite_data(101); // ewrite_data(110); // n}}}write_data(110); // n write_data(121); // y write_data(32); // 空格 write_data(32); // 空格 write_data(32); // 空格 SysCtlDelay(100 * (TheSysClock / 4000)); musicPlayyy(); SysCtlDelay(40 * (TheSysClock / 3000)); buzzerQuiet(); break;。