欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機C語言變量不起作用 [打印本頁]

作者: sis620    時間: 2021-3-21 21:45
標題: 單片機C語言變量不起作用
達到目的:開關(guān)打開后一直處于閉合狀態(tài),輸出只要發(fā)出一個20ms的高電平后維持低電平,用虛擬示波器發(fā)現(xiàn)20ms高電平,60ms低電平,再20ms高電平,一直反復(fù)。特來討教,謝謝

#include<reg51.h>
#define uint unsigned int
sbit left=P1^3;
sbit Lout=P3^2;               
unsigned char a;
void delay(uint z)
        {
                uint i,j;
                for(i=z;i>0;i--)
                        for(j=110;j>0;j--);
        }
        
void case1()
{
        if((left==0)&&(a==0))
        {        a=1;
                Lout=1;
                delay(20);
                Lout=0;
        }
}

void main()
{
        Lout=0;
        case1();
}






作者: zhangxiaozi    時間: 2021-3-21 23:51
void main()
{
        Lout=0;
       while(1)
      {
        case1();
      }
}
這樣就可以了,不過由于你改了a的值為i1后,沒程序把他改為0,你的程序只能執(zhí)行一次20Ms高電平,以后永遠是低電平了,再按鍵也不起作用了
作者: taotie    時間: 2021-3-21 23:53
尾巴加  while (1);
作者: TTQ001    時間: 2021-3-22 02:05
該程序的主函數(shù)沒有執(zhí)行case1代碼的無限循環(huán)。
作者: sis620    時間: 2021-3-22 09:11
zhangxiaozi 發(fā)表于 2021-3-21 23:51
void main()
{
        Lout=0;

謝謝,按照你的方法可以了。
作者: sis620    時間: 2021-3-22 09:11
taotie 發(fā)表于 2021-3-21 23:53
尾巴加  while (1);


作者: rayin    時間: 2021-3-22 09:41
可以采用中斷方式,設(shè)置T0,T1兩個定時器間隔時間輸出高低電平,main()函數(shù)里面初始化T0,T1中斷,就可以不需要while(1)了。
作者: HTT704993017    時間: 2021-3-22 09:59
加一個死循環(huán)
作者: zhaohuu    時間: 2021-3-22 11:15
給case加個循環(huán)就好了
作者: sis620    時間: 2021-3-22 20:19
zhangxiaozi 發(fā)表于 2021-3-21 23:51
void main()
{
        Lout=0;

那么再請教一下,謝謝。
main里的程序既然只運行了一次,那么a=1才對,但是輸出始終在動作,基本60ms有一次動作,這是哪個語句在起作用?
作者: 860012525    時間: 2021-3-23 16:25
少了尾巴啊,要加一個循環(huán)
作者: xunyicao    時間: 2021-3-23 17:05
此程序只執(zhí)行了一遍就停止了
作者: xjw5829    時間: 2021-3-24 14:08
要加循環(huán),不然就執(zhí)行了一遍





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1