单片机实验报告2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机实验报告2
实
验
报
告
实验课程:单片机原理及应用
实验名称:实验二——指示灯/开关控制器
班级:应用物理12-1学号:2012305384 姓名:郑再先总学时: 48 教师:李虎成绩:
实验日期:2015年05月04日
一、实验目的
学习汇编語言指令系统的编程与调试方法
二、实验内容
1、参照教材图A.19完成实验二电路原理图的绘制;
2、根据图A.20的程序流程图编写汇编语言程序;
3、利用ISIS的汇编工具查找并修正程序的语法错误和逻辑错误;
4、观察仿真结果,完成实验报告。
三、实验要求
实验报告应包含如下内容:1、完成的电路原理图,要求说明P2口控制LED 亮灭和P1口读取开关状态的工作原理;2、编写的汇编源程序,要求源程序中含有能说明语句功能的注释区段和至少2条伪指令;3、汇编程序的调试过程,要求简述使用的调试方法,展示调试过程主要截图;4、实现的仿真运行效果,要求提交3~4幅运行截图;5、实验小结,说明遇到的主要问题或实验2体会等。
实验报告的电子邮件主题及存盘文件名的格式为:2005041220马晓明实验2,应采用2003或2007版word文档格式。
1、电路原理图
图1 实验原理图
P1口读取开关状态的工作原理:通过P1的读引脚功能来实现,由于P1口内设上拉电阻,在开关闭合前读取高电平,经过三态门在P1.n输出高电平。当开关闭合时,由于与地面相连,P1读取低电平,经过三态门在P1.n输出低电平。
P1口输出工作原理:单片机执行写P1,#data时,数据data经过内部总线送入锁存器储存。当数据为,则该位锁存器输出Q=1,则非Q为0,场效应管截止,从而在引脚P1.n上输出高电平;反之,如果数据为0,则Q=1,非Q为0,场效应管导通,引脚P1.n上输出低电平。
P2口控制LED灯的原理也是通过P2口的输出原理实现的,程序不断把P1的内容传递给P2。当给P1口赋初值0或开关闭合时,P1.n输出0,P2口读取0,在引脚P2.n上输出低电平,由原理图中LED的摆放方式知LED灯低电平导通。同理当给P1口赋初值#FFH或开关断开时,P1.n 输出1,P2口读取1,在引脚P2.n上输出高电平,LED灯截止,灯灭。2
3、程序调试方法
(一)源文件创建与编译
(1)建立新的程序文件
单击菜单栏“源代码”—“添加/删除源文件”选项,弹出“添加/移除源代码”对话框。在“代码生成工具”下拉框内部选择“ASEM51”选项。单击“新建”按钮,在适当文件目录下输入待建立程序的文件名(如text),核实文件类型为*ASM。单击“打开”按钮,回应创建新文件提示后,系统弹出确认对话框。单击“确认”按钮,在菜单“源代码”下可看到类似“1.text.ASM”的文件名,单击该文件名后可打开一个空白的文本文件。
(2)打开已有城区文件
如需对已经保存的程序文件进行处理,可单击添加/删除源代码对话框的“源代码文件名”下拉框,找到已存在的程序文件名,单击“确定”按钮便可打开使用。
(3)编译源程序
程序文件录入后或编辑后,单击菜单“源文件”—“全部编译”选项,待后台编译结束后,可弹出结果对话框。如果存在错误,提示框会指出错误存在的原因。如果没有错误,提示框将报告编译通过。
(二)逻辑错误检测
说明:源程序对P2赋值#0,在CPU寄存器的P0下显示“00”,在特殊功能寄存器的A0中黄色框标注的首位显示当前状态“00”。
说明:源程序对P2赋值#FFH,在CPU寄存器的P0下显示“FF”,在特殊功能寄存器的A0中黄色框标注的首位显示当前状态“FF”。
4、仿真运行效果
说明:运行刚开始,P2口处开关全部断开,P1口处的8个LED灯连续闪烁三次。
说明:LED三次闪烁结束后,闭合所有开关,所有的LED灯都亮
说明:分别闭合P1.1,P1.3,P1.5,P1.7处的开关,在P2口处对应
的LED灯依次亮起。
说明:在截图三的操作基础上,断开P1.1和P1.3的开关,P2口对应的D2和D4熄灭。
由以上截图可以确定,本次试验达到了预期的试验运行结果。在开始运行之后,所有LED灯连续闪烁三次,在此过程中灯的亮灭不受P1口开关控制。三次闪烁结束后,灯的状态与其相对应的P2口开关的状态有关(开关闭合灯亮,开关断开灯灭)。
5、实验小结
通过这次上机单片机实验进一步加深了我对单片机的理解,在电脑ISIS程序上画实验原理图的能力得到了提高,能够更加准确和快速的画出原件和连接电子元件,加深了对电子元件的理解,比如LED 灯的工作原理。也使我更加熟悉这个程序了,比如如何编译源程序,如何模拟调试过程,合理的利用调试工具加快了源程序逻辑性错误的
查找,感觉这事程序调试是我新学到的一项很有用的技能,调试中发现我编写的程序有些错误并加以改正了,看来我的编程能力还不足,我会更加认真的学习的。