⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dangonghujiaofasheji.txt

📁 发射部分采用锁相环式频率合成器技术
💻 TXT
字号:
发射部分程序清单:
/*------文件信息-------------*/
文件名:fashe.C
功  能:完成读按键以及各种控制功能的实现。
/*-----------------------------------/
/**********按键定义********/
/*1-39字符键              */
/*36键:呼叫方式选择 state2*/
/*41键:业务类型选择      */
/*42键:从台选择          */
/*43键:确认键            */
/*44键:清零              */
/*45键:退格键            */
/**************************/
#include<at89x51.h>
#define uchar unsigned char
#define te  P0_1
#define p30 P3_0
#define p31 P3_1
#define p32 P3_2
#define p33 P3_3
#define p34 P3_4
#define p35 P3_5
#define p36 P3_6
#define p00 P0_0
#define std P3_7
#define clk P1_7
uchar code zifu1[4]={"群呼"};
uchar code zifu2[4]={"选呼"};
uchar code zifu3[4]={"短信"};
uchar code zifu4[4]={"语音"};
uchar code zifu5[10]={"业务类型:"};
uchar code zifu6[10]={"呼叫方式:"};
uchar code zifu7[39]={"0123456789abcdefghijklmnopqrstuvwxyz ,."};
uchar zifu8[18]={36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36};
uchar state,state1,state2,state3,state4;
uchar address1=0;
bit keyon,keyoff;
bit key1 ,key2 ,key3 ,key4 ,key5 ,
key6 ,key7 ,key8 ,key9 ,key10,
key11,key12,key13,key14,key15,
key16,key17,key18,key19,key20,
key21,key22,key23,key24,key25,
key26,key27,key28,key29,key30,
key31,key32,key33,key34,key35,
key36,key37,key38,key39,key40,
key41,key42,key43,key44,key45,
key46,key47,key48,key49;
void delay(uchar v)
{while(v!=0)v--;}
delay1(unsigned int v)
{while(v--) delay(200); }
/***********通过串行方式对液晶进行写操作************/
void write(uchar com,bit rs)     //当rs=1时,写数据;当rs=0时,写指令
{uchar i=0;
uchar data1;
data1=com;
std=1;
for(i=0;i<5;i++)  //同步数据,发送5个'1';
{ clk=0; clk=1; }
std=0; clk=0; clk=1; std=rs; clk=0;
clk=1; std=0; clk=0; clk=1;
for(i=0;i<4;i++)
{if(data1&0x80) { std=1; }
else std=0; clk=0; clk=1;
data1=data1<<1; }
std=0;
for(i=0;i<4;i++)
{ clk=0; clk=1;  }
for(i=0;i<4;i++)
{if(data1&0x80)
{ std=1; }
else std=0; clk=0; clk=1;
data1=data1<<1; }
std=0;
for(i=0;i<4;i++)
{ clk=0; clk=1; }delay(100); }
/***********液晶初始化**************/
void initial_lcd(void)
{ write(0x30,0);
write(0x01,0);
write(0x06,0);
write(0x0c,0);
}
/************按键扫描*********/
void key_scan()
{keyon=0;delay(250);delay(250);delay(250);delay(250);delay(250);
delay(250);delay(250);delay(250);delay(250);delay(250);P1=0xbf;
if(p36==0){if(state3==1){keyon=1;keyoff=1;key1=1; }}
if(p35==0){if(state3==1){keyon=1;keyoff=1;key2=1; }}
if(p34==0){if(state3==1){keyon=1;keyoff=1;key3=1; }}
if(p33==0){if(state3==1){keyon=1;keyoff=1;key4=1; }}
if(p32==0){if(state3==1){keyon=1;keyoff=1;key5=1; }}
if(p31==0){if(state3==1){keyon=1;keyoff=1;key6=1; }}
if(p30==0){if(state3==1){keyon=1;keyoff=1;key7=1; }}
P1=0xdf;
if(p36==0){if(state3==1){keyon=1;keyoff=1;key8=1; }}
if(p35==0){if(state3==1){keyon=1;keyoff=1;key9=1; }}
if(p34==0){if(state3==1){keyon=1;keyoff=1;key10=1;}}
if(p33==0){if(state3==1){keyon=1;keyoff=1;key11=1;}}
if(p32==0){if(state3==1){keyon=1;keyoff=1;key12=1;}}
if(p31==0){if(state3==1){keyon=1;keyoff=1;key13=1;}}
if(p30==0){if(state3==1){keyon=1;keyoff=1;key14=1;}}
P1=0xef;
if(p36==0){if(state3==1){keyon=1;keyoff=1;key15=1;}}
if(p35==0){if(state3==1){keyon=1;keyoff=1;key16=1;}}
if(p34==0){if(state3==1){keyon=1;keyoff=1;key17=1;}}
if(p33==0){if(state3==1){keyon=1;keyoff=1;key18=1;}}
if(p32==0){if(state3==1){keyon=1;keyoff=1;key19=1;}}
if(p31==0){if(state3==1){keyon=1;keyoff=1;key20=1;}}
if(p30==0){if(state3==1){keyon=1;keyoff=1;key21=1;}}
P1=0xf7;
if(p36==0){if(state3==1){keyon=1;keyoff=1;key22=1;}}
if(p35==0){if(state3==1){keyon=1;keyoff=1;key23=1;}}
if(p34==0){if(state3==1){keyon=1;keyoff=1;key24=1;}}
if(p33==0){if(state3==1){keyon=1;keyoff=1;key25=1;}}
if(p32==0){if(state3==1){keyon=1;keyoff=1;key26=1;}}
if(p31==0){if(state3==1){keyon=1;keyoff=1;key27=1;}}
if(p30==0){if(state3==1){keyon=1;keyoff=1;key28=1;}}
P1=0xfb;
if(p36==0){if(state3==1){keyon=1;keyoff=1;key29=1;}}
if(p35==0){if(state3==1){keyon=1;keyoff=1;key30=1;}}
if(p34==0){if(state3==1){keyon=1;keyoff=1;key31=1;}}
if(p33==0){if(state3==1){keyon=1;keyoff=1;key32=1;}}
if(p32==0){if(state3==1){keyon=1;keyoff=1;key33=1;}}
if(p31==0){if(state3==1){keyon=1;keyoff=1;key34=1;}}
if(p30==0){if(state3==1){keyon=1;keyoff=1;key35=1;}}
P1=0xfd;
if(p36==0){if(state3==1){keyon=1;keyoff=1;key36=1;}}
if(p35==0){if(state3==1){keyon=1;keyoff=1;key37=1;}}
if(p34==0){if(state3==1){keyon=1;keyoff=1;key38=1;}}
if(p33==0){if(state3==1){keyon=1;keyoff=1;key39=1;}}
if(p32==0){keyon=1;keyoff=1;key40=1;}
if(p31==0){keyon=1;keyoff=1;key41=1;}
if(p30==0){keyon=1;keyoff=1;key42=1;}
P1=0xfe;
if(p36==0){keyon=1;keyoff=1;key43=1;}
if(p35==0){keyon=1;keyoff=1;key44=1;}
if(p34==0){keyon=1;keyoff=1;key45=1;}
if(p33==0){keyon=1;keyoff=1;key46=1;}
if(p32==0){keyon=1;keyoff=1;key47=1;}
if(p31==0){keyon=1;keyoff=1;key48=1;}
if(p30==0){keyon=1;keyoff=1;key49=1;}
}
void send(uchar a)  {uchar b;
b=a; b=b<<2; P2=b&0x3c; p00=0;
delay1(100); p00=1; delay1(100);
delay1(200); b=a; b=b>>2;
P2=b&0x3c; p00=0; delay1(100);
p00=1; delay1(100);
delay1(200);} void duanxin()
{if(state==1)
{if(address1<16)
{zifu8[address1]=state1;
address1++;
write(zifu7[state1],1);}
state=0;}}
/***********按键处理************/
void keyprocess()
{uchar i;uchar c;while(keyoff)
{key_scan();if(keyon==0)
{if(key1==1){state1=0;state=1;duanxin();key1=0;}
if(key2==1){state1=1;state=1;duanxin();key2=0;}
if(key3==1){state1=2;state=1;duanxin();key3=0;}
if(key4==1){state1=3;state=1;duanxin();key4=0;}
if(key5==1){state1=4;state=1;duanxin();key5=0;}
if(key6==1){state1=5;state=1;duanxin();key6=0;}
if(key7==1){state1=6;state=1;duanxin();key7=0;}
if(key8==1){state1=7;state=1;duanxin();key8=0;}
if(key9==1){state1=8;state=1;duanxin();key9=0;}
if(key10==1){state1=9;state=1;duanxin();key10=0;}
if(key11==1){state1=10;state=1;duanxin();key11=0;}
if(key12==1){state1=11;state=1;duanxin();key12=0;}
if(key13==1){state1=12;state=1;duanxin();key13=0;}
if(key14==1){state1=13;state=1;duanxin();key14=0;}
if(key15==1){state1=14;state=1;duanxin();key15=0;}
if(key16==1){state1=15;state=1;duanxin();key16=0;}
if(key17==1){state1=16;state=1;duanxin();key17=0;}
if(key18==1){state1=17;state=1;duanxin();key18=0;}
if(key19==1){state1=18;state=1;duanxin();key19=0;}
if(key20==1){state1=19;state=1;duanxin();key20=0;}
if(key21==1){state1=20;state=1;duanxin();key21=0;}
if(key22==1){state1=21;state=1;duanxin();key22=0;}
if(key23==1){state1=22;state=1;duanxin();key23=0;}
if(key24==1){state1=23;state=1;duanxin();key24=0;}
if(key25==1){state1=24;state=1;duanxin();key25=0;}
if(key26==1){state1=25;state=1;duanxin();key26=0;}
if(key27==1){state1=26;state=1;duanxin();key27=0;}
if(key28==1){state1=27;state=1;duanxin();key28=0;}
if(key29==1){state1=28;state=1;duanxin();key29=0;}
if(key30==1){state1=29;state=1;duanxin();key30=0;}
if(key31==1){state1=30;state=1;duanxin();key31=0;}
if(key32==1){state1=31;state=1;duanxin();key32=0;}
if(key33==1){state1=32;state=1;duanxin();key33=0;}
if(key34==1){state1=33;state=1;duanxin();key34=0;}
if(key35==1){state1=34;state=1;duanxin();key35=0;}
if(key36==1){state1=35;state=1;duanxin();key36=0;}
if(key37==1){state1=36;state=1;duanxin();key37=0;}
if(key38==1){state1=37;state=1;duanxin();key38=0;}
if(key39==1){state1=38;state=1;duanxin();key39=0;}
if(key44==1)                         //清零
{if(state3==1)
{for(i=0;i<18;i++)zifu8[i]=36;write(0x88,0);
for(i=0;i<16;i++)write(' ',1);
write(0x88,0);}
key44=0;}
if(key40==1)
{if(state3==0)
{state2++;                           //呼叫方式
if(state2==2){state2=0;state4=0;}if(state2==1)
{state4=1;write(0x85,0);for(i=0;i<4;i++)
write(zifu2[i],1);                      //选呼
write('1',1);}
else {state4=0;write(0x85,0);for(i=0;i<4;i++)
write(zifu1[i],1);                      //群呼
write(' ',1);
}}
key40=0;}
if(key41==1){address1=0;
state3++;                           //业务类型
for(i=0;i<18;i++)zifu8[i]=36;write(0x88,0);
for(i=0;i<16;i++)write(' ',1);write(0x88,0);
if(state3==2)state3=0;if(state3==1)
{write(0x95,0);for(i=0;i<4;i++)
write(zifu3[i],1);                     //短信
write(0x88,0);}
else {write(0x95,0);for(i=0;i<4;i++)
write(zifu4[i],1);                     //语音
write(0x88,0);for(i=0;i<16;i++)write(' ',1);
for(i=0;i<18;i++)zifu8[i]=36;}key41=0;}
if(key42==1){if(state3==0){if(state2==1)
{state4++;                          //从站选择
if(state4==9)state4=1;write(0x87,0);write(0x30+state4,1);}}
key42=0;}if(key43==1)
{zifu8[16]=state4;zifu8[17]=0;for(c=0;c<18;c++)
send(zifu8[c]);key43=0;}keyoff=0;}}}
void main(){uchar n;initial_lcd();write(0x80,0);
delay1(100);delay1(100);delay1(100);delay1(100);delay1(100);delay1(100);
for(n=0;n<10;n++)write(zifu6[n],1);
for(n=0;n<4;n++)write(zifu1[n],1);
write(0x90,0);
for(n=0;n<10;n++)write(zifu5[n],1);
for(n=0;n<4;n++)write(zifu4[n],1);
while(1)
{key_scan();keyprocess();}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -