基于stc15f2k60s2芯片单片机编程(流水灯)
生活随笔
收集整理的這篇文章主要介紹了
基于stc15f2k60s2芯片单片机编程(流水灯)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
藍橋杯stc15f2k60s2芯片編程(流水燈)(1)簡單的流水燈左移之后右移
#include <stc15f2k60s2.h>
#include <intrins.h>
sbit BUZZ=P0^6;
sbit RELAY=P0^4;void delay10ms(unsigned int);
void main ()
{unsigned char n;P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;P0=0xfE;
while(1)
{for(n=0;n<7;n++){P0=_crol_(P0,1);delay10ms(50);
}
for(n=0;n<7;n++)
{
P0=_cror_(P0,1);delay10ms(50);
}
}
}void delay10ms(unsigned int c)
{
unsigned char a,b;for(;c>0;c--)for(b=38;b>0;b--)for(a=130;a>0;a--);
}
(2)較高級流水燈
從兩邊向中間流,然后從中間向兩邊流①
#include <stc15f2k60s2.h> #include <intrins.h>void Delay500ms(); void main(){ unsigned char code abile[]={0x7E,0xBD,0xDB,0xE7,0XE7,0XDB,0XBD,0X7E}; unsigned char l; // LED=0X81; P2=0XA0;P0=0X00;P2=0X80;P0=0XFF; while(1) {for(l=0;l<8;l++){P0=abile[l]; Delay500ms();} } } void Delay500ms() //@11.0592MHz {unsigned char i, j, k;_nop_();_nop_();i = 22;j = 3;k = 227;do{do{while (--k);} while (--j);} while (--i); }從兩邊向中間流,然后從中間向兩邊流②
#include <stc15f2k60s2.h> #include <intrins.h> unsigned char i; void Delay500ms(); void main() { P2=0XA0;P0=0X00; P2=0X80;P0=0XFF;while(1){for(i=0;i<4;i++) {P0=0xff<<i&0xff>>i;delay500ms();} for(i=4;i>0;i--){P0=0xff<<i&0xff>>i;delay500ms();} } } void Delay500ms() //@11.0592MHz {unsigned char i, j, k;_nop_();_nop_();i = 22;j = 3;k = 227;do{do{while (--k);} while (--j);} while (--i); }(3)通過獨立按鍵控制流水燈流動速度
#include <stc15f2k60s2.h> #include <intrins.h> void Timer0Init(); unsigned int a,n,i,qq; void Delay1ms(); void anjian(); sbit S7=P3^0; sbit S6=P3^1; sbit S5=P3^2; sbit S4=P3^3;void main() { P2=0XA0;P0=0X00;Timer0Init();while(1){ anjian();qq=0XFE;qq=_crol_(qq,i);P2=0X80;P0=qq;} } void Timer0Init(void) //1??@11.0592MHz {AUXR |= 0x80; //?????1T??TMOD &= 0xF0; //???????TL0 = 0xCD; //??????TH0 = 0xD4; //??????TF0 = 0; //??TF0??TR0 = 1; //???0????EA=1;ET0=1; } void ding() interrupt 1 {a++;if(a==n){a=0;i++;if(i>8)i=0;} } void anjian() { if(S7==0){Delay1ms();if(S7==0){a=0;n=300;}while(!S7);}if(S6==0){ Delay1ms();if(S6==0){a=0;n=600;}while(!S6);} if(S5==0){Delay1ms();if(S5==0){a=0;n=900;}while(!S5);} if(S4==0){Delay1ms();if(S4==0){a=0;n=1200;}while(!S4);} } void Delay1ms() //@11.0592MHz {unsigned char i, j;_nop_();_nop_();_nop_();i = 11;j = 190;do{while (--j);} while (--i); }總結
以上是生活随笔為你收集整理的基于stc15f2k60s2芯片单片机编程(流水灯)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(3101):vue+eleme
- 下一篇: Debian Security Advi