德飞莱单片机的通讯方式_单片机实验汇编案例14

该实验介绍了如何使用8031单片机通过串行口与PC机进行通讯,目的是掌握串行口工作方式的编程和单片机通讯。实验内容包括将实验机键盘输入的字符显示在PC显示器上,以及接收PC键盘输入并在实验机数码管上显示。实验电路已预设,执行特定命令后即可开始通讯。
摘要由CSDN通过智能技术生成

4c17d19a655aab548ea8f7d0b9314046.png

实验十四 单片机串行口与PC机通讯实验

一.实验要求

利用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机通信实验。

五.实验程序框图 

05f14403dd3ce4c48fc7f5398096e9d1.png

Z8279 EQU 8701H ;8279 状态/命令口地址D8279 EQU 8700H ;8279 数据口地址LEDMOD EQU 00H ;左边输入 八位字符显示               ;外部译码键扫描方式,双键互锁LEDFEQ EQU 2FH ;扫描速率LEDCLS EQU 0C1H ;清除显示 RAMLEDWR0 EQU 80H ;设定的将要写入的显示RAM地址READKB EQU 40H ;读 FIFO RAM 地址 0 的命令字ORG 0000HAJMP STARTORG 0040HSTART:MOV SP,#60HLCALL INIT8279 ;初始化8279MOV SCON,#50H ;串口 方式 1MOV TMOD,#20H ;T1 方式 1MOV TL1,#0FDH ;波特率 9600 的常数MOV TH1,#0FDHSETB TR1 ;开中断SETB ET1SETB EAWAIT:JBC RI,DIS_REC ;是否接收到数据LCALL GETKEY ;读键盘CJNE A,#0FFH,WAIT ;是否有键输入MOV SBUF,B ;串口输出键盘输入的值NOPSS: JBC TI,WAIT ;是否发送完毕SJMP SSDIS_REC:MOV A,SBUF ;读串口接收到的数据CLR CSUBB A,#30H ;以下判定输入是否在0-FJC ERRORSUBB A,#0AHJNC DIS_REC1ADD A,#0AHSJMP DIS_REC2DIS_REC1:SUBB A,#7HJC ERRORSUBB A,#6HJNC ERRORADD A,#10HDIS_REC2:MOV R4,#00HMOV R5,ALCALL DISLED ;显示输入的数字(0-F)ERROR: AJMP WAITINIT8279: ;8279初始化子程序PUSH DPH ;保存现场PUSH DPLPUSH ACCLCALL DELAY ;延时MOV DPTR ,#Z8279MOV A,#LEDMOD ;置8279工作方式MOVX @DPTR,AMOV A,#LEDFEQ ;置键盘扫描速率MOVX @DPTR,AMOV A,#LEDCLS ;清除 LED 显示MOVX @DPTR,APOP ACC ;恢复现场POP DPLPOP DPHRET               ;读取键盘子程序               ;输入: 无 ; 输出: B: 读到的键码 A: 按键的标志GETKEY: PUSH DPH ;保存现场PUSH DPLPUSH PSWMOV DPTR,#Z8279MOVX A,@DPTR ;读8279状态ANL A,#07H ;屏蔽D7-D3JNZ GETVAL ;判断是否有键输入MOV A,#0H ;置标志(无键输入)SJMP NKBHITGETVAL: MOV A,#READKB ;读 FIFO RAM 命令MOVX @DPTR,AMOV DPTR,#D8279MOVX A,@DPTR ;读键ANL A,#0FH ;屏蔽 SHIFT 和 CTRL 键MOV DPTR,#KEYCODE ;键码表起始地址MOVC A,@A+DPTR ;查表MOV B,A ;置返回键值MOV A,#0FFH ;置标志(有键输入)NKBHIT: POP PSW ;恢复现场POP DPLPOP DPHRET              ;显示字符子程序              ;输入: R4,位置 R5,值DISLED: PUSH DPH ;保存现场PUSH DPLPUSH ACCMOV A,#LEDWR0 ;置显示起始地址ADD A,R4 ;加位置偏移量MOV DPTR,#Z8279MOVX @DPTR,A ;设定显示位置MOV DPTR,#LEDSEG ;置显示常数表起始位置MOV A,R5MOVC A,@A+DPTR ;查表MOV DPTR,#D8279MOVX @DPTR,A ;显示数据POP ACC ;恢复现场POP DPLPOP DPHRETDELAY: ;延时子程序PUSH 0 ;保存现场PUSH 1MOV 0,#0HDELAY1: MOV 1,#0HDJNZ 1,$DJNZ 0,DELAY1POP 1 ;恢复现场POP 0RET                 ;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

c0ae28925f4c7cd65389f393a5e65638.png

本素材来自网路,如有侵权,请联系删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值