標(biāo)題:
STM8S003串口控制電機(jī)鎖程序
[打印本頁]
作者:
關(guān)系網(wǎng)后
時(shí)間:
2017-3-1 11:07
標(biāo)題:
STM8S003串口控制電機(jī)鎖程序
STM8S003單片機(jī)通串口控制電機(jī)鎖
0.png
(69.61 KB, 下載次數(shù): 58)
下載附件
2017-3-1 22:59 上傳
完整代碼下載:
lock.rar
(651.73 KB, 下載次數(shù): 30)
2017-3-1 11:07 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
下面是主程序:
#include "IOSTM8S103F3.h"
#include "led.h"
#include "uart.h"
#include "common.h"
#include "motor.h"
#include "timer.h"
void rxdata_pro();
void handle_pro();
u8 rx_flag = 0;
extern u32 time;
extern u8 RxBuffer[RxBufferSize];
u8 lockstatus = 2;
u8 check = 0;
u8 oldpos;
u8 cmd_flag;
u8 qzflag = 0;
void main()
{
CLK_CKDIVR = 8;
uart_conf();
lock_config();
PWM_Timer1_config();
PWM_Start();
delay_config();
enableInterrupts();
// wdg_config();
unlock();
while(1)
{
feetdog();
rxdata_pro();
if(!HOARE_LVALUE) led_tongle();
if(!HOARE_RVALUE) led_on();
handle_pro();
}
}
void rxdata_pro()
{
int i;
if(!rx_flag) return;
check = 0;
for(i = 0;i < 3;i++)
check ^= RxBuffer[i];
if(check != RxBuffer[3])
return;
cmd_flag = 1;
switch(RxBuffer[2])
{
case 1:
if(HOARE_RVALUE) lock();
break;
case 2://關(guān)門
if(HOARE_LVALUE) unlock();break;
case 3://強(qiáng)制閉鎖
//if(HOARE_RVALUE) qzlock();
if(!qzflag){
qzlock();qzflag = 0;
}
break;
case 4:
if(!qzflag){
qxqzbs();qzflag = 0;break;
}
break;
default:break;
}
rx_flag = 0;
}
void wdg_config()
{
CLK_ICKR |= 1<<3;
while(!(CLK_ICKR & (1<<4)));
IWDG_KR = 0x55; //解鎖
IWDG_PR = 6;//128k 256分頻 500hz
IWDG_RLR = 255;
IWDG_KR = 0xCC;
}
void feetdog()
{
IWDG_KR = 0xAA;
}
void handle_pro()
{
if(HOARE_LVALUE && HOARE_RVALUE)
{
cmd_flag = 0;
if(!oldpos) lock();
else
unlock();
}
if(GetDoorStatus())
{
if(HOARE_LVALUE)
{
delay(1000);
unlock();
}
}
}
復(fù)制代碼
作者:
bloss
時(shí)間:
2017-10-7 13:49
看看怎么樣呢?
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1