流水灯小程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
流水灯小程序
#include
void delay() //延时函数,这里延时100ms
{
int i,j;
for(i=0;i<100;i++)
{
for(j=0;j<2242;j++){} //j循环一次大概1ms
}
}
void main()
{ //这里看LED原理图LPC_IOCON->JTAG_TMS_PIO1_0=0x01;//定义p1.0引脚为输出
LPC_IOCON->JTAG_TDO_PIO1_1=0x01;//定义p1.1引脚为输出
LPC_IOCON->JTAG_nTRST_PIO1_2=0x01;//定义p1.2引脚为输出
//p1.9引脚默认为输出,不用写
LPC_GPIO1->DIR=(1<<0)+(1<<1)+(1<<2)+(1<<9);
LPC_GPIO1->DA TA=(1<<0)|(1<<1)|(1<<2)|(1<<9); //D1、D2、D3、D4灯全灭
while(1)
{
LPC_GPIO1->DA TA&=~(1<<0);//D1灯亮
delay(); //调用延时函数
LPC_GPIO1->DA TA|=(1<<0);//D1灯灭
delay();
LPC_GPIO1->DA TA&=~(1<<1);//D2灯亮
delay();
LPC_GPIO1->DA TA|=(1<<1);//D2灯灭
delay();
LPC_GPIO1->DA TA&=~(1<<2);//D3灯亮
delay();
LPC_GPIO1->DA TA|=(1<<2);//D3灯灭
delay();
LPC_GPIO1->DA TA&=~(1<<9);//D4灯亮
delay();
LPC_GPIO1->DA TA|=(1<<9);//D4灯灭
delay();
}
}
显示1234
# include
int main(void)
{
const int table[4]={0x06,0x5b,0x4f,0x66,};//定义一个数组
LPC_IOCON->JTAG_TDI_PIO0_11=0x01;//定义p1.1为输出
//LPC_IOCON->PIO3_4=0x01; //默认为输出
//LPC_IOCON->PIO3_5=0x01; //默认为输出
LPC_GPIO3->DIR|=(1<<4)|(1<<5);//P3.4与P3.5输出
LPC_GPIO0->DIR|=(1<<3)|(1<<11); //定义P0.3与P0.11为输
出
LPC_GPIO2->DIR|=0XFF+(1<<11); //定义P2.0~P2.7和
P2.11为输出
//这是将四个数码管的引脚都设置为输出
LPC_GPIO2->DA TA|=0xff; //定义P2.0~P2.7输出高电平
LPC_GPIO0->DA TA|=1<<3; //定义P0.3输出为高电平
LPC_GPIO2->DA TA|=(1<<11); //定义P2.11输出高电平
LPC_GPIO3->DA TA|=(1<<4); //定义P3.4输出高电平
LPC_GPIO3->DA TA|=(1<<5); //定义P3.5输出高电平
while(1)
{
LPC_GPIO0->DA TA&=~(1<<11); //定义P0.11输出
低电平,导通
LPC_GPIO2->DA TA&=~table[0];//调用一个数组,因为为
公共用到的引脚,所以要设置它为一开一关的形式
LPC_GPIO0->DA TA|=(1<<11); //定义P0.11输出高电
平,息灭
LPC_GPIO2->DA TA|=0xff; //定义P2.0~2.7输出高电
平,截止
LPC_GPIO2->DA TA&=~(1<<11);
LPC_GPIO2->DA TA&=~table[1];
LPC_GPIO2->DA TA|=(1<<11);
LPC_GPIO2->DA TA|=0xff;
LPC_GPIO3->DA TA&=~(1<<4);
LPC_GPIO2->DA TA&=~table[2];
LPC_GPIO3->DA TA|=(1<<4);
LPC_GPIO2->DA TA|=0xff;
LPC_GPIO3->DA TA&=~(1<<5);
LPC_GPIO2->DA TA&=~table[3];
LPC_GPIO3->DA TA|=(1<<5);
LPC_GPIO2->DA TA|=0xff;
}
}
显示1的程序
#include
int main(void)
{
const int table[1]={0xff};//定义一个数组
LPC_IOCON->JTAG_TDO_PIO1_1=0x01;//定义p1.1为输出
LPC_GPIO0->DIR|=1<<3; //定义P0.3为输出
LPC_GPIO0->DIR|=1<<11; //定义P0.11为输出
LPC_GPIO2->DIR=0XFF; //定义P2.0~P2.7为输出
LPC_GPIO2->DA TA=0xff; //定义P2.0~P2.7输出高电平LPC_GPIO0->DA TA|=1<<3; //定义P0.3输出为高电平
int i;
for(i=0;i<10;i++)
{
LPC_GPIO0->DA TA&=~(1<<11);
LPC_GPIO2->DA TA&=~table[0];//调用一个数组
//int i=1024;
}
}
#include"lpc11xx.h"
int main(void)
{
#define LE_1 LPC_GPIO0->DA TA|=(1<<3) //74LS573
#define LE_0 LPC_GPIO0->DA TA&=~(1<<3)
//74LS573
#define LED0_ON LPC_GPIO0->DATA&=~(1<<11)
#define LED0_OFF LPC_GPIO0->DATA|=(1<<11)
#define LED1_ON LPC_GPIO2->DATA&=~(1<<11)
#define LED1_OFF LPC_GPIO2->DATA|=(1<<11)
#define LED2_ON LPC_GPIO3->DATA&=~(1<<4)
#define LED2_OFF LPC_GPIO3->DATA|=(1<<4)
#define LED3_ON LPC_GPIO3->DATA&=~(1<<5)
#define LED3_OFF LPC_GPIO3->DATA|=(1<<5)
const uint8_t
table[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
0x0 };
LPC_IOCON->JTAG_TDI_PIO0_11|=0x01; //set to IO
LPC_GPIO0->DIR|=((1<<3)|(1<<11));
LPC_GPIO2->DIR|= 0xff +(1<<11);//0x0000Fff;
LPC_GPIO3->DIR=0xff;
LE_1;
while(1)
{
int i;
for(i=0;i<4;i++)
{
LED0_OFF; LED1_OFF;
LED2_OFF; LED3_OFF;
char ch = table[4];
LPC_GPIO2->DA TA = ~ ch;
switch(i)
{
case 0: LED0_ON; break;
case 1: LED1_ON;break;
case 2: LED2_ON; break;
case 3: LED3_ON;break;
}
}
// CoTickDelay(1);
}
}
/*****头文件与宏定义*****/
#include"lpc11xx.h"
#define uint unsigned int
#define uchar unsigned char
#define on LPC_GPIO2->DA TA|=0x00
/*****延时函数*****/
void delay()
{
int i,j;
for(i=1;i<20;i++)
for(j=1;j<1141;j++);
}
/*****数码管显示函数*****/
void show_number(num)//输入不大于四位整数
{
LPC_IOCON->JTAG_TDI_PIO0_11|=0x01; //set to IO
LPC_GPIO0->DIR|=(1<<3)|(1<<11); //set P0_3 to input
LPC_GPIO2->DIR|=0xff|(1<<11); //set P2_0~P2_7 to input
LPC_GPIO3->DIR|=(1<<5)|(1<<4); //set P3_5 and P3_4 to
input
LPC_GPIO0->DA TA|=(1<<3); //P0_3输出高电平驱动