机电之家资源网
单片机首页|单片机基础|单片机应用|单片机开发|单片机文案|软件资料下载|音响制作|电路图下载 |嵌入式开发
培训信息
赞助商
一个直流电机调速源程序
一个直流电机调速源程序
 更新时间:2010-1-15 11:29:55  点击数:0
【字体: 字体颜色

直流电机可控硅调速源程序,望大家看后提出意见。

#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;
}

  • 上一篇: Protel常用元器件封装总结
  • 下一篇: 没有了
  • 发表评论   告诉好友   打印此文  收藏此页  关闭窗口  返回顶部
    热点文章
     
    推荐文章
     
    相关文章
    网友评论:(只显示最新5条。)
    关于我们 | 联系我们 | 广告合作 | 付款方式 | 使用帮助 | 机电之家 | 会员助手 | 免费链接

    点击这里给我发消息66821730(技术支持)点击这里给我发消息66821730(广告投放) 点击这里给我发消息41031197(编辑) 点击这里给我发消息58733127(审核)
    本站提供的机电设备,机电供求等信息由机电企业自行提供,该企业负责信息内容的真实性、准确性和合法性。
    机电之家对此不承担任何保证责任,有侵犯您利益的地方请联系机电之家,机电之家将及时作出处理。
    Copyright 2007 机电之家 Inc All Rights Reserved.机电之家-由机电一体化网更名-声明
    电话:0571-87774297 传真:0571-87774298
    杭州滨兴科技有限公司提供技术支持

    主办:杭州市高新区(滨江)机电一体化学会
    中国行业电子商务100强网站

    网站经营许可证:浙B2-20080178-1