第一篇:单片机综合实验报告格式
(在所做过的实验内容里挑选一个自己最有收获,最有感想的实验内容)
综合实验报告标题(可与实验名称不同)
一、实验目的和要求。
二、实验仪器设备。
三、实验设计及调试:
(一)实验内容。
(二)实验电路:画出与实验内容有关的简单实验电路。
(三)实验设计及调试步骤:
(1)对实验内容和实验电路进行分析,理出完成实验的设计思路。(2)列出程序设计所需的特殊标志位、堆栈sp、内部ram、工作寄存器等资源的分配列表,分配列表时注意考虑资源在程序执行过程可能会出现冲突的问题。
(3)画出程序设计流程图,包括主程序和各子程序流程图。
(4)根据(2)、(3)的内容写出实验程序。
(5)调试程序(可以使用模拟仿真器)。
a、根据程序确定调试目的,即调试时所需观察的内容结果。
b、根据各调试目的分别选择调试所需的方法,如单步、断点等命令,分别列出各调试方法中所需要关注记录的内容。
c、调试程序,按各种调试方法记录相应的内容。
d、分析调试记录的内容和结果,找出程序中可能出错的地方,然后修改程序,继续调试、记录、分析,直到调试成功。
(四)实验调试过程中所遇到的问题、解决问题的思路和解决的方法。
四、实验后的经验教训总结。
第二篇:单片机交通灯综合实验报告
河 北 工 业 大 学
实
验
报
告
学
院:
专
业:
班
级:
姓
名:
学
号:
实验课程:单片机应用系统设计开发入门 指导教师:
实验名称:
交通信号灯控制实验
实验时间:
202_ 年
月 23 日
202_ 年 5 月 23 日
一
实验要求
实验目的及实验内容要求 实验目的:1.熟悉外部中断源的扩展方法。
2.初步掌握单片机综合应用系统设计。
3.掌握用 Proteus 调试汇编源程序的方法。
实验内容要求:
用发光二极管模拟交通信号灯,用逻辑电平开关模拟控制开关,设计一个交通信号灯控制系统。设计要求如下:
(1)A 车道与 B 车道交叉组成十字路口,A 是主道,B 是支道;正常情况下,A、B 两车道轮流放行。具体放行时间和要求如下:
(2)A 车道放行 50s,其中绿灯常亮 44s,绿灯闪烁 3s(用于警告),黄灯常亮 3s(用于警告)。
(3)B 车道放行 30s,其中绿灯常亮 24s,绿灯闪烁 3s(用于警告),黄灯常亮 3s(用于警告)。
在交通繁忙时,交通信号灯控制系统应有手控开关,可人为地改变信号灯的状态,以缓解交通拥挤状况。控制要求如下:
(1)在 B 车道放行期间,若 A 车道有车而 B 车道无车,按下开关使 A 车道放行 15s。
(2)在 A 车道放行期间,若 B 车道有车而 A 车道无车,按下开关使 B 车道放行 15s。
(3)有紧急车辆通过时,按下开关使 A、B 车道均为红灯,禁行 15s。
实验设备或运行软件平台 完成本实验需要使用到单片机仿真软件 Proteus8,该软件是英国 Lab Center Electronics 公司出版的 EDA 工具软件,是目前比较好的仿真单片机及外围器件的工具。从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台。在编译方面,它也支持 IAR、Keil、MATLAB 等多种编译器。其具有的基本功能特点为:1.原理布图。2.PCB 自动或人工布线。3.SPICE 电路仿真。革命性的特点是 1.互动的电路仿真。
2.仿真处理器及其外围电路。
二
实验内容及过程
实验设计及分析(或者实验程序)
实验原理图如下所示:
交通信号灯模拟控制系统程序流程图如下图所示:
主程序
一道有车另一道无车时
紧急车辆通过时 的中断服务程序的中断服务程序
A
绿灯闪、B
红灯延时
s
A
红灯、B
绿灯闪动延
s
A
红灯、B
绿灯延时
s
A
绿灯、B
红灯延时
s
A
红灯、B
黄灯延时
s
A
黄灯、B
红灯延时
s
初始化
开中断
保护现场
关中断
A
道有车
B
道有车
A
红灯、B
绿灯延时
s
A
绿灯、B
红灯延时
s
关中断
恢复现场
开中断
返回
中断响应
保护现场
A
红灯、B
红灯延时
s
恢复现场
返回
N
N
Y
Y
中断响应
开始
实验程序及程序分析如下:
ORG
0000H LJMP
MAIN ;LJMP,转向主程序 ORG
0003H LJMP
INT00 ;转向紧急车辆中断服务程序 ORG
0013H LJMP
INT11 ;转向有车车道放行中断服务 ORG
0030H MAIN : SETB
PX0
;置外部中断 0 为高优先级中断 MOV
TCON,#00H ;置外部中断 0、1 为电平触发 MOV
IE,#85H ;开 CPU 中断、外部中断 0、1 中断 LOOP:
;A 道绿灯亮;B 红灯亮 MOV
P1,#0F3H MOV
R1,#88 ;44s 延时循环次数 AP1:
;调用 0.5s 延时子程序 DELAY LCALL
DELAY DJNZ
R1,AP1 ;44s 不到,继续循环(DJNZ RN,REL 是一条件转移指令,先将工作寄存器Rn 中的数减“1”,判断结果是否为“0”,不为“0”程序就跳转到行标为REL 的地方执行,否则,为“0”就不转移,继续执行下一条指令。)
MOV
R1,#6 ;3s 延时的循环次数(循环一次延时 0.5 秒。)
AP2:
;A 道绿灯闪烁 CPL
P1.2 LCALL
DELAY ;参考程序中缺少此句,若缺失会导致无法延时。
DJNZ
R1,AP2 ;3s 未到,继续循环 MOV
P1,#0F5H ;A 道黄灯亮,B 道红灯亮 MOV
R1,#6
AP3: LCALL
DELAY DJNZ
R1,AP3
;3s 未到,继续循环 MOV
P1,#0DEH ;A 道红灯亮,B 道绿灯亮 MOV
R1,#48
;延时循环 48 次
BP1: LCALL
DELAY
DJNZ
R1,BP1 ;24s 未到继续循环 MOV
R1,#6 BP2: CPL
P1.5 ;B 道绿灯闪烁 LCALL
DELAY DJNZ
R1,BP2 ;3s 未到,继续循环 MOV
P1,#0EEH;A 道红灯亮,B 道黄灯亮 MOV
R1,#6 BP3: LCALL
DELAY DJNZ
R1,BP3 ;3s 未到,继续循环 SJMP
LOOP ORG
0200H INT00:
保护 P1 口数据 PUSH
P1
;PUSH 入栈指令 MOV
P1,#0F6H
;A 道红灯亮;B 道红灯亮 MOV
R2,#30
;15 秒延时的循环次数 DELAY0: LCALL
DELAY DJNZ
R2,DELAY0
POP
P1
;恢复 P1 口数据 POP 是出栈指令 RETI
;返回主程序 ORG
0300H INT11: CLR
EA
;关中断 EA 为总中断 PUSH
P1
;保护现场 PUSH
04H PUSH
05H PUSH
06H SETB
EA
;开中断 JNB
P3.0,AP0 ;A 道无车,转向判断 B 道(JNB 比较转移指令。当 P3.0 是 0 时就转移执行 AP0,否则就顺序执行。)
MOV
P1,#0F3H;A 道绿灯亮,B 道红灯亮 SJMP
DEL1
;转向 15 秒延时程序 AP0: JNB
P3.1,EXIT ;B 道无车,退出中断
MOV
P1,#0DEH;A 道红灯亮,B 道绿灯亮 DEL1 : MOV
R3,#30 ;15s 延时的循环次数 NEXT : LCALL
DELAY DJNZ
R3,NEXT ;15 秒未到循环继续 EXIT : CLR
EA POP
06H
;恢复现场 POP
05H POP
04H POP
P1 SETB
EA RETI
;返回原程序 ORG
0350H DELAY : MOV
R4,#20;0.5 秒延时子程序参考程序中为#10,经实验发现只能延时 0.25s 故改为#20,以达到实验目的。
LP1 : MOV
R5,#50 LP2 : MOV
R6,#248 NOP LP3: DJNZ
R6,LP3 DJNZ
R5,LP2 DJNZ
R4,LP1 RET END
交通信号灯与控制管脚的对应关系如下:
控制状态
P1 口控制码
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
未用
未用
B 道
绿灯
B 道
黄灯
B 道
红灯
A 道
绿灯
A 道
黄灯
A 道
红灯
A 绿灯亮、B 红灯亮
F3H
0
0
A 黄灯亮、B 红灯亮
F5H
0
0
A 红灯亮、B 绿灯亮
DEH
0
0
A 红灯亮、B 黄灯亮
EEH
0
0
A 红灯亮、B 红灯亮
F6H
0
0
实验步骤及实验数据记 录 1.先接线按下表所示的管脚与 LED 或逻辑开关的对应关系接线。在 Proteus8 中原理图绘制界面中将接线接好。
管脚
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P3.0
P3.1
P3.3
P3.2
LED 或逻辑开关
L3
L1
L2
L7
L5
L6
K1
K2
K3
K8
控制对象
A 红灯
A 黄灯
A 绿灯
B 红灯
B 黄灯
B 绿灯
A 道
B 道
使有车车道放行低电平有效
紧急车辆放行低电平有效
高电平表示有车低电平表示无车
接线完成后如图所示:
2.输入程序,在 Proteus8 中 SourceCode 界面将程序输入完成后试运行保证程序正确。
出现编译成功后进行下一步。运行程序。
4.观察六只发光二极管的亮灭规律。
实验中六只发光二极管亮灭规律:(0 代表灭,1 代表亮,2 代表闪)
运行时间(s)
A 绿 A 黄 A 红 B 绿 B 黄 B 红 0 1 0 0 0 0 1 44 2 0 0 0 0 1 47 0 1 0 0 0 1 50 0 0 1 1 0 0 74 0 0 1 2 0 0 77 0 0 1 0 1 0 80 1 0 0 0 0 1 八十秒后开始重复 0-80 秒内的亮灭规律。
5.
部分连接图如图所示。
1)
在 A 红灯、B 绿灯亮时,先将 K1 拨至高电平(表示 A 道有车)、K2 拨至低电平(表示 B 道无车),再将 K3 拨至低电平使有车车道(A 道)放行,A 绿灯、B 红灯同时亮 5s 后返回原先状态。
对逻辑开关 K1、K2、K3 的操作对应于 SW2 开关,闭合 SW2 后,A 红灯灭,绿灯亮,B 绿灯灭,红灯亮。15s 后恢复回闭合开关前的的亮灯状态。
2)
在 A 绿灯、B 红灯亮时,先将 K1 拨至低电平(表示 A 道无车)、K2 拨至高电平(表示 B 道有车),再将 K3 拨至低电平使有车车道(B 道)放行,A 红灯、B 绿灯同时亮 5s 后返
回原先状态。
对逻辑开关 K1、K2、K3 的操作对应于 SW1 开关,闭合 SW1 后,A 绿灯灭,红灯亮,B 红灯灭,绿灯亮。15s 后恢复回闭合开关前的的亮灯状态。
(提示:K3 拨至低电平后,应在 5s 内改为高电平,否则,单片机可能将再一次响应中断。)
6.不论 A 道、B 道的信号灯处于什么状态,将 K8 拨至低电平后,A 红灯、B 红灯同时亮 20s后返回原先状态。(提示:K8 拨至低电平后,应在 20s 内改为高电平,否则,单片机可能将再一次响应中断。)
对逻辑开关 K8 的操作对应于 JINJI 开关,闭合 JINJI 后,A 只有红灯亮,B也只有红灯亮。20s 后恢复回闭合开关前的的亮灯状态。
实验数据分析 1.一道有车而另一道无车时,K3 拨至低电平即向单片机发出中断请求(低优先级别);若此时单片机正在执行主程序,会响应中断转入到相应的中断服务程序,先依次查询 A、B 车道的空闲状态,再去控制 A、B 车道的信号灯;若此时单片机正在执行紧急车辆通过时中断服务程序,单片机不会响应中断。
2.紧急车辆通过时,K8 拨至低电平即向单片机发出中断请求(高优先级别),不论单片机正在执行主程序还是一道有车而另一道无车时的中断服务程序,会响应中断转入到相应的中断服务程序。
3.在进行步骤 5 1)或 2)操作时,若在闭合开关后没有在 5s 内断开开关,则在 15 秒时无法按时恢复回闭合开关时的亮灯状态。
4.操作过程中发现,若操作 SW1 开关后亮灯状态已经发生改变,则在 15 秒内再操作 SW2开关则无法继续使亮灯状态改变。
三
总结与体会
实验任务完成情况 本实验完成情况良好。通过老师的精心指导、本人的不懈努力和同学的热心帮助,能够基本上完成所有实验内容,且在实验过程中对单片机的了解更加深入了。但也无法避免地遇到一些问题,比如对实验程序代码的理解不够深入,只停留在表面,且对 51 单片机的 111 条指令仍比较陌生,只能记住一些特别常用的。对于此我的做法是,在分析实验程序的过程中,一遇到不熟悉的指令就百度搜索一下加深印象。在反复的搜索过程中我也记住了不少指令。通过课程的学习,目前达到的水平是能够基本看懂实验程序,能够绘制简单原理图,但仍无法做到独立编写实验程序。
实验体会、收获、建议回答问题
通过对该实验的学习,本人也有了许多不小的收获。对于一位非电技专业的学生来说,我在学习单片机的过程中确实存在许多问题。老师讲的东西很多在课堂上都无法及时弄明白,必须要靠课余时间的学习。所以起初在做该实验的时候也是感觉苦难重重,觉得自己肯定是无法完成的,但我不想轻易放弃,将老师上用的课件反复查看,发现很多上课没有注意到的重要知识点,这让我的实验变得更加容易完成了许多。我觉得通过本次实验我的最大收获是学会了如何解决难题。首先要做的就是对自己有信心,相信自己一定能够完成。其次才是去认真解决问题。
第三篇:单片机综合实验报告格式
单片机综合实验报告格式
(在所做过的实验内容里挑选一个自己最有收获,最有感想的实验内容)
综合实验报告标题(可与实验名称不同)
一、实验目的和要求。
二、实验仪器设备。
三、实验设计及调试:
(一)实验内容。
(二)实验电路:画出与实验内容有关的简单实验电路。
(三)实验设计及调试步骤:(3)画出程序设计流程图,包括主程序和各子程序流程图。
(4)根据(2)、(3)的内容写出实验程序。
(5)调试程序(可以使用模拟仿真器)。
a、根据程序确定调试目的,即调试时所需观察的内容结果。
b、根据各调试目的分别选择调试所需的方法,如单步、断点等命令,分别列出各调试方法中所需要关注记录的内容。
c、调试程序,按各种调试方法记录相应的内容。
d、分析调试记录的内容和结果,找出程序中可能出错的地方,然后修改程序,继续调试、记录、分析,直到调试成功。
(四)实验调试过程中所遇到的问题、解决问题的思路和解决的方法。
四、实验后的经验教训总结。
第四篇:单片机实验报告
单片机实验报告
一、实验目的
1.熟练使用Keil、Protues两款软件 2.通过上机操作,增强个人动手实践能力 3.加深对理论知识的理解
4.培养运用汇编语言进行初步编写程序的能力
二、实验内容
1.将片外RAM3050-306FH中数据转移至片内70-8FH中。
要求:可以从Keil或Protues上看到RAM的数据转移结果。2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮。
要求:开发板或Prrotues演示
3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术。
要求:在Keil或Protues上看到数据转换结果。
4.各使用中断方式和查询方式设计一个方波发生器,频率为50HZ。
要求:Protues使软件间示波器显示方波。
三、实验程序
1.将片外RAM3050-306FH中数据转移至片内70-8FH中
ORG 0000H AJMP MAIN 上电,转向主程序
ORG 0030H 主程序入口
MAIN: MOV DPTR,#3050H 数据指针指向地址3050H MOV A,#04H 将立即数04H送A寄存器
MOV R0,#20H NEXT: MOVX @DPTR,A INC DPTR 数据指针DPTR自加一
DJNZ R0,NEXT 判断是否跳转到NEXT或继续向下执行
MOV DPTR,#3050H MOV R0,#70H MOV R2,#20H NEXT1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R2,NEXT1
SJMP $ 等待
END 2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮 ORG 0000H SJMP MAIN 上电,转向主程序
ORG 0003H 外部中断0向量入口
AJMP INSER ORG 0030H 主程序入口
MAIN: SETB EX0 SETB IT0
SETB EA CPUHERE: SJMP HERE ORG 0200H INSER: MOV R2,#08H MOV A,#01H NEXT: MOV P2,A LCALL DELAY RL A DJNZ R2,NEXT NEXT或继续向下执行
RETI DELAY: MOV R3,#0FFH DEL2: MOV R4,#0FFH DEL1: NOP
允许外部中断0中断 选择边沿触发方式 开中断 等待中断 设置循环次数 赋初值,设置高电平亮 将初值送往P2口 延时 左移一位
判断循环次数,是否跳转到中断返回 延时程序 DJNZ R4,DEL1 DJNZ R3,DEL2 RET END 3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术 ORG 0000H LJMP MAIN ORG 0030H主程序起始地址 MAIN: MOV 80H,#05H 将立即数50H转送内存单元80H MOV A,80H 将内存单元80H中的内容送寄存器A MOV DPTR,#TAB MOVC A,@A+DPTR A寄存器内容加指针偏移量后送A寄存器 MOV 80H,A RET TAB: DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H 4.1中断方式产生50HZ方波
ORG 0000H
AJMP MAIN
ORG 0030H 主程序入口 MAIN: MOV TMOD,#10H 设置定时器工作模式为模式1 MOV TH1,#0D8H 装入T1计数初值
MOV TL1,#0F0H
SETB ET1 开中断
SETB EA CPU开中断
SETB TR1 启动定时器T1 HERE: SJMP HERE 等待中断 ORG 001BH T1中断向量地址
CLR TF1 将TF1清零
CPL P2.0 P2.0取反输出
MOV TH1,#0D8H 重装初值
MOV TH0,#0F0H
RETI;中断返回
END 4.2 查询方式产生50HZ方波
ORG 0000H
AJMP MAIN
ORG 0030H 主程序入口
MAIN: MOV TMOD,#10H 设置定时器的工作模式为模式1 SETB TR1 启动定时器T1 LOOP: MOV TH1,#0D8H 装入T1计数初值
MOV TH0,#0F0H JNB TF1,$ T1没有溢出则等待
CLR TF1
产生溢出,清标志位
CPL P2.0 P2.0取反输出
SJMP LOOP 循环
END
四、实验结果截图
1.2
3.4.1
4.2
第五篇:单片机实验报告
实验
四、中断交通灯实验
林立强
1000850116
一、实验目的
1、了解MCS-51单片机的组成、中断原理,中断处理过程、外部中断的中断方式。
2、掌握中断响应及处理的编程方法。
二、实验原理
MCS-51的中断系统中有5个中断源:外部中断INTO,INT1,定时器/计数器TO、T1中断和串口UART中断,它们对应不同的中断矢量。如表:
IE是中断允许寄存器,其中EXO,ETO,EX1,ET1,ES分别是上述5个中断的允许控制位,EA位是中断总允许位,每个中断只有在相应中断允许且总中断也允许的情况下,才能得到中断响应。80XX51的5个中断都可以设为高低2个优先级,IP是中断优先级寄存器,其中PXO,PTO,PX1,PT1,PS位分别对应5个中断的优先级设置,置“1”时设为高优先级中断,为“0”时是低优先级中断。在有中断嵌套要求时,低优先级中断可被高优先级所中断。当同一级的中断同时到来时,先响应中断矢量排在前面的中断。
三、实验电路
电路原理图如下,所需元件为:AT89C51、SW-SPDT、LED-RED、LED-GREEN、LED-YELLOW、RES、TRAFFICLIGHTS
四、实验内容
参照实验电路,设计交通灯控制系统。模拟交通信号灯控制:一般情况下正常显示,东西-南北交替放行,各方向通行时间为30秒。有救护车或警车到达时,两个方向交通信号灯全为红色,以便让急救车或警车通过,设通行时间为10秒,之后交通恢复正常。用单次脉冲模拟急救车或警车申请外部中断。
1、在生成HEX文件后,用Proteus软件对电路图进行计算机仿真;
2、程序下载到单片机实验板上验证;(实验板数码管的驱动程序见附件)。
五、程序流程图
仿真图:
紧急情况:
源程序:
ORG 0000H
AJMP START
ORG 0023H //串口中断地址
AJMP SBR1
START:MOV TMOD,#00100000B
//定时器方式2
MOV TL1,#0FDH //9600bps/11.0592MHz
MOV TH1,#0FDH
SETB TR1
MOV SCON,#01100000B //方式1
MOV R0,#20H
MOV R1,#40H
ACALL SOUT
SJMP $
SBR1: JNB RI,SEND
ACALL SIN
SJMP NEXT SEND: ACALL SOUT NEXT: RETI
SOUT: MOV A,@R0
MOV C,P
CPL C
MOV ACC.7,C
INC R0
MOV SBUF,A
CLR TI
RET
SIN: MOV A,SBUF
MOV C,P
CPL C
ANL A,#7FH
MOV @R1,A
INC R1
CLR RI
RET
PLAY: MOV A,R7
MOV B,#10
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
// 0
A B C D E F
END