在普通的51单片机中下载以下程序:
#include <reg52.h>
sbit LED=P3^7;
//////////////////////串口初始化////////////////////////////////////////
void UartInit()
{
TMOD=0X21; //定时器T1设为方式2
TH1= 0xfd; //波特率设为9600
TL1= 0xfd; //
SCON=0xd0; //方式3允许接收
SM2 = 1;
TR1=1;
EA=1;
ES=1;
}
/////////////////////////主函数///////////////////////////////////
void main()
{
UartInit();
while(1)
{}
}
////////////////////串口中断服务子程序////////////////////////
void uart() interrupt 4
{
RI=0;
LED=~LED;
}
/////////////////////////////end/////////////////////////////////////////////
这个程序大概介绍一下:SM2=1代表,上位机发的是 校验位 为1才会进中断,
这有两种情况
1,上位机 无奇偶校验 位 能进中断
2,上位机 有 奇偶校验位 则 校验位为1是才能进中断即LED会闪烁!
上位机设置为奇校验时:发送 0x01 0x02能进入中断(校验位为1),发送0x03时不能进入中断(校验位为0),这样可以判断是否是 奇校验
同理可以判断偶校验!
上位机设置为mark校验时:上位机无论发 0x01,0x02,0x03都进入中断,LEC闪烁----这可以验证 是否为 mark校验
上位机设置为space校验时:上位机无论发0x01,0x02,0x03都不能进入中断,即LED不变化,----这可以验证是否为 space校验
2012年10月18日21:58:18
2012年11月4日16:16:39:不确信的请看参考文档:
《L
i n u x 操 作 系 统 下 微 机 与 单 片 机 组 成 的 多 机 通 讯 系 统》 http://wenku.baidu.com/view/35e48a97dd88d0d233d46a16.html
我是先接触单片机再接触Linux。。。并为之实验过。。。