0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一个单片机与PC机通信的程序

Wildesbeast 来源:单片机教程网 作者:单片机教程网 2020-09-06 11:26 次阅读

下面是一个单片机与PC机通信的程序,pc机程序用c语言来编写

1. PC机编程

PC采用Toubr C 进行编写。程序如下:

#include《stdio.h》

#define port 0x3f8 /*利用串口1进行通信*/

int ch[15];

main ()

{

int a;

int i,j;

int b[6]={88,15,38,26,20,0};

char c;

clrscr();

outportb(port+3,0x80); /*准备设置波特率*/

outportb(port,0x0C); /*波特率设置为9 600 bps*/

outportb(port+1,0x00);

outportb(port+3,0x03); /*8位数据位,奇偶检验,1位停止位*/

outportb(port+1,0x00); /*关中断*/

inportb(port+5); /*读一次线路状态寄存器,使其复位*/

{

printf(“ send data or receive data: (s or r?) ”);

c=getchar();

switch(c)

{

case ’s’:

case ’S’:

{

while(!(inportb(port+5)&0x20)); /*发送保持器满则等待*/

outportb(port,0x01); /*否则发送数据01通知单片机准备接收*/

for(i=0;i《6;i++) /*共发送6个数据*/

{

a=b[i];

while(!(inportb(port+5)&0x20))

delay(100); /*发送保持器满,等待*/

outportb(port,a); /*发送a*/

printf(“%d ”,a); /*显示a*/

while(!(inport(port+5)&1)); /*接收单片机送回的数据*/

ch[i]=inport(port); /*保存*/

}

delay(10);

for(j=0;j《8;j++) /*显示接收的回送数据*/

printf(“ %d ”,ch[j]);

getch();

break;

}

case’r’: /*接收数据*/

case’R’:

{

while(!(inportb(port+5)&0x20));

outportb(port,0x02); /*发送数据02通知单片机发送数据*/

for(j=0;j《9;j++) /*共接收9个数据*/

{

while(!(inportb(port+5)&1));

ch[j]=inportb(port);

}

for(j=0;j《9;j++)

printf(“ %d ”,ch[j]);

getch();

break;

}

}

}

}

2. 单片机与PC机通信之单片机程序

LIST P=16F876

#INCLUDE P16F876.INC

CBLOCK 0X24

COUNT

TEMP

ENDC

ORG 0X0000

NOP

START GOTO MAIN

ORG 0X020

MAIN MOVLW 0X30 ;将RAM单元初始化

MOVWF FSR

BCF STATUS,RP0

MOVLW 0X22

MOVWF COUNT

INTRAM MOVF COUNT,0

MOVWF INDF

INCF COUNT,1

INCF FSR,1

BTFSS FSR,7

GOTO INTRAM

BANKSEL TXSTA ;波特率设置为9 600 bps

MOVLW 0X19

MOVWF SPBRG ;异步高速方式

MOVLW 0X04

MOVWF TXSTA

BCF STATUS,RP0

MOVLW 0X80 ;串行口使能

MOVWF RCSTA

MOVLW 0X30

MOVWF FSR

BSF RCSTA,CREN ;接收允许

BSF STATUS,RP0

BSF TXSTA,TXEN ;发送允许

BCF STATUS,RP0

WAIT BTFSS PIR1,RCIF ;接收PC机命令

GOTO WAIT

MOVF RCREG,0

MOVWF TEMP

MOVWF INDF

INCF FSR

DECFSZ TEMP ;接收到的数据为1,则接收

GOTO TXW ;否则发送数据

MOVLW 0X06

MOVWF TEMP

WAIT1 BTFSS PIR1,RCIF ;接收一个数据

GOTO WAIT1

MOVF RCREG,0

MOVWF COUNT

MOVWF TXREG

LOOPTX BTFSS PIR1,TXIF ;将接收到的数据送回PC机

GOTO LOOPTX

MOVF COUNT,0

MOVWF INDF

INCF FSR

DECFSZ TEMP

GOTO WAIT1

GOTO OVER ;处理完毕

TXW MOVLW 0X09 ;向PC机发送9个数据

MOVWF TEMP

MOVLW 0X30

MOVWF FSR

TXW0 MOVF INDF,0

MOVWF TXREG

INCF FSR

TXW1 BTFSS PIR1,TXIF

GOTO TXW1

DECFSZ TEMP

GOTO TXW0

OVER BCF RCSTA,CREN ;通信任务完成,关接受和发送允许

BSF STATUS,RP0

BCF TXSTA,TXEN

BCF STATUS,RP0

CALL LED ;调用显示子程序,将发送(或接收)的数据显示出来

END ;程序完

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6035

    文章

    44553

    浏览量

    634734
  • 串口通信
    +关注

    关注

    34

    文章

    1624

    浏览量

    55510
  • 波特率
    +关注

    关注

    2

    文章

    307

    浏览量

    34116
收藏 人收藏

    评论

    相关推荐

    pc计算机与单片机串口通信源程序

    pc计算机与单片机串口通信源程序 下面是单片机PC
    发表于 03-06 14:51 5748次阅读

    PC单片机通信应用

    本文是关于计算机与单片机通信实验的应用。主要包括实验原理阐述、硬件电路图、源程序等 目录: 1、单片机串口通信的应用 2、
    发表于 08-20 10:33 7212次阅读
    <b class='flag-5'>PC</b><b class='flag-5'>机</b>与<b class='flag-5'>单片机</b><b class='flag-5'>通信</b>应用

    51单片机PC串口通信程序

    51单片机PC串口通信程序
    发表于 12-24 11:30 40次下载

    PC单片机串口通信程序设计

    【LabVIEW从入门到精通】5.2.4.2 PC单片机串口通信程序设计
    发表于 01-08 15:47 0次下载

    PC单片机串口通信程序设计.zip

    【LabVIEW从入门到精通】5.2.4.4 PC单片机串口通信程序设计
    发表于 01-08 15:48 0次下载

    PC单片机串口通信_labview程序案例

    程序案例 PC单片机串口通信,喜欢的朋友可以下载来学习。
    发表于 01-12 15:38 111次下载

    PC单片机串口通信【多种任务程序集合】_程序案例

    程序案例 PC单片机串口通信【多种任务程序集合】
    发表于 01-13 16:22 33次下载

    通信单片机pc

    通信单片机pc
    发表于 11-04 11:38 7次下载

    单片机PC串口通信程序及电路图详解

    单片机pc串口通信程序及电路图
    的头像 发表于 10-14 10:28 1.6w次阅读
    <b class='flag-5'>单片机</b>与<b class='flag-5'>PC</b>串口<b class='flag-5'>通信</b>的<b class='flag-5'>程序</b>及电路图详解

    PC单片机如何通信程序和IC卡读写应用程序免费下载

    本文档的主要内容详细介绍的是PC单片机如何通信程序和IC卡读写应用程序免费下载。
    发表于 10-25 08:00 9次下载

    如何实现ATMEGA16单片机PC通信

    ATMEGA16与PC通信实验1//PC发送一个字符给
    发表于 12-14 15:14 1479次阅读

    单片机通信与控制应用编程实例的实例源程序免费下载

    设计_单片机单片机串口通信,使用查询方式C51程序设计_
    发表于 09-11 08:00 47次下载
    <b class='flag-5'>单片机</b><b class='flag-5'>通信</b>与控制应用编程实例的实例源<b class='flag-5'>程序</b>免费下载

    单片机实现多通信的资料和程序

    单片机通信过程中,PC将指令打包后发给智能接口单元(以下简称主单片机)。主
    的头像 发表于 09-06 11:27 7771次阅读

    使用Labview实现PC通信单片机测控源程序的合集免费下载

    本文档的主要内容详细介绍的是使用Labview实现PC通信单片机测控源程序的合集免费下载包括了:网络通信
    发表于 11-23 08:00 24次下载

    实现PC单片机双向通信的C语言程序设计实例免费下载

    本文档的主要内容详细介绍的是使用单片机实现PC单片机双向通信的C语言程序设计实例免费下载。
    发表于 03-30 15:52 27次下载