本帖最后由 xiaoweixu 于 2012-1-21 19:57 编辑
收到助学板好久了,最近终于有时间学习MO了本人菜鸟一个,看过无数帖子和例程之后终于能写一些简单的程序烧写到芯片里运行了。要过年了,自己做了个彩灯的简单程序。
如何建立工程论坛里好多教程,这里就不写了,只贴一下代码:#include <stdio.h>
#include "NUC1xx.h"
#include "DrvGPIO.h"
#include "DrvSYS.h"
int main (void)
{
int i=0;
int on=0;
int dn=0;
UNLOCKREG();
SYSCLK->WRCON.XTL12M_EN = 1;
DrvSYS_Delay(5000);
DrvGPIO_Open(E_GPA, 2, E_IO_OUTPUT); //绿灯
DrvGPIO_Open(E_GPA, 3, E_IO_OUTPUT); //黄灯
DrvGPIO_Open(E_GPA, 4, E_IO_OUTPUT); //红灯
while(1)
{
for(i=0;i<4;i++) // 红灯闪5秒,频率1Hz
{
DrvGPIO_SetPortBits(E_GPA,16);
DrvSYS_Delay(500000);
DrvGPIO_ClrBit(E_GPA,4);
DrvSYS_Delay(500000);
}
for(i=0;i<5;i++) // 红灯闪3秒,频率2Hz
{
DrvGPIO_SetPortBits(E_GPA,16);
DrvSYS_Delay(250000);
DrvGPIO_ClrBit(E_GPA,4);
DrvSYS_Delay(250000);
}
for(i=0;i<11;i++) // 红灯闪3秒,频率4Hz
{
DrvGPIO_SetPortBits(E_GPA,16);
DrvSYS_Delay(125000);
DrvGPIO_ClrBit(E_GPA,4);
DrvSYS_Delay(125000);
}
DrvGPIO_SetBit(E_GPA,4); // 红灯长亮
/////////////////////////////////////////////////////////////////////
for(i=0;i<4;i++) // 黄灯闪5秒,频率1Hz
{
DrvGPIO_SetBit(E_GPA,3);
DrvSYS_Delay(500000);
DrvGPIO_ClrBit(E_GPA,3);
DrvSYS_Delay(500000);
}
for(i=0;i<5;i++) // 黄灯闪3秒,频率2Hz
{
DrvGPIO_SetBit(E_GPA,3);
DrvSYS_Delay(250000);
DrvGPIO_ClrBit(E_GPA,3);
DrvSYS_Delay(250000);
}
for(i=0;i<11;i++) //黄灯闪3秒,频率4Hz
{
DrvGPIO_SetBit(E_GPA,3);
DrvSYS_Delay(125000);
DrvGPIO_ClrBit(E_GPA,3);
DrvSYS_Delay(125000);
}
DrvGPIO_SetBit(E_GPA,3); // 黄灯长亮
DrvGPIO_SetBit(E_GPA,2); //绿灯长亮
DrvSYS_Delay(8000000);
///////////////////////////////
for(i=0;i<999;i++) // 黄灯2秒渐灭
{
DrvGPIO_SetBit(E_GPA,3);
on=2000-2*i ;
DrvSYS_Delay(on);
DrvGPIO_ClrBit(E_GPA,3);
dn=2*i+1;
DrvSYS_Delay(dn);
}
////////////////////////////////////
for(i=0;i<999;i++) // 红灯2秒渐灭
{
DrvGPIO_SetBit(E_GPA,4);
on=2000-2*i ;
DrvSYS_Delay(on);
DrvGPIO_ClrBit(E_GPA,4);
dn=2*i+1;
DrvSYS_Delay(dn);
}
////////////////////////////////////
DrvGPIO_ClrBit(E_GPA,2); //灯全灭
DrvSYS_Delay(8000000);
DrvSYS_Delay(8000000);
DrvGPIO_SetBit(E_GPA,2); //绿灯亮
DrvSYS_Delay(5000000);
///////////////////////////
for(i=0;i<999;i++) // 黄灯2秒渐亮
{
DrvGPIO_SetBit(E_GPA,3);
on=2*i+1;
DrvSYS_Delay(on);
DrvGPIO_ClrBit(E_GPA,3);
dn=2000-2*i ;
DrvSYS_Delay(dn);
}
DrvGPIO_SetBit(E_GPA,3);
////////////////////////////////////
for(i=0;i<999;i++) // 红灯2秒渐亮
{
DrvGPIO_SetBit(E_GPA,4);
on=2*i+1;
DrvSYS_Delay(on);
DrvGPIO_ClrBit(E_GPA,4);
dn=2000-2*i ;
DrvSYS_Delay(dn);
}
DrvGPIO_SetBit(E_GPA,4); //灯全亮
DrvSYS_Delay(5000000);
DrvSYS_Delay(5000000);
}
}
彩灯.rar
(2.1 MB)
|