ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:18.01KB ,
资源ID:9104846      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9104846.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(串行通信实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

串行通信实验报告.docx

1、串行通信实验报告串行通信实验报告班级 姓名 学号 日期 一、 实验目的:1、 掌握单片机串行口工作方式的程序设计,及简易 三线式通讯的方法。2、 了解实现串行通讯的硬环境、数据格式的协议、 数据交换的协议。3、 学习串口通讯的程序编写方法。二、 实验要求1.单机自发自收实验:实现自发自收。编写相应程序,通过发光二极管观察 收发状态。2.利用单片机串行口,实现两个实验台之间的串行通讯。 其中一个实验台作 为发送方,另一侧为接收方。三、 实验说明通讯双方的RXD TXD信号本应经过电平转换后再行交叉连接,本实验中为 减少连线可将电平转换电路略去,而将双方的 RXD TXD直接交叉连接。也可以 将本

2、机的TXD接到RXD0连线方法:在第一个实验中将一台实验箱的 RXD和TXD相连,用P1.0连接 发光二极管。波特率定为600, SMOD=0在第二个实验中,将两台实验箱的 RXD和TXD交叉相连。编写收发程序, 一台实验箱作为发送方,另一台作为接收方,编写程序,从内部数据存储器 20H3FH单元中共32个数据,采用方式1串行发送出去,波特率设为600。通过 运行程序观察存储单元内数值的变化。四、 程序甲方发送程序如下:ORG 0000HLJMP MAINORG 0023HLJMP COMNTORG 1000HMAIN: MOV SP,#53HMOV 78H,#20HMOV 77H,00HMO

3、V 76H,20HMOV 75H,40HACALL TRANSHERE: SJMP HERETRANS: MOV TMOD,#20HMOV TH1,#0F3HMOV TL1,#0F3HMOV PCON,#80HSETB TR1MOV SCON,#40HMOV IE,#00HCLR F0MOV SBUF,78HWAIT1: JNB TI,WAIT1CLR TIMOV SBUF,77HWAIT2: JNB TI,WAIT2CLR TIMOV SBUF,76HWAIT3: JNB TI,WAIT3CLR TIMOV SBUF,75HWAIT4: JNB TI,WAIT4CLR TIMOV IE,#9

4、0HMOV DPH,78HMOV DPL,77HMOVX A,DPTRMOV SBUF,AWAIT: JNB F0,WAITRETCOM_INT: CLR TIINC DPTRMOV A,DPHCJNE A,76H,END1MOV A,DPLCJNE A,75H,END1SETB F0CLR ESCLR EARETEND1: MOVX A,DPTRMOV SBUF,ARETIEND乙方发送程序如下:ORG 0000HLJMPMAINORG0023HLJMPCOM_INTORG1000HMAIN: MOV SP,#53HACALL RECEIHERE: SJMP HERERECEI: MOV R

5、0,#78HMOVTMOD,#20HMOVTH1,#0F3HMOVTL1,#0F3HMOVPCON,#80HSETBTR1MOVSCON,#50HMOVIE,#90HCLRF0CLR7FHWAIT: JNB 7FH,WAITRETCOM_INT: PUSH DPLPUSHDPHPUSHAccCLRRIJB F0,R_DATAMOVA,SBUFMOVR0,ADECR0CJNER0,#74H,RETNSETBF0RETN: POP AccPOP DPHPOP DPLRETIR_DATA: MOV DPH,78HMOV DPL,77HMOV A,SBUFMOVX DPTR,AINC 77HMOV A

6、,77HJNZ END2INC 78HEND2: MOV A,76HCJNE A,78H,RETNMOVA,75HCJNEA,77H,RETNCLRESCLREASETB7FHSJMPRETNEND五、实验过程中遇到的主要问题 OUTBIT equ 08002h ; 位控制口 OUTSEG equ 08004h ; 段控制口 IN equ 08001h ; 键盘读入口HasRcv equ 20h.0 ; 接收标志位LEDBuf equ 40h ; 显示缓冲RCVBuf equ 50H ; 接收缓冲ORG 0000H LJMP START; 串行口中断程序ORG 0023HJNB TI,S0_R

7、CLR TINOPSJMP S0_RETS0_R: ; 接收数据CLR RIMOV RCVBUF,SBUF ; 保存数据SETB HasRcv ; 提示收到数据 NOPS0_RET:RETILEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay: ; 延时子程序 mov r7, #0DelayLoop:djnz r7, DelayLoop djnz r6, DelayLoop retDisplayLED:movr0, #LEDBufmovr1,

8、 #6; 共 6 个八段管movr2, #00100000b; 从左边开始显示Loop:movdptr, #OUTBITmova, #0movxdptr, a; 关所有八段管mova, r0movdptr, #OUTSEGmovxdptr,amovdptr, #OUTBITmova, r2movxdptr, a ; 显示一位八段管mov r6, #1call Delaymova, r2; 显示下一位rramovr2, aincr0djnzr1, LoopretTestKey:movdptr, #OUTBITmova, #0movxdptr, a; 输出线置为 0movdptr, #INmovx

9、a, dptr; 读入键状态cplaanla, #0fh; 高四位不用retKeyTable: ; 键码定义 db 16h, 15h, 14h, 0ffhdb 13h, 12h, 11h, 10hdb 0dh, 0ch, 0bh, 0ahdb 0eh, 03h, 06h, 09hdb 0fh, 02h, 05h, 08hdb 00h, 01h, 04h, 07hGetKey:movdptr, #OUTBITmovP2, dphmovr0, #Low(IN)movr1, #00100000bmovr2, #6KLoop:mova, r1; 找出键所在列cplamovxdptr, acplarra

10、movr1, a; 下一列movxa, r0cplaanla, #0fhjnzGoon1; 该列有键入djnzr2, KLoopmovr2, #0ffh ;没有键按下 , 返回0ffhsjmpExitGoon1:movr1, a; 键值 = 列 X 4 +行mova, r2dec a rl a rl amovr2, a; r2 = (r2-1)*4mova, r1; r1 中为读入的行值movr1, #4LoopC:rrca; 移位找出所在行jcExitincr2; r2 = r2+ 行值djnzr1, LoopCExit:mova, r2; 取出键码mov dptr, #KeyTable m

11、ovc a, a+dptr mov r2, aWaitRelease:mov clr movxdptr, #OUTBIT adptr, a; 等键释放movr6, #10callDelaycallTestKeyjnzWaitReleasemova, r2retSTART:MOVSP, #60HMOVIE, #0 ; DISABLE ALL INTERRUPTMOVTMOD,#020H; 定时器 1 工作于方式 2 (8 位重装 )MOVTH1, #0F3H ;波特率?2400BPS 12MHzMOVTL1, #0F3HANLPCON,#07FH ;SMOD 位清零orlPCON,#80hMOV

12、SCON,#050H; 串行口工作方式设置MOVLEDBuf, #0ffh ; 显示 8.8.8.8.movLEDBuf+1, #0ffhmovLEDBuf+2, #0ffhmov mov mov SETBLEDBuf+3, #0ffhLEDBuf+4, #0LEDBuf+5, #0TR1SETBESSETBEA;movsbuf,a;jnb ti,$MLoop:jbHasRcv, RcvData; 收到数据?callDisplayLED; 显示callTestKey; 有键入 ?jzMLoop; 无键入 , 继续显示callGetKey; 读入键码anla, #0fh ;通讯口输出键码MOVSBUF,ALJMPMLoopRcvData:clrHasRcv; 是mova, RcvBuf; 显示数据movb,aanla,#0fh; 显示低位movdptr, #LEDMapmovca, a+dptrmovLEDBuf+5, amova,bswapa; 显示高位anla,#0fhmovdptr, #LEDMapmovca, a+dptrmovLEDBuf+4, aljmpMLoopEND六、实验后的心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1