北工大-51单片机实验报告╮(╯▽╰)╭

上传人:lil****ar 文档编号:281882895 上传时间:2022-04-25 格式:DOCX 页数:20 大小:33.93KB
返回 下载 相关 举报
北工大-51单片机实验报告╮(╯▽╰)╭_第1页
第1页 / 共20页
北工大-51单片机实验报告╮(╯▽╰)╭_第2页
第2页 / 共20页
北工大-51单片机实验报告╮(╯▽╰)╭_第3页
第3页 / 共20页
北工大-51单片机实验报告╮(╯▽╰)╭_第4页
第4页 / 共20页
北工大-51单片机实验报告╮(╯▽╰)╭_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《北工大-51单片机实验报告╮(╯▽╰)╭》由会员分享,可在线阅读,更多相关《北工大-51单片机实验报告╮(╯▽╰)╭(20页珍藏版)》请在金锄头文库上搜索。

1、8051单片机实验报告专业:电子科学与技术 姓名: 赵富杰 学号: 13023209 指导教师: 金冬月 目录第一单元 单片机程序调试环境使用及并行数据传送操作训练21-1修改例程一的源程序:2(1)将A寄存器的初值改为80H(正逻辑,数据位为1表示发光二极管点亮),再对源程序进行简单修改,使程序运行后发光二极管点亮情况与修改前相同。2(2)将LED向左循环移位点亮改为向右循环移位点亮3(3)加快LED循环移位点亮的速度。31-2将例程二0-F的循环显示改为0-9的循环显示。4第二单元 中断控制及定时器/计数器操作训练62-1通过对例程5的程序进行修改和上机调试,改变原程序的功能。6(1)将K

2、EY2,KEY4的功能对调。6(2)每次停下再启动后,更改发光二极管点亮的循环方向。62-2修改例程6,8第三单元 串行数据传送操作程序调试练习103-1通过对例程8的程序进行修改和上几条是,改变原程序的功能10(1)将发送1,2,3,4的ASC码改为发送A,B,C,D的ASC码10(2)将第二字节和第三字节互换位置15第一单元 单片机程序调试环境使用及并行数据传送操作训练1-1修改例程一的源程序:(1)将A寄存器的初值改为80H(正逻辑,数据位为1表示发光二极管点亮),再对源程序进行简单修改,使程序运行后发光二极管点亮情况与修改前相同。$include (C8051F020.inc) ;C8

3、051F02x系列单片机信息头文件包含伪指令 LCALL Init_Device ;调用初始设置子程序 MOV A,#080H ;赋初始值并在发光二极管上显示该数值 DEC A MOV P3,ALOOP: CALL DELAY CALL DELAY CALL DELAY CALL DELAY CALL DELAY RR A ;A寄存器内容右移1位并送发光二极管显示 MOV P3,A AJMP LOOP ;无限循环DELAY: MOV R5,#0H ;延时子程序D1: MOV R6,#0H DJNZ R6,$ DJNZ R5,D1 RET$include (Init_Device.inc);初始

4、设置子程序文件包含伪指令 END(2)将LED向左循环移位点亮改为向右循环移位点亮。 $include (C8051F020.inc) ;C8051F02x系列单片机信息头文件包含伪指令 LCALL Init_Device ;调用初始设置子程序 MOV A,#07FH ;赋初始值并在发光二极管上显示该数值 MOV P3,ALOOP: CALL DELAY CALL DELAY CALL DELAY CALL DELAY CALL DELAY RL A ;A寄存器内容右移1位并送发光二极管显示 MOV P3,A AJMP LOOP ;无限循环DELAY: MOV R5,#0H ;延时子程序D1:

5、 MOV R6,#0H DJNZ R6,$ DJNZ R5,D1 RET$include (Init_Device.inc) ;初始设置子程序文件包含伪指令 END(3)加快LED循环移位点亮的速度。删除几个延迟指令$include (C8051F020.inc) ;C8051F02x系列单片机信息头文件包含伪指令 LCALL Init_Device ;调用初始设置子程序 MOV A,#07FH ;赋初始值并在发光二极管上显示该数值 MOV P3,ALOOP: CALL DELAY CALL DELAY RR A ;A寄存器内容右移1位并送发光二极管显示 MOV P3,A AJMP LOOP

6、;无限循环DELAY: MOV R5,#0H ;延时子程序D1: MOV R6,#0H DJNZ R6,$ DJNZ R5,D1 RET$include (Init_Device.inc) ;初始设置子程序文件包含伪指令 END1-2将例程二0-F的循环显示改为0-9的循环显示。$include (C8051F020.inc)ORG 0000HLJMP INITTAB:DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H; 段码0-7DB 080H,090H,088H,083H,0C6H,0A1H,086H,08EH; 段码8-FINIT: LCALL Init

7、_Device MOV R1,#00H;操作数据初始值MOV A,R1MAIN: MOV DPTR,#TAB;读取与A中数值对应的显示段码MOVC A,A+DPTRMOV P5A;段码送并行口5显示CALL DELAYCALL DELAY CALL DELAYCALL DELAYCALL DELAY CALL DELAYCALL DELAY CALL DELAYCALL DELAY CALL DELAYINC R1 ;操作数据(R1)增1MOV A,R1CJNE A,#0AH,MAIN.;检查操作数据是否大于显示范围(F)SJMP INIT;无限循环DELAY: MOV R5,#0H;延时子程

8、序D1: MOV R6,#0HDJNZ R6,$DJNZ R5,D1RET$include (Init_Device.inc) END第二单元 中断控制及定时器/计数器操作训练2-1通过对例程5的程序进行修改和上机调试,改变原程序的功能。(1)将KEY2,KEY4的功能对调。将ORG 0003H改为0013H,将ORG 0013H改为0003H;将MOV IP,#01H改为MOV IP,#04H;将SETB EX1改为SETB EX0,将SETB EX0改为SETB EX1,将CLR EX0改为CLR EX1;将CLR IE1改为CLR IE0,将CLR IE0改为CLR IE1;(2)每次停

9、下再启动后,更改发光二极管点亮的循环方向。$include (C8051F020.inc) ;C8051F02x单片机信息头文件包含伪指令 ORG 0000H LJMP INITIAL ;主程序入口 ORG 0013H LJMP STAR ;外中断0服务程序入口,开始键(STAR) ORG 0003H LJMP STOP ;外中断1服务程序入口 停止键(STOP) ORG 0100HINITIAL: LCALL Init_Device ;调用初始设置子程序 MOV P3,#0FFH ;熄灭全部发光二极管 MOV A,#0FFH MOV DPTR,#7F80H MOVX DPTR,A ;清除数码

10、管2(NUM2)显示 MOV A,#0FEH ;点亮发光二极管的初始数据 MOV R1,#1H ;发光二极管点亮位置初值 MOV IP,#04H ;设置INT0(开始键STAR)为高优先级 MOV TCON,#05H ;外中断采用边沿触发SETB EX1 ;INT1(停止键STOP)开中断 SETB EA ;开放中断LOOP: LOOP: CLR EA;关闭中断 RL A MOV P3,A;刷新发光二极管控制数据 INC R1;发光二极管点亮位置计数值增1 SETB EA;开放中断 LCALL DELAY1 ;延时 LCALL DELAY1 CJNE R1,#8,LOOP ;发光二极管点亮位置

11、计数值有效性检测 MOV R1,#0H ;发光二极管点亮位置计数值等于8则回0 SJMP LOOP ;无限次循环;停止键的中断服务程序STOP: PUSH ACC;保护A寄存器内容 MOV A,R1;读取发光二极管点亮位置计数值 MOV DPTR,#TAB MOVC A,A+DPTR;获取发光二极管点亮位置计数值的显示段码 MOV DPTR,#7F80H MOVX DPTR,A;发光二极管点亮位置计数值的显示数据送显示 SETB EX1 ;INT0(启动键STAR)开中断 JNZ $;等待重新启动条件-A=0 MOV A,#0FFH MOVX DPTR,A ;清除数码管2(DS2)显示 CLR EX1 ;禁止INT0中断(避免程序误动作)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号