基于51单片机超声波测距毕业论文(7)

2019-03-09 23:12

P3=~DIGIT&OPTO; //依次显示各位数 P1=~BUFFER; //显示数据送P1口 DELAY(20); //延时处理

P1=0XFF; //P1口置高电平(关闭) IF((P3&0X10)==0) //判断3位是否显示完 KEY=0;

DIGIT>>=1; //循环右移1位 } }

VOID TIMETOBUFFER() //转换段码功能模块 {

XM0=S/100; XM1=(S-100*XM0)/10; XM2=S-100*XM0-10*XM1;

BUFFER[2]=CONVERT[XM2]; BUFFER[1]=CONVERT[XM1]; BUFFER[0]=CONVERT[XM0]; }

VOID DELAY(I) {

WHILE(--I); }

VOID TIMER1INT (VOID) INTERRUPT 3 USING 2 {

TH1=0X9E; TL1=0X57; CSBDS++;

28

IF(CSBDS>=40) {

CSBDS=0; CL=1; } }

VOID CSBCJ() {

IF(CL==1) {

TR1=0; TH0=0X00; TL0=0X00; I=10; WHILE(I--) {

CSBOUT=!CSBOUT; }

TR0=1;

I=MQS; // WHILE(I--) { } I=0;

WHILE(CSBINT) { I++;

IF(I>=2450) // 盲区上限值

29

CSBINT=0; } TR0=0; TH1=0X9E; TL1=0X57; T=TH0; T=T*256+TL0; S=T*CSBC/2; TR1=1; CL=0; } }

VOID KEYSCAN() //{

XX=0;

IF(K1!=1) // {

DELAY(400); // IF(K1!=1) // 下

{ WHILE(!K1) {

DELAY(30); XX++; }

IF(XX>2000) {

健盘处理函数 判断开关是否按下 延时去抖动 判断开关是否按30

JPJS++; IF(JPJS>4) JPJS=0; } XX=0; SWITCH(JPJS) {

CASE 1: K1CL();BREAK; CASE 2: K2CL();BREAK; CASE 3: K3CL();BREAK; CASE 4: K4CL();BREAK; } } } }

VOID K1CL() {

SJ1=SJ1+5; IF(SJ1>100) SJ1=30; S=SJ1; }

VOID K2CL() {

SJ2=SJ2+5; IF(SJ2>500)

31

SJ2=40; S=SJ2; }

VOID K3CL() {

SJ3=SJ3+10; IF(SJ3>500) SJ3=100; S=SJ3; }

VOID K4CL() {

SX1=SJ1-1; SX1=SX1/CSBC; MQS=SX1/4.5; }

VOID OFFMSD() {

IF (BUFFER[0] == 0X3F) BUFFER[0] = 0X00; }

32


基于51单片机超声波测距毕业论文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2013年12月上海会计继续教育试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: