欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    北京工业大学8051单片机实验报告.docx

    • 资源ID:1102122       资源大小:89KB        全文页数:24页
    • 资源格式: DOCX        下载积分:7金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要7金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    北京工业大学8051单片机实验报告.docx

    8051单片机实验报告专业:电子科学与技术姓名:学号:120231指导教师:金冬月第一单元单片机程序调试环境使用及并行数据传送操作训练1-1修改例程一的源程序:将A存放器的初值改为80H(正逻辑,数据位为1表示发光二极管点亮),再对源程序进展简单修改,使程序运行后发光二极管点亮情况与修改前一样。Sinclude(C8051F020.inc);C8051F02x系列单片机信息头文件包含伪指令1.CALLInit.Device;调用初始设置子程序MOVA,#080H;赋初始值并在发光二极管上显示该数值CPLAMOVP3,ALOOP:CALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYRRA;A存放器内容右移1位并送发光二极管显示MOVP3,AAJMPLOOP;无限循环DELAY:MOVR5,#0H;延时子程序Dl:MOVR6,SOHDJNZR6,$DJNZR5,D1RETSinclude(IniLDeViCe.inc);初始设置子程序文件包含伪指令END将LED向左循环移位点亮改为向右循环移位点亮。Sinclude(C8051F020.inc);C8051F02x系列单片机信息头文件包含伪指令1.CALLInit_Dcvice;调用初始设置子程序MOVA,#07FH;赋初始值并在发光二极管上显示该数值MOVP3,ALOOP:CALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYRLA;A存放器内容右移1位并送发光二极管显示MOVP3,AAJMPLOOP;无限循环DELAY:MOVR5,#0H;延时子程序Dl:MOVR6,#0HDJNZR6,$DJNZR5,D1RET$include(Init_Device.inc);初始设置子程序文件包含伪指令END加快LED循环移位点亮的速度。(删除几个延迟指令!)Sinclude(C8051F020.inc);C8051F02x系列单片机信息头文件包含伪指令LCALLIniJDevice;调用初始设置子程序MOVA,#07FH;赋初始值并在发光二极管上显示该数值MOVP3,ALOOP:CALLDELAYCALLDELAYRRA;A存放器内容右移1位并送发光二极管显示MOVP3,AAJMPLOOP;无限循环DELAY:MOVR5,ttOH;延时子程序Dl:MOVR6,#0HDJNZR6,$DJNZR5,D1RETSinclude(Init_Dcvice.inc);初始设置子程序文件包含伪指令END1-2将例程二O-F的循环显示改为0-9的循环显示。Sinclude(C8051F020.inc)0RG0000HLJMPINITTAB:DBOCOH,0F9H,04H,OBOH,099H,092H,082H,0E8HDB080H,090H,088H,083H,0C6H,OAlH,086H,08EHINIT:LCALLInit_DeviceMOVRI,#OOHMOVA,RlM1N:MOVDPTR,#TAB显示段码MOVCA,+DPTRMOVP5ACALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYINCRlMOV,RlCJNEA,#OAH,MAIN.显示范围(F)SJMPINITDELAY:M0VR5,#0HDl:;段码0-7;段码8-F;操作数据初始值;读取与A中数值对应的;段码送并行口5显示;操作数据(RI)增1;检查操作数据是否大于;无限循环;延时子程序M0VR6,#0HDJNZR6,$DJNZR5,DlRETSinclude(Init_Device.inc)END实验2.中断控制及定时器/计数器操作训练2-1通过对例程5的程序进展修改和上机调试,改变原程序的功能。(1)将KEY2,KEY4的功能对调。(2)每次停下再启动后,更改发光二极管点亮的循环方向。Sinclude(C8051F020.inc);C8051F02x单片机信息头文件包含伪指令ORG1.JMP0000HINITIAL;主程序入口ORGORGORG0013H1.JMP0003H1.JMPOlOOHSTAR;外中断。服务程序入口,开场键(STAR)STOP;外中断1服务程序入口停顿键(SToP)INITIAL:MOVLCLLInit_Device;调用初始设置子程序MOVP3,#0FFH;熄灭全部发光二极管A,#0FFHMOVDPTR,#7F80HMOVXDPTR,A;去除数码管2(NUM2)显示MOVA,#0FEH;点亮发光二极管的初始数据MOVRl,tlH;发光二极管点亮位置初值MOVIP,#04HMOV;设置INTo(开场键STAR)为高优先级TCON,#05H;外中断采用边沿触发SETBEXl;INT1(停顿键STOP)开中断SETBEA;开放中断LOoP:AMOVP3,A;刷新发光二极管控制数据INCRl;发光二极管点亮位置计数值增1SETBEA;开放中断LCALLDELAYl;延时LCALLDELAYlLOOP: CLREA;关闭中断SJMPSTOP:MOVJNZCLRPOPCLRRETISTAR:CJNERl,#8,LOOP;发光二极管点亮位置计数值有效性检测MOVRl,#011;发光二极管点亮位置计数值等于8那么回01.OOP;无限次循环;停顿键的中断服务程序PUSHACC;保护A存放器内容MOV,Rl;读取发光二极管点亮位置计数值MOVDPTR,#TABMOVCA,A+DPTR;获取发光二极管点亮位置计数值的显示段码DPTR,#7F80HMOVXDPTR,A;发光二极管点亮位置计数值的显示数据送显示SETBEXl;INTO(启动键STAR)开中断$;等待重新启动条件一A=OMOVA,#0FFHMOVX©DPTR,A;去除数码管2(DS2)显示EXl;制止INTO中断(防止程序误动作)ACC;恢复A存放器内容IEO;去除INTl中断标志(防止程序误动作);中断返回;启动键的中断服务程序MOVA,#OOH;设置启动条件一A=OCLRIEl;去除INTO中断标志(防止程序误动作)RETI;中断返回TAB:DBOCOH,0F9H,0A4H,OBOH,099H;04段码DB092H,082H,0E8H,080H;58段码DELAYl:MOVR6,#0;延时子程序Dl:MOVR7,#0DJNZR7,$DJNZR6,D1RET$include(Init_Device.inc);初始设置子程序文件包含伪指令2-2修改例程6,将计数范围由O-F扩展至OO-FF(使用定时器/计时器0),并在2位数码管上用10进制数显示计数结果(00-99)。16进制-10进制方法Hex/10:商=10进制十位,余数=10进制个位Sinclude(C8051F020.inc)DP2EQU07F80HDPlEQU07F90H:增加一个DP_LEQU30HDP_HEQU31HMAIN:LCALLInit_DeviceMOVTMOD,#0000011OB;使计数器工作在模式2MOVA,#0MOVDP_L,:显示计数的低位MOVDP_H,A;显示计数高位CALLDISPLAYMOVTLO,#0使TLO的初值为0SETBTRO9启用定时器0LOOP:MOVA,TLOCJNEA,#100,LlA不等于100时,转到Ll显示MOVTLO,#05当A等于100时,TLO清零MOV,TLOLI:MOVB,#10DTVAB:将16进制数转化为10进制数MOVDP_L,BMOVB,#10DTVABMOVDP_H,B;将B显示为高位CALLDISPLAYSJMPLOOP;循环LOOPDISPLAY:MOVA,DP_LCALLDECODEMOVDPTR,#DPIMOVXDPTR,AMOVA,DPJICALLDECODEMOVDPTR,#DP2MOVXDPTR,AMOVP5,ARETDECODE:MOVDPTR,#TABMOVCA,A+DPTRRETTAB:DBOCOH,0E9H,04H,OBOH,099H,092H,082H,0F8HDB080H,090H,088H,083H,0C6H,OAlH,086H,08EHSinclude(Init_Device.inc)END实验三.串行数据传送操作程序调试练习(1)将发送1,2,3,4的ASC码改为发送A,B,C,D的ASC码$include(C8051F020.inc)NUM2EQU07E80H;NUM2地址NUM3EQU07F90H;NUM3地址NUM4EQU07F0H;NUM4地址NUM5EQU07FB0H;NUM5地址TTM_LEQUOFDH;TC1低字节计数值TIM_HEQUOFDH;T/C1高字节计数值REC_BUFOEQU32H;数据接收缓冲器0RECBUF1EQU33H;数据接收缓冲器1REC_BUF2EQU34H;数据接收缓冲器2FLAGBITOlH;数据发送完成标志ORGOOOOHLJMPMAIN;转主程序ORG0023HLJMPRECE;转串行通信中断程序MAIN:IcallInitDeviceMOV,#0FFHMOVP5,A;去除数码管NUMl的显示MOVDPTR,#NiJM2MOVXDPT

    注意事项

    本文(北京工业大学8051单片机实验报告.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

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

    收起
    展开