
基于proteus的89c52双机通信仿真.doc
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^_2」inhb麝肩J><>,r&&lrrr*r9HS戀aMJ S 剩RsrmttutP2「I0S3S主机电路:从机电路:C430pFU2C3叫□ X219>XTAL130p18CRYSTALXTAL29RST
所以,下面的一些参 数设置很重要利用虚拟串口软件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-1]Other 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 r^mes 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 AO V]Hide ABHkJeAOHide AHHide AllQKHelpCancelI Physical Stop Bits▼ | I Hide AllOther Properdes:Exclude hom Sirnulalion Exclude from PCB Edit ^11 properties as textAttach hierarchy moduleHide j^orwnon 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|XTAL18~Z! 03 I Hide All~V]PCB 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
