一款利用普通手持对讲机做测向信号源的控制电路及程序
/*********************************************************************
程序名称:无线电测向信标控制板
程序说明:利用STC 15W104产生1Khz音频送入手台MIC,并控制手台PTT进行发射
引脚说明:P3.4产生1KHz音频,P3.5控制PTT,高电平触发
P3.0~P3.3 => 8421拨码开关
IRC频率:6MHz
2bit表达1个码 00停止符 01短 10长 11字符间隔 3倍短
信标Moser码 1~5号有区别,其他一样
80米 2米
1号台 MOE -- --- · 1 (·----)
2号台 MOI -- --- ·· 2 (··---)
3号台 MOS -- --- ··· 3 (···--)
4号台 MOH -- --- ···· 4 (····-)
5号台 MO5 -- --- ····· 5 (·····)
6号台 6 -····
7号台 7 --···
8号台 8 ---··
9号台 9 ----·
0号台 0 -----
信标台 MO -----
**********************************************************************/
#include <STC15F2K60S2.H>
#include <intrins.h>
#define AUDIO_PIN P34
#define PTT_PIN P33
#define PTT_ON PTT_PIN=1
#define PTT_OFF PTT_PIN=0
volatile unsigned char gBeep=0;
volatile unsigned char gBeepMode=0x00; //00 一个周期完毕 01短 10长(3倍短) 11(停止3倍短)
volatile unsigned char gKeepTime=0; //定时器100ms 内调用
volatile unsigned char gRadioNum=0; //电台编号
volatile unsigned char gBeepCount=0; //信标发送次数
//电码字典 全部按80米来
code const unsigned long gMoserArray[11]={
0xAA800000, //0
0xAEAD0000, //MO1
0xAEAD4000, //MO2
0xAEAD5000, //MO3
0xAEAD5400, //MO4
0xAEAD5500, //MO5
0x95400000, //6
0xA5400000, //7
0xA9400000, //8
0xAA400000, //9
0xAEA00000//MO
};
volatile unsigned long gMoser;
//函数声明
void Timer0Init();
void Timer2Init();
void pin_init();
void next_moser(