标题:
单片机键控Led程序+仿真
[打印本页]
作者:
丁宇12138
时间:
2017-10-13 12:56
标题:
单片机键控Led程序+仿真
自己做的51单片机键控Led试验,有喜欢的可以互相交流。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(17.55 KB, 下载次数: 50)
下载附件
2017-10-13 16:57 上传
0.png
(42.76 KB, 下载次数: 59)
下载附件
2017-10-13 16:57 上传
单片机源程序如下:
#include<reg51.h>
sbit S1=P1^0;
sbit S2=P1^1;
sbit S3=P1^2;
sbit S4=P1^3;
unsigned char keyval;
void key_scan(void);
void forward(void);
void backward(void);
void Alter(void);
void blink(void);
void led_delay(void);
void delay10ms(void);
void main(void)
{
keyval=0;
while(1)
{
key_scan( );
switch(keyval)
{
case 1:forward();
break;
case 2:backward();
break;
case 3:alter();
break;
case 4:blink();
break;
}
}
}
void key_scan(void)
{
P1=0xff;
if((P1&0x0f)!=0x0f)
{
delay10ms();
if(S1==0)
keyval=1;
if(S2==0)
keyval=2;
if(S3==0)
keyval=3;
if(S4==0)
keyval=4;
}
}
void forward(void)
{
P3=0xfe;
led_delay();
P3=0xfd;
led_delay();
P3=0xfb;
led_delay();
P3=0xf7;
led_delay();
P3=0xef;
led_delay();
P3=0xdf;
led_delay();
P3=0xbf;
led_delay();
P3=0x7f;
led_delay();
}
void backward(void)
{
P3=0x7f;
led_delay();
P3=0xbf;
led_delay();
P3=0xdf;
led_delay();
P3=0xef;
led_delay();
P3=0xf7;
led_delay();
P3=0xfb;
led_delay();
P3=0xfd;
led_delay();
P3=0xfe;
led_delay();
}
void Alter(void)
{
P3=0x0f;
led_delay;
P3=0xf0;
led_delay;
}
void blink(void)
{
P3=0xff;
led_delay;
P3=0x00;
led_delay;
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
键控led.zip
(55.13 KB, 下载次数: 13)
2017-10-13 12:55 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1