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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1278|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

這個(gè)單片機(jī)程序邏輯有問(wèn)題嗎?好奇怪

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:53813 發(fā)表于 2022-12-6 12:11 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
/////上述這個(gè),F(xiàn)lag = 2 的時(shí)候,close 只能執(zhí)行5次,就回到 flag  =1 那里去了
單片機(jī)源程序如下:
#include <xc.h>
/* Private define-------------------------------------------------------------*/

#define JDQ_Switch   RD0

unsigned char  Flag;
unsigned int    Open;
unsigned int    Close;




/* Private function prototypes------------------------------------------------*/  

/*
        * @name   GPIO_Init
        * @brief  輸入輸出端口初始化
        * @param  None
        * @retval None      
*/
static  void GPIO_Init()               
{   

    //RD0-控制三極管
    //TRISDbits.TRISD0 = 0;                // TRISd方向寄存器 ,RA0口設(shè)置為 輸出;
    //PORTDbits.RD0 = 1;                   // RA5設(shè)置為 高電平,關(guān)閉光耦

    //TRISDbits.TRISD1 = 0;                // TRISd方向寄存器 ,RA1口設(shè)置為 輸出;
   // PORTDbits.RD1 = 0;                   // RA5設(shè)置為 低電平,打開(kāi)光耦

    TRISD = 0x00;                // TRISD方向寄存器 ,RC5口設(shè)置為 輸出;
    PORTD = 0x00;                // RD0~RD7 設(shè)置為 高電平,關(guān)閉LED

}
/*
        * @name   Delay_ms
        * @brief  1毫秒延時(shí)函數(shù)
        * @param  ms -> 對(duì)應(yīng)需要延時(shí)的時(shí)間
        * @retval None      
*/
static void Delay_10ms(unsigned int ms)
{
        unsigned int i,j;
        for(i=0;i<ms;i++)
                for(j=0;j<990;j++);
}


void main(void)
{
    GPIO_Init();
    //Fosc_Init();
    //Timer0_Init();
    //IE_Init();

    Flag = 1;

    while(1)
    {
         Flag = 1;

        switch(Flag)
        {
            case1:
            for(Open = 0; Open <10; Open++)
            {
                RD2 = 0;
                Delay_10ms(10);
                RD2 = 1;
                Delay_10ms(10);
            }
            RD0 = 0;
            Flag = 2;
            break;

            case2:
            for(Close = 0; Close <10; Close++)
            {
                RD4 = 0;
                Delay_10ms(10);
                RD4 = 1;
                Delay_10ms(10);
            }
            RD0 = 1;
            Flag = 1;
            break;

        }
    }
}
////////////上述這個(gè),燒錄后沒(méi)反應(yīng)、、、
void main(void)
{
    GPIO_Init();
    //Fosc_Init();
    //Timer0_Init();
    //IE_Init();
    Flag = 1;

    while(1)
    {
        if(Flag == 1)
        {
            for(Open = 0; Open <10; Open++)
            {
                RD2 = 0;
                Delay_10ms(10);
                RD2 = 1;
                Delay_10ms(10);
            }

            Flag = 2;

            RD0 = 0;

        }

        if(Flag == 2)
        {
            for(Close = 0; Close <10; Close++)
            {
                RD4 = 0;
                Delay_10ms(10);
                RD4 = 1;
                Delay_10ms(10);
            }

            Flag = 1;

            RD0 = 1;

        }
    }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:123289 發(fā)表于 2022-12-7 15:39 | 只看該作者
不服,自己寫一個(gè)看看。成了不就好了嗎?
回復(fù)

使用道具 舉報(bào)

板凳
ID:77589 發(fā)表于 2022-12-7 17:32 | 只看該作者
感覺(jué)你用的是PIC,如果是的話,必須寫配置位。如果沒(méi)有寫配置位有可能系統(tǒng)時(shí)鐘都沒(méi)有,怎么可能有反應(yīng)呢。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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