一早抠、功能描述
甲機的P1.0端口接開關(guān),乙機的P1.0端口接LED燈撬讽,程序運行蕊连,接通SW1,LED1燈亮锐秦。
甲機的P1.0咪奖、P1.1、P1.2酱床、P1.3、P1.4端口接開關(guān)趟佃,乙機的P1.0扇谣、P1.1、P1.2闲昭、P1.3罐寨、P1.4端口接LED燈,程序運行序矩,接通開關(guān)SW1鸯绿、SW2、SW3簸淀、SW4瓶蝴、SW5,則與之相對應的LED1租幕、LED2舷手、LED3、LED4劲绪、LED5燈亮男窟。
二、電路圖
三贾富、程序
//甲機發(fā)送程序
#include <REGX51.H>
#define uchar unsigned char
sbit SW=P1^0;
void main()
{
TMOD=0x20;
TH1=0xfa;
TL1=0xfa;
SCON=0x50;
PCON=0x00;
TR1=1;
while(1)
{
SBUF=P1;
while(!TI);
TI=0;
}
}
//乙機接收程序
#include <REGX51.H>
#define uchar unsigned char
sbit LED=P1^0;
void main()
{
TMOD=0x20;
TH1=0xfa;
TL1=0xfa;
SCON=0x50;
PCON=0x00;
TR1=1;
while(1)
{
while(!RI);
P1=SBUF;
RI=0;
}
}
四歉眷、小結(jié)
本節(jié)課,學習了利用發(fā)送設(shè)備給接受設(shè)備發(fā)送數(shù)據(jù)颤枪,實現(xiàn)了甲機給乙機發(fā)送命令汗捡,實現(xiàn)燈亮的效果。在我輸完代碼汇鞭,運行程序凉唐,發(fā)現(xiàn)程序并沒有如老師所講的那樣LED1亮庸追,然后我重新檢查了一遍我所打代碼,發(fā)現(xiàn)了我的問題—乙機的程序第二行的LED=P1^0輸成了SW=P1^0台囱,改正后第一個電路可以成功運行淡溯,使LED1燈亮。再打第二組代碼時簿训,發(fā)現(xiàn)燈未通開關(guān)常亮咱娶,沒能找到問題,求助同學强品,找到了問題—未將乙機代碼倒數(shù)第四行改為P1=SBUF膘侮,修改程序后,成功實現(xiàn)產(chǎn)品功能的榛。