久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2093|回復: 0
打印 上一主題 下一主題
收起左側

簡單的51代碼-控制步進電機

[復制鏈接]
跳轉到指定樓層
樓主
ID:301219 發表于 2018-4-2 23:08 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<intrins.h>
#include<reg52.h>
#define mode 0x81 // 方式0,A口、B口輸出,C口高4位輸出,低4位輸入
# include "stdio.h"
# include "string.h"
# include "math.h"

xdata unsigned char PA _at_ 0x7f00;
xdata unsigned char PB _at_ 0x7f01;
xdata unsigned char PC _at_ 0x7f02;
xdata unsigned char caas _at_ 0x7f03; //控制字
sbit P32=P3^2;
sbit P33=P3^3;
sbit P35=P3^5;
#define uchar unsigned char
#define uint unsigned int
unsigned char h,Pos ;
unsigned int R,NX,NY;
unsigned char key;

code unsigned char KeyTable[] = { // 鍵碼定義
0x0f, 0x0b, 0x07, 0x03,
0x0e, 0x0a, 0x06, 0x02,
0x0d, 0x09, 0x05, 0x01,
0x0c, 0x08, 0x04, 0x00
};

code unsigned char LEDMAP[] = { // 八段管顯示碼
0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,
0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71
};

unsigned char Code_ ; // 字符代碼寄存器

#define PD1 61 // 122/2 分成左右兩半屏(122x32)

unsigned char Column;
unsigned char Page_ ;
unsigned char Code_ ; // 字符代碼寄存器



xdata unsigned char CWADD1 _at_ 0x1cff; // 寫指令代碼地址(E1)
xdata unsigned char DWADD1 _at_ 0x1eff; // 寫顯示數據地址(E1)
xdata unsigned char CRADD1 _at_ 0x1dff; // 讀狀態字地址(E1)
xdata unsigned char DRADD1 _at_ 0x1fff; // 讀顯示數據地址(E1)

xdata unsigned char CWADD2 _at_ 0x3cff; // 寫指令代碼地址(E2)
xdata unsigned char DWADD2 _at_ 0x3eff; // 寫顯示數進地址(E2)
xdata unsigned char CRADD2 _at_ 0x3dff; // 讀狀態字地址(E2)
xdata unsigned char DRADD2 _at_ 0x3fff; // 讀顯示數據地址(E2)

//----------------------液晶-----------------

// 清屏

// ************************ 中文顯示程序 ***********************************/

/*************************直線 插 補***************************8*/
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=50;y>0;y--);
}

void zhengx()
{
PA=0x00;
delay(10);
PA=0x01;
delay(10);

}
void fux()
{
PA=0x02;
delay(10);
PA=0x03;
delay(10);

}
void zhengy()
{
PB=0x00;
delay(10);
PB=0x10;
delay(10);

}
void fuy()
{
PB=0x20;
delay(10);
PB=0x30;
delay(10);

}
void zhixian(int NX,int NY)
{int FM, NXY, XOY,ZF,z;
FM=0;
{if(NX>0)
if(NY>0)
XOY=1;
else
XOY=4;
else
if(NY>0)
XOY=2;
else
XOY=3;}

for(NXY= fabs(NX) + fabs(NY)-1;NXY>=0&&P32!=0&&P33!=0;NXY--)
{ {if(NX>0)
if(NY>0)
XOY=1;
else
XOY=4;
else
if(NY>0)
XOY=2;
else
XOY=3;}

for(NXY= fabs(NX) + fabs(NY)-1;NXY>=0;NXY--)
{ if(FM>=0)
{if(XOY==1||XOY==4)

{ZF=1;
zhengx();
}
else
{ZF=2;
fux();

}
FM=FM-fabs(NY);
}
else
{if(XOY==1||XOY==2)
{
ZF=3;
zhengy();

}
else
{ZF=4;
fuy();
}
FM=FM+fabs(NX);
}

}
for(z=0;z<200;z++)
{P35 = 0;
delay(10);
P35 = 1;
delay(10);
}

}
}

/*************************圓 弧 插 補***************************8*/
void yuanhu1( int X0,int Y0, int NX, int NY ,int RNS )
{
int NXY,BS,ZF,XM,YM,z;
int FM=0;
BS=fabs(NX-X0) + fabs(NY-Y0);
XM=fabs(X0);
YM=fabs(Y0);
for(NXY= fabs(NX-X0) + fabs(NY-Y0)-1;NXY>=0&&P32!=0&&P33!=0;NXY--)
{
if(RNS==1||RNS==3||RNS==6||RNS==8)

{
if(FM<0)
{
if(RNS==1||RNS==8)

{ZF=1;
zhengx();

}
else

{ZF=2;
fux();}

FM=FM+2*fabs(XM)+1;
XM=XM+1;

}

else
{
if(RNS==1||RNS==6)
{
ZF=3;
fuy();
}
else

{ZF=4;
zhengy();
}

FM=FM-2*fabs(YM)+1;
YM=YM-1;
}
}
else
if(FM>=0)
{
if(RNS==2||RNS==7)

{ZF=1;
zhengx();
}
else

{ZF=2;
fux();
}

FM=FM-2*fabs(XM)+1;
XM=XM-1;
}
else
{
if(RNS==2||RNS==5)
{ZF=3;
zhengy();}
else
{ZF=4;
fuy();}
FM=FM+2*fabs(YM)+1;
YM=YM+1;
}
}
if(P32==0||P33==0)
{
for(z=0;z<200;z++)
{P35 = 0;
delay(10);
P35 = 1;
delay(10);
}
}

}
int shuzhi1 ()
{
int i=0,j=0,k=3;
while (1)
{
if(testkey())
{ delay(300);
delay1();
if(testkey())
{ j=getkey();
if(j!=14)
{i=i*10 + j;
k--;}
}}
if(k==0)
break;
}
return i;
}
int shuzhi2 ()
{
int i=0,j=0,k=3;
while (1)
{
if(testkey())
{ delay(300);
delay1();
if(testkey())
{ j=getkey();
if(j!=14)
{i=i*10 + j;
k--;}
}}
if(k==0)
break;
}
return i;
}

void yuanhuchabu1()
{ int q=0;
delay(300);
R=shuzhi1();
yj1();

q=R/100;
Page_ = 0x00;
Column = 0x35;
Code_ = q;
WriteCHN8x16();

q=R%100;
q=q/10;
Page_ = 0x00;
Column = 0x40;
Code_ = q;
WriteCHN8x16();

q=R%10;
Page_ = 0x00;
Column = 0x48;
Code_ = q;
WriteCHN8x16();

yuanhu1(R,0,0,R,5);
yuanhu1(0,R,-R,0,6);
yuanhu1(-R,0,0,-R,7);
yuanhu1(0,-R,R,0,8);
}
void yuanhuchabu2()
{ int q=0;
delay(300);
R=shuzhi1();
yj1();

q=R/100;
Page_ = 0x00;
Column = 0x35;
Code_ = q;
WriteCHN8x16();

q=R%100;
q=q/10;
Page_ = 0x00;
Column = 0x40;
Code_ = q;
WriteCHN8x16();

q=R%10;
Page_ = 0x00;
Column = 0x48;
Code_ = q;
WriteCHN8x16();

yuanhu1(0,R,R,0,1);
yuanhu1(R,0,0,-R,4);
yuanhu1(0,-R,-R,0,3);
yuanhu1(-R,0,0,R,2);
}
void zhixianchabu()
{ int q1=0,q2=0;
delay(300);
NX=shuzhi1();
delay(300);
NY=shuzhi2();
yj2();

Page_ = 0x00;
Column = 0x25;
Code_ = 0x10;
WriteCHN8x16();

q1=NX/100;
Page_ = 0x00;
Column = 0x30;
Code_ = q1;
WriteCHN8x16();

q1=NX%100;
q1=q1/10;
Page_ = 0x00;
Column = 0x37;
Code_ = q1;
WriteCHN8x16();

q1=NX%10;
Page_ = 0x00;
Column = 0x40;
Code_ = q1;
WriteCHN8x16();

q2=NY/100;
Page_ = 0x00;
Column = 0x50;
Code_ =q1;
WriteCHN8x16();

q2=NY%100;
q2=q2/10;
Page_ = 0x00;
Column = 0x58;
Code_ = q2;
WriteCHN8x16();

q2=NY%10;
Page_ = 0x00;
Column = 0x60;
Code_ = q2;
WriteCHN8x16();

Page_ = 0x00;
Column = 0x72;
Code_ = 0x11;
WriteCHN8x16();
zhixian(NX,NY );
}

void main()

{ int q=0,q1=0,q2=0;
caas=mode;
PA=0X00;
PB=0X00;
PC=0x00;
R=0X00;

while(1)
{
if(testkey())
{
delay1();
if(testKey())
{ delay1();
if(getkey()==15)
{
delay(300);
yuanhuchabu1();
}
else if(getkey()==10)
{ delay(300);
yuanhuchabu2();
}
else if(getkey()==13)
{
zhixianchabu();
}
else if(getkey()==1)
{
zhengx();
}
else if(getkey()==2)
{
fux();
}
else if(getkey()==3)
{
zhengy();
} else if(getkey()==4)
{
fuy();
}

}
}
if(GetKey()==12)
{ break;}
}

}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜激情视频 | 国产免费拔擦拔擦8x高清 | 成人免费视频在线观看 | 国产精品久久久久久福利一牛影视 | 羞羞视频在线观看免费观看 | 9999国产精品欧美久久久久久 | 亚洲日韩中文字幕一区 | 一区二区三区在线 | 国产精品美女www爽爽爽 | 欧美国产中文 | 午夜视频在线观看网站 | 久久爱一区 | 亚洲精品视频在线观看免费 | 欧美国产日韩成人 | 久久久片 | 久久夜视频 | 亚洲36d大奶网 | 国产精品中文字幕在线观看 | 午夜精品久久 | 日韩中文字幕视频在线 | 91小视频在线 | 天堂一区在线观看 | 成人精品国产免费网站 | 日韩欧美精品在线播放 | 久久天堂 | 国产精品日韩欧美一区二区三区 | 国产精品不卡视频 | 久久综合成人精品亚洲另类欧美 | 欧美日本免费 | 久久精品视频9 | 人人九九 | 精品国产乱码久久久久久中文 | 91在线精品视频 | 精品国产一区二区国模嫣然 | 一区二区三区四区毛片 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 黄色操视频| 激情欧美一区二区三区 | 超碰激情 | 亚洲精品乱码久久久久久按摩观 | 亚洲一区在线日韩在线深爱 |