#include <reg51.h>
#include <stdio.h>
#include <math.h>
#define uc unsigned char
#define ui unsigned int
#define LCDPAGE 0xB8
#define LCDLINE 0x40
sbit p00=P0^0;
sbit p01=P0^1;
sbit p02=P0^2;
sbit p03=P0^3;
sbit E=P3^5;
sbit RW=P3^4;
sbit RS=P3^2;
sbit L=P3^1;
sbit R=P3^0;
sbit Busy=P2^7;
uc scan_key1,scan_key2;
uc step1;step2;
static step_index;
ui count1,count2;
uc butter;
static speed;
uc code CHANG[]=
{
0x20,0x18,0x08,0x09,0xEE,0xAA,0xA8,0xAF,
0xA8,0xA8,0xEC,0x0B,0x2A,0x18,0x08,0x00,
0x00,0x00,0x3E,0x02,0x02,0x02,0x02,0xFF,
0x02,0x02,0x12,0x22,0x1E,0x00,0x00,0x00,
};
uc code YUN[]=
{
0x40,0x41,0xCE,0x04,0x00,0x20,0x22,0xA2,
0x62,0x22,0xA2,0x22,0x22,0x22,0x20,0x00,
0x40,0x20,0x1F,0x20,0x28,0x4C,0x4A,0x49,
0x48,0x4C,0x44,0x45,0x5E,0x4C,0x40,0x00,
};
uc code XING[]=
{
0x10,0x08,0x84,0xC6,0x73,0x22,0x40,0x44,
0x44,0x44,0xC4,0x44,0x44,0x44,0x40,0x00,
0x02,0x01,0x00,0xFF,0x00,0x00,0x00,0x00,
0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,
};
uc code ZHENG[ ] =
{
0x00,0x02,0x02,0xC2,0x02,0x02,0x02,0x02,
0xFE,0x82,0x82,0x82,0x82,0x82,0x02,0x00,
0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,
0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
};
uc code ZHUAN[ ] =
{
0xC8,0xA8,0x9C,0xEB,0x88,0x88,0x88,0x40,
0x48,0xF8,0x4F,0x48,0x48,0x48,0x40,0x00,
0x08,0x08,0x04,0xFF,0x04,0x04,0x00,0x02,
0x0B,0x12,0x22,0xD2,0x0E,0x02,0x00,0x00,
};
uc code CONTRARY[ ] =
{
0x00,0x00,0xFE,0x12,0x72,0x92,0x12,0x12,
0x12,0x11,0x91,0x71,0x01,0x00,0x00,0x00,
0x40,0x30,0x4F,0x40,0x20,0x21,0x12,0x0C,
0x0C,0x12,0x11,0x20,0x60,0x20,0x00,0x00,
};
uc code TING[] =
{
0x80,0x40,0x20,0xF8,0x07,0x02,0x04,0x74,
0x54,0x55,0x56,0x54,0x74,0x04,0x04,0x00,
0x00,0x00,0x00,0xFF,0x00,0x03,0x01,0x05,
0x45,0x85,0x7D,0x05,0x05,0x05,0x03,0x00,
};
uc code ZHI[ ] =
{
0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,
0xFF,0x40,0x40,0x40,0x40,0x40,0x00,0x00,
0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,
0x7F,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
};
uc code JIA[]=
{
0x00,0x08,0x08,0x08,0xFF,0x08,0x08,0xF8,
0x00,0xF8,0x08,0x08,0x08,0xF8,0x00,0x00,
0x40,0x20,0x18,0x07,0x00,0x20,0x40,0x3F,
0x00,0x7F,0x10,0x10,0x10,0x3F,0x00,0x00,
};
uc code SU[]=
{
0x40,0x42,0xCC,0x00,0x04,0xE4,0x24,0x24,
0xFF,0x24,0x24,0x24,0xE4,0x04,0x00,0x00,
0x40,0x20,0x1F,0x20,0x48,0x49,0x45,0x43,
0x7F,0x41,0x43,0x45,0x4D,0x40,0x40,0x00,
};
uc code JIAN[]=
{
0x00,0x02,0xEC,0x00,0xF8,0x28,0x28,0x28,
0x28,0x28,0xFF,0x08,0x8A,0xEC,0x48,0x00,
0x02,0x5F,0x20,0x18,0x07,0x00,0x1F,0x49,
0x5F,0x20,0x13,0x0C,0x13,0x20,0x78,0x00,
};
uc code BAI[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
uc code DI[]=
{
0x40,0x20,0xF0,0x0C,0x07,0x02,0xFC,0x44,
0x44,0x42,0xFE,0x43,0x43,0x42,0x40,0x00,
0x00,0x00,0x7F,0x00,0x00,0x00,0x7F,0x20,
0x10,0x28,0x43,0x0C,0x10,0x20,0x78,0x00,
};
void iniLCD(void);
void chkbusy(void);
void wcode(uc cd) ;
void wdata(uc dat);
void disrow(uc page,uc col,uc *temp);
void display( uc page,uc col,uc *temp);
void ground(step);
void run1();
void run2();
void stop();
void delay(ui time);
void iniLCD(void)
{ L=1;R=1;
wcode(0x38);
wcode(0x0f);
wcode(0xc0);
wcode(0x01);
wcode(0x06);
}
void chkbusy(void)
{
E=1;
RS=0;
RW=1;
P2=0xff;
while(!Busy);
}
void wcode(uc cd)
{
chkbusy();
P2=0xff;
RW=0;
RS=0;
P2=cd;
E=1;
E=0;
}
void wdata(uc dat) �
{
chkbusy();
P2=0xff;
RW=0;
RS=1;
P2=dat;
E=1;
E=0;
}
void disrow(uc page,uc col,uc *temp)
{
uc i;
if(col<64)
{
L=1;R=0;
wcode(LCDPAGE+page);
wcode(LCDLINE+col);
if((col+16)<64)
{
for(i=0;i<16;i++)
wdata(*(temp+i));
}
else
{
for(i=0;i<64-col;i++)
wdata(*(temp+i));
L=0;R=1;
wcode(LCDPAGE+page);
wcode(LCDLINE);
for(i=64-col;i<16;i++)
wdata(*(temp+i));
}
}
else
{
L=0;R=1;
wcode(LCDPAGE+page);
wcode(LCDLINE+col-64);
for(i=0;i<16;i++)
wdata(*(temp+i));
}
}
void ground(step_index)
{
P0=0x00;
switch(step_index)
{
case 0:
p00 = 1;
p01 = 0;
p02 = 0;
p03 = 0;
break;
case 1:
p00 = 1;
p01 = 1;
p02 = 0;
p03 = 0;
break;
case 2:
p00 = 0;
p01 = 1;
p02 = 0;
p03 = 0;
break;
case 3:
p00 = 0;
p01 = 1;
p02 = 1;
p03 = 0;
break;
case 4:
p00 = 0;
p01 = 0;
p02 = 1;
p03 = 0;
break;
case 5:
p00 = 0;
p01 = 0;
p02 = 1;
p03 = 1;
break;
case 6:
p00 = 0;
p01 = 0;
p02 = 0;
p03 = 1;
break;
case 7:
p00 = 0;
p01 = 0;
p02 = 0;
p03 = 1;
}
}
void display( uc page,uc col,uc *temp)
{
disrow( page, col, temp);
disrow( page+1, col, temp+16);
}
void main(void)
{
P2=0xff;
iniLCD();
step2=0;
step1=0;
P1=0xff;
P0=0x00;
EX1=1;
EA=1;
speed=2010;
while(1)
{
if((scan_key1==1)&(scan_key2==0))
{
display(6,0x00,&ZHENG);
display(6,0x10,&ZHUAN);
ground(step_index);
delay(speed);
step_index++;
if(step_index>7)
step_index=0;
}
if((scan_key1==0)&(scan_key2==1))
{
ground(step_index);
display(6,0x00,&CONTRARY);
display(6,0x10,&ZHUAN);
delay(speed);
step_index--;
if(step_index<0)
step_index=7;
}
if(scan_key1==0&scan_key2==0)
{
display(6,0x00,&TING);
display(6,0x10,&ZHI);
display(6,0x20,&BAI);
display(6,0x30,&BAI);
P0=0xff;
}
if(step1==1&step2==0)
{
speed=speed-100;
if(speed<200|speed==200)
{ speed=200;
display(6,0x20,&ZHENG);
display(6,0x30,&CHANG);
display(6,0x40,&YUN);
display(6,0x50,&XING);
}
else
{
display(6,0x20,&JIA);
display(6,0x30,&S
代码及相关程序+步进电机转速控制系统.zip_eventuallybtu_substancem75_步进电机转速_步进电机转速系
版权申诉
22 浏览量
2022-09-20
11:04:09
上传
评论 1
收藏 77KB ZIP 举报
Kinonoyomeo
- 粉丝: 77
- 资源: 1万+
最新资源
- c51_2_2.c
- ASCII American Standard Code for Information Interchange
- 一个chm格式的 SQL 函数手册-SQL语言手册文档
- 计算当前月份的天数和剩余天数
- 基于ARM的指令调度和延迟分支
- 基于Vue和TypeScript的极简聊天应用设计源码 - HasChat
- 基于Vue2全家桶和Zcool数据的图片收集网站设计源码 - cool-picture
- 基于C和C++的二维绘制工具设计源码 - DrawPro
- Object.defineProperty 的 IE 补丁object-defineproperty-ie-master.zip
- 整卷预览.mhtml
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0