标题: 51单片机实现对电机的调速 [打印本页]
作者: fuyunzaihefang 时间: 2017-6-1 16:45
标题: 51单片机实现对电机的调速
#i#include<reg52.h>
#define uint unsigned int /*宏定义*/
#define uchar unsigned char /*宏定义*/
sbit P2_0=P2^0;
sbit S1=P0^0;
sbit S2=P0^1;
sbit S3=P0^2;
bdata flag=0x20^0;
uint nmuber0,nmuber1,count0,count1;
uint th0_h,th0_l,th1_h,th1_l;
void delay(uint z);
void time_initial();
void main()
{
time_initial();
while(1);
}
void time_initial() //定时器初始化
{
TMOD=0X11;
TH0=0x0D8;//5ms
TL0=0x0F0;//5ms
TH1=0x0D8;//5ms
TL1=0x0F0;//5ms
TH0=0xf0; //2ms
TL0=0x60; //2ms
TH0=0xfc; //0.5ms
TL0=0x18; //0.5ms
TH0=0x0F8; // 1ms
TL0=0x30; // 1ms
TH1=0x0F8; // 1ms
TL1=0x30; // 1ms
TH0=0x0FF;// 0.1ms
TL0=0x38; // 0.1ms
TH1=0x0FF; // 0.1ms
TL1=0x38; // 0.1ms
ET0=1; //定时器0的中断控制位
ET1=1; //定时器1的中断控制位
EX0=1; //外部的中断0控制位
IT0=1; //外部中断0为下降沿触发方式
ES=1;
REN=1;
TR0=1;
EA=1;
count0=1;
count1=1;
}
void Time0() interrupt 1 //定时器0的中断函数?
{
TH0=0xd8;//5ms
TL0=0x0f0;//5ms
nmuber0++;
if(nmuber0==count0)
{
nmuber0=0;
TH1=0xd8;//5ms
TL1=0xf0;//5ms
P2_0=1;
TR1=1;
TR0=0;
}
}
void Time1() interrupt 3 //定时器0的中断函数?
{
TH1=0x0D8;//5ms
TL1=0x0F0;//5ms
nmuber1++;
if(nmuber1==count1)
{
nmuber1=0;
P2_0=0;
TR1=0;
TR0=1;
}
}
void int0() interrupt 0// 外部的中断函数
{
P2_0=0;
TH0=0xd8;//5ms
TL0=0xf0;//5ms
delay(15);
TR0=1;
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
作者: qjyjack612510 时间: 2017-6-5 14:02
正在学,先收下,谢谢楼主分享。!!
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |