标题:
单片机可控流水灯程序加仿真 有花样和速度按钮
[打印本页]
作者:
xmlcv
时间:
2017-6-4 10:29
标题:
单片机可控流水灯程序加仿真 有花样和速度按钮
基于51单片机的可控流水灯程序 添加了花样和速度按钮
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载):
0.png
(27.31 KB, 下载次数: 51)
下载附件
2017-6-4 19:40 上传
0.png
(67.25 KB, 下载次数: 42)
下载附件
2017-6-4 19:39 上传
单片机源程序如下:
#include <reg51.h>
#include <intrins.h>
unsigned char led []= {0xfe, 0xfd, 0xfb, 0xf7, 0xef,0xdf, 0xbf, 0x7f, 0x7f,0xbf,0xdf,0xef, 0xf7, 0xfb,0xfd,0xfe,
0xfe,0xfb,0xef,0xbf, 0x00,0x7e,0xbd,0xdb,0xe7,0xdb,0xbd,0x7e, 0x0f,0xf0,0xfe,0x7f,0xfd,0xbf,0xfb,0xdf,0xf7,0x00};
sbit P3_2 =P3^2;
char x = 0;
char k= 0;
char b=200;
void delay(unsigned char time) // 延时函数
{
unsigned char i=0;
for (;time>0;time--)
for (i=0;i<=200;i++);
}
key0() interrupt 0{ //每按一下花样加1
x++;
if (x == 6) //花样到六时,LED黑屏,再按一下花样重新开始
x = 0;
delay (300);
}
key1() interrupt 2{b=b+2000; //控制流水灯速度,没按一下加200
if (b==8200)
b=200;
}
void main (){
IT0 = 1;
IT1=1;
EX0 = 1;
EX1 = 1;
EA = 1;
P2 = 0xff; //初始时LED全黑
while(1){
if(P3_2==0){
switch(x){ //花样
case 0: P2 = 0xff;break;
case 1: for(k=0;k<=7;k++){
if(x == 1) //花样切换(打断正在进行的花样)
{P2 = led [k];
delay (200);}} break;
case 2:for (k=8;k<=15;k++){
if(x == 2){P2 = led [k] ;delay (b);}}break;
case 3: for(k=16;k <=19;k++){
if(x == 3){
P2 = led [k];delay (b);}}break;
case 4: for(k=20;k <=27;k++){
if(x == 4){
P2 = led [k];delay (b);}}break;
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
改--实验一 添加了花样和速度按钮.zip
(18.24 KB, 下载次数: 23)
2017-6-4 10:28 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
admin
时间:
2017-6-4 19:48
好资料,51黑有你更精彩!!!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1