资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
基于Proteus的AT89C52双机通目仿真在一个Proteus工程中,添加两个AT89C52单片机,一个做主机,另一作从机。 现在要实现主机与从机之间的简单通信。具体功能是:主机不停扫描矩阵键盘, 如果有键被按下,则把相应按键的数字发送给从机,从机通过数码管显示它接 受到的数据。主机与从机之间的通信通过串行口实现。构建Proteus仿真图时,如果感觉图纸不够大,放置元器件比较拥挤, 可以通过System选项Set Sheet Side.选择A3图纸就合适/。Proteus中的RS-232C标准接头COMPIM不耑要连接MAX232,可以直接 和单片机的RXD, TXD连接,因为COMPIM已经把MAX232集成在内部。这里的串行通讯选择方式1,因为方式1的波特率与定时器T1的溢出率 有关,所以可以通过设置定时器T1的初值来确定串行通信的波特率。这里选 择了波特率为9600, T1选择具有自动重装功能的方式2,那么TH1和TL1 的初值通过计算得到Oxfd。具体的电路连接如下:士.4-rC1fX1B士.ss?ss_2inhb麝肩J,r&lrrr*r9HS戀aMJ S 剩RsrmttutP2I0S3S主机电路:从机电路:C430pFU2C3叫 X219XTAL130p18CRYSTALXTAL29RST1C6VT;t“uv1Si 2231 PSENALEEAP00/AD0 PO 1/AO1 P0 2/AD2 P0 3ZAD3 P0 4/AD4 P0 6/AD5 P0 6/AD6 P0 7/AD7P2 0/A8 P2.1/A9 P2 2/A10 P2 3/A11 P2 4/A12 P2 5ZA13 P2 6/A14 P2 7/A15Ci3?111 p p P! 1 19PPP0/121/T2EX23456 7P3 1/TXD P3 2NTD P3 3nTT P3.4ZT0 P3S/T1 P3 6/涵 P3 7/RDATOC52)2DCDDSRRXDRTSTXDCTSDTRRlERROROMPIM12L281 i-5JLIQ211,7-2113iiiin上ALL要顺利实现双机通信重要的是要保持两机的波特率一致。所以,下面的一些参 数设置很重要。利用虚拟串口软件Virtual Serial Port Driver,建立一对相连的虚拟串口。如果 没有安装这个软件可以网上下载安装。这是实现仿真必须的。这里的虚拟串口 为COM1和COM4,下图可以看到两个端口是相连的。Port pairs Options fjelpSerial ports explorerVirtual Serial Port Driver白塾 Physical portsO COM33 儀 Virtual ports rS C0M1 9600-N-8-1 d) COM4 9600-N-8-1Other virtual portsManage ports Port access list Custom pinoutVSPDby Qbma can create virtual senal ports wth any names you like, so you are not Wed to COMx rmes only However, please, make sure that programs wortang wth these ports support custom port names.first port: Second port:COM2COM5 Add parFirst port: Second port:C0M1COM4Delete parEnable stnet baudrate emulation Break bne/Rcstorc connectionAl vituai send pars wil be removed from your system. Ptease. make sure al ports are dosed.Delete alFor help press FI设賈主机 RS-232 接头 Pl 的参数。Physical port 选择端口 C0M11, Physical Baud Rate选择9600, Virtual Baud Rate也选择9600。其他参数默认,设置如下:Component Reference: Component Value:VSM Model:Physical port:Physical Baud Rate: Physical Data Bb: Physical Parky:Virtual Baud Rate:Virtual Data BiU:Virtual Parity: Advanced Properties:ICOMPIMICOMPIM.DLL|C0M119800|8I NONE19600I NONEHidden:Hidden:Hide AOHide AHHide AOHide AOVHide ABHkJeAOHide AHHide AllQKHelpCancelI Physical Stop Bits | I Hide AllOther Properdes:Exclude hom Sirnulalion Exclude from PCB Edit 11 properties as textAttach hierarchy moduleHide jorwnon pin$设置从机 RS-232 接头 P2 的参数。Physical port 选择端口 COM4, Physical Baud Rate选择9600, Virtual Baud Rate也选择9600。其他参数默认,设置如下:晶振频率设置力11.0592MHz,它与上面设置波特率为9600是对应的。两个晶 振没置相同,如下图。Component Reference: |X1Hidden:Hidden:QKComponent Value:|CRYSTALCancelFrequency:|l 1.0592MHz| Hide All二j|XTAL18Z! 03 I Hide AllVPCB Package:Other Properhes:Exclude from Simulation Exclude from PCB L卻outEdi( all properties a$ textAWach hierarchy module Hide common pin$单片机的时钟频率也要设賈为11.0592MHz。两单片机参数设賈一致,如下图:Edit ComponentComponent Reference:|U1Hidden:Component Value:|AT89C52Hidden:PCB Package:|DIL40jdllllHideAM _JProgram File:pwomcucom.hex|3lHideAIClock Frequency:|11.0592MHz|HideAfl!Advanced Properties:Enable trace logging| |No I | Hide AllOther Properties:fiKHelpQataHidden PinsCancelExclude from Simulation Exclude from PCB Layout Edit 11 properties as textAUach hierarchy moduleHide corrtfoon pins参数设置完成之后,Proteus的任务就完成了。接着就是编写从机与主机之间 的控制程序。程序编写完成后,分别把主机程序调入U1,从机程序调入U2。 主机与从机程序如下:主机程序#include#define uchar unsigned char #define uint unsigned intvoid delay(uint x)/延时uint ij; for(i=0;ix;i+)for(j=0;j125;j+);void sent_data(uchar date) /发送数据 SBUF=date;while(ITI);TI=0;void matrixkeyscan()/键盘扫描uchar temp,key;Pl=Oxfe;temp=Pl;temp=temp&OxfO;if(temp!=OxfO)delay(lO);temp=Pl;temp=temp&OxfO;
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号