单片机实验报告多机通讯
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CLR TI
L:
MOV A,#00H
MOV SBUF,A
JNB TI, $
CLR TI
DJNZ R5, L
MOV R5,#03H
RET
FIND: ;查找对应断码
MOV DPTR, #TABLE1
MOV A, R3
MOVC A, @A+DPTR
MOV LED0, A
RET
LOOP:
MOV R2, #9FH
MOV R7, #0FFH
MOV R6, #0FFH
LOOP1:
DJNZ R6, $
LOOP2:
DJNZ R7, LOOP2
DJNZ R2, LOOP1
RET
TABLE1:
DB 0BBH, 09H,0EAH, 6BH,59H,73H,
DB0F3H, 0BH,0FBH,7BH, 0DBH,0F1H,0B2H,0E9H,0F2H,0D2H
二.
利用8051单片机串行口,实现与PC机通讯。
本实验实现以下功能,将从实验板键盘上键入的字符或数字显示到PC机显示器上,再将PC机所接收的字符发送回单片机,并在实验板的LED上显示出来。
三.
89C51内部有一个可编程全双工串行通信接口。该部件不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。
单片机系统设计及应用实验报告
第次实验
实验名称:单片机串行口与PC机通讯实验
专业:
姓名:学号:
同组人员:学号:
实验地点:
实验时间:2016.12.15
评定成绩:审阅教师:
一.
(1)掌握串行口工作方式的程序设计,掌握单片机通讯的编制;
(2)了解实现串行通讯的硬环境,数据格式的协议,数据交换的协议;
(3)了解PC机通讯的基本要求。
MAIN:
CLR ACC.7
MOV SBUF,A
SJMP KEYBORD
INT_1:;中断判断是发送还是接收
JNB RI,SEND
SJMP CEV
SEND:
CLRTI ;发送子程序
MOVSCON, #00H
MOV LED0,#00H
LCALLSHOW
MOVSCON, #50H
SJMP BACK
CEV:
LCALL LOOP
POP A
JZ KEYBORD
JB ACC.0, CH0
JB ACC.1, CH1
JB ACC.2, CH2
JB ACC.3, CH3
JB ACC.4, CH4
JB ACC.5, CH5
JB ACC.6, CH6
JB ACC.7, CH7
CH0:
MOV A,#00H
SJMP MAIN
ORG 0040H
START:
MOV SP,#30H
MOV TMOD,#20H;设置定时器工作模式2
MOV TL1,#0E6H;设置波特率
MOV TH1,#0E6H
MOV SCON,#50H;设置串口工作模式
MOV PCON,#00H
MOV LED0,#0BBH;初始化led
MOV R5,#03H
SETB EA
与PC通讯是方式1:一帧10位的异步串行通信方式,包括1个起始位,8个数据位和一个停止位。
当TI=0时,执行“MOV SBUF,A”指令后开始发送。发送时的定时信号由定时器T1送来的溢出信号经过16分频或32分频得到的。在接收到第9位数据(即停止位)时,必须同时满足以下两个条件:RI=0和SM2=0或接收到的停止位为“1”,才把接收到的数据存入SBUF中,停止位送RB8,同时置位RI。在方式1下,SM2应设定为0。
四.实验流程图
四.
五.
(1)编写单片机发送和接收程序,并进行汇编调试。
运行PC机通讯软件“commtest.exe”,将单片机和PC机的波特率均设定为1200。
(2)运行单片机发送程序,按下不同按键(每个按键都定义成不同的字符),检查PC机所接收的字符是否与发送的字符相同。
(3)最初,显示的不是数字而是符号,这是通讯软件的设置,HEX显示,没有勾选。只能实现一次数据传输,原因是串口的工作方式改为0显示led后没有改回方式1。
七.运行结果
实验结果如上图,可以看出,分别按键S1-S7对应00-07八个数值。
当PC发送数据给单片机时,可以在LED上显示对应数值。上图分别为0F和09。
八.实验心得
本次实验实现的是单片机和PC的通讯,而单片机与单片机之间的通讯原理和本次实验也是类同的,我们可以举一反三掌握其通讯方法。
SETB ES
SETB TR1
KEYBORD:;键盘检测按键
MOV P1, #0FFH
MOV A, P1
CPL A
JZ KEYBORD ;是否全为0
LCALL LOOP
MOV A, P1
CPL A
JZ KEYBORD
PUSH A
THEN:
MOV A, P1
CPL A
ANL A, #0FFH
JNZ THEN
本实验LED显示是在方式0下,串行口作为同步移位寄存器使用。此时SM2、RB8、TB8均应设置为0。发送数据:TI=0时,执行“MOV SBUF,A”启动发送,8位数据由低位到高位从RXD引脚送出,TXD发送同步脉冲。发送完后,由硬件置位TI。
方式0的波特率为fosc/12,即一个机器周期发送或接收一位数据。
CH1:
MOV A,#01H
SJMP MAIN
CH2:
MOV A,#02H
SJMP MAIN
CH3:
MOV A,#03H
SJMP MAIN
CH4:
MOV A,#04H
SJMP MAIN
CH5:
MOV A,#05H
SJMP MAIN
CH6:
MOV A,#06H
SJMP MAIN
CH7:
MOV A,#07H
CLRRI ;接收子程序
MOVA, SBUF ;接收数据
MOV R3,A
MOVSCON, #00H;改变串口工作模式0
LCALL FIND
LCALLSHOW
MOVSCON, 源自文库50H;换回串口工作模式1
BACK:
RETI
SHOW: ;LED送显
MOV A,LED0
MOV SBUF,A
JNB TI, $
(4)将PC机所接收的字符发送给单片机,与此同时运行单片机接受程序,检查实验板LED数码管所显示的字符是否与PC机发送的字符相同。
调试之前,显示为乱码,修改相关代码后显示正常。
六.
LED0 EQU 30H;预设数值缓存存储位置
ORG 0000H
AJMP START
ORG 0023H
AJMP INT_1
L:
MOV A,#00H
MOV SBUF,A
JNB TI, $
CLR TI
DJNZ R5, L
MOV R5,#03H
RET
FIND: ;查找对应断码
MOV DPTR, #TABLE1
MOV A, R3
MOVC A, @A+DPTR
MOV LED0, A
RET
LOOP:
MOV R2, #9FH
MOV R7, #0FFH
MOV R6, #0FFH
LOOP1:
DJNZ R6, $
LOOP2:
DJNZ R7, LOOP2
DJNZ R2, LOOP1
RET
TABLE1:
DB 0BBH, 09H,0EAH, 6BH,59H,73H,
DB0F3H, 0BH,0FBH,7BH, 0DBH,0F1H,0B2H,0E9H,0F2H,0D2H
二.
利用8051单片机串行口,实现与PC机通讯。
本实验实现以下功能,将从实验板键盘上键入的字符或数字显示到PC机显示器上,再将PC机所接收的字符发送回单片机,并在实验板的LED上显示出来。
三.
89C51内部有一个可编程全双工串行通信接口。该部件不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。
单片机系统设计及应用实验报告
第次实验
实验名称:单片机串行口与PC机通讯实验
专业:
姓名:学号:
同组人员:学号:
实验地点:
实验时间:2016.12.15
评定成绩:审阅教师:
一.
(1)掌握串行口工作方式的程序设计,掌握单片机通讯的编制;
(2)了解实现串行通讯的硬环境,数据格式的协议,数据交换的协议;
(3)了解PC机通讯的基本要求。
MAIN:
CLR ACC.7
MOV SBUF,A
SJMP KEYBORD
INT_1:;中断判断是发送还是接收
JNB RI,SEND
SJMP CEV
SEND:
CLRTI ;发送子程序
MOVSCON, #00H
MOV LED0,#00H
LCALLSHOW
MOVSCON, #50H
SJMP BACK
CEV:
LCALL LOOP
POP A
JZ KEYBORD
JB ACC.0, CH0
JB ACC.1, CH1
JB ACC.2, CH2
JB ACC.3, CH3
JB ACC.4, CH4
JB ACC.5, CH5
JB ACC.6, CH6
JB ACC.7, CH7
CH0:
MOV A,#00H
SJMP MAIN
ORG 0040H
START:
MOV SP,#30H
MOV TMOD,#20H;设置定时器工作模式2
MOV TL1,#0E6H;设置波特率
MOV TH1,#0E6H
MOV SCON,#50H;设置串口工作模式
MOV PCON,#00H
MOV LED0,#0BBH;初始化led
MOV R5,#03H
SETB EA
与PC通讯是方式1:一帧10位的异步串行通信方式,包括1个起始位,8个数据位和一个停止位。
当TI=0时,执行“MOV SBUF,A”指令后开始发送。发送时的定时信号由定时器T1送来的溢出信号经过16分频或32分频得到的。在接收到第9位数据(即停止位)时,必须同时满足以下两个条件:RI=0和SM2=0或接收到的停止位为“1”,才把接收到的数据存入SBUF中,停止位送RB8,同时置位RI。在方式1下,SM2应设定为0。
四.实验流程图
四.
五.
(1)编写单片机发送和接收程序,并进行汇编调试。
运行PC机通讯软件“commtest.exe”,将单片机和PC机的波特率均设定为1200。
(2)运行单片机发送程序,按下不同按键(每个按键都定义成不同的字符),检查PC机所接收的字符是否与发送的字符相同。
(3)最初,显示的不是数字而是符号,这是通讯软件的设置,HEX显示,没有勾选。只能实现一次数据传输,原因是串口的工作方式改为0显示led后没有改回方式1。
七.运行结果
实验结果如上图,可以看出,分别按键S1-S7对应00-07八个数值。
当PC发送数据给单片机时,可以在LED上显示对应数值。上图分别为0F和09。
八.实验心得
本次实验实现的是单片机和PC的通讯,而单片机与单片机之间的通讯原理和本次实验也是类同的,我们可以举一反三掌握其通讯方法。
SETB ES
SETB TR1
KEYBORD:;键盘检测按键
MOV P1, #0FFH
MOV A, P1
CPL A
JZ KEYBORD ;是否全为0
LCALL LOOP
MOV A, P1
CPL A
JZ KEYBORD
PUSH A
THEN:
MOV A, P1
CPL A
ANL A, #0FFH
JNZ THEN
本实验LED显示是在方式0下,串行口作为同步移位寄存器使用。此时SM2、RB8、TB8均应设置为0。发送数据:TI=0时,执行“MOV SBUF,A”启动发送,8位数据由低位到高位从RXD引脚送出,TXD发送同步脉冲。发送完后,由硬件置位TI。
方式0的波特率为fosc/12,即一个机器周期发送或接收一位数据。
CH1:
MOV A,#01H
SJMP MAIN
CH2:
MOV A,#02H
SJMP MAIN
CH3:
MOV A,#03H
SJMP MAIN
CH4:
MOV A,#04H
SJMP MAIN
CH5:
MOV A,#05H
SJMP MAIN
CH6:
MOV A,#06H
SJMP MAIN
CH7:
MOV A,#07H
CLRRI ;接收子程序
MOVA, SBUF ;接收数据
MOV R3,A
MOVSCON, #00H;改变串口工作模式0
LCALL FIND
LCALLSHOW
MOVSCON, 源自文库50H;换回串口工作模式1
BACK:
RETI
SHOW: ;LED送显
MOV A,LED0
MOV SBUF,A
JNB TI, $
(4)将PC机所接收的字符发送给单片机,与此同时运行单片机接受程序,检查实验板LED数码管所显示的字符是否与PC机发送的字符相同。
调试之前,显示为乱码,修改相关代码后显示正常。
六.
LED0 EQU 30H;预设数值缓存存储位置
ORG 0000H
AJMP START
ORG 0023H
AJMP INT_1