MCS51单片机原理及应用 实验报告

单片机原理与应用

实验报告

学校: 合肥工业大学

姓名: 吕增威

学号: 20082606

班级:计算机科学与技术08-03班

1

目 录

前 言 ------------------------3

第一章 MC51 单片机原理及应用软件实验 实验1:系统认识实验--------------------6 实验6:数据排序实验(验证性)---------- 11

第二章 MC51 单片机原理及应用硬件实验 实验1:广告灯实验----------------------15 实验2:P1 口实验(验证性)-------------21 实验16:串口转并口实验 ----------------32 实验心得与体会---------------37

2

前 言

一.单片机原理实验的任务

单片机原理实验是单片机原理及应用课程的一部分,它的任务是:

1.通过实验进一步了解和掌握单片机原理的基本概念、单片机应用系统的硬件设计及调试方法。

2.学习和掌握单片机应用系统程序设计技术。

3.提高应用计算机的能力及水平,提高逻辑动手能力。

二.实验设备

单片机实验所使用的设备由计算机、单片机实验开发系统(,其中计算机是软件开发平台,主要完成程序编辑、编译、下载程序等任务;单片机实验开发系统是硬件开发平台,是基于51/196 单片机的扩展实验系统。计算机和单片机实验开发系统之间是通过RS232 串行接口进行通信的。

单片机实验开发系统配有开关电源、单片机、晶振、存储器、可编程并行接口芯片、键盘显示控制芯片、24 键键盘、六位LED 数码管显示、A/D 及D/A 转换芯片、简单输出口2个、简单输入口1 个、逻辑电平输入开关、发光二极管显示电路,并配有小直流电机、步进电机、继电器、音响等驱动电路。在计算机软件的控制下可完成单片机基本实验及综合

3

设计性实验项目。所有的MCS51 单片机原理及应用课程实验都是在这套实验系统上完成的。Keil与Proteus的联合使用: Keil C51 6.02的使用:

1.打开Keil,新建一个程序文件(File--New),在上面输入要调试的程序,保存为*.asm格式;

2.新建一个工程(project--Newproject),保存,在CPU选项了选择Atmel--AT89C51,点击确

定,在弹出的选项框中选择“否”。

3.在Project Workspace选框中,选择你新建的工程,右击,选择Options for Target'target

(你起的工程名)',选择Debug,选择PROTEUS VSM MONITOR 51 DRIVER,点击确定.

4.在Source Group上右击,选择Add files to group'Source Group(工程名)',在文件类型

里选择All files (*.*),找到刚才保存的.asm文件.

5.调试程序: 选择 编译连接程序,保证其全部正确. Keil C51 6.02实用的一些技巧:

4

1. Keil中的 可以使project workspace窗口隐藏或显示, 可以使output window(即下面的调试窗口)窗口隐藏或显示.

2. 使用proteus画电路图时,有一些常用的元件的位置:AT89C51在Microprocessor ICs中, 可按下的开关在Switches&Replays—BUTTON,电阻在Resistors里,或非门在Modelling Primitives--XOR_2中,其他的逻辑电路门也可以在这里找到,发光二级管Optoelectronics—LED中,

3.电源和接地:找到工具栏中的 按钮,里面的POWER就是电源,GROUND就是地,记得选择完之后要把按钮按回 ,不然就不能继续选择其他的元件.

4.选好的元件的下方 的这四个按钮可以调整元件的方向,以方便电路图的绘制

5.在画电路图的连线时,如果只在起点和终点单击的话,有时会出现斜线,即不美观.又影响对电路图的检查,在画线时,如果想在某地拐弯,就在那个地方单击一下

5

第一章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(低位)单元

6

中。

题目:

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,#00h

mov r4,#00h

mov r0,#50h

l1: mov a,r4

add a,@r0

mov r4,a

7

inc r0

clr a

addc a,r3

mov r3,a

djnz r2,l1

end

5.实验心得

本次试验我了解ZY15MCU12BC2单片机实验开发装置的接线与安排。掌握实验箱内拨位开关KF,KC的使用方法。通过实例程序的编辑、编译、链接及调试,熟悉了eil C51软件的使用方法和基本操作。

6.实验部分截图

8

9

MCS51单片机原理及应用实验报告

MCS51单片机原理及应用实验报告

10

MCS51单片机原理及应用实验报告

MCS51单片机原理及应用实验报告

实验六.数据排序实验

1. 实验目的

(1)理解并掌握排序程序的设计方法。

(2)掌握减法指令的功能,并联系其使用。

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

2. 试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。

(2)PC系列微机及相关软件。

3. 试验内容

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

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

11

MCS51单片机原理及应用实验报告

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

(4)编译连接源程序。

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

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

4.实验源程序

ORG 0000H

LJMP MAIN

ORG 1000H

MAIN: MOV R0,#20H

MOV R1,#30H

CLR C

MOV A,@R0

ADD A,@R1

MOV R0,#22H

MOV @R0,A

DEC R0

INC R1

12

MOV A,@R0

ADDC A,@R1

MOV @R0,A

MOV R0,#20H

JC L1

MOV @R0,#00H

LJMP LAST

L1: MOV @R0,#01H

LAST: NOP

END

6.实验心得

实验结果是70H-7fh的数字按照顺序排列显示,在这个实验中我掌握了冒泡法排序的基本方法,单步和断点分段调试的过程中看到程序是如何执行的

6.实验部分截图

13

14

MCS51单片机原理及应用实验报告

MCS51单片机原理及应用实验报告

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

实验一:广告灯实验

1. 实验目的

(1)熟悉ZY15MCU12BC2单片机实验开发装置的试验箱,学会选用其功能电路,连接成实验需要的系统。掌握实验箱内拨位开关KF\KC使用。

(2)加深了解MCS-51单片机P1端口的应用方法。

15

MCS51单片机原理及应用实验报告

(3)学习编写接口应用程序。

2.试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。

(2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连,确认拨位开关KF的位置。

(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境,确认89C51处于仿真状态。

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

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

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

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

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

(8)全速运行程序,观察发光二极管L0到L7的变化,并注意程序将循环下去。

(9)实验结束,撤除接线,将一切整理复原。

4.实验源程序

16

ORG 0000H

MAIN: MOV DPTR,#TAB

MOV R5,#71H

LOOP: MOV A,#00H

MOVC A,@A+DPTR

MOV P1,A

MOV A,P1

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

17

DB 0FEH,0FFH,0FEH,0FCH,0F8H,0F0H,0E0H,0C0H DB 80H,00H,80H,0C0H,0E0H,0F0H,0F8H,0FCH DB 0FEH,0FFH,7FH,3FH,1FH,0FH,0F8H,0FCH 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.实验心得

广告灯按照我的程序所给的效果循环的有序的点亮,如果应用到广告霓虹灯,的确可以到达璀璨的效果,程序的最后的TAB是最纠结的,你要按照效果一点一点的编写十六进制的数字,换算出效果,可见真正的商业广告的效果的确是很麻烦的一件事,通过这个实验,我清楚地认识到了单片机的控制的灵活性,并不是在单片机上开发,而是在PC上开发,这样就错检错的能力很强了还可以软件模拟,这个令

18

我很受启发,在以前的数字逻辑试验中,我们也是用的PLC可编程器件。

6.

MCS51单片机原理及应用实验报告

实验部分截图

19

20

MCS51单片机原理及应用实验报告

实验二:P1端口应用实验

1.实验目的

(1)进一步熟悉ZY15MCU12BC2实验箱上的资源,掌握实验箱内拨位开关KF,KC使用。

(2)加深了解MCS-51单片机P1端口的应用方法。

(3)学习编写接口应用程序。

21

MCS51单片机原理及应用实验报告

2.试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。

(2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连,确认拨位开关KF的位置。

(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境,确认89C51处于仿真状态。

(3)将试验箱上的L0到L3接到P1.0到P1.3,开关K0到K3接到P1.4到P1.7。

(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 一灯暗其余灯亮并右环依

1 ? ? ? 显示开关状态Ki为0,Li灯亮 要求:

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

22

(40H)=FFH时开关状态发生变化。

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

3)设42H单元为当前指示灯状态。

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

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

(6)从开始运至BK1处,检查A的内容是否对应开关状态,接着单步运行程序,检查是否转到相应入口使L0到L3状态产生相应的变化。

(7)全速运行程序至BK2,在检查A的内容是否与开关状态一致,如不对,则检查前面对P1口的操作指令。

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

4.实验源程序

ORG 0000H

STRL: MOV A,P1

SWAP A

23

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 24

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 25

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 26

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 27

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.实验心得

试验中我们把P1口作为输入输出口来测试以下的内容

1.P1 口做输出口,接八只发光二极管循环点亮。

2.P1 口低四位接四只发光二极管L1-L4, P1 口高四位接开关K1-K4,编写程序,将开关的状态在发光二极管上显示出来。

28

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

6.实验部分截图

MCS51单片机原理及应用实验报告

29

30

MCS51单片机原理及应用实验报告

MCS51单片机原理及应用实验报告

实验十六:串转并实验

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)

31

相连,将单片机的TXD端与74LS164的脉冲CLOCK(PB)相连,74LS164的输出Q0到Q7接发光二极管L8到L15。

(5)调试程序:

1)实验采用终端方式调试,既目标程序装入仿真器后,使操作界面进入终端方式。

2)单步进入执行程序,打开Keil的寄存器窗口,观察串口数据缓冲区SBUF里的值有何变化。

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

4)全速运行程序,观察发光二极管L8到L15的变化。

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

32

SJMP $

SBV: ACALL DELAY

CLR T1

RR A

MOV SBUF,A

RETi

DELAY: MOV R7,#00H

MOV R6,#00H

DEL: DJNZ R7,$

DJNZ R6,DEL

RET

END

5.实验心得

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

6.实验部分截图

33

34

MCS51单片机原理及应用实验报告

35

MCS51单片机原理及应用实验报告

MCS51单片机原理及应用实验报告

实验总结体会

在做单片机原理及应用试验的实验前,我以为不会难做,就像以前做物理实验一样,做完实验,然后两下子就将实验报告做完.直到做完实验跟几个研究生学长交流时,我才知道其实并不容易做,但学到的知识与难度成正比,使我受益匪浅.

在做实验前,一定要把课本上的知识吃透,因为这是做实验的基础,否则,在老师讲解时就会听不懂,这将使你在做实验时的难度加大,浪费做实验的宝贵时间.比如keil的实验,要清楚这个软件的各种使用,如果不清楚,在做实验时才去摸索,这将极大地浪费时间,使你事倍功半.做实验时,一定要亲力亲为,务必要将每个步骤,每个细节弄清楚,弄明白,实验后,还要复习,思考,这样,印象才深刻,记得才牢固,否则,过后不久你就会忘得一干二净,这还不如不做.做实验时,老师还会根据自己的亲身体会,将一些课本上没有的知识教给我们,拓宽我们的眼界,使我们认识到这门课程在生活中的应用是那么的广泛. 还有动手这次实验,使单片机原理及应用这门课的一些理论知识与实践相结合,更加深刻了我对这门课的认识,巩固了我的理论知识。

不过这次实验安排的时间与数据库概论的时间正好冲突,结果两个实验跑来跑去的把精力都涣散了,希望以后老师在安排实验的时候能够互相商量下。

通过这次单片机原理及应用的实验,使我学到了不少实用的知识,

36

更重要的是,做实验的过程,思考问题的方法,这与做其他的实验是通用的,真正使我们受益匪浅.

实验之后我有幸参加了老师的单片机的公交报站系统的小研讨会,会议上我记录下了学长老实们的一些实际开发单片机的小技巧,整理如下:

(1)在元器件的布局方面,应该把相互有关的元件尽量放得靠近一些,例如,时钟发生器、晶振、CPU的时钟输入端都易产生噪声,在放置的时候应把它们靠近些。对于那些易产生噪声的器件、小电流电路、大电流电路开关电路等,应尽量使其远离单片机的逻辑控制电路和存储电路,如果可能的话,可以将这些电路另外制成电路板,这样有利于抗干扰,提高电路工作的可靠性。

(2)尽量在关键元件,如ROM、RAM等芯片旁边安装电容。实际上,印制电路板走线、引脚连线和接线等都可能含有较大的电感效应。大的电感可能会在Vcc走线上引起严重的开关噪声。防止Vcc走线上的噪声的唯一方法,是在VCC与电源地之间安放一个电容。如果电路板上使用的是表面贴装元件,可以用片状电容直接紧靠着元件,在Vcc引脚上固定。。

(3)在单片机控制系统中,地线的种类有很多,有系统地、屏蔽地、逻辑地、模拟地等,地线是否布局合理,将决定电路板的抗干扰能力。 一个单片机应用系统的硬件电路设计包含两部分内容:

一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片

37

外进行扩展,选择适当的芯片,设计相应的电路。

二是系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D、D/A转换器等,要设计合适的接口电路。 系统的扩展和配置方面的一些经验:

1、尽可能选择典型电路,并符合单片机常规用法。为硬件系统的标准化、模块化打下良好的基础。

2、系统扩展与外围设备的配置水平应充分满足应用系统的功能要求,并留有适当余地,以便进行二次开发。

3、硬件结构应结合应用软件方案一并考虑。硬件结构与软件方案会产生相互影响,考虑的原则是:软件能实现的功能尽可能由软件实殃,以简化硬件结构。

4、系统中的相关器件要尽可能做到性能匹配。如选用CMOS芯片单片机构成低功耗系统时,系统中所有芯片都应尽可能选择低功耗产品。

5、可靠性及抗干扰设计是硬件设计必不可少的一部分

6、单片机外围电路较多时,必须考虑其驱动。

7、尽量朝“单片”方向设计硬件系统。系统器件越多,器件之间相互干扰也越强,功耗也增大,也不可避免地降低了系统的稳定性。 以上就是我对学长老师介绍的单片机的开发注意的事项,我本人对电子电路的知识并不是太熟练,不太了解噪声干扰这一块。

38

相关推荐