没有合适的资源?快使用搜索试试~ 我知道了~
北工大8051单片机实验报告.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 72 浏览量
2022-11-10
06:00:49
上传
评论
收藏 673KB PDF 举报
温馨提示
试读
21页
。。。
资源推荐
资源详情
资源评论
北京工业大学
8051 单片机实验
实验报告
学号:
姓名:
指导教师:
2017 年 10 月
目录
目录可以使用 Word 的目录自动生成功能生成。
引用->目录(或者更新目录),使用缺省三级即可。
第一单元 单片机程序调试环境使用及并行数据传送操
作训练
修改例程一的源程序:
(1) 将 A 寄存器的初值改为 80H(正逻辑,数据位为 1 表示发光二
极管点亮),再对源程序进行简单修改,使程序运行后发光二极
管点亮情况与修改前相同。
将 LED 向左循环移位点亮改为向右循环移位点亮。
加快 LED 循环移位点亮速度。
(2)
(3)
将例程二 0-F 的循环显示改为 0-9 的循环显示
实验过程
修改部分用粗体显示
1.1
(1)修改后的源程序:
$include (C8051F020.inc) ;C8051F02x 系列单片机信息头文件包含伪指令
LCALL Init_Device ;调用初始设置子程序
MOV A,#080H ;赋初始值并在发光二极管上显示该数值
CPL A ;将 A 内容按逻辑取反
MOV P3,A
LOOP: CALL DELAY
CALL DELAY
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) ;初始设置子程序文件包含伪指令
END
(2)修改后的源程序:
$include (C8051F020.inc) ;C8051F02x 系列单片机信息头文件包含伪指令
LCALL Init_Device ;调用初始设置子程序
MOV A,#07FH ;赋初始值并在发光二极管上显示该数值
MOV P3,A
LOOP: CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
RL A ;A
MOV P3,A
AJMP LOOP
DELAY: MOV R5,#0H ;
D1: MOV R6,#0H
DJNZ R6,$
DJNZ R5,D1
RET
$include (Init_Device.inc)
END
(3)修改后的源程序:
$include (C8051F020.inc) ;C8051F02x
LCALL Init_Device
MOV A,#07FH ;
MOV P3,A
LOOP: CALL DELAY
CALL DELAY ;
RR A ;A
MOV P3,A
AJMP LOOP
DELAY: MOV R5,#0H ;
D1: MOV R6,#0H
DJNZ R6,$
DJNZ R5,D1
RET
$include (Init_Device.inc)
END
寄存器内容左移 1 位并送发光二极管显示
无限循环
延时子程序
;初始设置子程序文件包含伪指令
系列单片机信息头文件包含伪指令
;调用初始设置子程序
赋初始值并在发光二极管上显示该数值
删除部分延时指令
寄存器内容右移 1 位并送发光二极管显示
无限循环
延时子程序
;初始设置子程序文件包含伪指令
;
;
1.2 修改后的源程序:
$include (C8051F020.inc) ;C8051F02x 系列单片机信息头文件包含伪指令
ORG 0000H
LJMP INIT
TAB:
DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H ; 段码 0-7
DB 080H,090H,088H,083H,0C6H,0A1H,086H,08EH ; 段码 8-F
INIT: LCALL Init_Device ;调试初始设置子程序
INIT1: MOV R1,#00H ;操作数据初始值
MOV A,R1
MAIN: MOV DPTR,#TAB ;读取与 A 中数值对应的显示段码
MOVC A,@A+DPTR
MOV P5,A ;段码送并行口 5 显示
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
INC R1 ;操作数据(R1)增 1
MOV A,R1
CJNE A,#0AH,MAIN ;检查操作数据是否大于显示范围(9)
SJMP INIT ;无限循环
DELAY: MOV R5,#0H ;延时子程序
D1: MOV R6,#0H
DJNZ R6,$
DJNZ R5,D1
RET
$include (Init_Device.inc) ;初始设置子程序文件包含伪指令
END
实验总结与心得体会
第一次上机实验,比较简单,程序段也很短比较容易读懂。第一题的第一问,
原程序位 07FH,即 01111111,修改后为 80H,即 10000000,显然是由各位取反
可以得到,因此在初值修改后加了一句 CPL A 对 A 地址数据取反就解决问题
剩余20页未读,继续阅读
资源评论
春哥111
- 粉丝: 1w+
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功