单片机的异步串行通信功能和基本使用方法
于只有两路输出,因此实际上只要控制PD6、PD7就可以了。点击“开关1”按钮可以改变PD6的输出状态,点击“开关2”按钮可以改变PD7的输出状态。点击“全部开启”按钮PD6、PD7均输出高电平1;点击“全部关闭”按钮PD6、PD7均输出低电平0。PD6、PD7的输出电平决定继电器K1、K2的工作状态。
3.控制实验
先将程序目标文件写入单片机,再接好串口通信线,通信线的接线方法见上图。打开实验板的电源,运行上位机程序文件夹中的电源开关控制器.exe可执行文件,如果出现缺少控件的提示,只先执行一下install.bat即可。点击上位机软件上的命令按钮,我们发现实验板上的发光二极管VD5、VD6发光状态会随之发生相应的变化,与之对应的继电器的工作状态也会发生相应的变化。
如果我们把继电器的触点串联在电源插座上,再将家用电器的插头插在这个电源插座上就可以用计算机对家用电器的开关进行控制了。
实验二串口通信
1.实验电路
实验板上与本实验相关的电路见上图,这个实验主要用来演示计算机与单片机收发字符串的实验。计算机通过软件“串口调试助手”将字符串发送给单片机,单片机将收到的字符串在LCD显示屏上显示,并自动将字符串回发给计算机。
2.程序设计
计算机上的程序使用“串口调试助手”,用来通过串口发送和接收字符串。这个实验中串口传递的是字符的ASC码,一个字符的ASC码正好是8位二进制数,所以一帧信号即可传递一个字符。 单片机程序中的主程序如下:
void main(void)
{
uchar i;
DelayMs(500);//启动等
待,等LCD进入工作状态
Init();//初始化
while(1)
{
Display(O,O,RS_Data)
;//显示接收数据
for(i=O;i6;i++)
{
while(!(UCSRA0x80))
;//等待接收完成
. RS_Data[i]=UDR;//接
收数据
}
for(i=O;i6;i++)
{
while(!(UCSRA0x20));
//等待移位寄存器空
UDR=RS_Data[i];//发
送数据
}
}
}
程序中的数组Rs_Data[]用来存储接收和发送的字符串。RS_Data[]的初始值为RS_Data[]=“:Hello!”,接收和发送均使用循环语句,因为接收和发送的字符数为6个,所以循环次数为6次。
3.通信实验
用串口通信线连接好计算机和实验板后,接通实验板的电源,这时实验板LCD显示屏显示的是:“Hello!”。在计算机上打开串口调试助手软件,对串口按波特率9600、8位数据位、1位停止位、无校验设置。在发送区随便填写6个字符,比如abc123,点击“手动发送”按钮,我们会发现LCD显示屏显示:abc123(见题图),同时串口调试助手接收区也收到单片机回发的字符串,如下图所示。
数字通信相关文章:数字通信原理
通信相关文章:通信原理
评论