📄 main.c
字号:
#include <reg51.h>
#include "nRF905\nRF905.h"
#include "LCD1602\LCD1602.h"
#include "MATRIX_KEY\Matrix_Key.h"
#include "print\print.h"
#include "process\process_SYNCLCD.h"
//注意: 矩阵键盘与LCD复用数据线
unsigned char code display1[] = {" www.newmsg.com"};
unsigned char code display2[] = {" Copyright@2006"};
unsigned char process_synclcd_unlock = 0;
unsigned int i;
void timer_int0() interrupt 1 //定时器0
{
TH0=0xd8; //定时器0 : 10ms
TL0=0xef; // 10ms
if (Matrix_Key_Detect())
{
if (col==4 )
{
if (process_synclcd_unlock) //LCD功能解除锁定
{
process_synclcd_char(row);
row=0;col=0;
}
}
if (col==3)
{
//发送蜂鸣器信号
TxRxBuf[0]=0x03;
SetTxMode();
TxPacket();
SetRxMode();
}
// DisplayOneChar(5,0,'0'+row);
// DisplayOneChar(13,0,'0'+col);
//------
}
TR0 = 1;
}
void main(void)
{
EA = 1;
ET0 = 1; //开中断 : INIT0
// PT0=1; //T0中断高优先级
TMOD = 0x21; //定时/计数控制器 T1:自动重装 T0:16位定时器
TH0=0xd8; //定时器0 : 10ms
TL0=0xef; // 10ms
TR0 = 1;
LCMInit(); //LCM初始化
DisplayListChar_code(0, 0, display1);
DisplayListChar_code(0, 1, display2);
P2=0xff;
LCM_Data = 0xff;
print_init();
nRF905Init();
Config905();
SetRxMode();
while (row==0 && col==0); //任意键开始正常工作
process_synclcd_unlock = 1; //LCD功能解除锁定
row=0;col=0;
process_synclcd_init();
while(1)
{
while (CheckDR()==0);
TR0 = 0; //矩阵键盘与LCD复用数据线,先停止键盘扫描
RxPacket();
P0=P0>>1;
if (P0==0x00) P0=0xff;
switch(TxRxBuf[0])
{
case 0x01: //无线串口
print_Char(TxRxBuf[1]);
break;
case 0x02: //LCD 无线同步
TxRxBuf[TxRxBuf[1]]='\0';
process_synclcd_init();
print_Str(TxRxBuf+2);
DisplayListChar(0,0,TxRxBuf+2);
if (TxRxBuf[1]>16)
{
DisplayListChar(0,1,TxRxBuf+16);
}
break;
case 0x03: //蜂鸣器
BUZZER = 0;
for (i=0;i<10000;i++);
BUZZER = 1;
break;
}
TR0 = 1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -