完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
小弟用的单片机是STC15L104E,学着用一个按键控制LED的不同模式,并且想用他的掉电模式,程序总是改不对,请各位前辈指点迷津!
#include #include #define COUNT 1000//50000 //以us为单位 (1ms) unsigned int Tmp; unsigned int cnt_s = 0; unsigned int count = 0; unsigned char L_cnt = 0; unsigned char PD = 0; ***it key = P3^2; ***it led1 = P3^0; void timer0_Timer1_Init() { TMOD|=0x00; //定时器工作在模式1 TH0 = (65536-COUNT)/256; //装初值 TL0 = (65536-COUNT)%256; TR0 = 1; ET0 = 1; EA = 1; count = 0; } void INT_System_init() { IT0 = 1; EX0 = 1; EA = 1; } void main(void) { P3=0xFF; L_cnt = 0; INT_System_init(); Timer0_Timer1_Init(); while(1) { if(!key) { count ++; if( count >= 1500 ) { PD = 1; PCON = 0x02; //掉电模式开启 } else if( count >=10 ) { L_cnt++; if(L_cnt == 6) L_cnt = 0; } } switch(L_cnt) { case 1:TR0 = 1; Tmp = 456 ;break; //1Hz case 2:Tmp = 221 ;break; //2Hz case 3:Tmp = 111 ;break; //4Hz case 4:Tmp = 57 ;break; //8Hz case 5:TR0 = 0; led1 = 1; break; //全亮 default :TR0 = 0; led1 = 0;break; //全灭 } } } void INT0_Routine () interrupt 0 { if(PD) { PD = 0; while( key == 0 ) { } PCON = 0x00; //掉电模式关闭 } } void Timer0_Server(void) interrupt 1 //T0做时钟源10ms中断一次 { TH0=(65536-COUNT)/256; //装初值 TL0=(65536-COUNT)%256; cnt_s++; //0-100 = (10ms~1000ms) if(cnt_s >= Tmp) { cnt_s = 0; led1 = ~ led1; } } 补充内容 (2016-4-13 21:52): 出现的问题是,按键按一下闪烁,2Hz,再按,熄灭,只有这两种状态 |
|
相关推荐
4个回答
|
|
1、count 没有清零。
2、应该加松手判断,松手再进行相应的判断工作 if(!key) { count ++; } else { if( count >= 1500 ) { PD = 1; PCON = 0x02; //掉电模式开启 } else if( count >=10 ) { L_cnt++; if(L_cnt == 6) L_cnt = 0; } count = 0; }
最佳答案
|
|
|
|
什么问题,什么现象,说清楚。
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
238 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
629 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
552 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
552 浏览 0 评论
1074 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11763 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 22:52 , Processed in 0.676275 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号