欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    串行通信实验报告.doc

    • 资源ID:13005411       资源大小:72KB        全文页数:15页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    串行通信实验报告.doc

    . .串行通信实验报告班级 学号 日期一、实验目的:1、掌握单片机串行口工作方式的程序设计,及简易 三线式通讯的方法。2、了解实现串行通讯的硬环境、数据格式的协议、 数据交换的协议。3、学习串口通讯的程序编写方法。二、实验要求1.单机自发自收实验:实现自发自收。编写相应程序,通过发光二极管观察收发状态。 2利用单片机串行口,实现两个实验台之间的串行通讯。其中一个实验台作为发送方,另一侧为接收方。三、实验说明通讯双方的RXD、TXD信号本应经过电平转换后再行穿插连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接穿插连接。也可以将本机的TXD接到RXD上。连线方法:在第一个实验中将一台实验箱的RXD和TXD相连,用P1.0连接发光二极管。波特率定为600,SMOD=0。 在第二个实验中,将两台实验箱的RXD和TXD穿插相连。编写收发程序,一台实验箱作为发送方,另一台作为接收方,编写程序,从内部数据存储器20H3FH单元中共32个数据,采用方式1串行发送出去,波特率设为600。通过运行程序观察存储单元内数值的变化。四、程序甲方发送程序如下:ORG 0000H LJMP MAIN ORG 0023H LJMP _INT ORG 1000HMAIN: MOV SP,#53HMOV 78H,#20H MOV 77H,00H MOV 76H,20HMOV 75H,40H ACALL TRANSHERE: SJMP HERETRANS: MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H MOV PCON,#80H SETB TR1 MOV SCON,#40H MOV IE,#00H CLR F0 MOV SBUF,78HWAIT1: JNB TI,WAIT1 CLR TI MOV SBUF,77HWAIT2: JNB TI,WAIT2 CLR TI MOV SBUF,76HWAIT3: JNB TI,WAIT3 CLR TI MOV SBUF,75HWAIT4: JNB TI,WAIT4 CLR TI MOV IE,#90H MOV DPH,78H MOV DPL,77H MOVX A,DPTR MOV SBUF,AWAIT: JNB F0,WAIT RET_INT: CLR TI INC DPTR MOV A,DPH CJNE A,76H,END1 MOV A,DPL CJNE A,75H,END1 SETB F0 CLR ES CLR EA RETEND1: MOVX A,DPTR MOV SBUF,A RETI END乙方发送程序如下: ORG 0000H LJMP MAIN ORG 0023H LJMP _INT ORG 1000HMAIN: MOV SP,#53H ACALL RECEIHERE: SJMP HERERECEI: MOV R0,#78H MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H MOV PCON,#80H SETB TR1 MOV SCON,#50H MOV IE,#90H CLR F0 CLR 7FHWAIT: JNB 7FH,WAIT RET_INT: PUSH DPL PUSH DPH PUSH Acc CLR RI F0,R_DATA MOV A,SBUF MOV R0,A DEC R0 CJNE R0,#74H,RETN SETB F0RETN: POP Acc POP DPH POP DPL RETIR_DATA: MOV DPH,78H MOV DPL,77H MOV A,SBUF MOVX DPTR,A INC 77H MOV A,77H JNZ END2 INC 78HEND2: MOV A,76H CJNE A,78H,RETN MOV A,75H CJNE A,77H,RETN CLR ES CLR EA SETB 7FH SJMP RETN END五、实验过程中遇到的主要问题OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口IN equ 08001h ; 键盘读入口HasRcv equ 20h.0 ; 接收标志位LEDBuf equ 40h ; 显示缓冲RCVBuf equ 50H ; 接收缓冲 ORG 0000H LJMP START; 串行口中断程序 ORG 0023H JNB TI,S0_R CLR TI NOP SJMP S0_RETS0_R: ; 接收数据 CLR RI MOV RCVBUF,SBUF ; 保存数据 SETB HasRcv ; 提示收到数据 NOPS0_RET: RETILEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay: ; 延时子程序 mov r7, #0DelayLoop: djnz r7, DelayLoop djnz r6, DelayLoop retDisplayLED: mov r0, #LEDBuf mov r1, #6 ; 共6个八段管 mov r2, #00100000b ; 从左边开场显示Loop: mov dptr, #OUTBIT mov a, #0 movx dptr, a ; 关所有八段管 mov a, r0 mov dptr, #OUTSEG movx dptr,a mov dptr, #OUTBIT mov a, r2 movx dptr, a ; 显示一位八段管 mov r6, #1 call Delay mov a, r2 ; 显示下一位 rr a mov r2, a inc r0 djnz r1, Loop retTestKey: mov dptr, #OUTBIT mov a, #0 movx dptr, a ; 输出线置为0 mov dptr, #IN movx a, dptr ; 读入键状态 cpl a anl a, #0fh ; 高四位不用 retKeyTable: ; 键码定义 db 16h, 15h, 14h, 0ffh db 13h, 12h, 11h, 10h db 0dh, 0ch, 0bh, 0ah db 0eh, 03h, 06h, 09h db 0fh, 02h, 05h, 08h db 00h, 01h, 04h, 07hGetKey: mov dptr, #OUTBIT mov P2, dph mov r0, #Low(IN) mov r1, #00100000b mov r2, #6KLoop: mov a, r1 ; 找出键所在列 cpl a movx dptr, a cpl a rr a mov r1, a ; 下一列 movx a, r0 cpl a anl a, #0fh jnz Goon1 ; 该列有键入 djnz r2, KLoop mov r2, #0ffh ; 没有键按下, 返回 0ffh sjmp ExitGoon1: mov r1, a ; 键值 = 列 X 4 + 行 mov a, r2 dec a rl a rl a mov r2, a ; r2 = (r2-1)*4 mov a, r1 ; r1中为读入的行值 mov r1, #4LoopC: rrc a ; 移位找出所在行 jc Exit inc r2 ; r2 = r2+ 行值 djnz r1, LoopCExit: mov a, r2 ; 取出键码 mov dptr, #KeyTable movc a, a+dptr mov r2, aWaitRelease: mov dptr, #OUTBIT ; 等键释放 clr a movx dptr, a mov r6, #10 call Delay call TestKey jnz WaitRelease mov a, r2 retSTART: MOV SP, #60H MOV IE, #0 ; DISABLE ALL INTERRUPT MOV TMOD,#020H ; 定时器1工作于方式2 (8位重装) MOV TH1, #0F3H ; 波特率?2400BPS 12MHz MOV TL1, #0F3H ANL PCON,#07FH ; SMOD 位清零 orl PCON,#80h MOV SCON,#050H ; 串行口工作方式设置 MOV LEDBuf, #0ffh ; 显示 8.8.8.8. mov LEDBuf+1, #0ffh mov LEDBuf+2, #0ffh mov LEDBuf+3, #0ffh mov LEDBuf+4, #0 mov LEDBuf+5, #0 SETB TR1 SETB ES SETB EA ;mov sbuf,a ;jnb ti,$MLoop: HasRcv, RcvData ; 收到数据? call DisplayLED ; 显示 call TestKey ; 有键入? jz MLoop ; 无键入, 继续显示 call GetKey ; 读入键码 anl a, #0fh ; 通讯口输出键码 MOV SBUF,A LJMP MLoopRcvData: clr HasRcv ; 是 mov a, RcvBuf ; 显示数据 mov b,a anl a,#0fh ; 显示低位 mov dptr, #LEDMap movc a, a+dptr mov LEDBuf+5, a mov a,b swap a ; 显示高位 anl a,#0fh mov dptr, #LEDMap movc a, a+dptr mov LEDBuf+4, a ljmp MLoop END六、实验后的心得体会. .word.

    注意事项

    本文(串行通信实验报告.doc)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开