实验原理ARM的P0.1口接按钮,再通过P0.0控制LED的亮、灭。本实验的电路图以及实验均在上一个实验基础之上修改。其中电路图只多了一个开关。
Proteus仿真电路图
实验步骤略(与上一实验相同)
C语言源程序/******************************************************************************/
/* */
/* led.c: 用ARM实现开关控制led并亮灭,还是有点浪费…… */
/* */
/******************************************************************************/
#include
#define P0_1 0x02; /*P0.1*/
/*******************************************************************************
**函数名: delay()
**描述: 软件延时
********************************************************************************/
void delay (void) {
unsigned volatile long i;
for(i=0;i<10000;i++)
;
}
int main(void) {
int p01State;
PINSEL0 = 0; /*设置引脚为GPIO */
IO0DIR = 0x000001; /*将P0.0设置为输出 */
IO0SET = 0x000001; /*将P0.0置1,也就是让led灭 */
while (1) {
p01State = IO0PIN&P0_1; /*读取开关状态*/
if(p01State == 0){
IO0CLR = 0x000001;
delay();
}
else{
IO0SET = 0x000001;
delay();
}
}
}