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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2645|回復: 3
收起左側

求STC15F104W的一個程序設計思路

[復制鏈接]
ID:594633 發表于 2020-4-1 16:48 | 顯示全部樓層 |閱讀模式
哪位大佬能幫搞一個程序測試下硬件,小弟剛接觸單片機,程序實在是搞不懂~ 想搞一個程序研究下,謝謝各位~~

單片機:STC15F104W

key1=P3^0;            //S1  按鍵
key2=P3^1;            //S2  備用按鍵
led1=P3^2;            //指示燈 綠色
led2=P3^3;            //指示燈 紅色  初始化為低電平
relay1=P3^4;         //繼電器1     
relay2=P3^5;        //繼電器2      

程序要求:
程序初始化后P3.3為低電平,其他默認高電平。

1、P3.0由高變低(S1按下)——P3.4由高變低并保持2秒后再恢復到高并保持;P3.3由低變高并保持;P3.2間隔1秒低高輸出(LED1閃爍),30秒后低電平保持(LED1常亮);30秒內重復S1按下無效,超過30秒才能有效。

2、P3.0由高變低(S1 30秒后再按下)——P3.5由高變低并保持2秒后再恢復到高并保持;P3.2由低變高并保持;P3.3間隔1秒低高輸出(LED2閃爍),30秒后低電平保持(LED2常亮);30秒內重復S1按下無效,超過30秒才能有效。



-----------------
一個按鍵控制2個LED和2個繼電器。每30秒按鍵執行1次相應的動作,30秒內重復觸發無效。


回復

使用道具 舉報

ID:584814 發表于 2020-4-1 18:54 | 顯示全部樓層
你的思路已經很清楚了,直接寫代碼就好。預祝順利。
回復

使用道具 舉報

ID:594633 發表于 2020-4-1 22:26 來自觸屏版 | 顯示全部樓層
man1234567 發表于 2020-4-1 18:54
你的思路已經很清楚了,直接寫代碼就好。預祝順利。

思路是有,這個代碼實在是弄不懂(=_=)
回復

使用道具 舉報

ID:594633 發表于 2020-4-17 00:09 | 顯示全部樓層
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit key =P3^0;                //開始結束按鍵
sbit LED1=P3^2;                //開始綠燈
sbit LED2=P3^3;               //停止紅燈
sbit relay =P3^4;      //開始繼電器
sbit relay1=P3^5;        //結束繼電器

uint count;//計時存儲器

void DelayMS(uint x)
{
        uchar i;
        while(x--);
        {
                for(i=0;i<120;i++);
        }
}

void init()
{
        
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;

        ET0 =1;
        TR0 =0;
        EA =1;
}

void main()
{
        relay1=1;
        relay=1;
        LED1=1;
        LED2=0;
        init();

        while (1)
        {
            if (key==0)//按鍵按下
            {
                    
                     TR0 =1;//啟動定時器
           
            }
               
        }
}

void timer0()interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;

        count++;

        if (count ==1 && LED2==0)//到達設定時間
                {
                                relay =~relay;
                                DelayMS(50000);
                                relay =~relay;
                                       
                }

                if (count ==1 && LED1==0)
                {
                                relay1 =~relay1;
                                DelayMS(50000);
                                relay1 =~relay1;
                                       
                }
                       
                if (count <=450 && LED1==0)
                {
                        LED1=~LED1;
                        DelayMS(3000);
                            LED1=~LED1;
                        }
                else
                         {
                               LED2=~LED2;
                        DelayMS(3000);
                            LED2=~LED2;
                }

        if (count >=450)
                {
                           LED1=~LED1;
                           LED2=~LED2;
                            count =0;
                            TR0 =0;
                     }
                       
}


---------------------------------------------------------------------------------------------------------
把以上程序下載到STC15F104W里運行不正常,LED不閃爍,始終常亮,搞不懂哪里問題。Proteus里仿真是正常的(這個程序仿真效果是2個指示燈切換顯示和原先要求不一樣,類似紅綠燈切換方式)。
下載程序的時候發現下載不進去,始終再檢測。3.0和3.1口只接了開關,沒有其他元件,后來發現3.4和3.5口要把限流電阻(控制三極管B極)拆掉才能下載……
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表