单片机原理实验报告 (格式)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成都工业学院实验报告
评定成绩:评定教师:
课程名称:单片机原理与应用实验类型:验证性
实验项目名称:实验二:基本的输入输出
学生姓名:薛佳伟专业:电子信息工程学号:1603013135 同组学生姓名:谢志宏指导老师:曾一江,袁曦
实验地点:2209 实验日期:2018 年11 月1 日
一、实验目的和要求
进一步熟悉Keil软件的单步和断点的调试方法,熟悉proteus软件的仿真环境,掌握用proteus软件绘制原理图,加载程序进行仿真的基本方法;熟悉片内I/O查询方式输入输出的仿真输出编程方法及无条件指令LJMP与SJMP的应用,完成片内I/O口查询方式输入输出的仿真调试。
二、实验内容和原理
采用查询方式判断SU1开关是否闭合,如果开关闭合,采用循环程序控制方式控制4个灯
轮流点亮,延时方式采用软件延时。
三、主要仪器设备
计算机一台,KEIL仿真软件,Proteus仿真软件,单片机开发板一个。
四、实验步骤
(一)建立设置工程,保存文件
使用keil软件工程建立,输入程序并保存工程SY3.Uv2及SY3.ASM的文件,并对工程进行设置
(二)编译,链接
编译,链接程序,修改编译错误,并生成SY3.HEX文件用于Protues仿真
(三)调用延时程序
将断点设在RET处,设置PC=0100H点击运行,看程序从0100H是否能执行到断点RET 处
(四)调试主程序
1.调试前段程序
调试时,先将“断点”设在LOOP1处,然后按复位按钮使单片机”复位“,程序从0000H 开始执行,看开关为“0”时程序是否停在LOOP1处,若不是,则用单步方式细调。
在调试P0~P3端口时,可选择打开P0~P3口的监视窗口。
2.调试后一段程序
第一步先检查调用指令是否正常。检查调用指令时,将“断点”设在标号DL Y即0100H
处,单击复位键,设置P1.0=0,单击“运行”从0000H开始,看是否能运行到0100H。若能则正常。
2
五、实验结果与分析
编译结果
仿真结果
程序开始运行后,四个黄色的LED灯,轮流点亮
实物板正常工作情况
(2、思考题)
1):主程序中的SETB P3.2 和SETB C 有何用?
SETB P3.2 是设置开关的I/O口为高电平,其意义等效为开关未接通,以方便实验目的(即开关为低电平是灯亮。)
SETB C ,C是位操作,当P1端口做循环时,是带进位的循环,当C(即进位端)为高电平时才能保证循环不会出错,(即后面会判断进位端的电平信号,控制循环。)。
2):若要求4个LED灯轮流点亮后全亮,然后在开始第二轮轮流点亮,程序该如何修改?修改后运行程序,检查结果。
ORG 0000H
SETB P3.2
W AIT: MOV C,P3.2
JC W AIT
LOOP1:MOV A,#0EFH
LOOP2:MOV P1,A
LCALL DLY
SETB C
RLC A
JC LOOP2
LJMP LOOP3
LOOP3:MOV A,#00H
MOV P1,A
LJMP LOOP1
ORG 0100H
DLY: MOV R6,#0FH
DLY1: MOV R5,#0FFH
DLY2: MOV R4,#0FFH
DLY3: DJNZ R4,DLY3
DJNZ R5,DLY2
DJNZ R6,DLY1
RET
END
结果:
六、讨论和心得
本次实验我学到了很多,熟练掌握了软件的使用,编程调试画图以及仿真运行,中间遇到很多问题不过都一一解决,最终让板子亮了起来。