情非得已V
情非得已V
关注数: 220
粉丝数: 1,670
发帖数: 2,730
关注贴吧数: 24
求助:按键控制led小灯的亮度变化 由于板子没有PWM模块,自己写了一个程序。要求是用8个独立按键(从矩阵分离而来)控制8个led小灯的从灭到亮的过程,按一个键显示一个灯的状态。现在的问题是按第一个键没问题,按下一个键的时候上一个灯的状态不会消失,结果就是按完8个键8个灯都亮了,请问怎么回事啊? 求解!
求助:51单片机用按键控制led灯的亮度变化 由于板子没有PWM模块,自己写了一个程序。要求是用8个独立按键(从矩阵分离而来)控制8个led小灯的从灭到亮的过程,按一个键显示一个灯的状态。现在的问题是按第一个键没问题,按下一个键的时候上一个灯的状态不会消失,结果就是按完8个键8个灯都亮了,请问怎么回事啊? 求解!
求助:按键控制8个led灯的亮度变化过程 想要的结果是按一个键显示1个灯,但是现在的结果显示是按了下一个键后上一次灯的状态不会消失,按了8个键8个灯都亮了。 请问大家怎么回事啊? #include <reg52.h> sbit D1=P1^0; sbit D2=P1^1; sbit D3=P1^2; sbit D4=P1^3; sbit D5=P1^4; sbit D6=P1^5; sbit D7=P1^6; sbit D8=P1^7; unsigned char HighRH = 0; unsigned char HighRL = 0; unsigned char LowRH = 0; unsigned char LowRL = 0; unsigned char T1RH = 0; unsigned char T1RL = 0; unsigned long PeriodCnt = 0; unsigned char s1,s2,s3,s4,s5,s6,s7,s8; void ConfigTimer1(unsigned int ms); void ConfigPWM(unsigned int fr, unsigned char dc); void main() { EA = 1; ConfigPWM(100, 0); ConfigTimer1(60); while (1); } void KeyScan() { unsigned char i,j; P3=0xfe; if(P3!=0xfe) { for(i=1;i>0;i--) for(j=110;j>0;j--); if(P3!=0xfe) { switch(P3) { case 0xee:while(P3!=0xfe);s1=1;P1=0xfe;break; case 0xde:while(P3!=0xfe);s2=1;P1=0xfd;break; case 0xbe:while(P3!=0xfe);s3=1;P1=0xfb;break; case 0x7e:while(P3!=0xfe);s4=1;P1=0xf7;break; } } } P3=0xfd; if(P3!=0xfd) { for(i=1;i>0;i--) for(j=110;j>0;j--); if(P3!=0xfd) { switch(P3) { case 0xed:while(P3!=0xfd);s5=1;P1=0xef;break; case 0xdd:while(P3!=0xfd);s6=1;P1=0xdf;break; case 0xbd:while(P3!=0xfd);s7=1;P1=0xbf;break; case 0x7d:while(P3!=0xfd);s8=1;P1=0x7f;break; } } } } void ConfigTimer1(unsigned int ms) { unsigned long tmp; tmp = 11059200 / 12; tmp = (tmp * ms) / 1000; tmp = 65536 - tmp; tmp = tmp + 12; T1RH = (unsigned char)(tmp>>8); T1RL = (unsigned char)tmp; TMOD &= 0x0F; TMOD |= 0x10; TH1 = T1RH; TL1 = T1RL; ET1 = 1; TR1 = 1; } void ConfigPWM(unsigned int fr, unsigned char dc) { unsigned int high, low; PeriodCnt = (11059200/12) / fr; high = (PeriodCnt*dc) / 100; low = PeriodCnt - high; high = 65536 - high + 12; low = 65536 - low + 12; HighRH = (unsigned char)(high>>8); HighRL = (unsigned char)high; LowRH = (unsigned char)(low>>8); LowRL = (unsigned char)low; TMOD &= 0xF0; TMOD |= 0x01; TH0 = HighRH; TL0 = HighRL; ET0 = 1; TR0 = 1; } void AdjustDutyCycle(unsigned char dc) { unsigned int high, low; high = (PeriodCnt*dc)/100; low = PeriodCnt - high; high = 65536 - high + 12; low = 65536 - low + 12; HighRH = (unsigned char)(high >> 8); HighRL = (unsigned char)high; LowRH = (unsigned char)(low >> 8); LowRL = (unsigned char)low; } void InterruptTimer0() interrupt 1 { KeyScan(); if(s1==1) { if (D1 == 0) { TH0 = HighRH; TL0 = HighRL; D1 = 1; } else { TH0 = LowRH; TL0 = LowRL; D1 = 0; } } if(s2==1) { if (D2 == 0) { TH0 = HighRH; TL0 = HighRL; D2 = 1; } else { TH0 = LowRH; TL0 = LowRL; D2 = 0; } } if(s3==1) { if (D3 == 0) { TH0 = HighRH; TL0 = HighRL; D3 = 1; } else { TH0 = LowRH; TL0 = LowRL; D3 = 0; } } if(s4==1) { if (D4 == 0) { TH0 = HighRH; TL0 = HighRL; D4 = 1; } else { TH0 = LowRH; TL0 = LowRL; D4 = 0; } } if(s5==1) { if (D5 == 0) { TH0 = HighRH; TL0 = HighRL; D5 = 1; } else { TH0 = LowRH; TL0 = LowRL; D5 = 0; } } if(s6==1) { if (D6 == 0) { TH0 = HighRH; TL0 = HighRL; D6 = 1; } else { TH0 = LowRH; TL0 = LowRL; D6 = 0; } } if(s7==1) { if (D7 == 0) { TH0 = HighRH; TL0 = HighRL; D7 = 1; } else { TH0 = LowRH; TL0 = LowRL; D7 = 0; } } if(s8==1) { if (D8 == 0) { TH0 = HighRH; TL0 = HighRL; D8 = 1; } else { TH0 = LowRH; TL0 = LowRL; D8 = 0; } } } void InterruptTimer1() interrupt 3 { unsigned char code table[16] = { 99,98,97,95,93,90,86,81,74,68,60,51,41,30,18,5 }; static bit dir = 0; static unsigned char index = 0; unsigned char i=0; TH1 = T1RH; TL1 = T1RL; AdjustDutyCycle(table[index]); if(dir == 0) { index++; if(index >= 15) { dir = 1; } } else { index--; if(index == 0) { dir = 0; } } } #include <reg52.h> sbit D1=P1^0; sbit D2=P1^1; sbit D3=P1^2; sbit D4=P1^3; sbit D5=P1^4; sbit D6=P1^5; sbit D7=P1^6; sbit D8=P1^7; unsigned char HighRH = 0; unsigned char HighRL = 0; unsigned char LowRH = 0; unsigned char LowRL = 0; unsigned char T1RH = 0; unsigned char T1RL = 0; unsigned long PeriodCnt = 0; unsigned char s1,s2,s3,s4,s5,s6,s7,s8; void ConfigTimer1(unsigned int ms); void ConfigPWM(unsigned int fr, unsigned char dc); void main() { EA = 1; ConfigPWM(100, 0); ConfigTimer1(60); while (1); } void KeyScan() { unsigned char i,j; P3=0xfe; if(P3!=0xfe) { for(i=1;i>0;i--) for(j=110;j>0;j--); if(P3!=0xfe) { switch(P3) { case 0xee:while(P3!=0xfe);s1=1;P1=0xfe;break; case 0xde:while(P3!=0xfe);s2=1;P1=0xfd;break; case 0xbe:while(P3!=0xfe);s3=1;P1=0xfb;break; case 0x7e:while(P3!=0xfe);s4=1;P1=0xf7;break; } } } P3=0xfd; if(P3!=0xfd) { for(i=1;i>0;i--) for(j=110;j>0;j--); if(P3!=0xfd) { switch(P3) { case 0xed:while(P3!=0xfd);s5=1;P1=0xef;break; case 0xdd:while(P3!=0xfd);s6=1;P1=0xdf;break; case 0xbd:while(P3!=0xfd);s7=1;P1=0xbf;break; case 0x7d:while(P3!=0xfd);s8=1;P1=0x7f;break; } } } } void ConfigTimer1(unsigned int ms) { unsigned long tmp; tmp = 11059200 / 12; tmp = (tmp * ms) / 1000; tmp = 65536 - tmp; tmp = tmp + 12; T1RH = (unsigned char)(tmp>>8); T1RL = (unsigned char)tmp; TMOD &= 0x0F; TMOD |= 0x10; TH1 = T1RH; TL1 = T1RL; ET1 = 1; TR1 = 1; } void ConfigPWM(unsigned int fr, unsigned char dc) { unsigned int high, low; PeriodCnt = (11059200/12) / fr; high = (PeriodCnt*dc) / 100; low = PeriodCnt - high; high = 65536 - high + 12; low = 65536 - low + 12; HighRH = (unsigned char)(high>>8); HighRL = (unsigned char)high; LowRH = (unsigned char)(low>>8); LowRL = (unsigned char)low; TMOD &= 0xF0; TMOD |= 0x01; TH0 = HighRH; TL0 = HighRL; ET0 = 1; TR0 = 1; } void AdjustDutyCycle(unsigned char dc) { unsigned int high, low; high = (PeriodCnt*dc)/100; low = PeriodCnt - high; high = 65536 - high + 12; low = 65536 - low + 12; HighRH = (unsigned char)(high >> 8); HighRL = (unsigned char)high; LowRH = (unsigned char)(low >> 8); LowRL = (unsigned char)low; } void InterruptTimer0() interrupt 1 { KeyScan(); if(s1==1) { if (D1 == 0) { TH0 = HighRH; TL0 = HighRL; D1 = 1; } else { TH0 = LowRH; TL0 = LowRL; D1 = 0; } } if(s2==1) { if (D2 == 0) { TH0 = HighRH; TL0 = HighRL; D2 = 1; } else { TH0 = LowRH; TL0 = LowRL; D2 = 0; } } if(s3==1) { if (D3 == 0) { TH0 = HighRH; TL0 = HighRL; D3 = 1; } else { TH0 = LowRH; TL0 = LowRL; D3 = 0; } } if(s4==1) { if (D4 == 0) { TH0 = HighRH; TL0 = HighRL; D4 = 1; } else { TH0 = LowRH; TL0 = LowRL; D4 = 0; } } if(s5==1) { if (D5 == 0) { TH0 = HighRH; TL0 = HighRL; D5 = 1; } else { TH0 = LowRH; TL0 = LowRL; D5 = 0; } } if(s6==1) { if (D6 == 0) { TH0 = HighRH; TL0 = HighRL; D6 = 1; } else { TH0 = LowRH; TL0 = LowRL; D6 = 0; } } if(s7==1) { if (D7 == 0) { TH0 = HighRH; TL0 = HighRL; D7 = 1; } else { TH0 = LowRH; TL0 = LowRL; D7 = 0; } } if(s8==1) { if (D8 == 0) { TH0 = HighRH; TL0 = HighRL; D8 = 1; } else { TH0 = LowRH; TL0 = LowRL; D8 = 0; } } } void InterruptTimer1() interrupt 3 { unsigned char code table[16] = { 99,98,97,95,93,90,86,81,74,68,60,51,41,30,18,5 }; static bit dir = 0; static unsigned char index = 0; unsigned char i=0; TH1 = T1RH; TL1 = T1RL; AdjustDutyCycle(table[index]); if(dir == 0) { index++; if(index >= 15) { dir = 1; } } else { index--; if(index == 0) { dir = 0; } } }
刚入手一套cc 如题,想请问大家都是怎么给装备附魔的
今天成功抢了第一个签到 同学嗯有什么好说的吗
有谁抢了第一个! 天天都有人和我抢签到,从来没有得过第一。 我去。 气死我了?!
数字猜名字。一起来讨论讨论 145667 3 个字 女生
求助!为什么找不到了以前的感觉(数学) 本人高三党一枚,在班上是数学课代表,以前数学都是第一,但是自从进了高三下学期成绩就一落千丈,打个比方吧,如果以前我是135的水平的话,现在只能考120,今天刚刚考完数学,以前选择题都做的很好的今天错了3个,后面有的题明明会做,都要做错,总觉得很对不起自己,但是就是不知道自己的问题在哪,请有类似问题的高手点意见!不胜感激!
求教~~!! 求帮助 !! 请问现在高考复习用什么卷子好点 不要太难的。 本人贵州考生 我们第一届新课标教材 。 谢谢!!
【提问】请问3ds什么时候破解? 有个弟想买个3ds,但是不知道现在买还是以后买。 他说现在不买怕以后会涨价,所以请而你各位大神3ds什么时候破解完全啊?!! 谢谢诶
吧主快出现!! 你去旅游了啊。这么久没上贴吧!!这个吧没人管了啊魂淡!
丑小鸭的故事告诉我们的道理。 以前看丑小鸭的时候没发觉,现在想起来。。 丑小鸭最后是变成天鹅了是吧?可她爸爸妈妈都是鸭子,她怎么就变成天鹅了呢? 于是。。。。。。真相就是那样的!
[表白]我喜欢你,但不知道你爱不爱我。 鸣人,四代,自来也,雏田,卡卡西。还有好多好多人,看火影这么久,最爱的就是你们了,爱你没道理!
所以一切都是幸福的模样。 哪个地方,才会有我的痕迹?
求理科高手解答!!这是答案不唯一吗还是什么?? 有一对夫妇生了两个孩子,其中有一个是男孩,请问另一个也为男孩的概率是多少?
人们永远也追不上太阳 你永远追不上太阳,但在追赶太阳的过程中,你逐渐远离了黑暗!
多年以后,你学生时代暗恋的人在微博上晒出了孩子的照片 孩子们,你会干什么呢?
当罪恶的你爱上善良的她。
嗨嗨这里猿猿求认识混脸熟>< 嗨嗨这里猿猿求认识混脸熟><
嗨嗨这里猿猿求认识混脸熟>< 嗨嗨这里猿猿求认识混脸熟><
如此。。 我瞎爆了
如此 。。 我瞎爆了
如此视频。 瞎爆了。。。
吧主大人! 请给我这个机会! 吧主大人。我希望能参与这个贴吧的建设,所以请求吧主大人给我个机会,让我当上小吧。! 谢谢吧主大人!!
猥琐仔们 在本吧。 我的希望是看见这个名字后的人数能够突破500. 耶耶耶!! 吧主你快召唤人吧!!
【吧务公告】i拉米小叽吧吧规 ____________‖进吧必看‖! 1L 献给可爱的i拉米小叽吧。 亲们,此贴禁回哦 !
自你走后心憔悴 迷人的眼泪。 伤感
2LSB 还有点点经验就4J了。 同学们给点油加!!!
【投票】我偷偷地爱上你
【投票】你们都是怎么进来这个吧的呢?
魔兽吧。 新人求罩! 新人,求各位前辈罩罩
【投票】如果让你穿越到火影,你会选择变成谁?
求3J。 求免验证! 求!
来来来我们做个游戏。憋气按住0,看你的肺活量能坚持几行?=.= 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 妈呀要死了
来来来我们做个游戏。憋气按住0,看你的肺活量能坚持几行?=.= 大男人不做假
问!求解答! 请问哈面具男和兜合作的情节出现在哪一话?!!
【投票】投哈你们最喜欢看的动漫
失眠了。 在床上躺了一个小时。结果发现我。。。。。失眠了
大家给点力!! 大家给点力!! 回个贴,几秒钟的事。自己又可以得经验,又帮助了别人。何乐而不为呢?
大家给点力!! 大家给点力!! 回个贴,几秒钟的事。自己又可以得经验,又帮助了别人。何乐而不为呢?
大家。 给点力吧 大家给点力!! 回个贴,几秒钟的事。自己又可以得经验,又帮助了别人。何乐而不为呢?
好吧再有一点经验我就3J了 各位给点力吧
秒沉?纳尼? 魔兽吧。 秒沉贴。!!
问!! 此吧是干什么的?? 求个解释!!
纳尼?发个贴真的秒沉了!求挽!
纳尼? 好吧我不说什么了。
好吧我也来入住一个 新人 求认识
请问哈这吧是做什么的? 前辈们给个解释 !!!
纳尼?发个贴秒沉? 求挽尊!!! 求挽尊!!!!!
请问吧里的童鞋们都好大? 本人16 正读高二的说
好吧发个贴求挽尊!! 求挽尊求挽尊求挽尊求挽尊求挽尊求挽尊求挽尊求挽尊 求求挽尊
好吧我发个新帖 大家来说说自己喜欢的科目吧 (我发觉会水,然后。会被喷)
【投票】大家来投投自己最喜欢的角色
发个贴秒沉?!有木有啊!!! 有木有啊!!!! 已经秒沉5个贴了!!
好吧我来做个调查。在这吧里的朋友们都是好大的啊? 本人16将要17 正读高二
【投票】看完571话,你们认为现在的鸣人和佐助打谁会赢?
【投票】大家都来投投目前火影里谁最强
banquet半阕!
吧里的“同学们”都多大? 我16岁,马上17 现读高二
如今这个物欲横飞的虚化社会,舒坦都爱上了贝塔。 RT 从小告诫自己要善良! 阿弥陀佛!
1
下一页