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 ;程序完

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

    关注

    5998

    文章

    43963

    浏览量

    620691
  • 串口通信
    +关注

    关注

    32

    文章

    1577

    浏览量

    54858
  • 波特率
    +关注

    关注

    2

    文章

    280

    浏览量

    33758
收藏 人收藏

    评论

    相关推荐

    单片机pc串口通信程序及电路图

    函数名称: com_interrup()串口接收中断处理函数。函数功能: 接收包括起始位'S'在内的十位数据到数据缓冲区。
    的头像 发表于 06-01 09:21 1.9w次阅读
    <b class='flag-5'>单片机</b>与<b class='flag-5'>pc</b>串口<b class='flag-5'>通信</b><b class='flag-5'>程序</b>及电路图

    用VC实现PC单片机通信

    用VC实现PC单片机通信介绍了Windows98环境下利用Visual C++ 6.0的MSComm控件实现微机与微机及微机与单片机
    发表于 12-05 09:15

    单片机PC的串行通信

    单片机PC的串行通信
    发表于 05-19 10:11

    请教:51单片机PC串行通信

    这是我画的51单片机PC串行通信的原理图,我想实现按下开关S2单片机PC发送
    发表于 02-09 15:37

    想用LabVIEW实现51单片机PC通信

    我想做51单片机PC的数据通信,在网上下载了PDF的文档,照着写了
    发表于 07-26 20:48

    我写的实现单片机PC通讯的程序 串口通信

    下面是我写的实现多个下位单片机)与上位
    发表于 10-13 16:57

    请教串口通信实现PC单片机通信的问题

    刚接触单片机,想实现avr单片机PC间的通信,用的是串口通信,串口调试助手也安了,限于没人带我,不知道应该出什么结果才算是
    发表于 12-28 15:28

    PC 单片机通信(RS232 协议) 精选资料推荐

    协议)1、实验任务2、硬件电路图3、实验原理3.1、 ASCII常用代码表4、C语言源程序4.1、这一个例子是以扫描的方式编写的,还可以以中断的方式编写4.2、实验任务-PC控制单片机
    发表于 07-20 06:30

    如何去实现单片机PC之间的通信

    单片机PC通信、实验目的二、实验内容三、实验步骤四、C代码如下五、实验结果六、实验体会、实验目的掌握
    发表于 12-13 07:34

    单片机PC串口通信编程

    单片机PC串口通信编程实验目的利用PROTUES仿真软件、串口调试助手、虚拟串口,搭建单片机PC
    发表于 02-16 07:00

    PC单片机通信

    PC 单片机通信(RS232 协议)
    发表于 10-07 06:22

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

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

    51单片机PC串口通信程序及硬件电路图

    发表于 01-04 16:35 46次下载

    51单片机PC串口通信程序

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

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

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