欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
單片機程序想改成K1為低電平時數(shù)碼管開始15秒倒計時然后led亮
[打印本頁]
作者:
2810812563
時間:
2022-1-14 00:17
標(biāo)題:
單片機程序想改成K1為低電平時數(shù)碼管開始15秒倒計時然后led亮
現(xiàn)在是檢測電平變化就開始倒計時然后led亮,
我現(xiàn)在想改成K1為低電平時數(shù)碼管開始15秒倒計時然后led亮,K1為高電平時led滅倒計時也直接置零改咋改啊!救救孩子都改好久了
單片機源程序如下:
#include <reg52.h>
#include <intrins.h>
#include <math.h>
#define uint8_t unsigned char
#define uint16_t unsigned int
sbit K1=P3^1;
sbit LED1=P3^3;
sbit LED2=P3^4;
uint8_t miao=0;
uint8_t knum[8];
uint8_t hour_A = 0,min_A = 0,sec_A=0;
uint8_t code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0x89,0xBF,0xc7};
//D?êy
uint8_t code index[]={0xFD,0xFE};
void delay(uint16_t z)
{
uint16_t i,j;
for(i=0;i<z;i++)
for(j=0;j<121;j++);
}
void display()
{
uint8_t i;
for(i=0;i<2;i++)
{
P0=0xff;
P2=index[ i];
P0=tab[knum[ i]];
delay(2);
}
}
uint8_t num,Value;
bit start = 0;
void main()
{
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
ET0=1;
TR0=1;
EA=1;
while(1)
{
if(!K1)
{
while(!K1);
if(miao==0)
{
start = 1;
miao = 15;
}
}
knum[1] = miao/10;
knum[0] = miao%10;;
display();
}
}
void T0_timer () interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(start)
{
LED1 = 0;
LED2 = 0;
num++;
if(num>20)
{
num = 0;
if(miao>0)
{
miao--;
}
else if(miao==0)
{
start = 0;
}
}
}
else
{
LED1 = 1;
LED2 = 1;
}
}
復(fù)制代碼
作者:
2810812563
時間:
2022-1-14 02:30
咋還沒過審,我真的快被逼瘋了
作者:
timeo
時間:
2022-1-14 06:47
現(xiàn)在是讓燈變成燈,然后 我想把燈變成亮燈,然后開始為花樣改制,然后把燈改成彩色燈,然后把燈改成彩色燈,然后把燈改亮,然后把燈改亮,然后把燈改成燈亮了!救救孩子都改好久了
作者:
timeo
時間:
2022-1-14 06:51
發(fā)表于2022-1-14 00:17
現(xiàn)在是讓燈變成燈,然后
我想把燈變成亮燈,然后開始為花樣改制,然后把燈改成彩色燈,然后把燈改成彩色燈,然后把燈改亮,然后把燈改亮,然后把燈改成燈亮了!救救孩子都改好久了
表達(dá)有點混亂,是不是熬夜不太清醒了,
作者:
2810812563
時間:
2022-1-14 08:13
timeo 發(fā)表于 2022-1-14 06:51
發(fā)表于2022-1-14 00:17
現(xiàn)在是讓燈變成燈,然后
就是現(xiàn)在的狀態(tài)我3.1端口接一個紅外反射裝置當(dāng)有物體經(jīng)過紅外的時候(就是電平發(fā)生變化的時候),然后led亮,數(shù)碼管開始倒計時15秒,計時15秒后數(shù)碼管置零。
我現(xiàn)在想要改成紅外被擋住的時候(為低電平時)數(shù)碼管開始15秒倒計時,led燈亮。當(dāng)紅外不被擋住的時候(變?yōu)楦唠娖綍r)數(shù)碼管立即置零,led燈滅。
作者:
羅斯德隆
時間:
2022-1-14 09:10
#include <reg52.h>
#include <intrins.h>
#include <math.h>
#define uint8_t unsigned char
#define uint16_t unsigned int
sbit K1=P3^1;
sbit LED1=P3^3;
sbit LED2=P3^4;
uint8_t miao=0;
uint8_t knum[8];
uint8_t hour_A = 0,min_A = 0,sec_A=0;
uint8_t code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0x89,0xBF,0xc7};
//D?êy
uint8_t code index[]={0xFD,0xFE};
void delay(uint16_t z)
{
uint16_t i,j;
for(i=0;i<z;i++)
for(j=0;j<121;j++);
}
void display()
{
uint8_t i;
for(i=0;i<2;i++)
{
P0=0xff;
P2=index[i];
P0=tab[knum[ i]];
delay(2);
}
}
uint8_t num,Value;
bit start = 0;
void main()
{
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
ET0=1;
TR0=1;
EA=1;
while(1)
{
if(!K1)
{
delay(10); //根據(jù)具體時間調(diào)整里面參數(shù),主要是去掉一點抖動
if(!K1)
start = 1;
if(miao==0)
{
miao = 15;
}
}
else
{
start = 0;
miao = 0;
}
knum[1] = miao/10;
knum[0] = miao%10;;
display();
}
}
void T0_timer () interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(start)
{
LED1 = 0;
LED2 = 0;
num++;
if(num>20)
{
num = 0;
if(miao>0)
{
miao--;
}
else if(miao==0)
{
start = 0;
}
}
}
else
{
LED1 = 1;
LED2 = 1;
}
}
復(fù)制代碼
作者:
jianxu
時間:
2022-1-14 09:47
建一個初始值為0的變量,當(dāng)判斷紅外被擋住時,變量值變成1,打開中斷,之后再加一個判斷,如果紅外沒有被擋住并且變量值為1,關(guān)閉中斷
作者:
羅斯德隆
時間:
2022-1-14 10:12
#include <reg52.h>
#include <intrins.h>
#include <math.h>
#define uint8_t unsigned char
#define uint16_t unsigned int
sbit K1=P3^1;
sbit LED1=P3^3;
sbit LED2=P3^4;
uint8_t miao=0;
uint8_t knum[8];
uint8_t hour_A = 0,min_A = 0,sec_A=0;
uint8_t code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0x89,0xBF,0xc7};
//D?êy
uint8_t code index[]={0xFD,0xFE};
void delay(uint16_t z)
{
uint16_t i,j;
for(i=0;i<z;i++)
for(j=0;j<121;j++);
}
void display()
{
uint8_t i;
for(i=0;i<2;i++)
{
P0=0xff;
P2=index[i];
P0=tab[knum[ i]];
delay(2);
}
}
uint8_t num,Value;
bit start = 0;
void main()
{
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
ET0=1;
TR0=1;
EA=1;
while(1)
{
if(!K1)
{
delay(10); //根據(jù)具體時間調(diào)整里面參數(shù),主要是去掉一點抖動
if(!K1)
start = 1;
if(miao==0)
{
miao = 15;
}
}
else
{
start = 0;
miao = 0;
}
knum[1] = miao/10;
knum[0] = miao%10;;
display();
}
}
void T0_timer () interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(start)
{
LED1 = 0;
LED2 = 0;
num++;
if(num>20)
{
num = 0;
if(miao>0)
{
miao--;
}
else if(miao==0)
{
start = 0;
}
}
}
else
{
LED1 = 1;
LED2 = 1;
}
}
復(fù)制代碼
看你代碼寫的還不錯,只是思路不太清晰,你照我這樣改試試,可能還需要微調(diào),多調(diào)調(diào)你就能進(jìn)步了。
作者:
wojiaoguogai
時間:
2022-1-14 10:25
本帖最后由 wojiaoguogai 于 2022-1-14 11:53 編輯
int flag=0;//被擋住==1,否則==0
int time = 0;//秒數(shù)計數(shù)
int timeout = 0;//被擋住超過15秒==1
if(flag == 1)//被擋住
{
if(time ==0 && timeout ==0)//自減時間為0且不在超時狀態(tài)
{
time = 15;
開led; timeout =1;
}
else if(time > 0)
{
time--;
顯示數(shù)碼管時間
}
else if(time ==0 && timeout ==1)//被擋住超過15秒,關(guān)燈, 要保證這個超時狀態(tài),當(dāng)沒有下一個沒有擋住數(shù)碼管才能重新自減
{
led滅;
數(shù)碼管滅;
time=0;
}
}
else//沒有擋住
{
timeout =0;
led滅;
數(shù)碼管滅;
time=0;
}
作者:
羅斯德隆
時間:
2022-1-14 10:32
if(!K1) //低電平
{
delay(10); //根據(jù)具體時間調(diào)整里面參數(shù),主要是去掉一點抖動
if(!K1)
start = 1;
if(miao==0)
{
miao = 15;
}
}
else //高電平馬上清零
{
start = 0;
miao = 0;
}
knum[1] = miao/10;
knum[0] = miao%10;;
display();
復(fù)制代碼
作者:
xianfajushi
時間:
2022-1-14 11:01
那就表示要一直按住按鍵看到倒計時
作者:
lkc8210
時間:
2022-1-14 11:34
#include <reg52.h>
#include <intrins.h>
#include <math.h>
#define uint8_t unsigned char
#define uint16_t unsigned int
sbit K1 = P3 ^ 1;
sbit LED1 = P3 ^ 3;
sbit LED2 = P3 ^ 4;
bit Flag_2ms = 0;
bit K1_O;
uint8_t miao = 0;
uint8_t knum[8];
uint8_t hour_A = 0, min_A = 0, sec_A = 0;
uint8_t code tab[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff, 0x89, 0xBF, 0xc7};
//D?êy
uint8_t code index[] = {0xFD, 0xFE};
void delay(uint16_t z)
{
uint16_t i, j;
for(i = 0; i < z; i++)
for(j = 0; j < 121; j++);
}
void display()
{
static uint8_t i = 0;
P0 = 0xff;
P2 = index[i];
P0 = tab[knum[i]];
i = ++i % 2;
}
uint16_t num, Value;
bit start = 0;
void main()
{
TMOD = 0x01;
TH0 = (65536 - 2000) / 256;
TL0 = (65536 - 2000) % 256;
ET0 = 1;
TR0 = 1;
EA = 1;
while(1)
{
if(Flag_2ms)
{ Flag_2ms = 0;
if(!K1)
{
if(K1_O != K1) {
miao = 15;
}
LED1 = 0;
LED2 = 0;
num++;
if(num > 500)
{
num = 0;
if(miao > 0)
{
miao--;
}
}
}
else
{
LED1 = 1;
LED2 = 1;
miao = 0;
num = 0;
}
K1_O = K1;
knum[1] = miao / 10;
knum[0] = miao % 10;
display();
}
}
}
void T0_timer () interrupt 1
{
TH0 = (65536 - 2000) / 256;
TL0 = (65536 - 2000) % 256;
Flag_2ms = 1;
}
復(fù)制代碼
作者:
sseth
時間:
2022-1-14 11:38
timeo 發(fā)表于 2022-1-14 06:51
發(fā)表于2022-1-14 00:17
現(xiàn)在是讓燈變成燈,然后
"讓燈變成燈"啥意思?
點亮?
作者:
溫xyz
時間:
2022-1-14 11:43
這表達(dá)意思真是無法了解。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1