vb与51单片机通信,下位机的问题,高手指点啊
你用是汇编语言,估计现在看懂汇编的人不多,虽然我以前写过汇编程序,现在也不想看了,对于你的问题描述,我想问你两个问题:1、单片机能接收到单字节(如0AAH)吗?2、中断等参数设置是否正确。
如果单字节能接收,说明你的设计没有问题,一定是中断处理除了问题。
给一段我的中断处理程序,用c语音编写的。
//串口接收中断函数 void serial () interrupt 4 using 3 {EA=0;if(RI){unsigned char ch;RI = 0;ch=SBUF;dat[num++]=ch;}EA=1;}其中dat[num]就是想获取的十六进制数据VB编写的程序,我也做过,希望对你有帮助OK
8位的51单片机上下位机串口通信 单片机用SBUF收发的时候 上位机设...
MAX232与51单片机之间的通信连接很简单,因为所谓的MAX232通信标准,就是对插件样式、信号名称和意义以及所谓的驱动器/接收器的电气模式这种硬件作出规定。
一般的都是9针的接口,其中包括CD接口:数据通道接收载波的检测;RD接口:接收数据;SD接口:发送数据;ER接口:数据终端就绪;SG接口:信号用接地;DR接口:数据集就绪;RS接口:请求发送;CS接口:允许发送;CI接口:被呼表示。
用以上接口进行数据通信,还有对电平的要求。
所以与51单片机进行通信连接的方式很简单,首先要解决的是电平标准,51的I/O口最大输出5V电压,而RS-232要求电压在±10V,为达到电平匹配,需用到MAX232CPF电平转换芯片,将0~5V电平转换为±10V电平,从而实现电平匹配;然后,数据接口只用到了数据发送与接收2个端口,还有数据的请求发送与允许发送,共4个端口,MAX232CPF还有其他一些外围电路接口,但比较简单,都是些电容接口,从而实现单片机与RS232接口的通信。
想用vs做一个界面,给下位机51单片机发送指令,
展开全部 单片机和微机通信的电气标准要一致,微机串口一般是RS232电气标准,所以要加电平转换芯片,大多用MAX232,一般单片机实验板上都提供这样的标准串口。
要分别编写上位机和下位机软件程序,单片机程序参照例程、教科书进行编写;上位机微机可采用VB,组态软件,Labview等软件编写,一般若是简单的通信,上位机程序编写很简单,例如VB中学会使用mscomm控件,有VB最基础知识的一天就能学会。
大可以没有单片机,没有MAX232,没有串行接口这些硬件就可以实现学习并掌握单片机与微机之间的串口通信。
proteus可以仿真单片机,也是主流软件。
如今的笔记本电脑几乎都没有保留串口,而用USB接口取而代之,不过没关系,有了虚拟串口和串口调试助手,这些都解决了。
你可以搜索一下虚拟串口,真的很不错的。
...
51单片机上位机发送一数据,下位机返回一组数据,如何求接收到的下...
方法1:如果单片机发送之前就知道数组的长度,你可以让单片机返回数据的第一个字节设置成要发送的数据长度,然后再发送数据,这样上位机就知道要接收多少个数据了。
方法2:单片机发送完一次数组之后一段时间内不要再发送数据。
上位机循环接收数据,如果超时则认为接收结束,得到长度。
方法3:更改数据类型,留出一个数作为结束标志字符。
推荐方法1。
上、下位机通信控制
ORG 0000H ;RESETLJMP STARTORG 0023HLJMP SBR1 ;串口1中断入口ORG 0100HSTART:MOV TMOD,#20H ; 定时器1工作于8位自动重载模式,用于产生波特率MOV TH1,#0FDH MOV TL1,#0FDH ; 波特率9600 MOV SCON,#50H ; 设定串行口工作方式1,接收使能ANL PCON,#00H ; 波特率不倍增SETB TR1CLR P1.5CLR P1.6CLR P1.7MOV SP,#60H ;定义堆栈MOV A, #88HMOV SBUF, ASETB EASETB ES ;串口中断允许控制位SJMP $;==========================================================================;==========================中断服务程序===========================;==========================================================================SBR1:PUSH PSWPUSH ACCCLR EA ;关中断CLR RI ;清除接收中断请求标志位MOV A, #99HMOV SBUF, AWAIT41:JNB TI,WAIT41CLR TIMOV A, SBUF ;判断是否是呼叫信号“0AH”CJNE A, #0AH,CALL_ERR ;================================RECALL:MOV A, #01HMOV SBUF, AWAIT4:JNB TI,WAIT4CLR TIMOV A, #01HMOV SBUF, AWAIT4_1:JNB TI,WAIT4_1CLR TILJMP RETURN;============================CALL_ERR:MOV A, #02HMOV SBUF, AWAIT_4:JNB TI,WAIT_4CLR TIMOV A, #02HMOV SBUF, AWAIT_4_1:JNB TI,WAIT_4_1CLR TI;===============中断返回程序======================RETURN: SETB EA ;开中断POP ACCPOP PSWRETI ;返回 使用串口调试小工具就可以直接调试了,RS232或者RS232转USB的线一定要注意是好的!软件的端口选择和波特率的设置要和单片机一致,PC发送0A,单片机则回答99 01 01,如果PC发送不是0A,单片机则回答99 02 02。
还有要注意发送软件要设置发送的格式要十六进制的!
PC机在MCGS组态软件下,通过设计驱动程序实现计算机与PC机的...
DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。
本文结合实际使用经验,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并给出了软件流程图。
该系统由上位机和下位机两大部分组成。
下位机实现温度的检测并提供标准RS232通信接口,芯片使用了ATMEL公司的AT89C51单片机和DALLAS公司的DS18B20数字温度传感器。
上位机部分使用了通用PC。
该系统可应用于仓库测温、楼宇空调控制和生产过程监控等领域。
关键字:温度测量;单总线;数字温度传感器;单片机
转载请注明出处51数据库 » 51单片机下位机软件