单片机与pc机通信单片机双机通信以及与pc机的通信

单片机与pc机通信  时间:2021-09-09  阅读:()

pc机与单片机通信

串口调试助手只是调试用的,真正用的时候必须要对应的程序才行,看你的要求这个发送的数据量还是满大的。

电脑与单片机通信可以有很多方式,比如串口,并口。

最简单的可以控制并口,可以直接输出好像九路ttl电平,随你控制小车动作,连单片机都省了。

而且实时性高,所有程序都在电脑上,效率高。

串口也是相当简单,直接用串口控件,各种软件都有的。

单片机单用串口中断。

51单片机与pc机通信,谁能发个程序和接线图呀,万分感谢,问题如下:

<p>给你图,芯片是MAX232,其中TXD和RXD接单片机的TXD和RXD。

OUT和IN接232串口,需要一条同相串口线与PC连。

</p> <p>参考程序如下:</p> <p> TMOD?=?0x20; //定时器T1定义为模式2</p> <p> TL1?=?0xFD; TH1?=?0xFD; //设置波特率为9600bps</p> <p> PCON?=?0x00; //SMOD=0</p> <p> SCON?=?0x70; //SM0,SM1=01--选择工作方式1</p> <p> //SM2=1--多机控制位置1</p> <p> //REN=1--禁止接收</p> <p> //TB8=0--此方式无要发送第9位数据</p> <p> //RB8=0--此方式无接收到的第9位数据</p> <p> //TI=0--发送中断标志清0</p> <p> //RI=0--接收中断标志清0</p> <p> TR1?=?1; //启动定时器T1</p> <p>这是初始化程序?晶振11.0592</p> <p></p>

如何实现(电脑)PC机与单片机的串行通信

硬件部分有二种情况 1、电脑带有原生串口,就是主板上带有串行口,这个情况就太好办了。

用“串口调试助手”测试一下就可以用VB写程序了。

电脑和单片机用232芯片进行接口转换。

2、电脑没有原生串口,就是主板上没有串行口,这个情况有点麻烦。

要用USB转串口的模块,装好驱动后会在“设备管理器”中出现一个串口,直接当原生串口用就行了,而且经过USB转出来的串口一般都TTL电平的,也就是可以直接接单片机不用232芯片的。

不过这也要看你用的是哪种模块了,具体的要看模块说明书。

最后要注意的是波特率和单片机晶振的选用,不知道你用的是什么型号的单片机。

软件部分,可以用简单的VB编写上位机软件,这方面网上有很多的代码。

单片机部分只要按照普通的串行写程序就行了,测试时可以用“串口调试助手”这款软件,调试好后再写VB程序。

上述是我们做项目和产品的经验,希望对你有所帮助。

单片机双机通信以及与pc机的通信

利用方式1实现单片机双机通信,主频为6M,波特率为2400bps,电路见图5-10。

当两个单片机距离较近时,甲、乙两机的发送端与接收端分别直接相联,两机共地。

执行程序,甲机将亮灯信号发送给乙机,若通信正常,乙机接收到信号后点亮20个发光二极管。

乙机采用查询与中断两种工作方式。

当然20个LED乙机可单独控制,也可接受甲机的控制,并执行甲机指令,还需要进一步完善程序. 甲机发送程序: org 0000h sta: mov tmod,#20h ;设置波特率 mov tl1,#0FAh mov th1,#0FAh setb tr1 mov scon,#40h ;置工作方式1 clr ti mov a,#00h mov sbuf,a ;发送亮灯信号 wait: jbc ti,cont ;发送成功清标志 ajmp wait ;等待发送完毕 cont: sjmp sta ;重复发送 end 乙机查询工作方式接收: org 0000h mov tmod,#20h ;设置通信波特率 mov tl1,#0FAh mov th1,#0FAh setb tr1 mov scon,#40h clr ri setb ren ;允许接收 wait: jbc ri,read ;接收成功清标志 ajmp wait ;接收未完等待 read: mov a ,sbuf mov p1,a ;接收亮灯信号送P1口 sjmp $ end 乙机中断工作方式接收 org 0000h ajmp main org 0023h ajmp zd ;转串口中断程序 START: MOV TMOD,#20h mov tl1,#0FAh mov th1,#0FAh setb tr1 mov scon,#50h clr ri mov ie,#90h ;开中断 MAIN:sjmp $ 主程序 zd: clr ri ;清接收标志 ;==============中断程序还要再完善============== mov a ,sbuf ;读接收信号 mov p1,a MOV R1,A ;将收到的信号送缓存 reti ;中断返回 end 采用方式2 通信,数据帧格式是11位的,TB8为奇偶校验位,接收过程要求判断RB8,若出错置F0标志为1,正确则置F0标志为0,然后返回。

发送波特率375kbps,晶振为12MHz,所以SMOD=l。

由于传送数据的波特率与定时器无关,所以程序中无需对定时器编程. send: MOV SCON,#80H ;设置串行口为方式2 MOV PCON,#80H ;SMOD=l MOV R0,#50H ;设数据块指针 MOV R7,#20 ;设数据块长度 STA: MOV A,@R0 ;取数据给A MOV C,P MOV TB8,C ;奇偶位P送给TB8, MOV SBUF,A ;启动发送 ;==================================================== WAIT: JBC TI,CONT ;若发完一帧数据,清标志后发下一帧数据 AJMP WAIT ;未完等待 ;======================================================= CONT:INC R0 ;修改数据指针 DJNZ R7,STA ;循环发送至结束 RET ;======================================================== ;乙机接收程序如下: ; 在进行双机通信时,两机应采用相同的工作方式和波特率。

;============================================================= MOV SCON,#90H ;设置串行口为方式2,REN为1,允许接收 MOV PCON,#80H ;SMOD=1 MOV R0,#50H ;设置数据块首址 MOV R7,#20 ;置数据块长度 ;========================================================= WAIT:JBC RI,READ ;接收完一帧数据则RI清零并读入数据 AJMP WAIT ;未完等待 ;========================================== READ:MOV A,SBUF ;读入数据 JNB PSW.0,PZ ;收到数为偶数则转 JNB RB8,ERR ;收到数为奇数,发端为偶数则通信出错 SJMP RIGHT ;相符则正确 PZ:JB RB8,ERR ;收到数为偶数,发端为奇数则出错 ;======================================== RlGHT:MOV @R0,A ;通信正确,存放数据 INC R0 ;更改地址指针 DJNZ R7,WAIT ;数据块接收完否,未完继续 CLR PSW.5 ;通信正确,置F0为0 RET ;返回 ERROR:SETB PSW.5 ;通信出错,置F0为l RET ;返回

易探云服务器怎么过户/转让?云服务器PUSH实操步骤

易探云服务器怎么过户/转让?易探云支持云服务器PUSH功能,该功能可将云服务器过户给指定用户。可带价PUSH,收到PUSH请求的用户在接收云服务器的同时,系统会扣除接收方的款项,同时扣除相关手续费,然后将款项打到发送方的账户下。易探云“PUSH服务器”的这一功能,可以让用户将闲置云服务器转让给更多需要购买的用户!易探云服务器怎么过户/PUSH?1.PUSH双方必须为认证用户:2.买家未接收前,卖家...

PhotonVPS:美国Linux VPS半价促销2.5美元/月起,可选美国洛杉矶/达拉斯/芝加哥/阿什本等四机房

photonvps怎么样?photonvps现在针对旗下美国vps推出半价促销优惠活动,2.5美元/月起,免费10Gbps DDoS防御,Linux系统,机房可选美国洛杉矶、达拉斯、芝加哥、阿什本。以前觉得老牌商家PhotonVPS贵的朋友可以先入手一个月PhotonVPS美国Linux VPS试试了。PhotonVPS允许合法大人内容,支持支付宝、paypal和信用卡,30天退款保证。Photo...

老用户专享福利 腾讯云 免费领取轻量云2核4G服务器一年

感恩一年有你!免费领取2核4G套餐!2核4G轻量应用服务器2核 CPU 4GB内存 60G SSD云硬盘 6Mbps带宽领取地址:https://cloud.tencent.com/act/pro/lighthousethankyou活动规则活动时间2021年9月23日 ~ 2021年10月23日活动对象腾讯云官网已注册且完成实名认证的国内站用户(协作者与子用户账号除外),且符合以下活动条件:账号...

单片机与pc机通信为你推荐
rangepython 的range()函数怎么使用,为什么单独运行print(range(1,5))输出还是range(1,5),而不是[1,2,3,4]体系文件怎么建立公司体系文件?体系文件包括哪些内容?怎么入手?0x800ccc0f错误号: 0x800CCC0F 这个是虾米意思?burndownburn down是否及物?能用被动语态吗?硬盘分区格式化电脑进入系统硬盘分区及格式化,怎样操作?sg什么意思篮球中内线和外线是什么意思主板说明书主板各个接口,插口的详细说明key网key所有作品宴请网如何加入虚拟网3g模块3G模块是啥意思?
查询ip地址 花生壳免费域名申请 新网域名解析 唯品秀 justhost 10t等于多少g 40g硬盘 免空 国外免费asp空间 paypal注册教程 新世界服务器 网站在线扫描 in域名 阿里云邮箱申请 免备案cdn加速 江苏双线 ncp是什么 webmin WHMCS cloudflare 更多