单片机实验 - 指示灯开关控制器
更新时间:2024-03-29 05:21:01 阅读量: 综合文库 文档下载
- 单片机实验报告总结推荐度:
- 相关推荐
中国石油大学(北京)
实验课程:实验名称:
实 验 报 告
单片机原理及应用 实验二—— 指示灯/开关控制器 一、 实验目的
学习汇编語言指令系统的编程与调试方法
二、 实验内容
1、参照教材图A.19完成实验二电路原理图的绘制; 2、根据图A.20的程序流程图编写汇编语言程序;
3、利用ISIS的汇编工具查找并修正程序的语法错误和逻辑错误; 4、观察仿真结果,完成实验报告。
三、 实验要求
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灯截止,灯灭。
图1 实验原理电路图
2、汇编源程序
图2 汇编源程序
3、程序调试过程
1.源文件创建与编译 (1)建立新的程序文件
单击菜单栏“源代码”—“添加/删除源文件”选项,弹出“添加/移除源代码”对话框。在“代码生成工具”下拉框内部选择“ASEM51”选项。单击“新建”按钮,在适当文件目录下输入待建立程序的文件名(如text),核实文件类型为*ASM。单击“打开”按钮,回应创建新文件提示后,系统弹出确认对话框。单击“确认”按钮,在菜单“源代码”下可看到类似“1.text.ASM”的文件名,单击该文件名后可打开一个空白的文本文件。
(2)打开已有城区文件
如需对已经保存的程序文件进行处理,可单击添加/删除源代码对话框的“源代码文件名”下拉框,找到已存在的程序文件名,单击“确定”按钮便可打开使用。 (3)编译源程序
程序文件录入后或编辑后,单击菜单“源文件”—“全部编译”选项,待后台编译结束后,可弹出结果对话框。如果存在错误,提示框会指出错误存在的原因。如果没有错误,提示框将报告编译通过。
图3 汇编程序调试
说明:本次汇编程序调试并非一次成功,第一次调试时程序出现的错误较多,但立刻意识到源程序中可能存在非英文的冒号,逗号或分号。在认真改正之后,再次调试程序,依旧出现一个错误,根据对话框中提示“发现了未定义的符号”,经过检查发现错将源代码(见图2)中第16行的“DEL1”写成了“DLE1”。再次调试,出现图3所示调试成功的对话框。 2.逻辑错误检测
图 4 运行状态图一
说明:源程序对P2赋值#0,在CPU寄存器的P0下显示“00”,在特殊功能寄存器的A0中黄色框标注的首位显示当前状态“00”。
图 5 运行状态图二
说明:源程序对P2赋值#FFH,在CPU寄存器的P0下显示“FF”,在特殊功能寄存器的A0中黄色框标注的首位显示当前状态“FF”。 经过反复观察运行过程,并未发现逻辑错误。
4、仿真运行效果
图6 运行截图一
说明:运行刚开始,P2口处开关全部断开,P1口处的8个LED灯连续闪烁三次。
图7 运行截图二
说明:LED三次闪烁结束后,仅闭合P1.0处开关,仅P2.0处的LED灯亮。
图8 运行截图三
说明:分别闭合P1.0~P1.4处的开关,在P2口处,对应的LED灯依次亮起。
图9 运行截图四
说明:在截图三的操作基础上,断开P1.1和P1.3的开关,P2口对应的D2和D4熄灭。 由以上截图可以确定,本次试验达到了预期的试验运行结果。在开始运行之后,所有LED灯连续闪烁三次,在此过程中灯的亮灭不受P1口开关控制。三次闪烁结束后,灯的状态与其相对应的P2口开关的状态有关(开关闭合灯亮,开关断开灯灭)。
5、实验小结
本次是实验是在学过汇编语言后的第一次实战演习,由于实验一的基础,本次实验在绘制实验原理图的过程中并未出现大问题。此外,还学会了一种自动递增产生标注的方式,提高了标号的效率。绘制电路时,需要注意LED的放置方式,摆放状态的不同会影响导通条件。
本次实验最重要的内容是源程序的书写,源代码的编译,加载和运行。本次实验的源程序是根据老师所给流程图的步骤来书写的,由于汇编程序的指令较多,具体的含义还要参照表格才能看懂,写程序的过程还很费精力的。当然,问题的主要原因还是因为课余下的功夫不够。在进行程序编译时,我通过不断的改正和调试,进一步认识到了汇编语言的形式。与此同时,在调试可执行文件时,将源代码,CPU寄存器,SFR的相关状态对话框同时调出,使我更加直观地了解到51单片机在执行指令时,内部的状态变化。
总体来说,本次实验还是比较顺利的。实验的过程,让我更直观的认识到单片机的工作原理,增添了对学习单片机的兴趣和信心。
正在阅读:
单片机实验 - 指示灯开关控制器03-29
设备安装工程施工图预算08-28
初中语法&短语讲解10-28
滥竽充数续写三年级06-20
学习雷锋精神主题班会05-11
右图为2017年7月28日伦敦奥运会开幕式第二章《混乱时代》中的一个02-09
脚手架费用分摊摊销方法01-16
美丽如画的江心屿作文450字06-22
供应商调查评估表(空白)106-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 指示灯
- 单片机
- 控制器
- 开关
- 实验