相册里有板子的原理图。
跑马灯实验:
程序:
//适合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];
}
}
上一篇:PIC入门2,看门狗和PWM波产生实验
下一篇:C51入门2,定时器和中断应用
推荐阅读最新更新时间:2024-03-16 15:18