编码器对应代码Word文档下载推荐.docx

上传人:b****1 文档编号:15017445 上传时间:2022-10-26 格式:DOCX 页数:13 大小:16.20KB
下载 相关 举报
编码器对应代码Word文档下载推荐.docx_第1页
第1页 / 共13页
编码器对应代码Word文档下载推荐.docx_第2页
第2页 / 共13页
编码器对应代码Word文档下载推荐.docx_第3页
第3页 / 共13页
编码器对应代码Word文档下载推荐.docx_第4页
第4页 / 共13页
编码器对应代码Word文档下载推荐.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

编码器对应代码Word文档下载推荐.docx

《编码器对应代码Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《编码器对应代码Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。

编码器对应代码Word文档下载推荐.docx

//a,b显示8位数码管,f脉冲个数

uinte;

//e标定数值

ulongj;

//j标定后的参数

ucharc,g,d;

//c功能键对应数值,g确认按键第几次按下,d发出脉冲宽度调节

ucharbcd[8];

ucharcodewxian[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

ucharcodedxian[]={

0x3f,//0

0x06,//1

0x5b,//2

0x4f,//3

0x66,//4

0x6d,//5显示s

0x7d,//6

0x07,//7

0x7f,//8

0x6f,//9

0x79,//E10

0x31,//T11

0x77,//R12

0x00,//不显示13

0x37,//n14

0x7c,//b15

0x5e//d16

};

voidbin_bcd(ulongf);

//脉冲分离函数

voidbinjl(ulonga);

//距离数分离函数

voidgnsd(void);

//功能键

voidpjiajian(void);

//加减

voidxset(void);

//显示set

voidreset(void);

//显示reset

voidxbd(void);

//显示bd

voidbdjiajian(void);

//标定按键设置

voidqrhs(void);

//确认按键

voidsmxs();

voiddelay(uintt);

bitbz,bz1,bz2,bz3,bz4,bz5,qrbz,qrsd;

bitbz6;

//确认跑完

bitqr2,qr3;

//按下确认键标志

bitqrpw1;

ucharmcs;

voidmain()

{

a=0;

//显示的路程

c=g=0;

//设定标志位为1,2,3

d=0;

//设定多少输出一个方波

bz=0;

//功能键设定加1标志位

bz1=0;

//功能键读出的状态

bz2=0;

//功能1标志位

bz3=0;

//设定2标志位

bz4=0;

//标志3标志位

qrbz=0;

//确认清零标志位

qrsd=0;

//确认设定标志位

qr2=0;

qr3=0;

amc=bmc=0;

TMOD=0x09;

EA=1;

TH0=0;

TL0=0;

EX0=1;

TR0=1;

IT0=1;

while

(1)

{

gnsd();

qrhs();

smxs();

if(bz5==1)

{

bin_bcd(f);

bz2=0;

bz3=0;

bz4=0;

qr2=0;

}

if(bz6==1)

g=0;

bz5=0;

j=e*10000000/f;

a=j*b/100000;

binjl(a);

}

}

voidto(void)interrupt0

{

if(pb==0)

{

if(bz6==0)

f++;

b++;

mcbz=~mcbz;

if(mcbz==0)

amc=~amc;

if(mcbz==1)

bmc=~bmc;

}

if(pb==1)

f--;

b--;

mcbz1=~mcbz1;

if(mcbz1==0)

if(mcbz1==1)

if(b==0xffffffff)

b=0;

if(f==0xffffffff)

f=0;

voidsmxs()

uchari;

for(i=0;

i<

8;

i++)

{

led_port=0;

dm=0;

dm=1;

led_port=wxian[i];

wm=0;

wm=1;

led_port=dxian[bcd[i]];

if(i==2&

&

bz6==1)

led_port=led_port|0x80;

delay(100);

voiddelay(uintt)

while(--t);

voidbin_bcd(ulongf)

bcd[7]=f/10000000;

bcd[6]=f/1000000;

bcd[5]=f/100000;

bcd[4]=(f%100000)/10000;

bcd[3]=(f%10000)/1000;

bcd[2]=(f%1000)/100;

bcd[1]=(f%100)/10;

bcd[0]=(f%100)%10;

voidbinjl(ulonga)

bcd[7]=a/10000000;

bcd[6]=a/1000000;

bcd[5]=a/100000;

bcd[4]=(a%100000)/10000;

bcd[3]=(a%10000)/1000;

bcd[2]=(a%1000)/100;

bcd[1]=(a%100)/10;

bcd[0]=(a%100)%10;

voidgnsd(void)

{

gn=1;

//置1

bz1=gn;

//读状态

if(bz1!

=1)

if(bz!

bz=1;

c++;

if(bz1==1)

bz=0;

if(c==1)

bz2=1;

bz5=0;

if(bz2==1)

if(qr2==0)

xset();

pjiajian();

if(qr2==1)

bz5=1;

if(c==2)

bz2=0;

bz3=1;

if(bz3==1)

reset();

b=0;

a=0;

if(c==3)

bz3=0;

bz4=1;

if(bz4==1)

xbd();

bdjiajian();

if(c==4)

bz4=0;

bz5=1;

c=0;

voidpjiajian(void)

bitbzjia,bzjian,djia,djian;

jia=1;

jian=1;

//置1

djia=jia;

djian=jian;

if(djia!

if(bzjia!

bzjia=1;

d=d+5;

if(djia==1)

bzjia=0;

if(djian!

if(bzjian!

bzjian=1;

d=d-5;

if(djian==1)

bzjian=0;

if(d==0xfffb)

d=0;

voidbdjiajian(void)

e=e+10;

e=e-10;

voidxset(void)

bcd[7]=5;

//s

bcd[6]=10;

//e

bcd[5]=11;

//t

bcd[4]=13;

bcd[3]=(d%10000)/1000;

bcd[2]=(d%1000)/100;

bcd[1]=(d%100)/10;

bcd[0]=(d%100)%10;

voidxbd(void)

bcd[7]=15;

//b

bcd[6]=16;

//d

bcd[5]=13;

bcd[3]=(e%10000)/1000;

bcd[2]=(e%1000)/100;

bcd[1]=(e%100)/10;

bcd[0]=(e%100)%10;

voidreset(void)

bcd[7]=12;

//r

bcd[6]=5;

bcd[5]=10;

bcd[4]=11;

bcd[3]=13;

bcd[2]=13;

bcd[1]=13;

bcd[0]=13;

voidqrhs(void)

qr=1;

qr3=qr;

if(qr3!

if(qrbz!

qrbz=1;

g++;

if(qr3==1)

qrbz=0;

if(g==1)

qr2=1;

if(g==2)

g=0;

bz

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1