欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

基于stc15f2k60s2芯片单片机编程(流水灯)

发布时间:2023/12/9 编程问答 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 基于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芯片单片机编程(流水灯)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。