欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機題目:按下按鈕時啟動報警并且紅燈閃爍,蜂鳴器報警.....
[打印本頁]
作者:
940148990
時間:
2018-11-19 10:59
標題:
51單片機題目:按下按鈕時啟動報警并且紅燈閃爍,蜂鳴器報警.....
51單片機題目: 要求:按下按鈕時啟動報警并且紅燈閃爍,蜂鳴器報警,按鈕松開,報警解除,綠燈閃爍。
下面附上代碼,有沒有高手直接修改一下
#include<reg51.h>
void delay(unsigned int i);
sbit K=P0^0;
sbit beep=P1^0;
sbit green=P1^1;
sbit red=P1^2;
void main()
{
green=0;
red=1;
while(1)
{
if(K==0)
{
delay(200);
if(K==0)
{
green=1;
red=0;
beep=0;
delay(100);
red=1;
beep=1;
}
}
else
green=0;
}
}
void delay(unsigned int i)
{
unsigned int k;
for(k=0;k<i;k++);
}
作者:
rfidtest
時間:
2018-11-19 10:59
本帖最后由 rfidtest 于 2018-11-19 13:33 編輯
修改了下main 暫時沒有硬件測試 你可以試試
void main() {
green = 0;
red = 1;
beep =1;
unsigned char key =0;
unsigned char key_old =0;//上一次按鍵狀態
unsigned int t=0;//記錄循環周期
while (1) {
key = 0;
if (K == 0) {
delay(200);
if (K == 0) {
key = 1;
}
}
if(t++ > 600 || key!= key_old) //調整周期數值 控制閃爍/報警間隔 增加數值增大間隔 按鍵狀態改變立即處理
{
key = key_old;
t = 0;
if(key >0)
{
//報警
green = 1;
red = !red;
beep = !beep;
}
else
{
green = !green;
red = 1;
beep = 1;
}
}
}
}
復制代碼
作者:
MMU_FS
時間:
2018-11-19 11:36
#include<reg51.h>
void delay(unsigned int i);
void init(void);
sbit K=P0^0;
sbit beep=P1^0;
sbit green=P1^1;
sbit red=P1^2;
uint key_flag = 0;
uint led_flag = 0;
void main()
{
init();
while(1)
{
if((K == 0) && (key_flag == 0))
{
delay(200);
if(K == 0)
{
beep=0;
key_flag = 1;
led_flag = 1;
}
}
if((k != 0) && (key_flag == 1))
{
beep=1;
key_flag = 0;
led_flag = 0;
}
}
}
void delay(unsigned int i)
{
unsigned int k;
for(k=0;k<i;k++);
}
void init(void)
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(++count >= 20)
{
count = 0;
if(led_flag)
{
green =~green;
}
else
{
red =~red;
}
}
}
作者:
冰冰潔潔
時間:
2018-11-19 11:45
你這個程序紅燈是會閃爍的,綠燈也同上處理下就行了,頻率加點修改一下 #include<reg51.h> void delay(unsigned int i); sbit K=P0^0; sbit beep=P1^0; sbit green=P1^1; sbit red=P1^2; void main() { green=0; red=1; while(1) { if(K==0) { delay(200); if(K==0) { green=1; red=0; beep=0; delay(100); red=1; beep=1; } } else {green=0; beep=1; delay(100); green=1; beep=1;} } } void delay(unsigned int i) { unsigned int k; for(k=0;k<i;k++); }
作者:
693695
時間:
2018-11-19 16:56
哇~剛好需要
作者:
hjh2621845983
時間:
2018-11-19 17:44
派上用成了
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1