直流电机可控硅调速源程序,望大家看后提出意见。
#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(a<49900)
a=a+100;
if(P2_5==0) /*P25为减速键*/
if(a>100)
a=a-100;
}
void waite(void) /*显示用延时程序*/
{
for(i=0;i<3;i++)
for(j=0;j<10;j++);
}
void xianshiqi(void) /*显示程序*/
{
if(a>=45000)
P0=zhishi[9];
waite();
if(a>=40000&&a<45000)
P0=zhishi[8];
waite();
if(a>=35000&&a<40000)
P0=zhishi[7];
waite();
if(a>=30000&&a<35000)
P0=zhishi[6];
waite();
if(a>=25000&&a<30000)
P0=zhishi[5];
waite();
if(a>=20000&&a<25000)
P0=zhishi[4];
waite();
if(a>=15000&&a<20000)
P0=zhishi[3];
waite();
if(a>=10000&&a<15000)
P0=zhishi[2];
waite();
if(a>=5000&&a<10000)
P0=zhishi[1];
waite();
if(a<5000)
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;i<150;i++)
for(j=0;j<3;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;
}
直流电机调速源程序示例
相关文章
- 大众颜值担当全新一代大众CC亮相
- 凌力尔特推新LTC3612高可靠性H级版本及军用MP级版本
- 选择PCB可焊性表面镀层的考虑事项有哪些
- 全国首款商用氢燃料电池发动机正式揭幕
- 二氧化碳温湿度空气质量监测传感器模块解析
- 智能低压电动机保护器品种及选型方法
- 一场围绕保鲜的技术竞赛如火如荼地展开,冰箱市场上半年市场平稳增长
- 大众将于明年1月展出自动驾驶电动车 方向盘可缩回
- HDR是什么,有什么优势,现状如何?
- 美国汽车LiDAR系统为新传感平台的规模做好准备_大幅降低成本
- 在立式自动填充包装机中超声波传感器有什么作用?
- Plunify成为Amazon EC2 F1 Instance Partner的合作厂家