上位机程序,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;
- }
-
- }
-
复制代码
可以通过上位机按钮控制流水灯花样变化
led上位机下位机.rar
(4.99 MB, 下载次数: 147)
|