本帖最后由 yy温控 于 2009-10-14 11:53 编辑
求助高手:键盘显示+通信程序下面是关于键盘显示的主程序:
用7289芯片控制的,总共5个按键。下面的程序硬件通过了。
我现在想在这个程序中加上和PC机通信的程序,用的485通信
PC机输入的指令相当于按键的功能。
求各位高手看看应该怎么加通信程序!!
我应该怎么加上通信程序呢?用什么方法好?
望大家给予宝贵意见!!
高手最好给点程序,谢谢!!
感激不尽!
#include <reg51.h>
#include <intrins.h>
#include "12.h"
#define uchar unsigned char
#define uint unsigned int
sbit P20=P2^0;
sbit P10=P1^0;
void InitSerial()
{
SCON=0x50;
TMOD=TMOD|0X20;
TH1=0XFD;
TL1=0XFD;
TR1=1;
}
void main()
{
unsigned char temp;
uchar key;
uchar kk=0;
uchar enter=0;
uchar k08=0;
uchar k10=0;
uchar tx=1;
InitSerial();
ZLG7289_Init();
P10=1;
ZLG7289_Hide(0xfc);
ZLG7289_Down_Data(0x02,0x02,0,0x05);
ZLG7289_Down_Data(0x02,0x03,0,0x0A);
P20=0;
while(1)
{
if(ZLG7289_INT==0)
{
key=ZLG7289_ReadKey();
if(key==0x18)
{
disp08();ZLG7289_Hide(0x0c);ZLG7289_Glint(0x00);enter=0;
k08=1;k10=0; key=0;kk=0; tx=0;
}
if(key==0x19)
{
ZLG7289_Hide(0xfc); disp10();key=0;k10=1;
k08=0;ZLG7289_Glint(0x00);kk=0; enter=0; tx=0;
}
if(key==0x1a)
{
key=0;
tx=0;
if(k08==1)
{
if(kk>=2){kk=1;}
else
kk++;
if(kk==1)
{
disp1();ZLG7289_Hide(0xfe);ZLG7289_Glint(0x00);enter=0; tx=0;
}
if(kk==2)
{
disp2();ZLG7289_Hide(0xfe);ZLG7289_Glint(0x00);tx=0;
enter=0;}
}
if(k10==1)
{
if(kk>=2){kk=1;}
else
kk++;
if(kk==1)
{
disp1();ZLG7289_Hide(0xfe);ZLG7289_Glint(0x00);enter=0;
}
if(kk==2)
{
disp2();ZLG7289_Hide(0xfe);ZLG7289_Glint(0x00);
enter=0;}
}
}
if(key==0x1b)
{
key=0;
tx=0;
if(k08==1)
{
if(kk<=1){kk=2;}
else
kk--;
if(kk==1)
{
disp1();ZLG7289_Hide(0xfe);ZLG7289_Glint(0x00);
enter=0;}
if(kk==2)
{
disp2();ZLG7289_Hide(0xfe);ZLG7289_Glint(0x00);
enter=0;}
}
if(k10==1)
{
if(kk<=1){kk=2;}
else
kk--;
if(kk==1)
{
disp1();ZLG7289_Hide(0xfe);ZLG7289_Glint(0x00);
enter=0;}
if(kk==2)
{
disp2();ZLG7289_Hide(0xfe);ZLG7289_Glint(0x00);
enter=0;}
}
}
if(key==0x1c)
{
enter=1;key=0;ZLG7289_Glint(0xff);tx=0;
}
while(!ZLG7289_INT);
}
}
}
|