📄 main.c
字号:
/* main.c */
/*
功能:当K1-K4某个键按下时,LED1-LED4中相应的灯点亮
*/
/* F Port Register*/
#define GPFCON (*(volatile unsigned *)0x56000050)
#define GPFDAT (*(volatile unsigned *)0x56000054)
#define GPFUP (*(volatile unsigned *)0x56000058)
/* G Port Register*/
#define GPGCON (*(volatile unsigned *)0x56000060)
#define GPGDAT (*(volatile unsigned *)0x56000064)
#define GPGUP (*(volatile unsigned *)0x56000068)
/*
LED1-4对应GPF4-7
*/
#define GPF4_OUT (1<<(4*2))
#define GPF5_OUT (1<<(5*2))
#define GPF6_OUT (1<<(6*2))
#define GPF7_OUT (1<<(7*2))
/*
K1对应GPF0 K2对应GPF2
K3对应GPG3 K4对应GPG11
*/
#define GPF0_IN ~(3<<(0*2))
#define GPF2_IN ~(3<<(2*2))
#define GPG3_IN ~(3<<(3*2))
#define GPG11_IN ~(3<<(11*2))
int Main(void)
{
int tmp = 0;
/* Configure I/O Port */
/* GPF4-7 配置为输出口,用于LED显示。GPF0/2和GPG3/11 配置为输入口,
根据从引脚读出的数据判断是哪个小键盘按下,并控制相应LED灯的显示 */
GPFCON = (GPFCON | GPF4_OUT | GPF5_OUT | GPF6_OUT | GPF7_OUT) & GPF0_IN & GPF2_IN ;/* 0x5500*/
GPGCON &= GPG3_IN & GPG11_IN ; /* 0xE73F 0010 */
// GPFDAT = 0xff; /* 8口 */
// GPGDAT = 0xffff; /* 16口 */
while(1)
{
tmp = GPFDAT ;
GPFDAT = (tmp & 0x01)<<4 | (tmp & 0x04)<<3 \
| (GPGDAT & 0x0008)<<3 | (GPGDAT & 0x0800)>>4 ;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -