工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->光电电路图->其他光电实用电路图->一个直流电机调速源程序

一个直流电机调速源程序

作者:沉默的offer时间:2018-08-07

直流电机可控硅调速源程序,望大家看后提出意见。#i nclude AT89X51.h>
#define uchar unsigned char
#define uint unsigned int
uchar zhishi[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; /*显示码*/


uint a,b;
bit mod=1;
uchar i,j;
void jianpan(void)/*键盘扫描程序*/
{
if(P2_1==0)/*P21为加速键*/
if(a49900)
a=a+100;

if(P2_5==0)/*P25为减速键*/
if(a>100)
a=a-100;

}
void waite(void)/*显示用延时程序*/
{
for(i=0;i3;i++)
for(j=0;j10;j++);
}
void xianshiqi(void)/*显示程序*/
{
if(a>=45000)
P0=zhishi[9];
waite();
if(a>=40000a45000)
P0=zhishi[8];
waite();
if(a>=35000a40000)
P0=zhishi[7];
waite();
if(a>=30000a35000)
P0=zhishi[6];
waite();
if(a>=25000a30000)
P0=zhishi[5];
waite();
if(a>=20000a25000)
P0=zhishi[4];
waite();
if(a>=15000a20000)
P0=zhishi[3];
waite();
if(a>=10000a15000)
P0=zhishi[2];
waite();
if(a>=5000a10000)
P0=zhishi[1];
waite();
if(a5000)
P0=zhishi[0];
waite();
}
void intie0(void) interrupt 0/*用于测试停止开关*/
{
mod=0;
}
void intt0(void) interrupt 1/*T0中断服务,用于输出占空比可调的脉冲*/
{
b=50000-a;
if(P1_0==1)
{
TH0=(65536-a)/256;
TL0=(65536-a)%256;
P1_0=0; P1_3=0;
}
else
{
TH0=(65536-b)/256;
TL0=(65536-b)%256;
P1_0=1; P1_3=1;
}
}
void intie1(void) interrupt 2/*用于可控硅关断*/
{
P3_1=0;
waite();
for(i=0;i150;i++)
for(j=0;j3;j++);
P3_1=1;
}
void main(void)
{
TMOD=0x01;
TH0=0xff;
TL0=0xff;
TCON=0x05;
IE=0x87;
cx:while(P2_6);
while(P2_6==0);
a=100;
TR0=1;
while(mod)
{
jianpan();
xianshiqi();
}
TR0=0;
P1_0=1;
P1_3=1;
P3_1=0;
waite();
P3_1=1;
P0=0xff;
if(mod==0)mod=1;
goto cx;
}


关键词:

评论

技术专区