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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求助用80c51單片機做個控制電路的小程序的思路

[復(fù)制鏈接]
回帖獎勵 100 黑幣 回復(fù)本帖可獲得 10 黑幣獎勵! 每人限 1 次
跳轉(zhuǎn)到指定樓層
樓主
ID:454930 發(fā)表于 2020-3-1 20:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
求助大神幫我寫個小程序,大概電路圖如圖,80c51單片機各個接口如圖;
說明:整個電路主要由一個3.7v直流電源供電,一個開關(guān),一個小電機。      
需求:
1.開關(guān)s1閉合,延時10秒后,3.7v直流小電機M通電轉(zhuǎn)動
2.電機轉(zhuǎn)動60秒后,斷電
3.希望有電路圖,和說明一下電路每條線路接單片機哪個接口
4.程序,每條程序有注釋,有什么作用。
新手,想研究一下,謝謝大佬!


批注 2020-03-01 195530.jpg (49.54 KB, 下載次數(shù): 13)

大概電路圖

大概電路圖

批注 2020-03-01 195530.jpg (113.94 KB, 下載次數(shù): 15)

80c51單片機

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

使用道具 舉報

沙發(fā)
ID:519251 發(fā)表于 2020-3-1 21:38 | 只看該作者
我有點還不大清楚的地方,1開關(guān)是常開的點動開關(guān)嗎?就是要用的時候按一下馬上就斷開 2這個程序是執(zhí)行一次就啥活也不干了還是要可以重復(fù)執(zhí)行?3對接在哪個引腳上有要求嗎?可以使用P3.3或者P3.2上嗎?望解惑
回復(fù)

使用道具 舉報

無效樓層,該帖已經(jīng)被刪除
地板
ID:84765 發(fā)表于 2020-3-2 00:02 | 只看該作者
這程序很簡單,如果用定時器就更好去控制時間的精準度,新手要慢慢了解,一下子給你寫復(fù)雜的你也一時理解不了,這程序?qū)懥藘煞N按鍵方式,一種是點動按鍵開關(guān)方式,另一種是自鎖開關(guān),需要閉合復(fù)位后才能再次運行 按鍵延時.zip (28.48 KB, 下載次數(shù): 7)
回復(fù)

使用道具 舉報

5#
ID:699902 發(fā)表于 2020-3-2 08:55 | 只看該作者
每條程序注釋
其實很簡單,便于寫完以后檢測,如果有錯誤,很快就知道哪里錯了。如果自己不知道,也便于別人檢查
回復(fù)

使用道具 舉報

6#
ID:56665 發(fā)表于 2020-3-2 09:15 | 只看該作者
13976778401 發(fā)表于 2020-3-2 00:02
這程序很簡單,如果用定時器就更好去控制時間的精準度,新手要慢慢了解,一下子給你寫復(fù)雜的你也一時理解不 ...

這個按鍵程序有一個缺點就是按鍵會不靈敏,失效,我以前用這個方法試過,延時太長,在延時過程中再按按鍵,按鍵時會沒反應(yīng)。
回復(fù)

使用道具 舉報

7#
ID:84765 發(fā)表于 2020-3-2 14:14 | 只看該作者
是呀,要是用中斷就可以去執(zhí)行其他的任務(wù)
回復(fù)

使用道具 舉報

8#
ID:697917 發(fā)表于 2020-3-2 17:43 | 只看該作者
里面有些細節(jié)東西,80C51直接3.7V供電是否可行?80C51的最小系統(tǒng)+按鍵方法+直流電機驅(qū)動網(wǎng)上很多,分開找,最后程序只是檢測按鍵,延遲,控制的過程。
回復(fù)

使用道具 舉報

9#
ID:687694 發(fā)表于 2020-3-2 22:17 | 只看該作者
#include<reg51.h>
#define YC 10       //閉合延遲時間
#define QDTIME 60   //工作時間
#define u8 unsigned char
#define u16 unsigned int
sbit K1a=P1^0;      //開關(guān)引腳a
sbit K1b=P1^1;      //開關(guān)引腳b
sbit OUT=P2^0;      //輸出引腳
u8 Tm=0;            //狀態(tài)檢測,0位初始狀態(tài),1為延遲狀態(tài),2為輸出狀態(tài),3為待復(fù)位狀態(tài)
u16 i=0,j=0;        //計時變量
void Tim_init()     //定時器0初始化函數(shù)
{
            TMOD = 0x01;  //定時器0設(shè)置16位計時器
                TH0 = 0x0FC;  //高值1ms
                TL0 = 0x18;   //低值1ms
                EA = 1;       //開總中斷
                ET0 = 1;      //開定時器中斷       
}

void Tim() interrupt 1//計時器中斷
{
                TH0 = 0x0FC;  //重裝初始值
                TL0 = 0x18;
                i++;          //ms計時累加
}
       
void S1()
{
        if(K1b==0&&Tm==0)//啟動狀態(tài)判斷,必須是復(fù)位狀態(tài),且開關(guān)閉合。
        {
                TR0=1;                //定時器開始工作
        Tm=1;       //進入狀態(tài)1開始延遲
        }
        if(K1b==1&&Tm==3)//復(fù)位狀態(tài)判斷,條件必須打開開關(guān),且一次任務(wù)完成。
        {
                Tm=0;      //復(fù)位狀態(tài)值
        }
}

void main()
{
        K1a=0;        //開關(guān)一端低電平
        OUT=0;  //輸出低電平,電機停止
        Tim_init();     //定時器初始化
        while(1)       //主循環(huán)
        {
                S1();      //按鍵檢測
                if(i==1000)//1S計時
                {
                        j++;   //秒計時累加
                        i=0;
                }
                if(j>YC&&Tm==1)  //如果檢測到j(luò)大于10則進入輸出狀態(tài)
                {
                        OUT=1;      //進入輸出狀態(tài)
                        Tm=2;       //設(shè)置輸出狀態(tài)為2,即輸出狀態(tài)
                        j=0;        //秒計時清零
                }
                if(j>QDTIME&&Tm==2)//如果檢測到j(luò)大于60則且在輸出狀態(tài),則停止輸出進入待復(fù)位狀態(tài)
                {
                        OUT=0;      //停止輸出
                        Tm=3;       //進入待復(fù)位狀態(tài)
                        j=0;        //秒計時清零
                        i=0;       //ms計時清零
                        TR0=0;      //關(guān)閉計時器
                }
        }               
}

程序如上,仿真圖如下。
       
回復(fù)

使用道具 舉報

10#
ID:687694 發(fā)表于 2020-3-2 22:28 | 只看該作者
附上打包代碼及仿真

電機控制.rar

89.56 KB, 下載次數(shù): 8

回復(fù)

使用道具 舉報

11#
ID:454930 發(fā)表于 2020-3-2 22:59 | 只看該作者
man_of_freedom 發(fā)表于 2020-3-1 21:38
我有點還不大清楚的地方,1開關(guān)是常開的點動開關(guān)嗎?就是要用的時候按一下馬上就斷開 2這個程序是執(zhí)行一次 ...

普通開關(guān),按著開,松開斷,作用類似于長按啟動;執(zhí)行一次,無需執(zhí)行二次;引腳沒要求,,謝謝
回復(fù)

使用道具 舉報

12#
ID:454930 發(fā)表于 2020-3-2 23:00 | 只看該作者
51hei**1140 發(fā)表于 2020-3-1 22:24
這是師傅在考核學(xué)生,請認真對待

不是師傅,,我學(xué)徒,小白,,,
回復(fù)

使用道具 舉報

13#
ID:454930 發(fā)表于 2020-3-2 23:02 | 只看該作者
13976778401 發(fā)表于 2020-3-2 00:02
這程序很簡單,如果用定時器就更好去控制時間的精準度,新手要慢慢了解,一下子給你寫復(fù)雜的你也一時理解不 ...

謝謝大佬
回復(fù)

使用道具 舉報

14#
ID:454930 發(fā)表于 2020-3-3 09:49 | 只看該作者
lovexulu 發(fā)表于 2020-3-2 22:17
#include
#define YC 10       //閉合延遲時間
#define QDTIME 60   //工作時間

謝謝大佬
回復(fù)

使用道具 舉報

15#
ID:454930 發(fā)表于 2020-3-3 09:53 | 只看該作者
lovexulu 發(fā)表于 2020-3-2 22:28
附上打包代碼及仿真

謝謝大佬
回復(fù)

使用道具 舉報

16#
無效樓層,該帖已經(jīng)被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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