单片机与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 ;返回
青云互联怎么样?青云互联是一家成立于2020年6月的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,目前提供有美国免费主机、香港主机、香港服务器、美国云服务器,让您的网站高速、稳定运行。美国cn2弹性云主机限时8折起,可选1-20个IP,仅15元/月起,附8折优惠码使用!点击进入:青云互联官方网站地址青云互联优惠码:八折优惠码:ltY8sHMh (续费同价)青云互联活动方案:美国洛杉矶...
LOCVPS怎么样?LOCVPS是一家成立于2011年的稳定老牌国人商家,目前提供中国香港、韩国、美国、日本、新加坡、德国、荷兰等区域VPS服务器,所有机房Ping延迟低,国内速度优秀,非常适合建站和远程办公,所有机房Ping延迟低,国内速度优秀,非常适合做站。XEN架构产品的特点是小带宽无限流量、不超售!KVM架构是目前比较流行的虚拟化技术,大带宽,生态发展比较全面!所有大家可以根据自己业务需求...
官方网站:点击访问星梦云活动官网活动方案:机房CPU内存硬盘带宽IP防护流量原价活动价开通方式成都电信优化线路4vCPU4G40G+50G10Mbps1个100G不限流量210元/月 99元/月点击自助购买成都电信优化线路8vCPU8G40G+100G15Mbps1个100G不限流量370元/月 160元/月点击自助购买成都电信优化线路16vCPU16G40G+100G20Mb...
单片机与pc机通信为你推荐
rangepython 的range()函数怎么使用,为什么单独运行print(range(1,5))输出还是range(1,5),而不是[1,2,3,4]优翼奇瑞优翼车子拉缸气缸是维修还是换。换的话大概多少钱?网页图标网站ICO图标若想全部添加到网页中,有什么简便方法吗?短信应用安卓短信软件??支付宝账单查询支付宝每个月的账单怎么查看摇一摇周边微信摇一摇周边红包设置摇一摇周边摇一摇周边怎么打开sg什么意思sg,gm到底是什麽意思?暂停线程Java里如何暂停一个线程,达到一定条件后又唤醒线程?海淀区公司注册在北京如何注册公司
北京服务器租用 工信部域名备案 怎么申请域名 华为云服务 flashfxp怎么用 t牌 siteground 国内永久免费云服务器 香港托管 免备案cdn 美国主机代购 unsplash 元旦促销 169邮箱 流量计费 cn3 河南移动梦网 日本代理ip photobucket 畅行云 更多