|
|
/* 關(guān)閉開(kāi)發(fā)板電源
單片機(jī)開(kāi)發(fā)板上不要接插任何模塊,如液晶點(diǎn)陣這些都不能接上,
把P10用杜邦線鏈接到電機(jī)驅(qū)動(dòng)模塊 J4的4IN上,然后把小電機(jī)
端子插到 J2的 + 和D 上,不分線序接上即可。
選擇好程序,打開(kāi)電源點(diǎn)下載,接著打開(kāi)單片機(jī)電源。
按S2減速,按S3加速。
************************************************
"1"為加速
"2"為減速
"3"為開(kāi)
"4"為關(guān)
*/
#include <reg52.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
uchar pwm_t;//調(diào)節(jié)值
uchar a,flag;
uchar bd = 50;//比對(duì)值
sbit _4IN = P1^7;//輸出引腳
sbit led1 = P1^0;//初始化
sbit led2 = P1^1;//開(kāi)關(guān)狀態(tài)燈
sbit led3 = P1^2;//加速燈
sbit led4 = P1^3;//減速燈
//定時(shí)器0中斷
void timer0() interrupt 1
{
TH0 = (65536-10)/256;//0.01ms
TL0 = (65536-10)%256;
pwm_t++;
if(pwm_t == 100)
pwm_t = 0;
}
//中斷3
void timer3() interrupt 4
{
RI = 0;
a = SBUF;
}
//初始化
void Init()
{
TMOD = 0x21;
SCON = 0x50;
TH0 = (65536-10)/256;//0.01ms
TL0 = (65536-10)%256;
TH1 = 0xfd;
TL1 = 0xfd;
EA = 1;//總中斷允許
ES = 1;//串口中斷允許
TR1 = 1;//啟動(dòng)定時(shí)器1
TR0 = 1;//啟動(dòng)定時(shí)器0
ET0 = 1;//允許定時(shí)器0中斷
_4IN = 0;
}
void main()
{
Init();
led1 = 0;
while(1)
{
if(a == "3")
{
flag = 1;//自鎖
led2 = 0;
}
if((a == "1")&&(flag == 1))//加速
{
bd += 10;
led3=0;
if(bd > 100)
bd = 100;
while(pwm_t<bd)
_4IN = 1;
_4IN = 0;
}
if((a == "2")&&(flag == 1))//減速
{
bd -= 10;
led4=0;
if(bd > 0)
bd = 0;
while(pwm_t<bd)
_4IN = 1;
_4IN = 0;
}
if(a == "4")
{
led4 = 1;
led3 = 1;
led2 = 1;
flag = 0;
_4IN = 0;
}
}
}
|
|