#include "reg51.h"
#include "lcd1602.h"
#define uchar unsigned char
#define uint unsigned int
sbit AA=P1^0;//步进电机
sbit BB=P1^1;
sbit CC=P1^2;
sbit DD=P1^3;
sbit k1=P3^0;//按钮
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;
sbit k5=P3^4;
sbit k6=P3^5;
uchar flag=0,fang=0;//方向控制
uchar speed=0,time=0;//速度控制0-9
uchar start=0;//启动
uchar sec=0;
uchar disp1[]="Speed:0 ";//速度
//主函数
void main()
{
init_1602();
TMOD|=0X01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
while(1)
{
//按键检测
if(!k1)//启动
{
start=1;
}
if(!k2)//停止
{
start=0;
}
if(!k3)//正转
{
fang=0;
}
if(!k4)//反转
{
fang=1;
}
if(!k5)//加速
{
if(speed<9)
speed++;
while(!k5);
}
if(!k6)//减速
{
if(speed>0)
speed--;
while(!k6);
}
}
}
//定时器中断
void Timer0() interrupt 1
{
if(start==1)//启动
{
if(time<10-speed)//速度0-9
{
time++;
}
else
{
time=0;
if(fang==0) //正转
{
switch(flag)
{
case 0:BB=1;break;
case 1:AA=0;break;
case 2:CC=1;break;
case 3:BB=0;break;
case 4:DD=1;break;
case 5:CC=0;break;
case 6:AA=1;break;
case 7:DD=0;
}
if(flag<7)//下一个状态
flag++;
else
flag=0;
}
else //反转
{
switch(flag)
{
case 0:DD=1;break;
case 1:AA=0;break;
case 2:CC=1;break;
case 3:DD=0;break;
case 4:BB=1;break;
case 5:CC=0;break;
case 6:AA=1;break;
case 7:BB=0;
}
if(flag<7)//下一个状态
flag++;
else
flag=0;
}
}
}
//=================显示
if(sec<50)//0.5s
sec++;
else
{
sec=0;
disp1[6]=speed+0x30;//速度
write_string(1,0,disp1);
if(start)
{
if(fang==0)
{
write_string(2,0,"zhengzhuan");
}
else
{
write_string(2,0,"fanzhuan ");
}
}
else
{
write_string(2,0,"stop ");
}
}
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本设计采用51单片机作为主控器。 按键控制步进电机开始、暂停。 按键控制步进电机正反转,加速、减速,液晶1602显示。
资源详情
资源评论
资源推荐
收起资源包目录
基于单片机步进电机控制系统(proteus仿真+源程序+报告+原理图).rar (26个子文件)
基于单片机步进电机控制系统(proteus仿真+源程序+报告+原理图)
单片机步进电机控制系统
03-参考资料
单片机步进电机控制系统.doc 1.06MB
04-AD原理图
AD原理图.SchDoc 133KB
__Previews
P006-V1.1.0-视力保护仪.SchDocPreview 64KB
P73-V1.1.1-智能小车系统.SchDocPreview 77KB
Previous Backup of Sheet1.SchPreview 56KB
TP103-V1.1.1-AD原理图.SchDocPreview 53KB
P131-V1.1.0-AD电路.SchPreview 56KB
TP110-V1.1.1-AD原理图.SchDocPreview 61KB
TP136-V1.1.1-AD电路.SchPreview 56KB
TP136-V1.1.1-AD原理图.SchDocPreview 76KB
01-Proteus8.11仿真
仿真 - 8.11.pdsprj 26KB
02-C程序代码
main.OBJ 6KB
Project.build_log.htm 1KB
lcd1602.OBJ 4KB
main.c 2KB
lcd1602.h 1KB
Project.uvproj 14KB
lcd1602.LST 4KB
main.LST 5KB
Project.uvopt 6KB
Project.lnp 59B
Project.uvgui.pc 84KB
Project 9KB
Project.hex 2KB
lcd1602.c 2KB
Project.M51 11KB
共 26 条
- 1
bbxyliyang
- 粉丝: 96
- 资源: 181
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论10