欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
這個(gè)單片機(jī)程序?yàn)槭裁窗聪耴ey2按鍵,小燈不進(jìn)行呼吸?
[打印本頁(yè)]
作者:
6010010
時(shí)間:
2019-3-7 22:50
標(biāo)題:
這個(gè)單片機(jī)程序?yàn)槭裁窗聪耴ey2按鍵,小燈不進(jìn)行呼吸?
#include<REG52.h>
#define uchar unsigned char
unsigned char PWM_COUNT;
unsigned int HUXI_COUNT;
unsigned char PWM_VLAUE;
bit direc_flag;
sbit led1=P0^0;
sbit led2=P0^1;
sbit led3=P0^2;
sbit led4=P0^3;
sbit led5=P0^4;
sbit led6=P0^5;
sbit led7=P0^6;
sbit led8=P0^7;
sbit w1=P2^4;
sbit key1 = P2^0;
sbit key2 = P2^1;
unsigned char smg_date[]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x98,0x88,0x83,
0xa7,0xa1,0x86,0x8e};
uchar an = 0;
void keyscan();
void delayms (uchar time)//???
{
for(time; time>0; time--)
{
TMOD = 0x01;
TH0 = 0xfc;
TL0 = 0x18;
TR0 = 1; //?????????0
while(TF0!=1);//???????
EA=1;
ET0 = 1;
TR0 = 0;
}
}
void scan_key (void)
{
if (!key1)
{
delayms (10);
if (!key1)
{
delayms (5);
while (!key1);
an++;
if (an==9)
{
an = 0;
}
}
}
}
void main (void)
{
w1=0;
while (1)
{
scan_key ();
if (an==0)
{
led1 = 1;
led2 = 1;
led3 = 1;
led4 = 1;
led5 = 1;
led6 = 1;
led7 = 1;
led8 = 1;
P1=smg_date[0];
an=0;
}
if (an==1)
{
led1 = 0;
led2 = 1;
led3 = 1;
led4 = 1;
led5 = 1;
led6 = 1;
led7 = 1;
led8 = 1;
P1=smg_date[1];
an=1;
}
if (an==2)
{
led1 = 1;
led2 = 0;
led3 = 1;
led4 = 1;
led5 = 1;
led6 = 1;
led7 = 1;
led8 = 1;
P1=smg_date[2];
an=2;
}
if (an==3)
{
led1 = 1;
led2 = 1;
led3 = 0;
led4 = 1;
led5 = 1;
led6 = 1;
led7 = 1;
led8 = 1;
P1=smg_date[3];
an=3;
}
if (an==4)
{
led1 = 1;
led2 = 1;
led3 = 1;
led4 = 0;
led5 = 1;
led6 = 1;
led7 = 1;
led8 = 1;
P1=smg_date[4];
an=4;
}
if (an==5)
{
led1 = 1;
led2 = 1;
led3 = 1;
led4 = 1;
led5 = 0;
led6 = 1;
led7 = 1;
led8 = 1;
P1=smg_date[5];
an=5;
}
if (an==6)
{
led1 = 1;
led2 = 1;
led3 = 1;
led4 = 1;
led5 = 1;
led6 = 0;
led7 = 1;
led8 = 1;
P1=smg_date[6];
an=6;
}
if (an==7)
{
led1 = 1;
led2 = 1;
led3 = 1;
led4 = 1;
led5 = 1;
led6 = 1;
led7 = 0;
led8 = 1;
P1=smg_date[7];
an=7;
}
if (an==8)
{
led1 = 1;
led2 = 1;
led3 = 1;
led4 = 1;
led5 = 1;
led6 = 1;
led7 = 1;
led8 = 0;
P1=smg_date[8];
}
if (an==9)
{
led1 = 1;
led2 = 1;
led3 = 1;
led4 = 1;
led5 = 1;
led6 = 1;
led7 = 1;
led8 = 1;
P1=smg_date[9];
}
if(key2==0)
{
delayms(5);
if(key2==0)
{
while(!key2);
TR0=1;
}
}
}
switch(an)
{
case 1: if (PWM_COUNT==PWM_VLAUE)
{
led1=1;
}
if(PWM_COUNT==10)
{
led1=0;
PWM_COUNT=0;
}
break;
case 2: if (PWM_COUNT==PWM_VLAUE)
{
led2=1;
}
if(PWM_COUNT==10)
{
led2=0;
PWM_COUNT=0;
}
break;
case 3: if (PWM_COUNT==PWM_VLAUE)
{
led3=1;
}
if(PWM_COUNT==10)
{
led3=0;
PWM_COUNT=0;
}
break;
case 4: if (PWM_COUNT==PWM_VLAUE)
{
led4=1;
}
if(PWM_COUNT==10)
{
led4=0;
PWM_COUNT=0;
}
break;
case 5: if (PWM_COUNT==PWM_VLAUE)
{
led5=1;
}
if(PWM_COUNT==10)
{
led5=0;
PWM_COUNT=0;
}
break;
case 6: if (PWM_COUNT==PWM_VLAUE)
{
led6=1;
}
if(PWM_COUNT==10)
{
led6=0;
PWM_COUNT=0;
}
break;
case 7: if (PWM_COUNT==PWM_VLAUE)
{
led7=1;
}
if(PWM_COUNT==10)
{
led7=0;
PWM_COUNT=0;
}
break;
case 8: if (PWM_COUNT==PWM_VLAUE)
{
led8=1;
}
if(PWM_COUNT==10)
{
led8=0;
PWM_COUNT=0;
}
break;
}
}
void T0_timer() interrupt 1
{
PWM_COUNT++;
HUXI_COUNT++;
if((HUXI_COUNT==600)&&(direc_flag==1))
{
HUXI_COUNT=0;
PWM_VLAUE--;
if(PWM_VLAUE==1)
direc_flag=0;
}
if((HUXI_COUNT==600)&&(direc_flag==0))
{
HUXI_COUNT=0;
PWM_VLAUE++;
if(PWM_VLAUE==9)
direc_flag=1;
}
}
復(fù)制代碼
作者:
HC6800-ES-V2.0
時(shí)間:
2019-3-8 08:37
一般的高手都不會(huì)看你的程序的,我嘛,看看了。
問(wèn)題一:為什么不呼吸?因?yàn)槟愕膕witch部分,全部在主循環(huán)外,根本沒(méi)有執(zhí)行到嘛。
問(wèn)題二:就是把它放入主循環(huán)了,也要等好一會(huì),燈才會(huì)閃,注意,是閃,亮一個(gè)很短時(shí)間就滅了,不是呼吸。說(shuō)明呼吸這部分程序是有問(wèn)題的。看不懂你的呼吸程序,你這個(gè)呼吸程序好像太復(fù)雜了。
建議:你先做一個(gè)只讓燈呼吸起來(lái)的程序吧,單一功能看能不能實(shí)現(xiàn)。
作者:
yaoji123
時(shí)間:
2019-3-8 08:54
可能有二個(gè)問(wèn)題:定時(shí)器定時(shí)值中斷后未重裝,主程序在執(zhí)行過(guò)程時(shí)間長(zhǎng),可能判斷值過(guò)程起不到作用。如果定時(shí)器只是為延時(shí),不好用空操作作為延時(shí)。
作者:
lfc315
時(shí)間:
2019-3-8 10:16
應(yīng)該是按下按鍵后,程序就進(jìn)入到void scan_key里面出不來(lái)了,程序在等你放開(kāi)按鍵;
檢測(cè)按鍵的函數(shù)改一下
作者:
良秀綿綿
時(shí)間:
2019-3-8 10:58
程序有大問(wèn)題,慢慢找吧啊
作者:
static
時(shí)間:
2019-3-8 11:35
本帖最后由 static 于 2019-3-22 10:04 編輯
程式邏輯沒(méi)理
作者:
static
時(shí)間:
2019-3-8 11:37
本帖最后由 static 于 2019-3-22 10:03 編輯
這經(jīng)里有別人處理按鍵與被執(zhí)行事物處理的例子
作者:
lfc315
時(shí)間:
2019-3-8 11:48
應(yīng)該是 while(!key2); 這句的問(wèn)題?
作者:
菜用雞
時(shí)間:
2019-3-8 22:39
以后加點(diǎn)注釋,才有人愿意看,不然看得難受
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1