声明:本实验采用面包板,跳线,电子散件制作
目的:制作电路,实现单片机的串行接口收发
电子元件清单 (最小系统电路参考上篇文章:http://blog.csdn.net/guomutian911/article/details/23160049):
最小系统电路所有元件(上篇有详细介绍)
面包板+跳线(>20根)
max232 芯片 *1个
1uF 陶瓷电容 * 4个
RS232 公头接口 *1 个
效果图:
电路原理图:(网上很多串口电路图,可是很大部分不可用,这个是经自己测试为正确标准接法)
上电测试:(建议上电前,再次检查确认电路,防止烧毁元器件)
本测试程序为发一个十六进制字符,并赋给单片机P1口,可控制P1^0 - P1^7 。在电路中接一个LED发光二极管在P1^0口,故发0x00,LED亮;0xFF,LED灭(此例中只接一个LED,对应P1^0,其余7个口未控制)
#include<reg52.h>
void main()
{
TMOD=0X20;//设置定时器1为工作方式2(自动装入,多用于串口通信精确定时,产生波特率用)
TH1=0Xfd; //预装入值
TL1=0Xfd; //初值
TR1=1; //打开定时器1
//编辑SCON寄存器
REN=1; //允许串行接收位
SM0=0; // 工作方式1(10位异步手法器,8位数据)
SM1=1;
//EA=1;
//ES=1;
while(1)
{
if(RI==1) //RI接收中断标志位,
{
RI=0; //清0
P1=SBUF; //将数据送入P1
}
}
}
接下来取下单片机,烧写上面的程序,软件使用(编译器:Keil uVision4 + 烧写器: STC_ISP_V480.exe)
调试:
插好单片机,使用串口助手发送字符调试(注意设置波特率,和十六进制格式如图)
发送00,此时点亮LED;发送ff,LED熄灭。
至此,整个制作完成,实验成功结束!