单片机实验报告【实用4篇】

网友 分享 时间:

【路引】由阿拉题库网美丽的网友为您整理分享的“单片机实验报告【实用4篇】”文档资料,以供您学习参考之用,希望这篇范文对您有所帮助,喜欢就复制下载支持吧!

单片机实验报告【第一篇】

《单片机原理及应用》

实 验 报 告

2017—2018学年第一学期

班级: 152 专业: 电子科学与技术 姓名: 子路 学号: 教师:

实验一:Keil C51

一、实验目的

1、熟悉Keil C51单片机应用开发系统

2、熟悉Keil C51的调试技巧

二、实验内容

1、安装好了Keil软件以后,我们打开它。打开以后界面如下:

2、我们先新建一个工程文件,点击“Project->New Project„”菜单,如下图:

3、选择工程文件要存放的路径 ,输入工程文件名 LED, 最后单击保存。

4、在弹出的对话框中选择 CPU 厂商及型号

5、选择好 Atmel 公司的 AT89S52 后 , 单击确定

6、在接着出现的对话框中选择“是”。

7、新建一个 C51 文件 , 单击左上角的 New File 如下图所示:

8、保存新建的文件,单击SAVE如下图:

9、在出现的对话框中输入保存文件名(注意后缀名必须为。C),再单击“保存”,如下图:

10、保存好后把此文件加入到工程中方法如下 : 用鼠标在 Source Group1 上单击右键 , 然后再单击 Add Files to Group ‘Source Group 1' 如下图:

11、选择要加入的文件 , 找到 后 , 单击 Add, 然后单击 Close

12、在编辑框里输入如下代码:

13、到此我们完成了工程项目的建立以及文件加入工程 , 现在我们开始编译工程如下图所示 : 我们先单击编译, 如果在错误与警告处看到 0 Error(s) 表示编译通过:

14、生成 。hex 烧写文件,先单击Options for Target,如图:

15、在下图中,我们单击 Output, 选中 Create HEX F。再单击“确定”

16、打开文件夹‘实验1’,查看是否生成了HEX文件。如果没有生成,在执行

一遍步骤10到步骤12,直到生成。

三、实验工具(软件、硬件等)

1、Keil

2、计算机

实验二:Proteus软件学习

一、实验目的

1、了解Proteus的基本功能

2、熟悉Proteus的设计环境Preoteus ISIS及第三方编译工具Keil

3、掌握Proteus中实现单片机系统设计与仿真的步骤与方法

二、实验内容

设计与仿真的开发过程

Proteus强大的单方机系统设计与仿真功能,使之成为单片机系统应用开发和改进手段之一。

开发的整个过程都是在计算机上完成的,其过程一般分为三步: 1) Proteus 电路设计:在ISIS平台上进行单片机系统电路设计、选择元器件、接插件、连接电路和电气现则检查等。

2) Proteus 源程序设计和生成目标代码文件:在ISIS 平台上或借助第三方编译工具进行单片机系统程序设计、编辑、汇编编译、代码级调试,最后生成目标代码文件(*hex)。

3)Proteus仿真:在ISIS平台上将目标代码文件加载到单片机系统中,由此实现系统实时交互与协同伤真。

三、实验工具(软件、硬件等)

1、载有Proteus的计算机一台

实验三:LED流水灯

一、实验目的

1、用Keil软件编写程序并利用开发板仿真

2、学习LED灯工作原理

二、实验内容

延时实现LED流水灯效果P2口八个灯作跑马灯。采用了寄存器存中间数。

三、实验工具(软件、硬件等) 1.载有Keil软件的计算机一台 2.开发板一套

四、实验结果及分析

实验四:静态数码管

一、实验目的

1、用Keil软件编写程序并利用开发板仿真

2、学习静态显示管工作原理

二、实验内容

静态数码管流动显示0~9

二、实验工具(软件、硬件等) 1.载有Keil软件的计算机一台 2.开发板一套

四、实验结果及分析

实验五:按键移位动态显示

一、实验目的

1、用Keil软件编写程序并利用开发板仿真

2、学习静态显示管工作原理

二、实验内容

静态显示管,按键不同显示不同

三、实验工具(软件、硬件等) 1.载有Keil软件的计算机一台 2.开发板一套

四、实验结果及分析

实验六:中断INT0+INT1

一、实验目的

1、用Keil软件编写程序并利用开发板仿真

2、学习中断INT0和INT1的工作原理

二、实验内容

试验数码管上显示外部中断计数,用单片机脚直接控制数码管和外部中断使用

三、实验工具(软件、硬件等) 1.载有Keil软件的计算机一台 2.开发板一套

四、实验结果及分析

单片机实验报告【第二篇】

单片机原理与应用实

学校:合肥工业大学

班级:计算机科学与技术

学号:

姓名:

验报告

第一章MC51 单片机原理及应用软件实验

实验1:系统认识实验

1. 实验目的

(1)了解ZY15MCU12BC2单片机实验开发装置的接线与安排。掌握实验箱内拨位开关KF,KC的使用方法。(2)通过实例程序的编辑、编译、链接及调试,熟悉Keil C51软件的使用方法和基本操作。(3)教育学生爱抚实验装置,养成良好的实验习惯。

2. 试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连。

(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境。(3)确认拨位开关KF的开关为A端,确认89C51处于仿真状态。(4)在uVision2开发平台上建立并编辑示例程序:

计算N个数求和程序。其中N个数分别放在片内RAM区50H到55H单元中,N=6,求和的结果放在片内RAM区03H(高位)和04H(低位)单元中。

题目:

1)32H+41H+01H+56H+11H+03H=? 2)895H+02H+02H+44H+48H+12H=?(5)编译连接源程序。

(6)在Keil uVision2主菜单窗口进入DEBUG调试环境,打开存储器窗口输入数据至片内RAM区50H到55H单元中,全速运行程序,并检查程序的运行结果,即观察在存储器窗口片内RAM区03H(高位)、04H(低位)单元中的数据是否正确。(7)实验结束,撤出接线,将一切整理复原。

4、实验源程序

ORG 0000H LJMP MAIN ORG 1000H MAIN: MOV R2,#06H MOV R3,#03H MOV R4,#04H MOV R0,#50H L1: MOV A,R4 ADD A,@R0 MOV R4,A INC R0 CLR A ADDC A,R3 MOV R3,A DJNZ R2,L1 END

5、实验结果截图

6、实验总结

这次试验,熟悉了单片机开发的基本流程,对于实验的两道题目 1)32H+41H+01H+56H+11H+03H=? 2)895H+02H+02H+44H+48H+12H=? 实验结果如上图所示50H~54H存放数据,第一道题计算出来是0x00DEH,第二道题目 计算出来是0x0137H,实验结果和预期相符,成功的完成了实验。这次试验对硬件开发有了基本的认识,特别是对于单片机的存储器有了进一步的认识,在程序中把数据放入RAM中,结果存放在R3和R4中,实验时不知道R3和R4的地 址,后来了解到R3和R4可以直接用他的地址03H和04H,这样进一步深化了书本上 的知识。另外通过这次试验,对于51单片机的几种寻址方式也有了具体的认识。总之,还是要多动手虽然程序不是自己写的,但是阅读理解了还是有点收获的。

实验六。数据排序实验

1. 实验目的

(1)理解并掌握排序程序的设计方法。(2)掌握减法指令的功能,并联系其使用。

(3)逐步提高调试程序的能力及编写程序的能力。

2. 试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连。

(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境。

(3)编写程序,实现从平台连续输入六个数,数码管将马上从小到大的顺序显示这六个数。要求被排序的数放在70H到7FH单元中。(4)编译连接源程序。

(5)调试程序,在存储器窗口输入被排序数放在70H到7FH单元中,全速运行程序,并检查程序员的运行结果,观察是否正确。

(5)若程序中出现错误,则可以采用单步分段调试,排除程序错误,直到正确为止。

4、实验源程序

MAIN:

LOP2:

LOP1:

LOP5:

ORG 0000H LJMP MAIN ORG 0030H MOV R2,#70H MOV R3,#71H MOV R4,#0FH ACALL LOP1 DJNZ R4,LOP2 LJMP LOP6 MOV A,R2 MOV R0,A MOV A,R3 MOV R1,A MOV A,@R0 CLR C SUBB A,@R1 JC LOP4 MOV A,@R0 XCH A,@R1

LOP4:

LOP6:

MOV @R0,A INC R1 INC R0 MOV A,@R0 CJNE

R1,#80H,LOP5 RET END 5.实验结果截图

6、实验总结

本次试验是在冒泡排序算法实现对70H~7FH中的数据进行排序,如上第一张图所示RAM中70H~7FH存放了数据,第二张图显示的是通过冒泡排序整理过的数据。成功完成了实验,收到了预期效果。

对于习惯了使用高级语言编程的我,看这些绕来绕去的汇编还是有些头大,觉得这个例子写的不太好,跳来跳去,程序层次不分明,可读性很差,冒泡不应该有内外两层吗,看书上有一个例子就写得很好,跟用高级语言写差不多,然而实验的这个好像是要考我们对各种跳转指令的了解,所以读起来晕头转向的。从另一方面来说,通过这次试验,我也熟悉了汇编的跳转与分支指令。另外,所以ORG 0000H

LJMP MAIN

ORG 0030H,这三句ljmp这句跳到了main,那么还要后面一句干嘛。不甚理解。

总之,这次实验让我了解了各种分支与跳转,还是有所收获的。

第二章MC51 单片机原理及应用硬件实验

实验一:广告灯实验

1. 实验目的

(1)熟悉ZY15MCU12BC2单片机实验开发装置的试验箱,学会选用其功能电路,连接成实验需要的系统。掌握实验箱内拨位开关KFKC使用。(2)加深了解MCS-51单片机P1端口的应用方法。(3)学习编写接口应用程序。

2、试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连,确认拨位开关KF的位置。(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境,确认89C51处于仿真状态。

(3)用试验箱上的发光二极管L0到L7模拟外界各种场合的动态广告灯,将试验箱上的发光二极管L0到L7分别与单片机的到相连。

(4)编写程序,实现从P1口输出信号驱动发光二极管L0到L7模拟外界广告灯动态点亮的功能。

(5)在uVision2开发平台上输入程序,编译、连接程序,调试通过后将拨位开关KF拨至B端。

(6)单步执行程序,观察是否进入表格首地址。

(7)单步执行程序,观察发光二极管L0到L7的变化。

(8)全速运行程序,观察发光二极管L0到L7的变化,并注意程序将循环下去。(9)实验结束,撤除接线,将一切整理复原。

4、实验源程序

ORG 0000H MAIN: MOV DPTR,#TAB

MOV R5,71H LOOP: MOV A,#00H

MOVC A,@A+DPTR

MOV P1,A

ACALL DELAY

ACALL DELAY

INC DPTR

DJNZ R5,LOOP

LJMP MAIN DELAY: MOV R7,#00H

MOV R6,#00H DE:

DJNZ R7,$

DJNZ R6,DE

RET TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH

DB 0FFH,7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH

DB 80H,00H,80H,0C0H,0E0H,0F0H,0F8H,0FCH

DB 0FEH,0FFH,7FH,3FH,1FH,0FH,07H,03H

DB 01H,00H,01H,03H,07H,0FH,1FH,3FH

DB 7FH,0FFH,7EH,3CH,18H,00H,18H,3CH

DB 7EH,0FFH,0FEH,0FCH,0FCH,0F9H,0F3H,0E7H

DB 0CFH,9FH,3FH,7FH,0FFH,7FH,3FH,9FH

DB 0CFH,0E7H,0F3H,0F9H,0FCH,0FEH,0FFH

DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,00H

DB 80H,40H,20H,10H,08H,04H,02H,01H,00H

DB 01H,02H,04H,08H,10H,20H,40H,80H,00H

DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH

END

5、实验结果

6、实验总结

广告灯按照程序所给的效果循环的有序的点亮,如果应用到广告霓虹灯,的确可以到达璀璨的效果,程序的最后的TAB是最纠结的,你要按照效果一点一点的编写十六进制的数字,换算出效果,可见真正的商业广告的效果的确是很麻烦的一件事,通过这个实验,我清楚地认识到了单片机的控制的灵活性,另外对于查表指令也有所理解。实验二:P1端口应用实验

1、实验目的

(1)进一步熟悉ZY15MCU12BC2实验箱上的资源,掌握实验箱内拨位开关KF,KC使用。(2)加深了解MCS-51单片机P1端口的应用方法。(3)学习编写接口应用程序。

2、试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连,确认拨位开关KF的位置。(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境,确认89C51处于仿真状态。

(3)将试验箱上的L0到L3接到到,开关K0到K3接到到。(4)编写程序实现如下功能: 拨动K0到K3,使L0到L3出现以下组合变化。K3 K2 K1 K0 L3 L2 L1 L0 0 0 0 0 全亮 0 0 0 1 全暗

0 0 1 0 一灯亮其余灯暗并左环依 0 0 1 1 一灯亮其余灯暗并右环依 0 1 0 0 一灯暗其余灯亮并左环依 0 1 0 1 一灯暗其余灯亮并右环依 ? ? ? 显示开关状态Ki为0,Li灯亮 要求:

1)设40H单元为标志单元,(40H)=0时开关状态无变化,(40H)=FFH时开关状态发生变化。

2)设41H单元为开关状态缓冲器,读入开关状态和41H单元内容比较,相同时开关状态无变化,不同是开关状态有变化。3)设42H单元为当前指示灯状态。

(4)在uVision2开发平台上输入程序,编译、连接程序,调试通过后将拨位开关KF拨至B端。

(5)根据准双向口的特性,对P1口写操作使灯L0到L7的状态随写入到的内容而变化;读P1口的高四位,读出内容随开关状态的变化而变化。如不对,则检查开关K0到K3的接线,检查K0到K3的电平是否随开关状态变化而变化。

(6)从开始运至BK1处,检查A的内容是否对应开关状态,接着单步运行程序,检查是否转到相应入口使L0到L3状态产生相应的变化。(7)全速运行程序至BK2,在检查A的内容是否与开关状态一致,如不对,则检查前面对P1口的操作指令。

(8)全速运行程序实现所要求的功能。

4、实验源程序

ORG 0000H STRL: MOV A,P1

SWAP A

ANL A,#0FH

MOV 41H,A

MOV 40H,#0FFH MLP0: CJNE A,#6,$+3

JNC PK6

MOV DPTR,#CTAB

MOV R1,A

RL

A

ADD A,R1

JMP @A+DPTR CTAB: LJMP PK0

LJMP PK1

LJMP PK2

LJMP PK3

LJMP PK4

LJMP PK5 PK6:

MOV 42H,A

LJMP MLP1 PK5:

MOV A,40H

CJNE A,#0FFH,PK51

MOV 42H,#01

LJMP MLP1 PK51: MOV A,42H

LCALL RR7

ANL A,#0FH

JNZ PK52

MOV A,#1 PK52: MOV 42H,A

LJMP MLP1 PK4:

MOV A,40H

CJNE A,#0FFH,PK41

MOV 42H,#1

LJMP MLP1 PK41: MOV A,42H

LCALL RL9

ANL A,#0FH

JNZ PK42

MOV A,#1 PK42: MOV 42H,A

LJMP MLP1 PK3:

MOV A,40H

CJNE A,#0FFH,PK31

MOV 42H,#0F7H

LJMP MLP1 PK31: MOV A,42H

LCALL RR9

ANL

A,#0FH

CJNE A,#0FH,PK32

MOV

A,#0F7H PK32: ORL

A,#0F0H

MOV

42H,A

LJMP MLP1 PK2:

MOV

A,40H

CJNE A,#0FFH,PK21

MOV

42H,0FEH

LJMP MLP1 PK21: MOV

A,42H

RL A

ANL A,#0FH

CJNE A,#0FH,PK22

MOV A,#0FEH PK22: ORL A,#0F0H

MOV 42H,A

LJMP MLP1 PK1:

MOV 42H,#0FH

LJMP MLP1 PK0:

MOV 42H,#0 MLP1: MOV A,42H

ORL A,#0F0H

MOV P1,A

MOV R7,#0

MOV R6,#0 DEL1: DJNZ R6,DEL1

DJNZ R7,DEL1

MOV

A,P1

SWAP A

ANL A,#0FH

CJNE A,41H,MLP2

MOV 40H,#0

LJMP MLP0 MLP2: MOV 41H,A

MOV 40H,#0FEH

LJMP MLP0 RR9:

RR A

RR A RR7:

RR A

RR A

RR A

RR A

RR A

RR A

RR A

RET RL9:

RL A

RL A RL7:

RL A

RL A

RL A

RL A

RL A

RL A

RL A

RET

END

5、实验结果截图

6、实验结论

试验中我们把P1口作为输入输出口来测试以下的内容 口做输出口,接八只发光二极管循环点亮。 口低四位接四只发光二极管L1-L4, P1 口高四位接开关K1-K4,编写程序,将开关的状态在发光二极管上显示出来。

在这次试验中我认识到课本上的关于P1口的介绍的知识 P1 口为准双向口,P1 口的每一位都能独立地定义为输出线或输入线,作为输入的口线,必须向锁存器相应位写入“1”,该位才能作为输入。8031中所有口锁存器在复位时均置为“1”,如果后来往口锁存器写入过“0”,再作为输入时,需要向口锁存器对应位写入“1”。延时程序的编写可以用两种方法,一种是用定时器来实现,一种使用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。

实验三:串转并实验

1、实验目的

(1)掌握51系列单片机串口工作方式0的应用。

(2)学习8位串行输入和并行输出的同步移位寄存器74LS164和8位并行输入和穿行 输出的同步移位寄存器74LS165两个接口芯片的应用性能。(3)研究单片机串行口如何用于扩展并行I/O口。

2、试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连,确认拨位开关KF的位置。(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境,确 认89C51处于仿真状态。(3)实验步骤:

1)通过单片机串口用一片8位串行输入/并行输出的同步移位寄存器74LS164扩展 8位并行输出口。

2)通过单片机串口用一片8位并行输入/串行输出的同步移位寄存器74LS165扩展 8位并行输入口。(4)将单片机的RXD端与74LS164的串行输入端SERIAL(PA)相连,将单片机的TXD 端与74LS164的脉冲CLOCK(PB)相连,74LS164的输出Q0到Q7接发光二极管 L8到 L15。(5)调试程序:

1)实验采用终端方式调试,既目标程序装入仿真器后,使操作界面进入终端方式。2)单步进入执行程序,打开Keil的寄存器窗口,观察串口数据缓冲区SBUF里的值有何变化。

3)单步执行程序,注意中断标志T1的变化以及所亮的发光二极管的位置。

4、实验源程序

ORG 0000H SJMP MAIN ORG 0023H SJMP SBV MAIN: MOV SCON,#00H SETB EA SETB ES MOV A,#80H MOV SBUF,A MOV SBUF,A MOV SBUF,A SJMP $ SBV: ACALL DELAY CLR T1 RR A MOV SBUF,A RETi DELAY: MOV R7,#00H MOV R6,#00H DEL: DJNZ R7,$

5、实验结果截图

6、实验结论

在实验中我明白了串行口和并行口的相关知识8位串行输入和并行输出的同步移位寄存器74LS164和8位并行输入和穿行输出的同步移位寄存器74LS165两个接口芯片的应用性能。知道了单片机串行口如何用于扩展并行I/O口

单片机实验报告【第三篇】

实验

四、中断交通灯实验

林立强

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/

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 ,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

单片机实验报告【第四篇】

实 实 验 验 报 报 告

实验课程:

单片机原理及应用

级:

自动化 2 班

号:

名:

师:

成绩:

实 验 日 期 :

****年**月**日

实验名称:

实验 1-—计数显示器

一、实验目得:学习 Proteus 软件得使用,掌握单片机原理图得绘图方法。

二、实验内容:

ﻩ1、绘制“计数显示器”电路原理图;2、利用提供得hex 文件验证此电路得运行效果。

三、实验要求:

提交得实验报告中应包括:1、绘图方法简述,要求说明元件与电源得选取、摆放及属性编辑,总线与标签得画法等内容;2、电路原理图;3、仿真运行效果展示,要求就仿真文件加载方法及 3~4幅运行截图进行简要说明;4、实验小结,说明遇到得主要问题或实验 1 体会等。参考电路原理图如下:

元件类别 电路符号 元件名称 Microprocessor ICs “U1“ 80C51 Miscellaneous “X1”/12MHz CRYSTAL Capacitors “C1”~“C2”/1nF CAP Capacitors “C3”/22μF CAP—ELEC Resistors Packs “RP1“/7—100Ω RESPACK—7 Resistors “R1"/100Ω RES Optoelectronics “LED1”~“LED2” 7SEG--CAT-GRN Switches & Relays “BUT” BUTTON 1、、及 编程思路及 C51 源程序:

2、电路原理图:

3、仿真运行效果展示:

4、实验小结 :

熟悉Proteus 软件,了解软件得结构组成与功能;学习 ISIS 模块得使用方法,学会设置图纸、选元件、线画总线、修改属性等基本操作;学会可执行文件 加载及程序仿法;理解Proteus在单片机开发中得作用,完成单片机电路原 理图得绘制. 实验名称:

实验 2——LED 指示灯循环控制

一、实验目得 熟悉μVision3 编译软件、掌握 C51编程与调试方法。

二、

实验内容 1、按照教材 P243 得图 A、34,绘制实验二电路原理图; 2、编写 C51 程序,实现 8 个 LED 灯依次点亮得功能: P0、0→P0、1→ P0、2→P0、3→ ┅ →P0、7→P0、6→P0、5→ ┅ →P0、0 得顺序,无限循环,间隔约50ms; 3、观察仿真结果,完成实验报告。

三、

实验要求 1、采用两种加载并运行可执行文件得方法,即proteus独立运行与prote

us + Keil 联合运行,体会其中得差异与意义;2、练习采用单步、断点以及监视窗等手段进行程序调试得方法;3、观察仿真结果,完成实验报告:绘制得电路原理图、编程思路分析及 C51源程序、调试过程简述,仿真运行效果以及实验小结。、电路原理图:

及 2、编程思路及 C51 源程序:、仿真运行效果:、实验小结 :

通过本次实验我熟悉 uVision3 编译软件了解软件得结构组成与功能学习 C51 语言得程序设计方法)学会在 uVision3中进行 C51 程序录入、编译、与 调试理解 Proteus 与 Keil 联合得仿真原理实现 LED 指示灯循环控制功能。

更好得将 C 语言与 C51 语言联系在了一起)学到得知识能准确得利用了出来。

实验名称:

实验3——指示灯与数码管得中断控制

一、实 验目得 掌握外部中断得工作原理,学会中断程序设计。二、实验内容 1、按照教材帕图 A、53,绘制实验四电路原理图;2、要求采用外部中断原理完成本次实验,其中按键 K1、K2 均设置为下降沿触发方式,自然优先级; 3、编写 C51 程序实现如下功能:开机后 D1灭灯,LED1黑屏,随后单击 K1→D1状态反转,单击 K2 →LED1 从 0 开始循环显示0~F 字符。

4、观察仿真结果,完成实验报告。

三、

实验要求 提交得实验报告中应包括:电路原理图,外部中断工作原理阐述(以 K1 为例说明中断响应过程),C51 源程序(含流程图与注释语句),运行效果(含运行截图

与说明),实验小结. 1、电路原理图 :

2、外部中断工作原理阐述:

持续按下 K1 则 D1 将“亮→灭→亮→灭→„→亮→灭如此循环,表明实现了 K1 对应于 D1 状态反转这个功能;持续按下持续按 K2 则数码显示管依次显 示 1-F,实现了 K2 对应于 0~F 间得数码管加一计数显示.

3、、及编程思路及 C51 源 源 程序:、仿真运行效果:

5、实验小结:

通过实验对 Protues 有了更多得了解,同时了解到中断系统在实际中得更好 应用。经过编程操作起来更加熟练能很快得完成绘图,编程时也得心应手,能熟练得运用软件找出自己所编程中得语法问题及其她问题,并以改正。

实验名称:

实验4—-电子秒表显示器

一、实实 验目得 掌握定时/计数器得中断法工作原理,熟悉 C51 编程与调试方法

二、实验要求:

1、实验电路原理图如教材P260 A、65 图所示。程序开始时显示“00”;当1s 产生时,秒计数加1;秒计数到 59 后,自动从“00”开始。

2、采用12MHz晶振频率,T0定时方式 1、50ms 定时中断法编程(1s 需要经过 20 软循环)(流程图与参考程序模版如下所示)。//定时中断方式实现得电子秒表

15()件文头ﻩ(定义无符号字符型变量 t—-中断次数计数器,并赋初值0(定义无符号字符型变量 second—-秒计数器,并赋初值 0(定义位于 ROM 区得无符号字符型数组table-—显示字模)timer0()

(中断函数关键词){ ﻩ()0T 闭关ﻩ(初值重装载 0x3cb0)

()1增器数计数次断中ﻩ {)02==t(fiﻩﻩ

// 秒1于当相,次 02断中若ﻩ

;0=tﻩﻩﻩﻩﻩﻩﻩﻩ //中断次数计数器清零 ﻩ

;++dnocesﻩﻩ ﻩ // 零清器数计秒ﻩ

}()零清,06 到达值器数计秒若ﻩﻩ()值示显得 dnoces 量变出输别分口 2P与0Pﻩ()0T动启ﻩﻩ} main(){

;]01/dnoces[elbat=0Pﻩﻩ // 值示显出输别分口 2P 与 0Pﻩ

;]01%dnoces[elbat=2Pﻩ(定义T0 定时方式 1—-TMOD)05()0LT与0HT——载加0bc3x0值初出溢 smﻩ()AE,0TE——化始初断中ﻩ(启动 T0)

(死循环)3、编程思路及C1 51 源程序: :

4、仿真运行效果:

5、实验小结 :

本次实验进行得比较顺利,根据指导材料中提供得流程图完成了源程序得编 写,成功生成了、hex文件,经过仿真运行达到了预期得实验结果。通过本次得 实验,我更加深入得了解到单片机定时/计数功能实现得机理,通过与单片机中 断功能得结合,可以完成更多得预期功能。但就是进过讨论我也发现,程序还就是存 在很大得缺陷,想要实现更加准确实现计时功能还需综合利用各种知识完善程 序。

35 489696
");