本帖最后由 yy2bbs 于 2011-12-11 20:29 编辑
项目文件:
yy2bbs_4leb.rar
(22.45 KB)
引用文件:
Drivers.rar
(173.64 KB)
引用文件只上传一次,以后的笔记将不再上传引用文件(库文件)
如果有什么地方解释得不对的,请指正,谢谢!#include <stdio.h> //加载C语言标准输入输出函数库
#include "CMSIS\DeviceSupport\NUC1xx.h" //加载NUC120宏文件
#include "Driver\DrvGPIO.h" //加载GPIO驱动函数库
/* 自定义延时子程序 */
void delay_loop(void)
{
uint32_t j;
for(j=0;j<60000;j++);
for(j=0;j<60000;j++);
for(j=0;j<60000;j++);
for(j=0;j<60000;j++);
}
/* 自定义延时子程序结束 */
/* 主函数(程序入口函数) */
int main (void)
{
uint8_t num;//定义当前操作的引脚变量
/* 定义系统运行晶震频率为12Mhz SYSCLK =>12Mhz*/
UNLOCKREG();
SYSCLK->WRCON.XTL12M_EN = 1;
/* 设置4个灯用的管脚的运行方式为 输出模式 */
/* 助学板的4个灯放在A区(我自已这样认为的)的2,3,4,5 脚 */
DrvGPIO_Open(E_GPA,2, E_IO_OUTPUT);
DrvGPIO_Open(E_GPA,3, E_IO_OUTPUT);
DrvGPIO_Open(E_GPA,4, E_IO_OUTPUT);
DrvGPIO_Open(E_GPA,5, E_IO_OUTPUT);
//Set_System();
num = 2;//初始化当前灯为1号灯(A区第2脚)
DrvGPIO_ClrBit(E_GPA,num); //初始化第一个灯为点亮状态
delay_loop(); //延时操作(点亮的时间间隔)
while(1)
{
DrvGPIO_SetBit(E_GPA,num); //灭掉当前的灯
if(num>4) //判断当前的灯是否为第四个灯,num=5为第四个灯 >4
num=2; //如果是第四个灯则转到第1个灯,灯脚为2
else
num++; //如果不是第四个灯则灯的脚编号+1(也就是下一个灯)
DrvGPIO_ClrBit(E_GPA,num); //点亮下一个灯
delay_loop(); //延时操作(点亮的时间间隔)
}
}
/* 主函数(程序入口函数)结束 */
|