?? 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 + -