#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
const uchar LEDcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void delay_ms(uint t)
{
uint m,n;
for (m=0;m<t;m++)
for (n=0;n<110;n++);
}
void MasterUART_init(void)
{
SCON = 0x50;
TMOD = 0x20;
TH1 = 0xFD;
TL1 = 0xFD;
TR1 = 1;
ES = 1;
EA = 1;
}
void MasterSendByte(uchar udat)
{
SBUF = udat;
while(!TI);
TI = 0;
}
main()
{ uint i;
MasterUART_init();
while(1)
{
for(i=0;i<8; i++)
{
MasterSendByte(LEDcode[i]);
P1=LEDcode[i];
delay_ms(100);
}
}
}
從機
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
void delay_ms(uint t)
{
uint m,n;
for (m=0;m<t;m++)
for (n=0;n<100;n++);
}
void SlaveUART_init(void)
{
SCON = 0x50;
TMOD = 0x20;
TH1 = 0xFD;
TL1 = 0xFD;
TR1 = 1;
ES = 1;
EA = 1;
}
main()
{
SlaveUART_init();
while(1);
}
void interrupt_uart() interrupt 4
{
uchar temp;
if(TI)
{
TI = 0;
REN = 1;
}
if(RI)
{
temp = SBUF;
RI = 0;
P1=temp;
REN = 1;
}
}
這是正確的,,,,。。。。。
|