实验项目名称: | 串行口通讯实验 | 项目介绍: | 课程性质及背景: 本课程是测控技术与仪器专业的主干专业课,是一门实践性、应用性较强的课程。通过介绍智能仪器的特点、技术标准、发展概况、基本构成和先进控制技术,使学生掌握智能仪器的分析、设计、控制及选型等工作所需基本知识和技术。 实验课程特点及必要性: 实验教学是本课程的重要环节,是课堂教学的加强与提高,要充分重视学生综合能力的培养,利用实验结果和数据,分析系统的性质,提高学生的设计能力和解决实际问题能力。 | 项目目的: | 1)掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法; 2)了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议; 3)学习串口通讯的中断方式的程序编写方法。 | 面向理论课程: | 智能仪器仪表设计 | 面向专业: | 测控技术与仪器、车辆 | 仪器硬件设备及软件环境: | 1)Proteus仿真软件1套; 2)Keil C51编程软件1套; 3)PC机1台; | 实验项目功能及效果: |
实验内容或任务: 利用Proteus环境,以单片机串行口,实现两个实验台之间的串行通讯。其中一个实验台作为发送方,另一侧为接收方。发送方通过串行口发送控制信号给接收方并控制其LED,绘制相应电路原理图,并编写相应通信程序。 实验效果: 1)打开Proteus绘制电路图 2)打开Keil C51建立工程,参数设置 3)编辑源程序 4)运行和调试程序 | 串行口通讯实验C源程序 #include <regx52.h> #define uchar unsigned char #define uint unsigned int sbit LED1=P0^0; sbit LED2=P0^5; //延时 void DelayMS(uint ms) { uchar i; while(ms--) for(i=0;i<120;i++); } //主程序 void main() { SCON=0x50; //串口模式1,允许接收 TMOD=0x20; //T1工作模式2 PCON=0x00; //波特率不倍增 TH1=0xfd; //波特率9600 TL1=0xfd; RI=0; TR1=1; LED1=LED2=1; while(1) { if(RI) //如收到则LED闪烁 { RI=0; switch(SBUF) //根据所收到的不同命令字符完成不同动作 { case 'A': LED1=~LED1;LED2=1;break; //LED1闪烁 case 'B': LED2=~LED2;LED1=1;break; //LED2闪烁 case 'C': LED1=~LED1;LED2=LED1; //双闪烁 } } else LED1=LED2=1; //关闭LED DelayMS(100); } } |
| 备注 | 要求学生有C语言编程能力 |
|