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
|