485多机操作~46 单片机之间双向通信Last Loaded 单片机之间双向通信
/*************** writer:shopping.w ******************/
#include
#define uint unsigned int
#define uchar unsigned char
sbit LED1 = P1^0;
sbit LED2 = P1^3;
sbit K1 = P1^7;
uchar Operation_NO = 0;
uchar code DSY_CODE[]=
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x...
/*************** writer:shopping.w ******************/
#include
#define uint unsigned int
#define uchar unsigned char
sbit LED1 = P1^0;
sbit LED2 = P1^3;
sbit K1 = P1^7;
uchar Operation_NO = 0;
uchar code DSY_CODE[]=
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};
void Delay(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
void putc_to_SerialPort(uchar c)
{
SBUF = c;
while(TI == 0);
TI = 0;
}
void main()
{
LED1=LED2=1;
P0 = 0x00;
SCON = 0x50; //工作模式2,允许接收
TMOD = 0x20;
PCON = 0x00;
TH1 = 0xfd;
TL1 = 0xfd;
TI = 0;
RI = 0;
TR1 = 1;
IE = 0x90; //开总中断,串行中断
while(1)
{
Delay(100);
if(K1 == 0)
{
while(K1==0);
Operation_NO=(Operation_NO+1)%4;
switch(Operation_NO)
{
case 0:
putc_to_SerialPort('X');
LED1=LED2=1; break;
case 1:
putc_to_SerialPort('A');
LED1=0;LED2=1;break;
case 2:
putc_to_SerialPort('B');
LED2=0;LED1=1;break;
case 3:
putc_to_SerialPort('C');
LED1=0;LED2=0;break;
}
}
}
}
void Serial_INT() interrupt 4 //串行中断
{
while(RI)
{
RI = 0;
if(SBUF>=0&&SBUF<=9)
P0 = DSY_CODE[SBUF];
else
P0 = 0x00;
RI = 0;
}
}
本文档为【485多机操作~46 单片机之间双向通信Last Loaded 单片机之间双向通信】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。