標(biāo)題:
請求高人幫助 磁保持繼電器的驅(qū)動程序如何編寫?
[打印本頁]
作者:
heimao
時間:
2020-4-9 14:13
標(biāo)題:
請求高人幫助 磁保持繼電器的驅(qū)動程序如何編寫?
JRX.jpg
(624.45 KB, 下載次數(shù): 45)
下載附件
2020-4-9 14:10 上傳
見圖。本人初學(xué)單片機,想寫一個這個程序,由于才疏學(xué)淺,無法實現(xiàn),請高人幫助指導(dǎo)一下,不勝感激,謝謝!
作者:
wulin
時間:
2020-4-9 20:07
按你的原理圖給你寫個的程序,未經(jīng)實物驗證,僅供參考。
/*******************************
本程序只適合STC15系列1T單片機
使用內(nèi)部時鐘11.0592MHz
磁保持繼電器與輸出端口需要對應(yīng)
*******************************/
#include <reg51.h>
#include <intrins.h>
//特殊功能寄存器聲明
sfr P3M0=0xB2; //端口3模式寄存器0
sfr P3M1=0xB1; //端口3模式寄存器1
//端口聲明
sbit key =P3^0;
sbit OUT1=P3^2;
sbit OUT2=P3^3;
//變量聲明
unsigned int count=0;//消抖計數(shù)變量
bit lock=0;//按鍵自鎖位變量
bit flag=0;//按鍵狀態(tài)位變量
//延時函數(shù)
void Delay100ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
_nop_();
i = 5;
j = 52;
k = 195;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
//主函數(shù)
void main()
{
OUT1=0;//初始化輸出端口
OUT2=0;//初始化輸出端口
P3M1 = 0x00;//設(shè)置P3.2/P3.3推挽模式
P3M0 = 0x0c;//設(shè)置P3.2/P3.3推挽模式
while(1)
{
if(!key)//按鍵按下
{
if(++count>=500 && lock==0)//消抖與自鎖
{
lock=1;//自鎖,防止長按重復(fù)響應(yīng)
flag=~flag;//按鍵狀態(tài)標(biāo)志取反
if(flag)
{
OUT1=1;//繼電器吸合
Delay100ms();
OUT1=0;
}
else
{
OUT2=1;//繼電器釋放
Delay100ms();
OUT2=0;
}
}
}
else//按鍵松手
{
lock=0;//自鎖標(biāo)志清0
count=0;//消抖計數(shù)清0
}
}
}
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1