免费预览已结束,剩余5页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
串行通信实验报告班级 姓名 学号 日期 一、实验目的: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 COM_INT ORG 1000HMAIN: MOV SP,#53H MOV 78H,#20H MOV 77H,00H MOV 76H,20H MOV 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 RETCOM_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 COM_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 RETCOM_INT: PUSH DPL PUSH DPH PUSH Acc CLR RI JB 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: jb HasRcv, RcvData ; 收到数据? call DisplayLED ; 显示 call TestKey ; 有键入? jz MLoop ; 无键入, 继续显示 call GetKey ; 读入键码 anl a, #0fh ; 通讯口输出键码 MOV SBUF,A LJMP MLoopRcvData: clr HasRcv
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年浙江幼儿绘画真题及答案
- 贵州省情的考试题及答案
- 2025年风控分析师招聘面试题库及参考答案
- 2025年机构投资经理岗位招聘面试参考试题及参考答案
- 生态设计生命周期评估-洞察与解读
- 2025年赊账专员招聘面试参考题库及答案
- 2025年脚本编写者岗位招聘面试参考试题及参考答案
- 2025年事业单位岗位招聘专员面试参考试题及参考答案
- 2025年新疆护士考试题库及答案
- 2025年非营利组织募捐经理岗位招聘面试参考试题及参考答案
- 粮油食材配送投标方案(大米食用油食材配送服务投标方案)(技术方案)
- 《全面质量管理》习题集(含答案)
- SONY索尼数码照相机DSC-HX200使用说明书
- GB/T 44193-2024全国一体化政务服务平台一网通办基本要求
- 手术室竞选护士长
- MOOC 颈肩腰腿痛中医防治-暨南大学 中国大学慕课答案
- 学校食堂冰箱清洗、除霜记录
- 叠加定理课件
- 公共政策导论全套教学课件
- 2024年青海电工考试题库电工高级工考试题库(全国通用)
- 保险行业职业生涯规划总结
评论
0/150
提交评论