精华内容
下载资源
问答
  • 《单片机》实验——实验6 MCS-51内部串行口实验
    千次阅读 多人点赞
    2021-03-15 20:04:36

    《单片机》实验——实验6 MCS-51内部串行口实验

    实验一至实验七配套源代码、电路图、hex文件、实验报告,请点击此处

    一、实验目的

    1.理解串行通信的特点及分类
    2.掌握单片机内部串口的3种工作方式的特点及应用
    3.掌握双机通信的编程以及单工传输的特点
    4.理解全双工通信的特点
    5.理解主从式多机通信的工作过程,掌握串口的工作方式2和3的特点

    二、知识要点

    (1)8051内部有一个可编程的全双工的串行接口,可同时进行数据的串行发送和接收;串口有4种工作方式,但只有方式1,2,3能够实现串行异步通信,其不同在于波特率及数据帧格式。
    (2)与串口相关的控制字主要有SCON,PCON。
    (3)串口的工作方式2和3可以实现主从式多机通信,即一台主机,多台从机,从机接受主机的传输控制。

    三、实验内容

    (1)利用8051内部串口实现自发自收的数据通信,波特率及帧格式自定,要求所传输的数据能够控制LED的亮灭。

    #include<reg51.h>
    void main(){
    	int led[]={1,2,4,8,16,32,64,128};
    	int i,j;
    
    	TMOD=0X20;
    	TH1=0XF8;
    	TL1=0XF8;
    	TR1=1;
    	SCON=0X50;
    	PCON=0;
    	
    	while(1){
    		for(i=0;i<8;i++){
    			RI=0;
    			SBUF=~led[i];
    			while(TI==0);
    			TI=0;
    			while(RI==0);
    			P1=SBUF;
    			for(j=0;j<20000;j++);
    		}
    	}
    }
    

    (2)利用8051内部串口实现双机通信,波特率及帧格式自定。要求发送方采用查询控制方式,接收方采用中断控制方式。

    a.发送端:

    #include<reg51.h>
    void delay(){
    	int j;
    	for(j=0;j<20000;j++);
    }
    
    void main(){
    	int led[]={1,4,16,64,2,8,32,128};
    	TMOD=0x20;
    	TH1=0xf8;
    	TL1=0xf8;
    	SCON=0X50;
    	PCON=0;
    	TR1=1;
    	while(1){
    		int i;
    		for(i=0;i<8;i++){
    			SBUF=~led[i];
    			while(TI==0);
    			TI=0;
    			delay();
    		}
    	}
    }
    

    b.接收端:

    #include<reg51.h>
    
    void delay(){
    	unsigned int j;
    	for(j=0;j<20000;j++);
    	
    }
    
    void main(){
    	TMOD=0x20;
    	TH1=TL1=0xf8;
    	SCON=0X50;
    	PCON=0X00;
    	TR1=1;
    	EA=1;
    	ES=1;
    	while(1){
    			while(RI==0);
    			delay();
    	}
    }
    
    void ppp() interrupt 4{	
    	P1=SBUF;
    	RI=0;
    	
    }
    

    以上两题电路图相同
    在这里插入图片描述

    更多相关内容
  • 理解51单片机串行口(UART)的结构、PC机串行口通讯的基本要求、串行通讯的原理和数据交换过程;   2.掌握单片机与单片机间以及单片机与PC机间进行串行通讯的编程方法。   二、实验设备 1....
  • 绍:串行口是单片机与外界进行信息交换的工具。8051单片机的通信方式有两种:并行通信:数据的各位同时发送或接收。 串行通信:数据一位一位次序发送或接收。
  • 利用单片机串行口,实现两个实验台之间的串行通讯。其中一个实验台作为发送方,另一侧为接收方。发送方读入按键值,并发送给接收方,接收方收到数据后在LED上显示。
  • 利用8031单片机串行口,实现与PC机通讯。 本实验实现以下功能,将从实验机键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到实验机的数码管上。 二.实验目的 1.掌握串行口工作方式的...

    一.实验要求

    利用8031单片机串行口,实现与PC机通讯。

    本实验实现以下功能,将从实验机键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到实验机的数码管上。

    二.实验目的

    1.掌握串行口工作方式的程序设计,掌握单片机通讯的编制。

    2.了解实现串行通讯的硬环境,数据格式的协议,数据交换的协议。

    3.了解PC机通讯的基本要求。

    三.实验电路及连线

    实验电路已在实验机监控电路上构成。

    CS8279接8700H。 模块中的十个短路套都套在8279侧。

    8279状态口地址为8701H;8279数据口地址为8700H;

    四.实验说明

    1.当用GR命令执行程序时,实验机内部会将8031串行口电路切换与PC机通讯,无须连线。

    2.程序执行前,进入LCA51,加载程序后,才进入调试菜单工具中的对话窗口,然后执行GR0,就可实行单片机串行口与PC机通信实验。

    五.实验程序框图

    .实验程序: 
    Z8279 EQU 8701H ;8279 状态/命令口地址
    D8279 EQU 8700H ;8279 数据口地址
    LEDMOD EQU 00H ;左边输入 八位字符显示
                   ;外部译码键扫描方式,双键互锁
    LEDFEQ EQU 2FH ;扫描速率
    LEDCLS EQU 0C1H ;清除显示 RAM
    LEDWR0 EQU 80H ;设定的将要写入的显示RAM地址
    READKB EQU 40H ;读 FIFO RAM 地址 0 的命令字
    
    ORG 0000H
    AJMP START
    ORG 0040H
    START:
    MOV SP,#60H
    LCALL INIT8279 ;初始化8279
    MOV SCON,#50H ;串口 方式 1
    MOV TMOD,#20H ;T1 方式 1
    MOV TL1,#0FDH ;波特率 9600 的常数
    MOV TH1,#0FDH
    SETB TR1 ;开中断
    SETB ET1
    SETB EA
    WAIT:
    JBC RI,DIS_REC ;是否接收到数据
    LCALL GETKEY ;读键盘
    CJNE A,#0FFH,WAIT ;是否有键输入
    MOV SBUF,B ;串口输出键盘输入的值
    NOP
    SS: JBC TI,WAIT ;是否发送完毕
    SJMP SS
    
    DIS_REC:
    MOV A,SBUF ;读串口接收到的数据
    CLR C
    SUBB A,#30H ;以下判定输入是否在0-F
    JC ERROR
    SUBB A,#0AH
    JNC DIS_REC1
    ADD A,#0AH
    SJMP DIS_REC2
    DIS_REC1:
    SUBB A,#7H
    JC ERROR
    SUBB A,#6H
    JNC ERROR
    ADD A,#10H
    DIS_REC2:
    MOV R4,#00H
    MOV R5,A
    LCALL DISLED ;显示输入的数字(0-F)
    ERROR: AJMP WAIT
    
    INIT8279: ;8279初始化子程序
    PUSH DPH ;保存现场
    PUSH DPL
    PUSH ACC
    LCALL DELAY ;延时
    MOV DPTR ,#Z8279
    MOV A,#LEDMOD ;8279工作方式
    MOVX @DPTR,A
    MOV A,#LEDFEQ ;置键盘扫描速率
    MOVX @DPTR,A
    MOV A,#LEDCLS ;清除 LED 显示
    MOVX @DPTR,A
    POP ACC ;恢复现场
    POP DPL
    POP DPH
    RET
                   ;读取键盘子程序
                   ;输入:; 输出: B: 读到的键码 A: 按键的标志
    GETKEY: PUSH DPH ;保存现场
    PUSH DPL
    PUSH PSW
    MOV DPTR,#Z8279
    MOVX A,@DPTR ;8279状态
    ANL A,#07H ;屏蔽D7-D3
    JNZ GETVAL ;判断是否有键输入
    MOV A,#0H ;置标志(无键输入)
    SJMP NKBHIT
    GETVAL: MOV A,#READKB ;读 FIFO RAM 命令
    MOVX @DPTR,A
    MOV DPTR,#D8279
    MOVX A,@DPTR ;读键
    ANL A,#0FH ;屏蔽 SHIFT 和 CTRL 键
    MOV DPTR,#KEYCODE ;键码表起始地址
    MOVC A,@A+DPTR ;查表
    MOV B,A ;置返回键值
    MOV A,#0FFH ;置标志(有键输入)
    NKBHIT: POP PSW ;恢复现场
    POP DPL
    POP DPH
    RET
                  ;显示字符子程序
                  ;输入: R4,位置 R5,值
    DISLED: PUSH DPH ;保存现场
    PUSH DPL
    PUSH ACC
    MOV A,#LEDWR0 ;置显示起始地址
    ADD A,R4 ;加位置偏移量
    MOV DPTR,#Z8279
    MOVX @DPTR,A ;设定显示位置
    MOV DPTR,#LEDSEG ;置显示常数表起始位置
    MOV A,R5
    MOVC A,@A+DPTR ;查表
    MOV DPTR,#D8279
    MOVX @DPTR,A ;显示数据
    POP ACC ;恢复现场
    POP DPL
    POP DPH
    RET
    
    DELAY: ;延时子程序
    PUSH 0 ;保存现场
    PUSH 1
    MOV 0,#0H
    DELAY1: MOV 1,#0H
    DJNZ 1,$
    DJNZ 0,DELAY1
    POP 1 ;恢复现场
    POP 0
    RET
                     ;LED显示常数表
    LEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7'
    DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'
    DB 0BFH,086H,0DBH,0CFH,0E6H,0EDH,0FDH,087H ;'0.,1.,2.,3.,4.,5.,6.,7.'
    DB 0FFH,0EFH,0F7H,0FCH,0B9H,0DEH,0F9H,0F1H ;'8.,9.,A.,B.,C.,D.,E.,F.'
    DB 6DH,02H,08H,00H,59H,0FH,76H ;'U,-,_, ,I,O,P, '
                    ;键盘键码表
    KEYCODE:DB 30H,31H,32H,33H,34H,35H,36H,37H ;'1,2,Q,W,A,S,+,Z'
    DB 38H,39H,41H,42H,43H,44H,45H,46H ;'3,4,E,R,D,F,X,C'
    DB 47H,48H,49H,4AH,4BH,4CH,4DH,4EH ;'5,6,T,Y,G,H,V,B'
    END
    

    本素材来自网路,如有侵权,请联系删除。
    获取更多资源,请关注公众号“伊斯电子编程”

    展开全文
  • 单片机--串行口实验

    千次阅读 2019-11-30 16:10:40
    使用AT89S52单片机的串行口通过RS232通信接口与PC机进行通信,让单片机把接收到的每一帧数据(即PC机发送给单片机的每一帧数据)直接再发送给PC机。(串行口波特率设定为9600Bit/s,使用方式1)注意:使用串口调试...

    实验目的和任务

    目的:利用“模块化单片机教学实验平台”,加深对单片机的串行口的理解。

    任务:利用单片机的串行口完成程序设计。

    实验内容

    使用AT89S52单片机的串行口通过RS232通信接口与PC机进行通信,让单片机把接收到的每一帧数据(即PC机发送给单片机的每一帧数据)直接再发送给PC机。(串行口波特率设定为9600Bit/s,使用方式1)注意:使用串口调试助手(Baud 9600、数据位8、停止位1、效验位无)作为上位机来向单片机发送数据和接收单片机串口所发的数据,观察串口调试助手接收窗口。

    实验过程和结果

    电路图

    硬件连线:

    母版

    CPU

    J57/J59RXD

    P2P3.0

    J57/J59TXD

    P2P3.1

    用232串口线连接计算机的USB口和MAIN_BOARD的RS2/RS1串口。

    注意:实验箱的AT89S52单片机的晶振频率为11.0592MHz!

    参考流程图:

     

    实验结果图

    1. 实验心得

    实验过程让我熟悉了中断程序和串口的编写步骤和单片机执行串口传输的工作流程。实验中由于不熟悉中端口的相关寄存器分布和功能,导致错误设置了特殊功能寄存器,程序不能正常执行,后来在老师的指导下修改了程序和中断入口地址,程序能正常执行并返回输入内容。

    1. 附录(代码)

    (1)基本实验

    ORG 0000H

    LJMP MAIN               

    ORG 0023H

    LJMP U

    MAIN: 

    MOV SCON,#01010000B

    SETB ES

    SETB EA

    MOV TMOD,#00100000B

    MOV TH1,#0FDH

    SETB TR1

    LJMP $

    U:

    CLR RI

    MOV A,SBUF

    MOV SBUF,A

    JNB RI,$

    CLR RI

    RETI

    END

    (2)扩展实验

    ORG 0000H

    LJMP MAIN               

    ORG 0023H

    LJMP U

    MAIN: 

    MOV SCON,#01010000B

    SETB ES

    SETB EA

    MOV TMOD,#00100000B

    MOV TH1,#0FDH

    SETB TR1

    SETB T1      ;手动执行中断

    LJMP $

    U:

    CLR RI

    MOV SBUF,#68H

    MOV SBUF,#65H

    MOV SBUF,#6CH

    MOV SBUF,#6CH

    MOV SBUF,#6FH

    MOV SBUF,#26H

    MOV SBUF,#20H

    MOV SBUF,#77H

    MOV SBUF,#6FH

    MOV SBUF,#72H

    MOV SBUF,#6CH

    MOV SBUF,#64H

    MOV SBUF,#0DH

    MOV SBUF,#0AH

    MOV SBUF,#0AH

    JNB RI,$

    CLR RI

    LJMP U      ;发送完毕后回到中断程序头部,循环发送hello world

    RETI

    END

    展开全文
  • 51单片机学习 串行口通信实验

    千次阅读 2021-01-19 19:27:20
    51单片机学习 串行口通信实验

    一、实验目的

    掌握串行口工作方式的程序设计,掌握单片机通信程序设计方法。

    二、原理

    发送指令:MOV SBUF,A
    接收指令:MOV A,SBUF

    1、串行口控制寄存器 SCON (地址:98H)

    • TI:发送中断标志位。发送前必须要用软件清零。
    • RI:接收中断标志位。接收前必须要用软件清零。
    • SM2:多机通信控制位。

    2、电源控制

    展开全文
  • 8251是个串行口通讯芯片,8086只有数据和地址总线接口,要做串口通讯就要外接8251。 用8251A为8086CPU与CRT终端设计一个串行通信接口。 8251A通过RS232实现两台8086微机之间的串行通信,双机通信电路如图9.6所示。试...
  • 贵州大学实验报告 学院:专业:班级:姓名实验时间学号 学院: 专业: 班级: 姓名 实验时间 学号 实验组 05.03 指导教师 余佩嘉 成绩 实验项目名称ARM的串行口实验 实验项目名称 实 验 目 的掌握ARM勺串行口工作原理 实 ...
  • 【课题7】利用8251实现串行口自发自收,并显示。 二、课程设计任务与目标 设计要求: 1. 按“A”键:清除数码管显示,并通过小键盘输入四位16进制数,同时显示在右侧四个数码管上。 2. 按“B”键:执行串行发送,...
  • 将AF通过单片机的串行口发送数据出去 sjmp writ asctab:db '1','2','3','4','5','6','7','8','9' db '0','*','#','a','b','c','d' ;10毫秒延时子程序 DELAY10:MOV R4,#20 D2:MOV R5,#248 DJNZ R5,$ DJNZ R4,D2 RET ...
  • (2)已知单片机的 P0 接了 8 个发光二极管 LED0~LED7,现要求通过单片机的 串口收发上位机的命令,实现对这 8 个发光二极管的控制。PC 端采用串口调试程序进 行数据发送(如使用 stc-isp 烧写软件向单片机发送...
  • 串行通信原理及实验仿真

    千次阅读 2020-08-31 15:59:57
    串行通信是将数据分成一位一位的形式在一条传输线上逐个传输 优点:通信线路简单,占用引脚资源少 缺点:传输速度慢 2. 串行通信的通信方式: 同步通信和异步通信 同步通信:带有时钟同步信号的数据传输;发送方和...
  • 51单片机Proteus仿真+Keil工程-实验5-单片机串行口中断实验:放置两个单片机,通过串行口线的互连,应用方式1和方式3,同时设计发送和接受程序,完成两个方式的应用,将发送和接收的内容在虚拟串口中显示。
  • 微机原理汇编实验——PC机串行通讯 一、实验目的 1.进一步了解串行通信的基本原理。 2.掌握串行接口芯片8250的工作原理和编程...3.熟悉PC机串行口的基本连接方法。 含实验内容、电路、汇编程序、效果分析、实验总结
  • 通常用于连接鼠标(串口)及通讯设备(如连接外置式MODEM进行数据通讯)等。但目前主流的主板一般都只带1个串口,甚至不带,慢慢会被USB 取代。以前用于连接老式的COM鼠标键盘,还有链接路由器,外置调制解调器等。...
  • 数据格式指的是串行通信中怎样标志一组数据的开头和结束,这组数据有多少个有效数据位,以及是否带有校验码等等。 例如UART串行通信双方规定:形成的数据格式如图: 插图 ! ! ! 异步通信还必须有...
  • 串行口方式0的数据传送可采用中断方式,也可采用查询方式,无论哪种方式,都要借助于TI或RI标志。串行发送时,能靠TI置位(发完一帧数据后)引起中断申请,在中断服务程序中发送下一帧数据,或者通过查询TI的状态,...
  •        声明:本篇文章只是个人知识盲区、...一、并行与串行基本通信方式:       随着单片机系统的广泛应用和计算机网络技术的普及,单片机...
  • 20.串行口通信原理及操作流程

    千次阅读 2020-09-20 20:53:57
    第六章:串行口通信原理及操作流程 6.1并行与串行基本通行方式 单片机通信是指单片机与计算机或单片机与单片机之间的信息交换,后者的通信通常用的较多。 通信有并行和串行龄种方式,在单片机系统以及现代单片机测控...
  • 单片机串行通信

    千次阅读 2020-08-07 12:11:42
    文章目录串行通信串行口控制器内部结构串行口控制寄存器工作方式0工作方式 1工作方式2工作方式 3 串行通信 计算机与外部设备的通信方式有两种,一是并通信、二是串行通信。 串行通信有:单工、半双工(常用)、全...
  • 单片机(AT89C51)的串行通信实验

    万次阅读 多人点赞 2020-04-28 13:31:20
    串口通信的重要性和基础就...这一次的重点是讲解几个串口的实验来加深自己对串口通信的理解。 实验一(将一个简单的字符串输出到单片机中): 实验目的: 实现输出“nihao” 用VIRTUAL TERMINAL显示出来 ...
  • 51单片机的串行口是一个可编程全双工的通信接口,具有UART(通用异步收发器)的全部功能,能同时进行数据的发送和接收,也可以作为同步移位寄存器使用。51单片机的串行口主要由两个独立的串行数据缓冲寄存器SBUF(发送...
  • 51单片机教程:单片机串行口通信程序设计1.串行口方式0应用编程8051单片机串行口方式0为移位寄存器方式,外接一个串入并出的移位...串行口方式0的数据传送可采用中断方式,也可采用查询方式,无论哪种方式,都要借...
  • 对来自微机串行口的命令进行操作,完成对被控对象的直接控制,并把被控对象的信息上报给上位机,异步串行通信是一种常用的多机通信手段,本文介绍一种将RS232,RS485,及红外接口集成在一起的PC机--单片机多功能通讯...
  • 在由PC机和单片机构成的分布式控制系统中,往往以PC机为上位机完成较为复杂的数据处理和对前沿机的监督管理,以及对下位机进行多机协调,单片机主要执行上位机的命令,对来自微机串行口的命令进行操作,完成对被控...
  • 单片机(AT89C51)的串行接口及串行通信是非常重要的一项技术,我们需要有深度的解刨才可以理解透彻,既然进来了我肯定不会让你失望,点个小赞再走吧。 正式进入串口通信前我们需要了解什么是通信? 计算机与...
  • 能同时接收和发送的串行口称为全双工串行口。串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。其缺点是传输速度较低。与之前一样,首先我们来...
  • 双机通讯实验报告

    2021-05-23 10:39:58
    《双机通讯实验报告》由会员分享,可在线阅读,更多相关《双机...掌握单片机串行口工作方式; 2。掌握双机通讯得接口电路设计及程序设计。 二、实验设备 1、PC机; .单片机最小系统教学实验模块; 3、数码管显示模块 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,147
精华内容 1,258
关键字:

串行口数据通讯实验