PCB抄板超声波测距显示并避障的单片机程序 时间:2026-09-18 来源: 芯片解密 浏览:2次 字号:大 中 小 PCB抄板单片机源程序如下:#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit K1=P1^0; //P1.0到P1.4为寻线检测端sbit K2=P1^1;sbit K3=P1^2;sbit K4=P1^3;sbit K5=P1^4;sbit KIN1=P1^5; //P1.5 P1.6是避障检测端sbit KIN2=P1^6;sbit out1 = P2^0 ; //P2.0到P2.3是电机驱动输出控制端sbit out2 = P2^1 ;sbit out3 = P2^2 ;sbit out4 = P2^3 ;sbit Trig = P3^3; //产生脉冲引脚sbit Echo = P3^2; //回波引脚sbit beem= P3^7; //蜂鸣器控制引脚sbit PWM=P1^7; //舵机pwm//sbit SET1=P2^4 ;sbit SET2 =P2^5;sbit SET3 =P2^6;sbit SET4 =P2^7;uchar code seg7code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uint distance[4]; //测距接收缓冲区uint distance1;uchar ge,shi,bai,temp,flag,outcomeH,outcomeL,PDATA; //自定义寄存器bit succeed_flag; //测量成功标志unsigned long xdata rec_code;unsigned long xdata time_us;unsigned char xdata rec_cnt;unsigned char xdata kbuf;uchar sdata,flag; //sdata是红外遥控接收键值变量 flag是启动小车 或停止小车变量uint j,a;uchar pro;bit rec_b;bit key_save;bit keyp;void chaoshengbo();void conversion(uint temp_data);void delay_20us();void delay_ms(uint x);void display ();void Init() //初始化{ flag=0; Trig=0; TMOD = 0x11; //T/C1采用16位定时器/计数器 ET1 = 1; //定时器1开中断 ET0 = 1; TH0 = 0x00; TL0 = 0x00; TH1 = 0xff; TL1 = 0xce; TR1=0; TR0 = 0; //定时计数器启动计数 EX0 = 1; //外部中断0关中断 PX0 = 1; PT1 = 1; EA = 1; //CPU开中断} 下一篇:芯片复制C8051F330单片机的无线键盘程序