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

    实验三串口通信实验111.doc

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

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

    实验三串口通信实验111.doc

    实验三串口通信实验111汕 头 大 学 实 验 报 告实验三 串口通信实验姓名:袁鑫泰 学号:2016124105 专业:16机电 实验时间:2018年11月27日一、实验目的与要求利用开发板的串口仿真功能,掌握串口通信的编程方法.实验要求:1、利用串行口向PC机发送字符“0x55”,利用串口调试软件在计算机端观察接收到的数据是否与预期一致.2、利用串行口向PC机发送字符串,利用串口调试软件在计算机端观察接收到的数据是否与预期一致3、观察分析参考程序3,利用开发板接收PC机发送过来的16进制数据并用数码管显示。4、掌握实验基础内容后根据参考源程序进行修改和拓展,自行设计程序目标并编程验证,比如修改发送程序的内容,实现由上位机控制数码管显示内容等。二、实验参考步骤*由于串口功能要用于实验,所以本次实验采用程序写入开发板后直接运行方式进行实验,不能采用Keil仿真运行方式进行。1、启动KEIL软件,选择菜单“工程新建工程”以建立工程(扩展名为.uv2,如T3a。uv2)。2、选择菜单“文件新文件"以建立一个新的文本编辑窗口,在窗口中输入参考源程序1并保存(扩展名为。asm),如test3a.asm,然后将其加入到源程序组1中。3、在工程菜单的选项“目标1属性”中设置相应的选项,包括“输出产生hex文件”选项以便汇编生成HEX代码供编程器使用,不使用“调试使用KeilMonitor-51 Driver”功能。4、使用“工程”中的“编译全部文件”完成相应的文件编译,如果程序格式正确将生成相应HEX代码文件,如T3a。hex.如果提示有编译错误请自行修改源程序然后再重新编译。5、完成仿真器与计算机之间的通信连线并通电。在开发板中将“编程仿真”功能按钮设置为编程状态.6、在计算机端先启动XLISP软件,如图31所示。在“操作”界面可以检测编程器是否正常,不正常的话可尝试检查开发板中的“编程/仿真”功能按钮设置是否正确或者在“选项”中进行串口测试。7、用XLISP软件中的“文件打开”功能打开步骤4中生成的.hex文件;利用“智能一键通"功能快速完成指令代码的写入,写入成功后关闭XLISP软件。(由于编程串口要用于下面的串口调试,所以记得要“关闭”软件以释放相应的串口控制而不是将窗口最小化!)8、打开串口调试软件,设置相应的串口号、波特率和其他通信参数,打开串口通信功能。9、在开发板中将“编程仿真”功能按钮设置为仿真状态,复位开发板功能,此时可以看到串口调试软件不断接收到“0X55”的数据,切换为文本显示功能则为“U”字符。10、观察并记录实验现象,然后在开发板中将“编程仿真”功能按钮设置为编程状态,然后在串口调试软件中“关闭串口"以释放对该串口控制,防止下次XLISP软件编程时串口控制冲突。11、参考步骤18完成参考源程序2的建立与输入,如新项目T3b.uv2和新的源程序test3b。asm,完成编译生成T3b.hex。12、连接仿真板上的P1。7引脚到JP37上的K01按钮,在开发板中将“编程仿真”功能按钮设置为仿真状态,复位开发板功能,此时可以通过按下P1.7连接的K01按钮向PC机发送字符串,串口调试软件切换为文本显示功能.13、观察并记录实验现象,然后在开发板中将“编程仿真”功能按钮设置为编程状态,然后在串口调试软件中“关闭串口”以释放对该串口控制,防止下次XLISP软件编程时串口控制冲突.14、参考步骤14完成参考源程序2的建立与输入,如新项目T3c.uv2和新的源程序test3c.asm,完成编译生成T3c。hex。15、用8PIN连线将P0口连接到数码管数据输入端,P2口连接到数码管控制端。16、参考步骤58完成代码的写入和串口调试软件的设置,打开串口通信功能。17、在开发板中将“编程仿真”功能按钮设置为仿真状态,复位开发板功能,利用串口调调试软件逐次向开发板端发送不同的十六进制数值,如00,01,02,03,04,05,06,07,08,09,0a,0b,0c,0d,0e,0f, 00,01,02,03,11,01,02等,注意观察数码管的显示内容和串口调试软件中显示接收到仿真板发送回来的内容.18、观察现象并记录完毕后,在开发板中将“编程仿真”功能按钮设置为编程状态,然后在串口调试软件中“关闭串口"以释放对该串口控制,防止下次XLISP软件编程时串口控制冲突。19、根据参考源程序1和参考源程序2进行思考、修改和拓展,自行设计程序目标并编程验证。三、参考程序1。利用串口向PC机发送字符“0x55”.ORG0000HLJMPMainORG00F0HMain:MOV TMOD,#22H ;设置T1为方式2MOV SCON,40HMOV TH1,0F3H;设置速率4800,(12M晶体)MOV TL1,0F3HMOV PCON,80H ;定时器1开始计数SETB TR1next: lcall delaymov a,55hmov r3,#01setb p1。7jnb p1.7,SENDWTmov a,56hmov r3,#02setb p1。6jnb p1.6,SENDWTsjmp next SENDWT:CLR TImov sbuf,a;发送数据JNB TI,;djnz r3, SENDWTljmp nextdelay: mov r7,#0l0:mov r6,#0djnz r6,djnz r7,l0ret;END2.利用串口向PC机发送字符串ORG 0000HLJMP MAINORG 0100HMAIN:MOV TMOD,22H ;设置T1为方式2MOV SCON,#40HMOV TH1,#0F3H;设置速率4800,(12M晶体)MOV TL1,0F3HMOV PCON,#80H ;定时器1开始计数SETB TR1MAINLOOP:setb p1。7jb p1。7,MAINLOOPmov dptr,#tabsend:CLR TImov a,#0movc a,a+dptrcjne a, 81h, send_SBUF;81作为输出字符串的结束标志,不发送ljmp MAINLOOPsend_SBUF:MOV SBUF, aJNB TI, inc dptrsjmp send$tab:db 0dh,0ahdb "。.$.$。.。.”,0dh,0ahdb ”。$.。”,0dh,0ahdb "。$.。”,0dh,0ahdb ”.。$.",0dh,0ahdb ”.。$。.”,0dh,0ahdb ”。.。.$.。.。”,0dh,0ahdb ”。.。$。.。”,0dh,0ahdb ”.。.。.。.。.。",0dh,0ahdb ”.$。.。.。.”,0dh,0ahdb 81h;END3。利用仿真板接收PC机发送过来的16进制数据并用数码管显示。DIS_DIGIT EQU 40H;位选通值, 传送到P2口用于选通当前数码管的数值; 如等于0xfe时, 选通P2。0口数码管DIS_INDEX DATA 41H;显示索引, 用于标识当前显示的数码管和缓冲区的偏移量DIS_LONG DATA 8HRXD_INDEXEQU 43H;串口接收索引, 用于标识当前接收的数据位于显示缓冲区的第几位DIS_BUF DATA 50H ;显于缓冲区起始地址ORG0000HAJMPMAINORG 000BHAJMP INTT0ORG 0100HMAIN:MOV P0,#0FFH ; 初始化I/O口MOV P2,0FFHMOVTMOD, 22H ;定时器0在模式2下工作 MOVPCON,#80H MOVSCON,40HMOVTH1,#0F3H ;设置速率4800,(12M晶体)MOVTL1,0F3HSETBTR1 ;定时器1开始计数SETBRENMOV TH0, 38H ; 每200s产生一次溢出MOV TL0, #38H ;自动重装初值SETB ET0 ;使能定时器0中断SETB EA ;使能总中断MOVDPTR, #DIS_CODE ; 开始设定显示初值为全0MOVA,0 ;取“0”的段码到BMOVCA,A+DPTRMOV B,AMOV DIS_INDEX,0MOV r7,DIS_LONG;数码管位数,用于计算要清零的数据区长度nextdata: MOV a,#DIS_BUFADD a,DIS_INDEXMOVr1,aMOV R1,BINCDIS_INDEXDjnz r7 ,nextdataDISPLAY:MOV DIS_DIGIT,0FEH; 初始从第一个数码管开始扫描MOV DIS_INDEX,#0SETB TR0; 启动定时器0,开始动态扫描显示MAIN_LP: Mov RXD_INDEX,DIS_BUFCLR RINEXTRD:JNB RI,$MOV A,SBUFCLR RIMOV b,aCLR cSUBA,80h ;大于等于80h的当回车处理JNC RST_RMOV a,bMOVDPTR, #DIS_CODE;MOVCA,A+DPTR MOV r1,RXD_INDEXMOV r1,aINC RXD_INDEXMOVA,RXD_INDEXCJNE A,DIS_LONG+DIS_BUF,NEXTRD;MOV B,#39hRST_R:CLR TImov a,bmov sbuf ,ajnb TI,CLR TISJMPMAIN_LPINTT0:; 定时器0中断服程序, 用于数码管的动态扫描PUSH ACCPUSH PSWMOV P2,0FFH; 先关闭所有数码管MOV A,#DIS_BUF; 获得显示缓冲区基地址ADD A,DIS_INDEX; 获得偏移量MOV R0,A; R0 = 基地址 + 偏移量MOV A,R0; 获得显示代码MOV P0,A; 显示代码传送到P0口MOV P2,DIS_DIGIT MOVA,DIS_DIGIT; 位选通值左移, 下次中断时选通下一位数码管RLAMOVDIS_DIGIT,AINCDIS_INDEX; DIS_INDEX加1, 下次中断时显示下一位ANLDIS_INDEX,#0x07; 当DIS_INDEX等于8(0000 1000B)时, 清0POP PSWPOP ACCRETI DIS_CODE: DB 28h,7eh,0a2h,62h,74h,61h,21h,7ahDB 20h,60h,30h,25h,0a9h,26h,0a1h,0b1hDB 0ffh;09和ABCDEF的数码管显示代码,偏移量10H对应为0FFH即该管熄灭END四、 实验要求、现象及分析1、 利用串口向PC机发送字符“0x55”在编写好程序一之后,在串口助手中选择正确的串口以及设置4800的波特率,最后选择接受缓冲区的HEX模式,根据接线按下P1。7,向串口输入,显示屏上显示“55”2、利用串口向PC机发送字符串 在编写好程序一之后,在串口助手中选择正确的串口以及设置4800的波特率,最后选择接受缓冲区的文本模式,根据接线按下P1。7,向串口输入,显示屏上显示“$.。.”3、利用仿真板发送16进制数据,单片机的数码显示管显示在编写好程序三之后,在串口助手的发送缓冲区,选择HEX模式,输入16进制数“01 02 03 04 05 06 07 08”,按下发送。可以看到单片机数码管上显示出五、思考题1、试根据参考程序1和参考程序2分析如何修改程序以实现利用不同的按键发送不同的字符串分段完成学生学号的完整显示,完成程序的设计并调试记录。不同的字符串分段完成学生好的完整显示,完成程序的设计并调试记录。答:第一个实验: 根据程序一改编,按下P1。7发送“16”到数码管,按下P1.6发送“12”,按下P1。5发送“41”到数码管,按下P1.4发送“05"到数码管,程序如下图:在编写好程序,依次按下开关,串口助手显示以及数码显示如图第二个实验:对程序2进行试验创新,按下P1.7,显示2、观察参考程序3的实验现象,试利用PC机仿真串口发送数据控制数码管显示为学生自己的学号的后8位并拍照记录。在串口端输入学号的后8位,选择HEX模式.输入“ 01 06 01 02 04 00 03 05"点击发送按钮,可以看见单片机的数码显示管上面正确的显示了输入的数据

    注意事项

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

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




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

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

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

    收起
    展开