完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
51单片机的呼吸灯,只能闪烁和切换颜色,不能呼吸,使用的是10mm的RGB LED,请问是啥原因?
附录 #include #include typedefunsignedintu16; //对数据类型进行声明定义 typedefunsignedcharu8; sbitLED1=P1^0; sbitLED2=P1^1; sbitLED3=P1^2; sbitGM=P1^7; u8kel; u8t,z; //voiddelay(u16i) //{ //u16j=0,k=0; //for(j=i;j>0;j--) // for(k=120;k>0;k--); //} voidINIT()//定时计数器初始化的6条程序 { TMOD=0X01;//设置定时器为定时模式,方式1 TR0=1;//启动定时计数器 ET0=1;//使能定时计数器中断 TH0=(65536-50000)>>8;//初值10ms TL0=(65536-50000); IT1=1;//设置外部中断0为下降沿触发 EX1=1;//使能外部中断0 PX1=0;//可以省略,默认为0 // EA=1;//中断总开关 } voidled1() { if(z==2)z=0;elsez++; if(z==0) { LED1=1; LED2=0; LED3=0; } if(z==1) { LED1=0; LED2=1; LED3=0; } if(z==2) { LED1=0; LED2=0; LED3=1; } } voidmain()//主函数 { INIT(); while(1) { if(GM==1) EA=1; else { EA=0; LED1=0; LED2=0; LED3=0; } } } voidtimer0()interrupt1//定时计数器0中断服务函数 { TH0=(65536-50000)>>8;//初值10ms TL0=(65536-50000); t++; if(t>=20) { switch(kel) { case0:led1();break; case1:LED1=1;LED2=0;LED3=0;break; case2:LED1=0;LED2=1;LED3=0;break; case3:LED1=0;LED2=0;LED3=1;break; case4:LED1=1;LED2=0;LED3=1;break; case5:LED1=0;LED2=1;LED3=1;break; case6:LED1=1;LED2=1;LED3=0;break; } t=0; } } voidINT_1()interrupt2//外部中断0中断服务函数 { kel++; if(kel>6)kel=0; }
|
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1906 浏览 1 评论
synopsys 的design ware:DW_fpv_div,浮点数除法器,默认32位下,想提升覆盖率(TMAX),如果用功能case去提升覆盖率呢?
2382 浏览 1 评论
RK3588 GStreamer调试四路鱼眼摄像头四宫格显示报错
5175 浏览 1 评论
【飞凌嵌入式OK3576-C开发板体验】RKNN神经网络-YOLO图像识别
254 浏览 0 评论
【飞凌嵌入式OK3576-C开发板体验】SSH远程登录网络配置及CAN通讯
1336 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 01:28 , Processed in 0.464155 second(s), Total 69, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号