📄 main.c
字号:
/****************************************Copyright (c)**************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: main.c
** Last modified Date: 2004-09-16
** Last Version: 1.0
** Descriptions: The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by: Chenmingji
** Created date: 2004-09-16
** Version: 1.0
** Descriptions: The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "config.h"
const uint32 LED = 0xff<<18;
const uint32 HONG = 0x0f;
const uint32 LIE = 0x0f<<4;
const uint32 BEEN = 0x01<<8;
/********************************************************************************************************/
int main(void)
{
uint32 temp;
uint32 key;
uint32 i,j;
key = 0xf0;
PINSEL0 = 0X00000000;
PINSEL2 = PINSEL2 & (~0X08);
IO0DIR = LIE;
IO0DIR = BEEN;
IO1DIR = LED;
IO0SET = BEEN;
IO1SET = LED;
while(1)
{
IO0SET = LIE; //列输出高电平
IO0CLR = LIE; //列输出的电平
while((IO0PIN & HONG)==0); //等待按键按下
if((IO0PIN & HONG)!=0) //假如有按键按下,执行下面程序
{
for(i=100;i>0;i--) //按键去抖
for(j=2000;j>0;j--);
if((IO0PIN & HONG)==0)
return; //如果是干扰,返回;
else
{
IO0SET = LIE; //列,第一列输出为低
IO0CLR = 1<<4;
temp = IO0PIN & HONG; //检查行的输入电平
if(temp!=0)
switch(temp)
{
case 0x0e:
key=0x88;
break;
case 0x0d:
key=0x80;
break;
case 0x0b:
key=0x08;
break;
case 0x07:
key=0x00;
break;
}
IO0SET = LIE; //列,第二列输出为低
IO0CLR = 1<<5;
temp = IO0PIN & HONG; //检查行的输入电平
if(temp!=0)
switch(temp)
{
case 0x0e:
key=0x90;
break;
case 0x0d:
key=0x81;
break;
case 0x0b:
key=0x10;
break;
case 0x07:
key=0x01;
break;
}
IO0SET = LIE; //列,第三列输出为低
IO0CLR = 1<<6;
temp = IO0PIN & HONG; //检查行的输入电平
if(temp!=0)
switch(temp)
{
case 0x0e:
key=0xa0;
break;
case 0x0d:
key=0x82;
break;
case 0x0b:
key=0x20;
break;
case 0x07:
key=0x02;
break;
}
IO0SET = LIE; //列,第四列输出为低
IO0CLR = 1<<7;
temp = IO0PIN & HONG; //检查行的输入电平
if(temp!=0)
switch(temp)
{
case 0x0e:
key=0xc0;
break;
case 0x0d:
key=0x84;
break;
case 0x0b:
key=0x40;
break;
case 0x07:
key=0x04;
break;
}
}
key = 0x31; //检测程序的运行情况
}
key = 0xcc; //检测程序的运行情况
break;
}
while((IO0PIN & HONG)!=0); //等待按键松开
IO1SET = LED; //指示灯显示
for(i=500;i>0;i--)
for(j=100;j>0;j--);
IO1CLR = LED & (key<<18);
IO0SET = BEEN; //蜂鸣器蜂鸣
for(i=500;i>0;i--)
for(j=100;j>0;j--);
IO0CLR = BEEN;
for(i=800;i>0;i--)
for(j=10000;j>0;j--);
IO0SET = BEEN;
return 0;
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -