单片机实验报告

时间:2024.4.20

                    

                                                           


单片机原理及应用

  实验报告

          

    实验要求

一、实验目的

二、实验电路及汇编源程序(程序要加注释)

三、仿真结果(或硬件调试结果)分析

                    实验一:存储器读写

一、             实验目的:

1、  掌握寄存器、存储器读写等汇编指令;

2、掌握编程软件编辑、编译、调试等基本操作。

二、             实验内容:

      1、将下面的汇编程序输入到WAVE集成开发软件中

ORG 0000H

              SJMP START

              ORG 0030H

        START:MOV R0,#07H

              MOV R1,#0FEH

              ADD A,R0

              ADDC A,R1

              MOV DPTR,#2000H

              MOVX @DPTR,A

              MOVX A,@DPTR

              INC A

              MOV P1,A

              END

2、  选择菜单“仿真器”→“仿真器设置”,按下图所示完成软件初始设置。

3、  选择菜单“项目”下“编译”,编译通过后,选择“单步运行”,观察记录寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。

思考题:试用汇编语言编写一段程序,判断R1、R2、R3三个寄存器中存放的数据大小,并按从大到小的顺序重新存放到R1、R2、R3三个寄存器中。

程序如下:

ORG 0000H

          SJMP START

          ORG 0030H

    START:MOV R1,#31H

          MOV R2,#30H

          MOV R3,#32H

          CLR C

          MOV A,R1

          SUBB A,R2:比较R1与R2大小

          JC LOOP1;R1小于R2时 跳转

          MOV A,R1

          SUBB A,R3;R1与R3比较大小

          JC LOOP2

          RET

    LOOP1:RET

    LOOP2:MOV A,R1

          XCH  A,R3;较大的数放在R1中

          MOV R1,A

          MOV A,R2

          SUBB A,R3;R2与R3比较大小

          JC LOOP3

          RET

    LOOP3:MOV A,R2

          XCH A,R3

          MOV R2,A;排序

          RET

  

               实验二:I\O端口操作

一、                实验目的:

1、  掌握I/O端口读写等汇编指令;

2、  掌握仿真软件PROTEUS硬件电路设计及仿真、调试等基本操作方法。

二、             实验内容:

1、  参考下图,用PROTEUS完成单片机硬件电路设计

2、  用WAVE软件完成发光二级管亮灭程序,用延时子程序设计一段时间延时,编译通过后生成16进制文件(.HEX),加载到PROTEUS中仿真验证。

三、             思考题:

单片机晶振设为12MHZ,试计算延时子程序的延时时间。

 程序如下:

 ORG 0000H

       AJMP MAIN

       ORG 0030H              ;程序开始地址

  MAIN:MOV P2,#001H           ;显示第一个led      

        ACALL DELAY           ;调用延时函数

       MOV P2,#002H

       ACALL DELAY

       MOV P2,#004H

       ACALL DELAY

       MOV P2,#008H

       ACALL DELAY

       MOV P2,#010H

       ACALL DELAY

       MOV P2,#020H

       ACALL DELAY

       MOV P2,#040H

       ACALL DELAY

       MOV P2,#080H

       ACALL DELAY

       AJMP MAIN                ;跳转主函数,循环

 DELAY:MOV R5,#0FAH              ;长延时

 LOOP1:MOV R6,#0FAH

 LOOP2:NOP                                   ;空指令

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       DJNZ R6,LOOP2               ;判断,跳转

       DJNZ R5,LOOP1

       RET

仿真图:

                          实验三:定时中断

一、             实验目的:

1、  熟悉单片机定时器工作原理;

2、  掌握定时器定时控制的编程方法。

二、    实验内容

编写一段汇编程序,实现P1.0口输出周期为20ms的方波,(用单片机定时器T1采用定时方式1)。并用PROTEUS仿真验证。

        三、参考电路图:

四  实验报告(见附1参考格式)

a)   统一格式,A4纸双面打印。(实验报告格式见附1)

b)   汇编源程序及注释。

c)   仿真结果(或硬件调试结果)分析。

  汇编源程序如下:

    ORG 0000H          

    AJMP START

    ORG 001BH

    AJMP T1INT

    ORG 0030H

START: MOV TMOD,#10H ;单片机定时器T1采用定时方式1

    MOV TH1,#0D8H;65535-10V4=D8F0H ;计算初值

    MOV TL1,#0F0H

    SETB TR1               ;定时器1启动

    SETB ET1

    SETB EA

MAIN:  AJMP MAIN

T1INT: CLR TF1               ;清零

    MOV TH1,#0D8H 

    MOV TL1,#0F0H

        CPL P1.0            ;取反

    RETI

    END

仿真结果如下:

   

              实验五:外部中断

一、实验目的:

1、  掌握外部中断控制的原理及编程方法;

2、  掌握硬件实验箱的使用方法;

3、  熟悉汇编程序基本格式与编程方法。

二 实验器材:

1、  单片机实验箱、51单片机最小系统电路板、串口调试线、PC机

2、  MCS51集成开发环境。

三、实验内容及基本步骤:

编写外部中断控制程序,控制8个指示灯的亮灭,模拟交通灯控制。

将实验箱上的P3.2(外部中断0)和P3.3(外部中断1)分别接2个按钮,P1.0和P1.1接2个发光二极管,编写外部中断控制程序,控制2个指示灯的亮灭,按下按钮1,指示灯1亮;按下按钮2,指示灯1灭2亮,如此反复。

四、实验报告(见附1参考格式)

a)   统一格式,A4纸双面打印。(实验报告格式见附1)

b)   汇编源程序及注释。

c)   仿真结果(或硬件调试结果)分析。

程序如下:

ORG 0000H

     LJMP START

      ORG 0003H         ;程序入口地址

     LJMP INT0

      ORG 0013H

     LJMP INT1

      ORG 0100H

START:CLR IT0        ;清零

      CLR IT1

      SETB EX0        ;置高电平

      SETB EX1

      SETB EA

       SJMP $           ;延时

INT0:SETB P1.0

      CLR P1.1

      RETI;按下按钮1,指示灯1亮

INT1:SETB P1.1

      CLR p1.0

      RETI;按下按钮2,指示灯2亮

实验结果如下:

         

            

             实验六:8270显示器接口

一、          实验目的:

1、掌握数码管显示的基本原理;

4、  掌握8279键盘显示器接口芯片的使用方法;

5、  提高汇编应用程序编程方法与技巧。

二、  实验器材:

1、单片机实验箱、51单片机最小系统电路板、串口调试线、PC机

2、MCS51集成开发环境。

三、实验内容及原理:

编写数码管显示程序,用两个数码管显示出两个数字。

1、8279的使用方法

首先掌握两个口地址,命令口地址0CFE9H。数据口地址:0CFE8H。命令口地址主要是CPU将初始化指令或控制指令对8279完成相关设置。数据口地址完成显示数据字形码的传送。

1)8279最主要的初始化操作是清除显示缓冲区命令

DDD为1XX时允许清除显示器,清除命令需要16us的时间,在此期间CPU不能向8279写入命令。

2)写显示RAM命令(选择哪个数码管)

AI为1时,显示RAM自动加1,AI为0时,显示位置由AAAA决定。

                 

四、实验内容:

编写数码管显示程序,用一个数码管显示出一个数字。程序参考流程图如下,参考流程框图完成程序的编写并下载到EL实验箱上进行验证。

 程序如下:

  ORG 0000H        

   LJMP START

  ORG 0030H

  MOV DPTR,#0CFE9H               ;命令入口地址

  MOV A,#0D1H                  ;清除

  MOVX @DPTR,A

  NOP                           ;空指令,延时

  NOP

  NOP

  NOP

  NOP

  NOP

  NOP

  NOP

LOOP:MOV DPTR,#0CFE9H              ;数据入口地址

      MOV A,#80H

      MOVX @DPTR,A

      MOV DPTR,#0CFE8H

      MOV A,#3FH

      MOVX @DPTR,A

SJMP LOOP                   

RET

结果如下:



第二篇:单片机实验报告3


蜂鸣器驱动实验

一、实验目的:

1、利用单片机的P1口作I/O口,学会蜂鸣器的使用

2、学习并掌握定时器/计数器的编程

二、实验学时:3学时

三、实验设备及器件

PC机 一台

DP-51PROC单片机综合仿真实验仪 一台

频率计 一台

四、实验要求:

1、编写一段程序,用P1.3口控制(输出3K到4K频率的方波),使B5区的蜂鸣器发出嘹亮的响声。

2、按照例程输入一段程序,用P1.3口控制,使B5区的蜂鸣器发出“生日快乐”的音乐。(选做)

五、实验步骤:

(一)、新建工程文件

1、点击工具栏Project选项,在下拉菜单中选择New Project命令,弹出项目文件保存对话框,输入项目名后,点击保存按钮。

2、在工程建立完毕以后,uVision会弹出器件选择窗口,选择相应的器件型号。如想修改,可点击工具栏Project选项,在下拉菜单中选择Select Device for Target ?Target?命令。

3、点击工具栏File选项,选中New命令,新建文件,输入源程序。

4、把文件保存到磁盘中,如用汇编语言编写程序用.asm为扩展名,如用C语言编写程序用.c为扩展名。

5、添加该文件到工程中,在Projectwindos窗口内,选中Source Group1然后点击鼠标右键,选择Add files to Group “Source Group1”,选择刚才创建的源程序文件,单击Add按钮。

(二)、程序文件的编译、链接

1、使用导线把 A2区的P13和B5区的BUZZ接线柱相连;

2、编写一个输出3K到4K频率的方波的程序,步骤如下:

1)先编写一个延时程序(120~200?s);

2)再编写一个循环程序,改变P1.3脚的电平,然后延时。在单片机综合仿真实验仪上运行该程序,B5区蜂鸣器会发出嘹亮的声音。

3、按照下面的程序在Keil C51集成开发环境中建立工程文件,并进行调试仿

真。

ORG 8000H

JMP MAIN

ORG 800BH

JMP INTT0

ORG 8100H

MAIN: MOV SP,#60H

MOV TMOD,#01H

SETB ET0

SETB EA

SETB TR0

START0: SETB P1.3

MOV 30H,#00H

NEXT: MOV A,30H

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV R2,A

JZ ENDD

ANL A,#0FH

MOV R5,A

MOV A,R2

SWAP A

ANL A,#0FH

JNZ SING

CLR TR0

JMP D1

SING: DEC A

MOV 22H,A

RL A

MOV DPTR,#TABLE1

MOVC A,@A+DPTR

MOV TH0,A

MOV 21H,A

MOV A,22H

RL A

INC A

MOVC A,@A+DPTR

MOV TL0,A

MOV 20H,A

SETB TR0

D1: CALL DELAY

INC 30H

JMP NEXT

ENDD: CLR TR0

JMP START0

INTT0:

PUSH PSW

PUSH ACC

MOV TL0,20H

MOV TH0,21H

CPL P1.3

POP ACC

POP PSW

RETI

DELAY: MOV R7,#02

DELAY0: MOV R4,#187

DELAY1: MOV R3,#248

DJNZ R3,$

DJNZ R4,DELAY1

DJNZ R7,DELAY0

DJNZ R5,DELAY

RET

TABLE: DB 82H,01H,81H,94H,84H,0B4H,0A4H,04H

DB 82H,01H,81H,94H,84H,0C4H,0B4H,04H

DB 82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94H

DB 0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04H

DB 82H,01H,81H,94H,84H,0B4H,0A4H,04H

DB 82H,01H,81H,94H,84H,0C4H,0B4H,04H

DB 82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94H

DB 0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04H,00H

TABLE1: DW 64260,64400,64524,64580,64684,64777,64820,64898

DW 64968,65030,65058,65110,65157,65178,65217

END

软件调试的具体步骤如下:

1)打开keil集成开发环境,新建一个新的工程文件。

2)根据需要为工程选择目标器件组和相应的器件号。

3)创建源程序文件并输入程序代码。

4)保存创建的源程序项目文件。

5)把源程序文件添加到项目中。

6)点击菜单栏上的Project项,选择Option for target ?target1?将出现调试环境设置界面。在Debug栏内选UseSimulator用软件模拟仿真。

7)编译连接环境设置,选中Create Hex File选项,在编译时就可以自动生成目标代码文件*.hex。

硬件调试仿真的具体步骤如下:

1)修改源程序入口地址为8000H;

2)点击菜单栏上的Project项,选择Option for target ?target1?将出现调试环境设置界面。在Debug栏内选Use MON51选项,并在该栏后的驱动方式选择框内的选这时的驱动程序库。对于51仿真器应选择Keil Monitoe-51 Diver选项。同时在Settings项中设置串行通信的端口和波特率9600bps,这要求和通信协议上一致。由于MON51监控程序已经占用了0000H~7FFFH,用户应用程序必须从8000H开始存放。故在off-chip code memory-Eprom设为0x8000,长度0x4000。off-chip Xdata memory-Ram设为0xC000,长度0x4000。

3)配置好环境设置后,对文件进行编译。如果编译成功,则产生目标文件。如果有错误则更正错误,重新编译直至完全正确为止。

4)连接好DP-51PROC实验仪,对实验仪上电,打开DPFlash,把仿真器上的开关拨到LOAD模式,ISP跳线JP14 跳开,按下复位键,即进入下载状态。在DPFlash上型号的下拉菜单选择DP-51PROC,然后根据你所插的通信口选择相应的通信口。点击编程按钮,选择MON51选项,开始下载到TKSMonitor51仿真器的Flash中。再将仿真器工作模式改为run,重启,仿真器进入调试状态。

5)关掉DPFlash,点击DEBUG菜单,选中Start/Stop Debug Session调试命令,这样既可以把用户程序下载到仿真器的SRAM中。单击go!,进行控制。 脱机运行的具体步骤如下:

1)修改源程序入口地址为0000H;

2)点击菜单栏上的Project项,选择Option for target ?target1?将出现调试环境设置界面。Target属性的设置,设置Off-Chip Code Memory栏内的Eprom选项,start下输入0x0000,size下输入0x4000;Off-Chip Xdata memory栏内的Eprom选项,start下输入0xC000,size下输入0x4000。

3)连接好DP-51PROC实验仪,对实验仪上电,打开DPFlash,把仿真器上的开关拨到LOAD模式,ISP跳线JP14 跳开,按下复位键,即进入下载状态。在DPFlash上型号的下拉菜单选择DP-51PROC,然后根据你所插的通信口选择相应的通信口。装载文件,点击编程按钮,选择编程文件区选项,将生成的目标文件下载到TKSMonitor51仿真器的Flash中。再将仿真器工作模式改为run,重启,仿真器进入脱机运行状态。

六、实验注意事项:

1、硬件调试或运行的运行的时候打开电源,不要保持电源的常开状态,以免实验箱运行时间过长烧坏。

2、Debug时,需关掉DPFlash,否则调试时开发环境报错。

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

单片机实验报告学生姓名学号专业指导教师学院信息与电气工程学院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产生定时中断实现秒表功能数码管后两位...

单片机最小系统实验报告

单片机原理及应用技术设计课题系别专业学号姓名指导老师课程设计报告20xx年6月单片机最小系统流水灯的设计一单片机简介由于单片机技术在各个领域正得到越来越广泛的应用世界上许多记成电路生产家相继推出各种类型的单片机...

单片机实验报告

一实验目的1熟练单片机的结构组成及原理2软硬兼施采用硬件电路的焊接搭建和软件的设计调试下载亲自动手对硬件系统加深了解的同时软件编程也能得心应手3了解如何从硬件和软件上分析问题排除故障二实验内容MCS51MCS5...

单片机实验报告

单片机实验报告实验二并行口输入输出实验循环彩灯控制任务一1实现的功能P1口接8个开关P0口接8个灯每个开关对应一个灯实时读取开关状态开关闭合时灯亮开关断开时灯灭2硬件原理图3流程图4程序ORG0000H程序入口...

单片机中断实验报告

实验三定时器中断实验一实验目的1掌握51单片机定时器基本知识2掌握定时器的基本编程方法3学会使用定时器中断二实验内容1利用定时器设计一个秒表计数范围为059并在数码管实时显示三实验设备PC机一台单片机实验箱主要...

单片机实验报告

单片机实验报告第一次实验编程与环境学习实验目的1熟悉nSPIDE环境及在该环境下用汇编语言或C语言编写应用程序2熟悉简单的nSP汇编语言指令实验设备装有WINDOWS系统和nSPIDE仿真环境的PC机一台实验内...

单片机实验报告(42篇)