1、 提交课程设计报告。图1 系统连接图二. 设计过程与原理1.原理图设计利用 Proteus软件设计仿真电路,以 AT89C51 单片机为 MCU ,在最小系统的基础上 通过 IO 口与继电器电路相连。电路原理图如如图 2 所示。2.单片机代码利用 Keil 编写控制单片机的 C51 代码。3.利用 Proteus 仿真利用虚拟端口软件添加两个虚拟端口 COM1,COM2, 将 Keil 编写的代码导入到原理图 中的 AT89C51 中,将 RS232 串口中端口改为 COM2 ,打开原理图仿真。运行串口调试助 手将端口设为 COM1 ,即可发送数据仿真。4.利用 C+Builder 设计上位机
2、利用 Microsoft Comm Control 6.0 串口控件实现与单片机的通信。软件界面如图 3 所示。上位机主要功能如下:1.可以选择端口,波特率,校验位,数据位,停止位以及打开关闭串口。2.可以输入数据发送给单片机,控制四个继电器打开关闭 LED 灯。3.可以通过按钮控制四个 LED 的打开与关闭。91819XTAL1XTAL2RSTX112M22pfC1U1C2P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7C310uF29PSENALEEA13P1.0P1.1P1.2P1.3P1.4P1.5P1.6
3、P1.7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD432 1234567 8 0333 2222222 2 11314151617P1COMPIM图 2 电路原理图R43图 3 程序界面图- 2 -case 0:P00 = 0;break; case 1P01 = 0;2P02 = 0;3P03 = 0;aP00 = 1;bP01 = 1;cP02 = 1;dP03 = 1;. 实习心得这是
4、一次纯软件的仿真实验,为期两周并不算长,而且还要学习不少新知识,总体 来说算的上是一次满充实的的实验。通过本次实验,我充分体会到软件仿真的便利。本次实验第一周主要是查资料、学习软件知识,如学会用 Proteus 建元件库、画电 路原理图,如何用 Keil uVision 写单片机程序,用 C+Builder 编写上位机等。通过网 上搜索,查找了关于串口通信的原理知识和上位机的相关内容。本次实验第二周主要是上位机的编写与仿真, C+ Builder 具有快速的可视化开发 环境:只要简单地把控件拖到窗体上,定义一下它的属性,设置一下它的外观,就可以 快速地建立应用程序界面; C+ Builder
5、内置了 100 多个完全封装了 Windows 公用特性 且具有完全可扩展性(包括全面支持 ActiveX 控件)的可重用控件; C+ Builder 具有 一个专业 C+开发环境所能提供的全部功能:快速、高效、灵活的编译器优化,逐步连 接,CPU透视, 命令行工具等。 它实现了可视化的编程环境和功能强大的编程语言 (C+)的完美结合。掌握 C+Builder 对我们以后的学习有非常大的帮助。Keil C 代码:#include stdio.h #define uchar unsigned char #define uint unsigned int sbit LED = P10; sbit
6、KEY = P16;sbit P00 = P00; sbit P01 = P01;sbit P02 = P02; sbit P03 = P03;void main()char key = 0; SCON = 0x50; TMOD |= 0x20;TH1 = 0xFD; TR1 = 1;TI = 1; while(1)LED = 0; key = _getkey(); switch(key)C+Builder 代码:/ Form1-MSComm1-CommPort=Uart_Portvcl.h #pragma hdrstop#include Unit1.hmath.h/ #pragma pack
7、age(smart_init)#pragma link MSCommLib_OCX#pragma resource *.dfmTForm1 *Form1;/ _fastcall TForm1:TForm1(TComponent*Owner) TForm(Owner)void Set_Uart(void)String Uartsettings;if(Form1-PortOpen)Form1- MSComm1-PortOpen=False;Uartsettings=Uart_Bond+,;Uartsettings+=Uart_Chek.SubString(1,1)+,Uartsettings+=U
8、art_Data+Uartsettings+=Uart_Stop;trySettings=Uartsettings;catch(Exception&e)Application-MessageBox( 设 置 不正确 !请检查 . 系统错误 ,MB_OK);PortOpen=True;exception)Uart_Open=false; 该串 口不存在或串口被占用 ! 系统 错误U_Status-Brush-Color=clBlack;U_OPEN-Caption= 打 开串口 return;Sleep(10);PortOpen = True;if(!Uart_Open)Form1-PortOp
9、 en=False;void _fastcallTForm1:FormCreate(TObject *Sender) InputLen = 1;InBufferSize=2048;InBufferCount=0;OutBufferSize = 512;OutBufferCount = 0;CommPort = 1;/On Error GoTo comerInputMode = comInputModeBinary;RThreshold = 1;SThreshold = 0;InBufferCount = 0;Set_Uart();U_OPENClick(TObject *Sender)Uart
10、_Open)Uart_Open=true;Color=clRed; 关闭串口 PortOpen)Set_Uart();else 打开串口 if(MSComm1-PortOpen) MSComm1-U_CheckChange(TObject*Sender)Uart_Chek=U_Check-Items-StringsU_C heck-ItemIndex;U_DataChange(TObject *Sender) Uart_Data=U_Data-Strings U_Data-U_StopChange(TObject *Sender) Uart_Stop=U_Stop-StringsU _Stop-voidU_PortChange(TObject *Sender)Uart_Port=U_Port-ItemIndex+1;U
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1