标题:
51单片机直流电机转速控制Proteus仿真和源程序
[打印本页]
作者:
hhj_king
时间:
2018-11-4 15:20
标题:
51单片机直流电机转速控制Proteus仿真和源程序
51单片机控制直流电机转速仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(12.34 KB, 下载次数: 61)
下载附件
2018-11-4 15:29 上传
0.png
(56.37 KB, 下载次数: 57)
下载附件
2018-11-4 15:28 上传
单片机源程序如下:
#include <reg52.h>
sbit P20=P2^0;
sbit P21=P2^1;
sbit P22=P2^2;
sbit P23=P2^3;
sbit P24=P2^4;
sbit P25=P2^5;
sbit P26=P2^6;
sbit P27=P2^7;
sbit P30=P3^0;
unsigned int ge,shi,bai,qian,g,s,b;
unsigned int j=0,getdata=0,t;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(unsigned int z) //延时
{
unsigned char x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display() //显示
{
P0=table[ge];
P20=1;
P21=1;
P22=1;
P23=1;
P24=1;
P25=1;
P26=1;
P27=0;
delay(5);
P0=0x00;
P0=table[shi];
P20=1;
P21=1;
P22=1;
P23=1;
P24=1;
P25=1;
P26=0;
P27=1;
delay(5);
P0=0x00;
P0=table[bai];
P20=1;
P21=1;
P22=1;
P23=1;
P24=1;
P25=0;
P26=1;
P27=1;
delay(5);
P0=0x00;
P0=table[qian];
P20=1;
P21=1;
P22=1;
P23=1;
P24=0;
P25=1;
P26=1;
P27=1;
delay(5);
P0=0x00;
//P0=able[b];
//P20=1;
//P21=1;
//P22=1;
//P23=1;
//P24=1;
//P25=0;
//P26=1;
//P27=1;
//delay(5);
//P0=0x00;
//
//P0=table[s];
//P20=1;
//P21=1;
//P22=1;
//P23=1;
//P24=1;
//P25=1;
//P26=0;
//P27=1;
//delay(5);
//P0=0x00;
//P0=table[g];
//P20=1;
//P21=1;
//P22=1;
//P23=1;
//P24=1;
//P25=1;
//P26=1;
//P27=0;
//delay(5);
//P0=0x00;
if(P30==0)
P0=0x40;
P20=0;
P21=1;
P22=1;
P23=1;
P24=1;
P25=1;
P26=1;
P27=1;
delay(50);
P0=0x00;
}
void init()//初始化
{
TMOD=0X11;//定时器0和1开启16位定时/计数模式(方式二)
EX0=1;//允许开启外部中断0
IT0=1;//设置中断0下降沿触发
EA=1;//总开关开启
ET0=1;//定时/计数器0溢出中断允许
TR0=1;//启动定时器0
TH0=(65536-1000)/256; //定时1ms
TL0=(65536-1000)%256;
}
void main() //主程序
{
init();
while(1)
{
ge=getdata%10;
shi=getdata/10%10;
bai=getdata/100%10;
qian=getdata/1000%10;
// g=n%10;
// s=n/10%10;
// b=n/100%10;
display();
}
}
//M
void int0(void) interrupt 0 //外部中断0
{
j++; //每有一个脉冲触发就加1
}
void Timer0() interrupt 1 //定时器中断0
{
TR0=0;//关闭定时器0 暂停计时
TH0=(65536-3000)/256;
TL0=(65536-3000)%256;
t++;
if(t==1000)//设定1s判断一次转速
{
t=0;
getdata=j*60.0/(24*3.0);//此电动机转一圈编码器产生24个脉冲
j=0;
}
TR0=1;//开启定时器0 重新计时
}
复制代码
全部资料51hei下载地址:
First.zip
(83.62 KB, 下载次数: 81)
2018-11-4 15:20 上传
点击文件名下载附件
仿真图+51工程
下载积分: 黑币 -5
作者:
LRX1113100356
时间:
2018-12-25 23:30
发的什么东西,仿真和程序都打不开,用其他软件看了程序写的太啰嗦
作者:
杨岚岚
时间:
2020-3-27 00:00
转速为多大呢
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1