当前位置:首页 > 单片机 > 单片机
[导读]我使用的是爱晶3ePIC实验板,以下都是自己写的程序,只是为了纪念和学习交流使用,别无它意。在我的相册里有板子的原理图。跑马灯实验:程序://适合3epic实验板,是跑马灯程序 #include unsigned int i; //主函

我使用的是爱晶3ePIC实验板,以下都是自己写的程序,只是为了纪念和学习交流使用,别无它意。在我的

相册里有板子的原理图。

跑马灯实验:

程序:

//适合3epic实验板,是跑马灯程序
#include
unsigned int i;
//主函数
main()
{
TRISD=0X00;//D口为输出模式,接LED的正极
TRISE=0X00;//E口为输出输出模式,LED使能,接LED的负极
while(1)
{
PORTE=0X00;
PORTD=0X01;//点亮第一个LED
for(i=0;i<50000;i++);//延时

PORTD=0X02;//点亮第二个LED
for(i=0;i<50000;i++);

PORTD=0X04;
for(i=0;i<50000;i++);

PORTD=0X08;
for(i=0;i<50000;i++);

PORTD=0X10;
for(i=0;i<50000;i++);

PORTD=0X20;
for(i=0;i<50000;i++);

PORTD=0X40;
for(i=0;i<50000;i++);

PORTD=0X80;
for(i=0;i<50000;i++);

}
}
数码显示实验:

程序:

//适合3epic实验板,是LED显示数据实验
#include
#include
volatile unsigned char data;
static volatile int table[]={
0X3F,0X06,0X5B,0X4F,
0X66,0X6D,0X7D,0X07,
0X7F,0X6F,0X77,0X7C,
0X39,0X5E,0X79,0X71};
volatile unsigned char data;
//主函数
main()
{
unsigned i,a;
TRISB=0x00;//段选控制为输出
TRISD=0x00;//位选控制位输出
while(1)
{
for(i=0;i<16;i++)
{
PORTB=0xE0;//段选
data=table[i];
PORTD=data;//位选
for(a=0;a<50000;a++);//延时

}
}
}

单键控制LED灯。

程序:

//适合3ePIC实验板,单按键控制一个LED灯
#include
#include
//系统初始化
void initial()
{
TRISE=0x00;//E口为输出
TRISB=0xFF;//B口为输入
TRISD=0x00;//D口为输出
}

//主函数
main()
{
initial();
PORTE=0x00;//控制LED灯的负极
while (1)
{
if(RB0==0)//如果sw7按下,则LED0亮
PORTD=0x01;
else
PORTD=0x00;//没有按键按下,LED0灭
}
}

键盘控制数码管实验:

因为没有加去键抖动,所以编的不是很好,事情一忙就没有修改。

程序:

//适合3EPIC实验板,键盘控制数码管
#include
#include

unsigned int i;
unsigned char j;
//初始化
void initial()
{
TRISB=0x1E;
TRISD=0x00;
j=0;
}
//延时
void DELAY()
{
for(i=0;i<50000;i++)
continue;
}
//主函数
main()
{
static int table[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71};

initial();
RB5=0;
while (1)
{

if(RB1==0)
{
DELAY();
j=1;
}
if(RB2==0)
{
DELAY();
j=2;
}
if(RB3==0)
{
DELAY();
j=3;
}
if(RB4==0)
{
DELAY();
j=4;
}

PORTD=table[j];

}
}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭