毕业设计C语言程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#include<12864b.h>

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit l1 = P2^0;

sbit l2 = P2^1;

sbit l3 = P2^2;

sbit r1 = P2^3;

sbit r2 = P2^4;

sbit r3 = P2^5;

sbit l4 = P2^6;

sbit r4 = P2^7;

sbit tr = P1^3;

sbit ec = P1^4;

char code table[]={"0123456789"};

char da[10];

uint s=0,time=0,f=0,a=0,j=0,k=0,lv=25,rv=25,n=0,d_t=0,d_t1=0,b=0,a1=0,juli=0; void fuzhi(int m);

void state ();

void delay(int i)

{

char j=0;

for(;i>0;i--)

for(j=0;j<125;j++);

}

void init()

{

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

TH1=0;

TL1=0;

EA=1;

ET0=1;

ET1=1;

TR0=1;

TMOD=0x11;

P1=P1&0xe7;

}

void fuzhi(int m)

{

da[0]=m/1000;

da[1]=m/100%10;

da[2]=m/10%10;

da[3]=m%10;

}

void chao()

{

tr=1;

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

tr=0;

while(!ec);

TR1=1;

while(ec);

TR1=0;

juli=(b*65536+(TH1*256+TL1))*0.017;

TH1=0;b=0;TL1=0;

}

void jiyu()

{

hanzi_Disp(0,0,"毕业设计智能小车");

hanzi_Disp(1,0,"信科一班王峰作品");

hanzi_Disp(2,0,"lv=");

hanzi_Disp(2,4,"rv=");

hanzi_Disp(3,0,"距离:");

hanzi_Disp(3,5,"(cm)");

}

void main()

{

char i=0;

init();

Lcd_Init();

jiyu();

while(1)

{

chao();

delay(20);

fuzhi(juli);

Lcd_WriteCmd(0x9b); //写地址

for(i=0;i<4;i++)

{

Lcd_WriteData(table[da[i]]);

delay(10);

}

fuzhi(lv);

Lcd_WriteCmd(0x8a); //写地址

for(i=0;i<2;i++)

{

Lcd_WriteData(table[da[i+2]]);

delay(10);

}

fuzhi(rv);

Lcd_WriteCmd(0x8e); //写地址

for(i=0;i<2;i++)

{

Lcd_WriteData(table[da[i+2]]);

delay(10);

}

if(juli<20)

{

switch (P2&0xc0)

{

case 0x0:lv=rv=juli*2;;n=1;d_t=3;break;

case 0x40:lv=rv=juli*2;;n=2;d_t=3;break;

case 0x80:lv=rv=juli*2;;n=3;d_t=3;break;

case 0xc0:lv=rv=juli*2;;n=4;d_t=3;break; // default:a+=5;

}

}

else

{

switch (P2&0xc0)

{

case 0x0:lv=40;rv=40;n=1;d_t=3;break;

case 0x40:lv=40;rv=40;n=2;d_t=3;break;

case 0x80:lv=40;rv=40;n=3;d_t=3;break;

case 0xc0:lv=40;rv=40;n=4;d_t=3;break; // default:a+=5;

}

}

state ();

}

}

void state ()

{

d_t1=f;

while(1)

{

switch (n)

{

case 0:l1=1;l2=1;r1=1;r2=1;break; // 停

case 1:l1=0;l2=1;r1=0;r2=1;break; // 前

case 2:l1=0;l2=1;r1=1;r2=1;break; // 前左

case 3:l1=1;l2=1;r1=0;r2=1;break; // 前右

case 4:l1=1;l2=0;r1=1;r2=0;break; // 后

case 5:l1=1;l2=1;r1=1;r2=0;break; // 后左

case 6:l1=1;l2=0;r1=1;r2=1;break; // 后右

case 7:l1=0;l2=1;r1=1;r2=0;break; // 右旋

case 8:l1=1;l2=0;r1=0;r2=1;break; // 右旋

}

if(d_t==0)break;

}

}

void time0() interrupt 1

{

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

a++;

if(a==10){a=0;f++;if(d_t1+d_t==f)d_t=0;}

相关文档
最新文档