欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機控制直流電機不會加定時器延時程序
[打印本頁]
作者:
txy1105
時間:
2021-4-29 09:56
標題:
51單片機控制直流電機不會加定時器延時程序
51單片機控制直流電機,電機驅動模塊為L298N,下面這個程序能控制電機正常變速,想在此基礎上加定時器延時程序,不知道怎么加,有沒有大神幫我看看,謝謝!
#include<reg52.h>
void uart_init();
void qudong (unsigned int t);
sbit en1=P0^0; //l298nen1
unsigned char str ;
void uart_init()
{
SCON = 0x50;//設置串口工作方式1
TMOD = 0x20;//設置計數器工作方式2
PCON = 0x00;//即SMOD=1,波特率不加倍
TH1 = 0xFD;//計數器初值,波特率是9600,晶振為11.0592MHz
TL1 = 0xFD;
ES = 1;//打開接收中斷
EA = 1;//打開總中斷
TR1 = 1;//打開計數器
}
void delay(unsigned int xms) //延時函數
{
unsigned int t1, t2 ;
for(t1=0;t1<xms;t1++)
for(t2=0;t2<110;t2++);
}
void main()
{
en1=0;
uart_init();
while (1)
{
if(str==1)
qudong(0) ; //停止
else if(str==2)
qudong(10) ; //速度1
else if(str==3)
qudong(15) ; //速度2
else if(str==4)
qudong(20) ; //速度3
}
}
void qudong (unsigned int t)
{
en1=1;
delay(t);
en1=0;
delay(20-t);
}
void a(void) interrupt 4
{
if(RI)
{
RI=0;
str=SBUF;
}
}
作者:
txy1105
時間:
2021-4-29 10:00
這是自己改的延時,串口輸入1,電機轉動,再輸入其他沒用了
#include<reg52.h>
void uart_init();
void qudong (unsigned int t);
sbit en1=P0^0; //l298nen1
unsigned char str ;
int n=1,t=1;
void uart_init()
{
SCON = 0x50;//設置串口工作方式1
TMOD = 0x20;//設置計數器工作方式2
TMOD |= 0x01;
PCON = 0x00;//即SMOD=1,波特率不加倍
TH1 = 0xFD;//計數器初值,波特率是9600,晶振為11.0592MHz
TL1 = 0xFD;
ET0=1;
ES = 1;//打開接收中斷
EA = 1;//打開總中斷
TR1 = 1;//打開計數器
}
void delay(unsigned int xms) //延時函數
{
n=xms;
TH0=(65536-1000*n)/256;
TL0=(65536-1000*n)%256;
TR0=1;
while(t);
TR0=0;
}
void main()
{
en1=0;
uart_init();
while (1)
{
if(str==1)
qudong(0) ; //停止
else if(str==2)
qudong(10) ; //速度1
else if(str==3)
qudong(15) ; //速度2
else if(str==4)
qudong(20) ; //速度3
}
}
void qudong (unsigned int t)
{
en1=1;
delay(t);
en1=0;
delay(20-t);
}
void a(void) interrupt 4
{
if(RI)
{
RI=0;
str=SBUF;
}
}
void b(void) interrupt 1
{
t=0;
}
作者:
haokey
時間:
2021-4-29 12:04
加定時器延時想實現什么功能?
作者:
txy1105
時間:
2021-4-29 12:18
haokey 發表于 2021-4-29 12:04
加定時器延時想實現什么功能?
用串口通信實現直流電機速度控制,速度等級,和電機開關
作者:
狂靈得木桶69
時間:
2021-4-29 15:24
你是想讓電機轉一會兒,延時到了就停嗎?這得用定時器中斷,delay不行,執行delay函數時程序在那里循環,此時電機就不轉了,用定時器中斷,時間到了在中斷里關閉電機
作者:
欣欣
時間:
2021-4-29 15:38
軟件延時換成定時器延時,不然程序一直在delay函數里運行,就沒時間去處理其他事務了。請給系統運行while(1)內程序以時間,謝謝。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1