首先在此给大家拜年了,祝大家新年快乐,身体健康,工作顺利,阖家欢乐!
收到板子挺长时间了,一直在忙找工作、课设的事,也没有放下心来去学,现在放假了终于有时间研究研究了
以前用的都是PIC单片机,一直在用汇编写程序,C也是很早学的了,都忘得差不多了,用着不是很顺手,看了看入门手册自己试着写了一个简单的,还请大家指点
PS:灯自己用面包板简单做了一下,本意是三个字母H o t,也不知道大家能不能看出来,后面上图,本来有视频,不过好像权限不够传不了,还请大家见谅哈
下面是程序代码:
#include <stdio.h>
#include "NUC1xx.h"
#include "DrvGPIO.h"
#include "DrvSYS.h"
//GPA2控制黄灯,GPA3控制红灯,GPA4控制绿灯。均输出1灯亮,输出0灯灭。
int main (void)
{
unsigned char i=0;
UNLOCKREG();
SYSCLK->PWRCON.XTL12M_EN = 1;
DrvSYS_Delay(5000);
DrvGPIO_Open(E_GPA, 2, E_IO_OUTPUT); // 设置GPA2-GPA4端口为输出模式
DrvGPIO_Open(E_GPA, 3, E_IO_OUTPUT);
DrvGPIO_Open(E_GPA, 4, E_IO_OUTPUT);
DrvGPIO_ClrBit(E_GPA, 2); //GPA2-GPA4端口置0
DrvGPIO_ClrBit(E_GPA, 3);
DrvGPIO_ClrBit(E_GPA, 4);
while(1)
{
DrvGPIO_SetBit(E_GPA, 2); //单黄灯亮
DrvSYS_Delay(20000000);
DrvGPIO_ClrBit(E_GPA, 2);
DrvSYS_Delay(500000);
DrvGPIO_SetBit(E_GPA, 3); //单红灯亮
DrvSYS_Delay(20000000);
DrvGPIO_ClrBit(E_GPA, 3);
DrvSYS_Delay(500000);
DrvGPIO_SetBit(E_GPA, 4); //单绿灯亮
DrvSYS_Delay(20000000);
DrvGPIO_ClrBit(E_GPA, 4);
DrvSYS_Delay(500000);
DrvGPIO_SetBit(E_GPA, 2); //黄红绿一起亮
DrvGPIO_SetBit(E_GPA, 3);
DrvGPIO_SetBit(E_GPA, 4);
DrvSYS_Delay(20000000);
DrvGPIO_ClrBit(E_GPA, 2);
DrvGPIO_ClrBit(E_GPA, 3);
DrvGPIO_ClrBit(E_GPA, 4);
while(i<20) //黄红绿一起闪烁
{
DrvGPIO_SetBit(E_GPA, 2);
DrvGPIO_SetBit(E_GPA, 3);
DrvGPIO_SetBit(E_GPA, 4);
DrvSYS_Delay(50000);
DrvGPIO_ClrBit(E_GPA, 2);
DrvGPIO_ClrBit(E_GPA, 3);
DrvGPIO_ClrBit(E_GPA, 4);
DrvSYS_Delay(50000);
i++;
}
i=0;
}
}
|