在超级终端输入:
“LEDI”点亮1号LED 灯;
“LED2”点亮2号LED灯;
“LED3”点亮3号LED 灯;
“LED4”点亮4号LED灯;
“LED5”蜂鸣器响一次。
说明:
(1)在键盘上输入的字符需要在超级终端上显示;
(2)左边为1号LED灯,右边为4号LED灯;
(3)完成实验记一次实验平时成绩;
(4)写一次实验报告,在报告中体现所完成实验的代码;
(5)蜂鸣器响要将JP9 短接;
第一步打开超级终端。
选择每秒位数为115200,选择数据流控制为无。
第二步打开驱动,并进行复位。
第三步打开项目
在main.c中编写如下程序。
#include "config.h"
// 定义LED控制口 (输出高电平时点亮LED)
#define LED1_CON (1<<11) /* GPE11口 */
#define LED2_CON (1<<12) /* GPE12口 */
#define LED3_CON (1<<4) /* GPH4口 */
#define LED4_CON (1<<6) /* GPH6口 */
// 定义蜂鸣器控制口
#define BEEP (1<<10) /* GPH10口 */
#define BEEP_MASK (~BEEP)
void DelayNS(uint32 dly)
{
uint32 i;
for(; dly>0; dly--)
for(i=0; i<50000; i++);
}
void LED_DispAllOff(void)
{
rGPEDAT = rGPEDAT & (~(0x03<<11));
rGPHDAT = rGPHDAT & (~(0x05<<4));
}
void RunBeep(void)
{
rGPHDAT = rGPHDAT & BEEP_MASK; // BEEP = 0
DelayNS(300);
rGPHDAT = rGPHDAT | BEEP; // BEEP = 1
DelayNS(300);
}
uint8 g_getch = 0;
int main(void)
{
int i;
// 初始化I/O
rGPECON = (rGPECON & (~(0x0F<<22))) | (0x05<<22); // rGPECON[25:22] = 0101b,设置GPE11、GPE12为GPIO输出模式
rGPHCON = (rGPHCON & (~(0x33<<8))) | (0x11<<8); // rGPHCON[13:8] = 01xx01b,设置GPH4、GPH6为GPIO输出模式
rGPHCON = (rGPHCON & (~(0x03<<20))) | (0x01<<20); // rGPHCON[21:20] = 01b,设置GPH10为GPIO输出模式
UART_Select(0); // 选择UART0
UART_Init(); // 初始化UART0
for(i=0; i<1; i++)
{
UART_SendStr("Hello World!\n");
}
while(1)
{
//将灯熄灭
LED_DispAllOff();
DelayNS(300);
g_getch = UART_GetKey();
if(g_getch == 0x0D)
{
UART_SendByte('\r');
UART_SendByte('\n');
}
else
{
UART_SendByte(g_getch);
}
if(g_getch==0x4C)
{
g_getch = UART_GetKey();
UART_SendByte(g_getch);
if(g_getch==0x45)
{
g_getch = UART_GetKey();
UART_SendByte(g_getch);
if(g_getch==0x44)
{
g_getch = UART_GetKey();
UART_SendByte(g_getch);
if(g_getch==0x31)//判断是否为LED1
{
rGPEDAT = rGPEDAT | (0x01<<11);
} else if (g_getch==0x32)//判断是否为LED2
{
rGPEDAT = rGPEDAT | (0x02<<11);
} else if (g_getch==0x33)//判断是否为LED3
{
rGPHDAT = rGPHDAT | (0x01<<4);
} else if (g_getch==0x34)//判断是否为LED4
{
rGPHDAT = rGPHDAT | (0x04<<4);
} else if (g_getch==0x35)//判断是否为LED5
{
RunBeep();
}
}
}
}
DelayNS(300);
}
return(0);
}
首先Remove Object Code,然后编译链接,运行程序。
成功进入程序的main函数中。
查看超级终端,并输入LED1,显示如下。
输入LED3,显示如下。
输入LED4,显示如下。
输入LED5试验箱会发出蜂鸣。