单片机实验报告

时间:2024.4.21

目录

一、    实验一··········································1

二、    实验二··········································7

三、    实验三·········································11

四、    实验四·········································15


实验一  定时/计数器验证实验

一、   实验目的

熟悉定时/计数器T0的特点,学会合理选择定时方式并能根据具体情况结合软件的方式定时。

二、   实验设备及器件

IBM PC机 一台 PROTEUS 硬件仿真软件 Keil C51。

三、   实验内容

用AT89C51单片机的定时/计数器T0产生1s的定时时间,作为秒计数时间,当1s产生时秒计数加1;秒计数到60时,自动从0开始。

四、   实验要求

要求采用Proteus软件实现上述实验。

五、   实验步骤

1.  打开Proteus ISIS编辑环境,按照表1-1所列的元件清单添加元件。

表1-1 元件清单

元件全部添加后,在Proteus ISIS的编辑区域中按图1-1所示的原理图连接硬件电路。

图1-1 电路原理图

2.   根据参考程序绘出流程图,并辅以适当的说明。

流程图如图1-2所示:

图1-2 程序流程图

3.   打开KeilμVision4,新建Keil项目,选择AT89C51单片机作为CPU,将参考程序导入到“Source Group 1”中。在“Options for Target”对话窗口中,选中“Output”选项卡中的“Create HEX File”选项和“Debug”选项卡中的“Use:Proteus VSM Simulator”选项。编译汇编源程序,改正程序中的错误。

4.   在Proteus ISIS中,选中AT89C51并单击鼠标左键,打开“Edit Component”对话窗口,设置单片机晶振频率为12MHz,在此窗口中的“Program File”栏中,选择先前用Keil生成的.HEX文件。在Proteus ISIS的菜单栏中选择“File”→“Save Design”选项,保存设计,在Proteus ISIS的菜单栏中,打开“Debug”下拉菜单,在菜单中选中“Use Remote Debug         Monitor”选项,以支持与Keil的联合调试。

5.   在Keil的菜单栏中选择“Debug”→“Start/Stop Debug Session“选项,或者直接单击工具栏中的“Debug”→“Start/Stop Debug Session”图标,进入程序调试环境。按“F5”键,顺序运行程序。调出“Proteus ISIS”界面可以看到7段数码管显示从0~59s的计数值,每个数值显示1s,如图1-3所示。

图 1-3 程序运行结果

六、   实验程序

SECOND EQU 30H

COUNT  EQU 31H

       ORG 00H

       LJMP   START

       ORG    0BH

       LJMP   INT_T0

START: MOV    SECOND,#00H

       MOV    COUNT,#00H

       MOV    DPTR,#TABLE

       CLR    A

       MOV    P0,A

       MOV    P2,A

       MOV    TMOD,#00H

       MOV    TH0,#(65536-50000)/256

       MOV    TL0,#(65536-50000)MOD 256

       SETB   TR0

       SETB   ET0

       SETB   EA

       MOV    IE,#82H

       LJMP   $

INT_T0:MOV    TH0,#(65536-50000)/256

       MOV    TL0,#(65536-50000)MOD 256

       INC    COUNT

       MOV    A,COUNT

       CJNE   A,#20,I2

       MOV    COUNT,#00H

       INC    SECOND

       MOV    A,SECOND

       CJNE   A,#60,I1

       MOV    SECOND,#00H

I1:    MOV    A,SECOND

       MOV    B,#10H

       DIV    AB

       MOVC   A,@A+DPTR

       MOV    P0,A

       MOV    A,B

       MOVC   A,@A+DPTR

       MOV    P2,A

I2:    RETI

TABLE: DB  3FH,06H,5BH,4FH,66H

       DB  6DH,7DH,07H,7FH,6FH

       END

七、   思考题

1.  罗列一下Proteus软件的能带给我们的好处,指出一点最能帮助你的地方。

使用Proteus软件能使我们方便的搭建电路,同时在没有元器件的情况下进行便于仿真,方便我们在将程序写入单片机前确认运行是否正确,同时可在采购器件之前即可开始开发产品,而不必等到器件采购完后搭建电路才进行程序调试。

2.  用Proteus界面中的播放键运行仿真与KeilμVision4的环境中联调运行它们两者的区别在什么地方?

用Proteus界面中的播放键运行仿真仅可以观察运行结果,即程序运行在硬件表面上的表现。而联调的时候可以再Keil软件里查看各寄存器和存储器的状况,即硬件的内部情况。

3.  Keil软件软件仿真与Proteus的仿真对比。

使用Proteus仿真可从硬件的角度观察仿真结果,使仿真结果更加形象直观,使我们可从硬件运行状态清楚的判断运行结果是否正确。而在Keil环境中则是从程序的角度通过观察程序中数据的变化来观察仿真结果,需要对程序运行结果充分了解。

八、   实验总结及相关问题

通过本次实验了解了Ptoteus软件的使用方法,以及在掌握了Keil的使用方法下,学会了Proteus与Keil软件联调的方法。

在用Proteus中由于忽略了要在总线处放置网络标号导致联调失败,最后通过观察发现数码管引脚电平无变化发现此问题,放置网络标号后运行仿真时数码管引脚电平发生变化可是数码管却没有变亮,经过多次检查接线,未发现接线错误后,觉得可能是软件本身错误,故将总线及数码管周围硬件线路重新绘制一遍后再次运行仿真及可得到图1-3的结果。

实验二  单片机I/O口控制实验

一、   实验目的

利用单片机的P1 口作IO 口,使同学学会利用P1 口作为输入和输出口。

二、   实验设备及器件

IBM PC 机 一台 DP-51PRO.NET 单片机仿真器、编程器、实验仪三合一综合开发平台一台

三、   实验内容

1.   编写一段程序,用P1 口作为控制端口,使D1 区的LED 轮流亮。

2.   编写一段程序,用P1.0~P1.6 口控制LED,P1.7 控制LED 的亮和灭(P1.7 接按键,按下时LED 亮,不按时LED 灭) 。

四、   实验要求

学会使用单片机的P1 口作IO 口,如果有时间同学也可以利用P3 口作IO 口来做该实验。

五、   实验步骤

1.   用导线把A2 区的J61 接口与D1 区的J52 接口相连。原理如图2-1 所示。

2-1 实验二原理图

2.   先编写一个延时程序。

延时程序见程序1子程序DELAY。

3.   将LED 轮流亮的程序编写完整并使用TKStudy ICE 调试运行。

LED轮流亮程序见程序1。

调试运行结果:D1区LED轮流亮。

4.   使用导线把A2 区的J61 接口的P1.0~P1.6 与D1 区的 J52 接口的LED1~LED7 相连,另外A2 区J61 接口的P1.7 与D1 区的J53 的KEY1 相连。

5.   编写P1.7 控制LED 的程序,并调试运行。(按下K1 看是否全亮)。

P1.7 控制LED 的程序见程序2。

调试运行结果:按下P1.7后D1区LED全灭。

6.   A2 区J61 接口的P1.7 与D1 区的J54 的SW1 相连。然后再使用TKStudy ICE 运行程序,查看结果。

P1.7 控制LED 的程序见程序2。

调试运行结果:按下P1.7后D1区LED全亮。

六、   实验参考程序

程序1

ORG    0000H

LJMP   MAIN

ORG    0100H

MAIN:  MOV    A,#0FFH

       CLR    C

MAINLOOP:CALL DELAY

       RLC    A

       MOV    P1,A

       SJMP   MAINLOOP

DELAY: MOV    R7,#0

LOOP:  MOV    R6,#0

       DJNZ   R6,$

       DJNZ   R6,$

       DJNZ   R6,$

       DJNZ   R7,LOOP

       RET

       END

程序2:

ORG    000H

LJMP   MAIN

ORG    0100H

MAIN:  JB     P1.7,SETLED

CLRLED:CLR    P1.0

       CLR    P1.1

       CLR    P1.2

       CLR    P1.3

       CLR    P1.4

       CLR    P1.5

       CLR    P1.6

       SJMP   MAIN

SETLED:SETB   P1.0

       SETB   P1.1

       SETB   P1.2

       SETB   P1.3

       SETB   P1.4

       SETB   P1.5

       SETB   P1.6

       SJMP   MAIN

       END

七、   实验思考题

1.  请同学思考一下,想出几个实现以上功能的编程方法。

程序1可利用单片机的定时计数器通过选择定时计数器工作方式和预置初值设定延时时间,通过定时计数器产生的中断在中断程序中对A进行移位后输出至P1口。

程序2可在判断P1.7高低电平后根据判断结果直接将#80H或#7F直接送P1口而不必逐位进行位操作。

2.  请同学再思考一下,第二个程序中如果使用KEY1作为外部中断控制LED的亮和灭时,程序应如何修改。

此时将KEY1接/INT0口,在主程序中开启外部中断设置外部中断触发方式,通过中断服务子程序控制LED亮灭。程序如下所示:

    ORG 000H

    LJMP   MAIN

    ORG 0003H  ;中断服务程序

    LJMP   SETLED

MAIN:  MOV SP,#40H

    SETB   ET0 ;开外部中断

    CLR IT0 ;设置为电平触发

    SETB   EA

CLRLED:CLR P1.0

    CLR P1.1

    CLR P1.2

    CLR P1.3

    CLR P1.4

    CLR P1.5

    CLR P1.6

    SJMP   CLRLED

SETLED:SETB   P1.0

    SETB   P1.1

    SETB   P1.2

    SETB   P1.3

    SETB   P1.4

    SETB   P1.5

    SETB   P1.6

    RETI

    END

八、   实验总结及相关问题

通过本次实验掌握了使用TKStudy ICE进行硬件仿真调试的方法,在设置仿真器驱动程序声明时对C:\Keil目录下的Tools.ini文件添加描述时,由于添加的路径错误导致无法进行硬件仿真调试,修改为正确路径后方可在DEBUG窗口中的Use选项中找到对应的选项。使用TKStudy ICE进行硬件仿真调试相比本学期的电子系统设计中用到的调试方法更快捷,使用更方便。

与此同时,通过本次实验对单片机的I/O控制有了更深入的了接,同时加深入对单片机I/O编程的理解。

实验三  串转并I/O口实验

一、   实验目的

熟悉并掌握串转并的I/O口扩展方法。

二、   实验设备及器件

IBM PC机 一台 DP-51PRO.NET单片机仿真器、编程器、实验仪三合一综合开发平台 一台

三、   实验内容

1.   写程序,通过单片机的P1口控制74HC164的串行输入端口,实现串并转换。

2.   验证串并转换数据的正确性。

四、   实验要求

熟悉串并转换芯片的工作原理,学会使用串并转换芯片扩展单片机的I/O口资源。

3-1 74HC164真值表

五、   实验步骤

1.   短接C5区JP10接口,将C5区J43接口与A2区J61接口的P10~P13对应相连 (CLK对P10等等)。如图3-1所示。

3-1 实验三原理图

2. 运行编写好的软件程序,完成一次串并转换。

     实验程序见实验参考程序。

2.   使用C2区的逻辑笔或D1区的J52接口(LED指示灯)测试并行输出数据Q0~Q7数据的正确性。

调试运行结果:通过观察LED的亮灭情况可判断完成一次串并转换,且转换结果正确无误。

六、   实验参考程序

CLK    EQU P1.0

DINA   EQU P1.1

DINB   EQU P1.2

CLR164 EQU P1.3

ORG    0000H

LJMP   MAIN

ORG     0100H

MAIN:  MOV    SP,#60H

       NOP

       CLR    CLK

       SETB   DINB

       CLR    CLR164

       SETB   CLR164

       MOV    A,#0FFH

        MOV    R4,#08H

SLCHG: RLC   A

       MOV    DINA,C

       SETB   CLK

       NOP

       CLR    CLK

       NOP

       DJNZ   R4,SLCHG

       SJMP $

       END

七、    实验思考题

参考图3-2电路图,尝试编写软件程序,实现8位LED流水灯的控制。

3.2 实验原理图

可利用单片机的定时计数器通过选择定时计数器工作方式和预置初值设定延时时间,通过定时计数器产生的中断在中断程序中对A进行移位。程序如下所示:

       CLK     EQU P1.0

        DINA   EQU P1.1

        DINB   EQU P1.2

        CLR164 EQU P1.3

        ORG     0000H

        LJMP   MAIN

        ORG     000BH      ;定时器0中断服务程序

        LJMP   SLCHG

MAIN:  MOV    SP,#60H

        NOP

        CLR     CLK

        SETB   DINB

        CLR     CLR164

        SETB   CLR164

        MOV     A,#0FFH

        MOV     TMOD,#01H  ;定时器0工作方式1

        MOV     TH0,#18H   ;送2ms时间常数

        MOV     TL0,#0FCH

        SETB   TR0    ;开中断

        SETB   ET0

        SETB   EA

        SJMP   $

SLCHG: MOV     TH0,#18H  

        MOV     TL0,#0FCH

        RLC    A

        MOV    DINA,C

        SETB   CLK

    NOP

    CLR    CLK

    RETI

    END

八、   实验总结及相关问题

由于具有之前实验的基础所以本实验基本没碰到什么问题,调试运行都符合实验要求,通过本次实验对串并转化程序的编写有了一定了解,通过编写流水灯程序加深了对单片机串并口的了解。

实验四  继电器控制实验

一、    实验目的

加深理解继电器的工作原理和特点,掌握利用单片机的IO口控制继电器的一般方法。

二、    实验设备及器件

IBM PC机 一台 DP-51PRO.NET单片机仿真器、编程器、实验仪三合一综合开发平台 一台

三、   实验内容

1.   利用D1区的拨动开关和LED,学习继电器的工作原理和特点。

2.   编写一段程序,用P1.0口控制继电器,继电器控制LED的亮和灭,(COM与CLOSE连通时,一盏LED亮;不连通时该LED灭。COM与OPEN连通时,另一盏LED亮,不通时该LED灭)。

四、   实验要求

学会继电器的使用和利用单片机的IO口控制继电器的方法。

五、   实验步骤

4-1 继电器驱动控制电路图

1.   用短路帽短接JP7,使用导线把D1区J54接口的SW1与C7区J9接口的KJ(任意一根针)相连接。

2.   使用导线把D1区J52接口的LED1、LED2与C7区J103接口的OPEN1,CLOSE1分别相连,另外C7区J103接口的COM1接地(GND)。

3.   接好线后,同学可以拨动D1区的SW1拨动开关,观察现象(拨到1时LED2亮,拨到0时LED1亮),并得出结论。

运行结果:拨到1LED2亮,拨到0LED1亮,说明每拨动一次开关改变一次继电器的状态。

4.   然后把C7 区J9 接口的KJ 改接到A2 区的J61 接口的P10。再编写一个程序程序(参考实验二), 使P1.0 口延时一段时间后改变电平值,来控制继电器的开关。

实验程序见实验参考程序。

调试运行结果:两个LED交替变亮,继电器状态不断改变。

六、   实验参考程序

ORG    0000H

LJMP   MAIN

ORG    0100H

MAIN:  MOV    R7,#0

LOOP:  MOV    R6,#0

       DJNZ   R6,$

       DJNZ   R6,$

       DJNZ   R6,$

       DJNZ   R7,LOOP

       CPL    P1.0

       SJMP   MAIN

       END

七、   实验思考题

1.        请同学思考一下,改由OPEN2COM2CLOSE2时本实验如何进行。

同使用OPEN1、COM1和CLOSE1时连接方法类似,把D1区J52接口的LED1、LED2与C7区J103接口的OPEN2,CLOSE2分别相连,另外C7区J103接口的COM2接地(GND)即可。

2.        请同学再思考一下,继电器的用途,并举例说明。

继电器是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。

按照其工作原理可有以下应用:电磁继电器固体继电器温度继电器舌簧继电器时间继电器高频继电器极化继电器其他类型的继电器

八、   实验总结及相关问题

由于具有之前实验的基础所以本实验基本没碰到什么问题,调试运行都符合实验要求,通过本次实验了解了继电器的控制方法。对继电器这一器件有了一定了解。

更多相关推荐:
单片机实验报告

单片机实验报告学生姓名学号专业指导教师学院信息与电气工程学院20xx年11月单片机实验报告实验一MCS51指令系统实验数据排序1实验目的熟悉MCS51指令系统掌握程序设计方法加深对内部存储器读写的认识熟悉仿真开...

单片机实验报告

通信与信息工程学院20xx20xx学年第二学期实验报告课程名称单片机原理及应用专业班级学号学生姓名指导教师日期20xx年4月15日1实验一单片机汇编语言程序设计一实验目的1学习MedWin或Keilc51仿真软...

单片机实验报告

题目单片机组成原理实验报告学院计算机科学与工程学院专业信息安全姓名学号20xx年12月8日实验一输入输出接口编程一实验目的1掌握Keil软件的基本使用12掌握单片机汇编语言基本编程二实验内容1学习用Keil软件...

51单片机课程设计实验报告

51单片机课程设计报告学院:专业班级:姓名:指导教师:设计时间:51单片机课程设计一、设计任务与要求1.任务:制作并调试51单片机学习板2.要求:(1)了解并能识别学习板上的各种元器件,会读元器件标示;(2)会…

单片机实验报告

海南大学届单片机实验报告4份论文题目学生姓名学号所在院系专业班级授课教师完成时间蜂鸣器实验实验目的1熟悉实验板中蜂鸣器工作原理掌握汇编编程控制蜂鸣器播放音乐2掌握单片机编程控制蜂鸣器发出不同频率声音的方法3了解...

单片机实验报告

单片机课程设计报告实验五系别物理与电子工程学院年级专业班级学号学生姓名指导教师设计时间常熟理工学院课程设计报告目录1题目22实验要求221实验目的222实验内容23总体设计231硬件设计232软件设计44运行结...

51单片机实验报告

08424020xx单片微型计算机原理学院班级学号姓名指导教师成绩120xx年6月08424020xx硬件实验实验一定时器中断实验实验内容fosc110592MHzT0方式2产生定时中断实现秒表功能数码管后两位...

单片机实验报告

单片机原理及应用实姓名班级指导教师验报告王翀学号63120xx40204通信工程专业20xx级2班许强单片机原理及应用实验报告实验项目名称键盘数码管显示综合实验实验日期1221实验成绩实验评定标准一实验目的通过...

单片机实验报告

班级姓名学号指导教师单片机实验报告窦杰26赵英亮11050643X实验一多字节十进制加法程序设计2学时1实验目的1熟悉仿真器的软件使用环境及单片机汇编语言编程2掌握多字节十进制加法的程序设计及实现方法3练习汇编...

单片机AD转换实验报告

单片机实验报告五实验名称姓名学号班级时间AD转换张昊110404247通信2班20xx12南京理工大学紫金学院电光系一实验目的1理解AD转换的工作原理2理解掌握ADC0809的AD转换原理和并行AD转换器接口的...

单片机实验报告——流水灯

电子信息工程学系实验报告课程名称:单片机原理及接口实验项目名称:实验2流水灯实验时间:20xx-10-21班级:电信092姓名:蔡**学号:*********一、实验目的:进一步熟悉keil仿真软件、prote…

单片机交通灯实验报告

交通灯控制系统设计院系:电子电气工程学院专业:电气自动化班级:P10电气四班成员:*************交通灯控制系统设计实验一.设计目的1.通过本次课程设计进一步熟悉和掌握单片机的结构及工作原理,巩固和加…

单片机实验报告(42篇)