微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > PC机与PIC单片机串行通讯的实现

PC机与PIC单片机串行通讯的实现

时间:11-05 来源:互联网 点击:
3 PIC"C711单片机串行通讯的实现

本文以单片机对温度传感器DSl820进行数据采集为例,实现单片机与PC机的通讯。限于篇幅,给出传送一个DSl820信号到串口的主要部分程序:

A2 EQU 2 //RA2接收数据端
A1 EQU 1 //RAl发送数据
RCVREG EQU 26
R-COUNT EQU 27 //接收数据计数器
T-COUNT EQU 28 //发送数据计数器
MSB EQU 7
NUM EQU 6B //设置下位机序号67
NUM-ADDR EQU 2A //存储本机号码的地址
SEN-CODE EQU 39 //传感器信号存放地址
MAIN CALL SUB-INIT //初始化程序
CALL SUB-REC //调用接收子程序
CALL SUB_ COMP //对接收的数据进行处理
CALL
SUB_TRANS //发送数据子程序
GOTO
EXIT
SUB_INITCLRF RA
BCF STATUS,RP0
MOVLW B'00001101' //初始化MOVWF
TRISA
MOVLW NUM
MOVWF NUM
RETURN
SUB-REC
RCVR BTFSCRA,A2 //检测起始位
GOTO RCVR // 未检测到
MOVL W2 //接收的数据位数
MOVWF R_COUN
R_NEXTCALL DELAY //调用延时程序
BCF STATUS,C
RRF RCVREG
BTFSC RA,A2
BSF RCVREG,MSB
CALL DELAY
DECFSZ R_COUNT
GOTO R_NEXT
RETURN
SUB_COMPMOVLW 6A
MOVWF CONT
MOVFCONT,W
XORWF NUM_ADDR,1 MOVLW
1 ;
ADDWF NUM_ADDR,1 DECFSZ
NUM-ADDR,1
GOTO EXIT
NOP
OVERNOP
RETURN
SUB_TRANSMOVLW 3 //发送的数据位数
MOVWF T_ COUNT
MOVLW 2A
MOVWF SEN_CODE
BCF RA,A1 //设置发送起始位0
T_NEXTCALL DELAY
RRF SEN_CODE
BTFSC STATUS,C
BSF RA,A1 //发送数据位"1"
BTFSS STATUS,C
BCF RA,A1 //发送数据位"0"
DECFS2T_COUNT
GOTO T_NEXT
CALL DELAY
BSF RA,A1 //发送停止位
RETURN
EXITNOP
END

4 结 语

本文所论述的通讯方法曾在对气体传感的在线检测中应用,由于DSl820为数字传感器,因此利用单片机可直接对 DSl820操作,将温度值存储在单片机通用寄存器中,通过VC调用WinAPI函数对串口读写,可将温度值及气体传感器信号采集到PC机界面,从而实现对气体传感器在不同温度值下的在线检测。实践证明,利用VC开发通讯系统,从底层到上层直接面向用户,具有很强的调试功能,采用文中所述的方式构建的通讯在线检测系统工作稳定,数据传输可靠。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top