完善资料让更多小伙伴认识你,还能领取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; }
|
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
谁有3566+电池+POE充电的方案,有个项目需要用该功能的主板
437 浏览 0 评论
RK3588的GMAC0与PHY的参考时钟电平匹配问题??????
4425 浏览 1 评论
请问各位大佬,如何解决,瑞芯微 RV1126B 使用 mpp 自带工具 调试时,内核直接报错崩溃!
1802 浏览 0 评论
使用rk3568开发板,核0\\1\\3运行linux,核2运行hal,在核0中怎么关闭核2
2359 浏览 0 评论
2363 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 07:01 , Processed in 0.562167 second(s), Total 73, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1919