📄 main.c
字号:
#include "main.h"
#include <reg51.h>
#include "mtv230m.h"
#include <intrins.h>
unsigned char fskd;//发射脉冲宽度
sbit dcport= P1^0;
sbit clk1=P1^7;
sbit clk2=P3^5;
sbit power_sw=P1^2;
extern bit key1();//音量/+
extern bit key2();//音量/-
extern bit key3();//菜单
extern bit key4();//开关机
extern bit key7();//AV1/AV2/AV3/TV
extern void vol_char();
void qdfs();
extern void time_asd();
extern void read_24c02();
extern void osd_pz();
extern void key_menu();
extern void jintu(char r);//进度条
extern bit key4();//开关机
extern bit jsf;
extern bit jsfa;//接收到回波标志
extern void osd_start();//OSD初始化
extern void osd_start1();//OSD初始化
extern void osd_clr();
extern void osd_char_a(unsigned char row,unsigned char column,//单字符-格式(a)
unsigned int char_rom_address, unsigned char color,
unsigned char background,unsigned char blink);//字符颜色,背景颜色,是否闪烁
extern unsigned int data juli;//回波距离
extern unsigned int pu;//平均距离
extern char fbr;
bit st;
bit tiao;
unsigned char urb;
extern unsigned int xdata bojina;//近距离报警区
extern unsigned int xdata bojinb;//中距离报警
extern unsigned int xdata bojinc;//远距离
extern unsigned char vol;
main()
{
int i;
int e;
osd_pz();//配置芯片功能
time_asd();
fskd=0x10;
osd_start1();
read_24c02();//读取设置参数
while(1)
{
WDT=0x47;
key_menu();//进入菜单
if(key1())//音量+
{
e=30000;
vol=vol+3;
if(vol>=253)
vol=253;
DA3=vol;
if(!tiao)
osd_start();
vol_char();
jintu(vol);
}
if(key2())//音量-
{
e=30000;
vol=vol-3;
if((vol<=0)|(vol>253))
vol=0;
DA3=vol;
if(!tiao)
osd_start();
vol_char();
jintu(vol);
tiao=1;
}
if(key4())
power_sw=~power_sw;
e--;
if(e<=0)
{
i=0;
tiao=0;
}
if((!dcport)&(!tiao))
{
i=i-1;
if(i<=0)
{
osd_start1();
i=3000;
}
qdfs();//准备启动1次发射
}
else {i=0;P42=~P42;
osd_clr();
}
}
}
void qdfs()
{
unsigned char csu;
unsigned char i;
bit bt;
jsf=0;
jsfa=0;
juli=0;
csu=fskd;
P43=1;
EX0=0;
IE0=0;
for(clk1=0,clk2=0,i=csu;i!=0;i--)
{ if(bt)
{ clk1=0;
clk2=1;
_nop_();
_nop_();
_nop_();
_nop_();
bt=!bt;
}
else{
clk1=1;
clk2=0;
_nop_();
_nop_();
_nop_();
_nop_();
bt=!bt;}
}
clk1=0;clk2=0;
TH1=0x8b; //s-1厘米单位分辨率
TL1=0x8b;
ET1=1;
TR1=1;
for(i=0;i<100;i++)
_nop_();
P43=0;
EX0=1;
while(!(jsf|jsfa));
if(jsfa)
{
urb=urb+1;
if(urb>=6)
{
urb=0;
if((fbr==10)&(pu<bojina))
{ if(st)
osd_start1();
st=0;
osd_char_a(4, 8, 28, 0x06, 0, 0);
osd_char_a(4, 10, 29, 0x06, 0, 0);
osd_char_a(4, 12, 1, 0x06, 0, 0);
osd_char_a(4, 14, 25, 0x06, 0, 0);
}
else if((fbr==-10)&(pu>bojinc)){ if(st)
osd_start1();
st=0;
osd_char_a(4,10, 1, 0x06, 0, 0);
osd_char_a(4, 12, 21, 0x06, 0, 0);
}
else ;
}
}
else{
if(!st)
osd_start1();
st=1;
if(pu>2000)
osd_start1();
else{
i=pu/1000;
if(i!=0)
osd_char_a(4, 8,i+1 , 0x06, 0, 0);
osd_char_a(4, 10, (pu%1000)/100+1, 0x06, 0, 0);
osd_char_a(4, 12, 118, 0x06, 0, 0);
osd_char_a(4, 14, (pu%100)/10+1, 0x06, 0, 0);
osd_char_a(4, 16, pu%10+1, 0x06, 0, 0);
osd_char_a(4, 18, 23, 0x06, 0, 0);
}
/* us=us+1;
if(pu<=bojinc)
{
if(pu<=bojinb)
{
if(pu<=bojina)
p53=0;
else {if(us>=10){p35=~p35;us=0;}}
else {if(us<=20)p35=1;
else p35=0;
if(pu>=30)
us=0;}
}
}
*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -