标题:
电脑上位机控制单片机流水灯花样的变化
[打印本页]
作者:
heicc
时间:
2016-6-17 01:21
标题:
电脑上位机控制单片机流水灯花样的变化
0.png
(28.69 KB, 下载次数: 178)
下载附件
2016-6-17 01:18 上传
上位机程序,vc++编程,51黑附件中该可以下载源代码
下面是电脑可控流水灯的下位机单片机源码:
#include<reg52.h>
#include <intrins.h> //该库函数中包含了下面程序中要用到的_crol_()函数
#define uint unsigned int
#define uchar unsigned char
uchar flag,d;
const unsigned char design[77]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,// 左移
0x7F,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,//右移
0xFE,0xFF, 0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0, //逐渐点亮
0xFE,0xFF, 0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0, //逐渐点亮
0xE7,0xDB,0xBD,0x7E,0xFF ,//从中间到两边
0xE7,0xDB,0xBD,0x7E,0xFF,//从中间到两边
0x7F,0x7F,0xDF,0xDF,0xf7,0xf7,0xfd,0xfd,0x0,0x0,
0xbf,0xbf,0xef,0xef,0xfb,0xfb,0xfe,0xfe,0x0,0x0,
0x3f,0xcf,0xfc,0xf3,
0x1f,0x8f,0xc7,0xe3,0xf1,};
void delayms() // 延时子程序
{
uint i;
for(i = 0; i < 20000; i++);
}
void main()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
while(1)
{ if(flag==1)
{ ES=0;
flag=0;
SBUF=d;
while(!TI);
TI=0;
ES=1;
}
}
}
void ckzd() interrupt 4
{ uchar b,LED,c, i; uint a;
uchar LED1=0XFE,LED2=0XFD,LED3=0XFB,LED4=0XF7,LED5=0XEF,LED6=0XDF,LED7=0xbf,LED8=0X7F;
RI=0;
b=SBUF;
d=SBUF;
flag=1;
switch( b ) {
case 'a':
P1=P1&LED1;break;
case 'A': //led1
P1=P1|(~LED1);break;
case 'b':
P1=P1&LED2;break;
case 'B': //led2
P1=P1|(~LED2);break;
case 'c':
P1=P1&LED3;break;
case'C': //led3
P1=P1|(~LED3); break;
case'd':
P1=P1&LED4;break;
case'D': //led4
P1=P1|(~LED4);break;
case 'e':
P1=P1&LED5; break;
case'E':
//led5
P1=P1|(~LED5); break;
case 'f':
P1=P1&LED6;break;
case'F':
P1=P1|(~LED6);break; //led6
case 'g':
P1=P1&LED7; break;
case'G':
P1=P1|(~LED7);break; //led7
case 'h':
P1=P1&LED8;break;
case'H':
P1=P1|(~LED8);break; //led8
case '1':
LED = 0x7f;
P1 = P1&LED;
for(i=0;i<8;i++)
{
LED = _crol_(LED,1);//循环左移1位,点亮下一个LED,_crol_()是库函数左移
P1 = LED;
delayms();//延时
} ;
LED = 0x7f;
P1 = P1&LED;
for(i=0;i<8;i++)
{
LED = _crol_(LED,1);//循环左移1位,点亮下一个LED,_crol_()是库函数左移
P1 = LED;
delayms();//延时
} ;
P1=0xff;
break;
case '2':
LED = 0xFE;
P1 =P1& LED;
for(i=0;i<8;i++)
{
LED = _cror_(LED,1);//循环右移1位,点亮下一个LED,_crol_()是库函数左移
P1 = LED;
delayms();//延时
} ;
LED = 0xFE;
P1 =P1& LED;
for(i=0;i<8;i++)
{
LED = _cror_(LED,1);//循环右移1位,点亮下一个LED,_crol_()是库函数左移
P1 = LED;
delayms();//延时
} ;
P1=0xff;
break;
case '3':
for (c=0; c<77; c++)
{
for(a=0; a<30000; a++); //延时一段时间
P1 = design[c]; //读已定义的花样数据并写花样数据到 P0 口
}
default:
P1=0xff;
break;
}
}
复制代码
0.png
(67.48 KB, 下载次数: 175)
下载附件
2016-6-17 01:18 上传
可以通过上位机按钮控制流水灯花样变化
led上位机下位机.rar
(4.99 MB, 下载次数: 147)
2016-6-17 01:20 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
老婆当家
时间:
2016-9-9 10:12
真的不错哦 果断收藏
作者:
23032
时间:
2017-5-11 15:01
感谢
作者:
qq291480
时间:
2017-11-15 15:51
给力!!51黑有你更精彩!!!
作者:
lvlv99
时间:
2018-4-12 18:11
不错,跟着学习了!!
作者:
quzhihong
时间:
2018-8-24 13:43
感谢分享,很不错
作者:
大青衣123
时间:
2018-12-27 20:46
老铁,很棒
作者:
stolle
时间:
2019-5-26 03:16
完美一直在寻找它很长一段时间! 谢谢你的分享。
作者:
wcs1668
时间:
2019-7-31 17:35
感谢分享,很不错。w10能用吗?
作者:
QDMLIT
时间:
2019-10-31 15:51
非常感谢
作者:
1123551003
时间:
2019-11-10 14:43
不错,跟着学习了!!
作者:
sqcda
时间:
2019-11-26 17:50
支持楼主,学习
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1