找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2653|回復(fù): 12
收起左側(cè)

單片機(jī)C語(yǔ)言變量不起作用

[復(fù)制鏈接]
ID:293479 發(fā)表于 2021-3-21 21:45 | 顯示全部樓層 |閱讀模式
達(dá)到目的:開關(guān)打開后一直處于閉合狀態(tài),輸出只要發(fā)出一個(gè)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();
}
無(wú)標(biāo)題.jpg




回復(fù)

使用道具 舉報(bào)

ID:287575 發(fā)表于 2021-3-21 23:51 | 顯示全部樓層
void main()
{
        Lout=0;
       while(1)
      {
        case1();
      }
}
這樣就可以了,不過由于你改了a的值為i1后,沒程序把他改為0,你的程序只能執(zhí)行一次20Ms高電平,以后永遠(yuǎn)是低電平了,再按鍵也不起作用了
回復(fù)

使用道具 舉報(bào)

ID:342822 發(fā)表于 2021-3-21 23:53 | 顯示全部樓層
尾巴加  while (1);
回復(fù)

使用道具 舉報(bào)

ID:420836 發(fā)表于 2021-3-22 02:05 | 顯示全部樓層
該程序的主函數(shù)沒有執(zhí)行case1代碼的無(wú)限循環(huán)。
回復(fù)

使用道具 舉報(bào)

ID:293479 發(fā)表于 2021-3-22 09:11 | 顯示全部樓層
zhangxiaozi 發(fā)表于 2021-3-21 23:51
void main()
{
        Lout=0;

謝謝,按照你的方法可以了。
回復(fù)

使用道具 舉報(bào)

ID:293479 發(fā)表于 2021-3-22 09:11 | 顯示全部樓層

回復(fù)

使用道具 舉報(bào)

ID:517951 發(fā)表于 2021-3-22 09:41 | 顯示全部樓層
可以采用中斷方式,設(shè)置T0,T1兩個(gè)定時(shí)器間隔時(shí)間輸出高低電平,main()函數(shù)里面初始化T0,T1中斷,就可以不需要while(1)了。
回復(fù)

使用道具 舉報(bào)

ID:894851 發(fā)表于 2021-3-22 09:59 | 顯示全部樓層
加一個(gè)死循環(huán)
回復(fù)

使用道具 舉報(bào)

ID:894309 發(fā)表于 2021-3-22 11:15 來自手機(jī) | 顯示全部樓層
給case加個(gè)循環(huán)就好了
回復(fù)

使用道具 舉報(bào)

ID:293479 發(fā)表于 2021-3-22 20:19 | 顯示全部樓層
zhangxiaozi 發(fā)表于 2021-3-21 23:51
void main()
{
        Lout=0;

那么再請(qǐng)教一下,謝謝。
main里的程序既然只運(yùn)行了一次,那么a=1才對(duì),但是輸出始終在動(dòng)作,基本60ms有一次動(dòng)作,這是哪個(gè)語(yǔ)句在起作用?
回復(fù)

使用道具 舉報(bào)

ID:895034 發(fā)表于 2021-3-23 16:25 | 顯示全部樓層
少了尾巴啊,要加一個(gè)循環(huán)
回復(fù)

使用道具 舉報(bào)

ID:286211 發(fā)表于 2021-3-23 17:05 | 顯示全部樓層
此程序只執(zhí)行了一遍就停止了
回復(fù)

使用道具 舉報(bào)

ID:895574 發(fā)表于 2021-3-24 14:08 | 顯示全部樓層
要加循環(huán),不然就執(zhí)行了一遍
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表