单片机导论实验讲义

单片机导论实验讲义
单片机导论实验讲义

第一章单片机软件实验

实验一内存操作

1.实验目的

①掌握数据传送指令;

②掌握各种数据传送指令的寻址方式;

③熟练运用keil 环境对汇编程序进行调试;

④掌握数据传送、复制等程序的设计与调试方法。

2.预习要求

①理解数据传送指令和循环指令的使用;

②理解如何对内部寄存器、内部RAM、外部RAM的读写;

③理解各种寻址方式,尤其是较为抽象的变址寻址及相对寻址的方式;

④认真预习本实验内容,自行编写程序,填写实验报告。

3.实验设备

计算机1台;

4.基础型实验内容

①下列程序的功能是给外部RAM8000~80FFH的256个单元的内容赋值,赋值的内

容取决于程序中A的赋值。在Keil环境运行该程序,并观察寄存器及内存单元的变化。

ORG 0000H

START EQU 8000H

MAIN: MOV DPTR,#START ;;起始地址

MOV R0,#0ffh ; ;设置256字节计数值

MOV A, #1H

Loop: MOVX @DPTR, A

INC DPTR ; ;指向下一个地址

DJNZ R0, loop ; ;计数值减1

SJMP $

② END下列程序将3000H起始的256个字节存储块移动到4000H起始的256

个字节存储块,在Keil环境运行如下程序,观察寄存器及存储单元的变化。

ORG 0000H

MOV DPTR,#3000H

MOV A,#01H

MOV R5,#O

LOOP: MOVX @DPTR,A

INC DPTR

DJNZ R5,LOOP

MOV R0,#30H

MOV R1,#00H

MOV R2,#40H

MOV R3,#00H

MOV R7,#0

LOOP1: MOV DPH,R0

MOV DPL,R1

MOVX A,@DPTR

MOV DPH,R2

MOV DPL,R3

MOVX @DPTR,A

INC R1

INC R3

DJNZ R7,LOOP1

SJMP $

END

5.设计型实验内容

①在keil环境修改内部RAM 30H ~3FH的内容分别为#00H-#0FH,设计程序实现将内

部RAM30H-3FH到40H-4FH的数据块拷贝。

②在keil环境修改内部RAM 30H ~3FH的内容分别为#00H-#0FH,设计程序实现将片

内30H~3FH单元的内容复制到片外1030H~103FH中。

③在keil环境修改内部RAM 30H ~3FH的内容分别为#00H-#0FH,设计程序实现将内

部RAM30H ~3FH内容逆序拷贝到外部数据XRAM:0000H ~000FH中。使用单步、断点方式调试程序,查看特殊功能寄存器、内部数据RAM、外部数据空间的变化。

实验二数制及代码转换

1.实验目的

①了解微机系统中的数制与代码表示方法;

②掌握计算机中使用的各种代码转换方法;

③掌握实现分支、循环的指令及其程序的编写方法;

2.预习要求

①理解十进制数、十六进制数的数制表示方法;

②理解BCD码、ASCII码编码方式;

③如何实现十六进制数与BCD码之间的转换;

④如何实现ASCII码与BCD码之间的转换。

3.实验设备

计算机1台。

4.基础型实验内容

①以下程序完成单字节的ASCII码到十六进制数转换,完成空白处程序填写,并在

Keil环境运行程序,观察寄存器及内存单元的变化。

RESULT EQU 30H

ORG 0000H

MOV A,#41H ;“A”的ASCII码

CLR C

SUBB A, ; 转换为十六进制值A

MOV RESULT,A

LJMP $

END

②以下程序完成单字节的BCD码到十六进制数转换,,在Keil环境运行程序,观察寄

存器及内存单元的变化。

RESULT EQU 30H

ORG 0000H

MOV A,#23H

MOV R0,A

ANL A,#0F0H

SWAP A

MOV B,#0AH

MUL AB

MOV RESULT,A ;转换高位

MOV A,R0

MOV B,#0FH

ADD A,RESULT

MOV RESULT,A ; 转换低位

SJMP $

END

③以下程序将单字节十六进制数A的值转换为十进制数,存放在30H~32H中,完成

空白处程序填写,并在Keil环境运行程序,观察寄存器及内存单元的变化。

RESULT EQU 30H

ORG 0000H

MOV A,#7BH

MOV B,#

DIV AB

MOV RESULT,A ;除以100得百位数

MOV A,B

MOV B,#

MOV RESULT+1,A ;除以10得十位数

MOV RESULT+2,B ;余数为个位数

SJMP $

END

5.设计型实验内容

①设一串字母的ASCII存于30H起始的单元中,设计程序判断字母是否为大写字母,

是则将大写字母的ASCII字符转换成小写字母的ASCII字符,为小写则不转换。

②将单字节十六进制数D8H转换为十进制数,存放在30H~33H中。,

③设计程序,将十六进制数614EH转换成ASCII码,使用单步、断点方式调试程序,

查看结果。

实验三算术运算

1.实验目的

①掌握算术运算类、逻辑运算类指令的使用方法;

②掌握BCD码、补码数制表示方法;

③掌握运算程序及循环程序的编写和调试方法。

2.预习要求

①理解8051单片机的算术运算指令;

②理解补码表示数值的方法;

③理解压缩、非压缩BCD码表示数值的方法;

④如何实现多位数的BCD码加、乘、除运算;

⑤如何实现多位数的BCD码减法运算;

⑥预习本实验内容,以及相关课程内容。

3.实验设备

计算机1台。

4.基础型实验内容

①以下程序完成单字节的BCD码加法功能,完成空白处程序填写,并在Keil环境运

行程序,观察寄存器及内存单元的变化。

RESULT EQU 30H

ORG 0000H

MOV A,#99H

MOV B,#99H

ADD ,

; BCD码相加并得到BCD码结果

MOV RESULT,A

MOV A,#00H

A,#00H

MOV RESULT+1,A ;高位处理

LJMP $

END

②下列程序完成多字节BCD码加法运算。内部RAM30H开始的4字节长的BCD码

和外部RAM 1000H开始的4字节长的BCD码相加,结果放在1100H开始的单元中(从低字节到高字节)。

ORG 0000H

CLR C

MOV R5, #04H

MOV R0,#30H

MOV R1,#10H

MOV R2,#00H

MOV R3,#11H

MOV R4,#00H

L1:MOV DPH,R1

MOV DPL,R2

MOVX A,@DPTR

ADDC A, @R0

DA A ;十进制调整

MOV DPH,R3

MOV DPL,R4

MOVX @DPTR,A

INC R2

INC R4

INC R0

L2:DJNZ R5, L1

JNC L3

MOV DPTR,#1104H ;有进位则结果的第五个字节置1

MOV A,#01H

MOVX @DPTR,A

L3:NOP

END

5.设计型实验内容

①设计程序,实现任意字节压缩BCD码的相加,使用单步、断点方式调试程序,查

看结果。

②设计程序,实现多字节十六进制数的减法123456H-005634H,使用单步、断点方

式调试程序,查看结果。

③在内部RAM的30H单元开始,有一串带符号数据块,其长度在10H单元中。编

程求其中正数与负数的和,并分别存入2CH与2EH开始的2个单元中。(负数存放形式为补码)。请分别在30H单元开始写入5个正数、11个负数和9个正数、7个负数的情况,记录程序运行结果。

例如:输入-69H,65H,-7H, -25H ,-47H,56H, -3H,17H,6H,-5H,-45H, -1H, -57H, 23H ,-5H,-13H则正数的和89,负数的和-199H。

实验四比较和查表

1.实验目的

①掌握比较指令的使用及循环程序的编写方法;

②掌握字符查找的思路和算法;

③理解并能运用查表和散转指令。

2.预习要求

①理解掌握比较程序的设计思路;

②理解多分支结构程序的编程方法;

③预习本节实验内容,编写程序及实验预习报告。

3.实验设备计算机1台。

4.基础型实验内容

①以下子程序完成一个两位十六进制数到ASCII码的转换,数值存放在R2中,转换

结果地位存于R2,高位存于R3。用PC做基址实现。

ORG 0000H

HEXA: MOV R2,#1BH

MOV A,R2

ANL A,#0FH

ADD A,#09H

MOVC A,@A+PC

XCH A,R2

ANL A,#0F0H

SW AP A

ADD A,#02H

MOVC A,@A+PC

MOV R3,A

RET

TAB: DB '0','1','2','3','4'

DB '5','6','7','8','9'

DB 'A','B','C','D','E','F'

END

5.设计型实验内容

①分别用近程查表指令和远程查表指令,查找R3内容的平方值。R3内容小于等于

0FH,即平方值为单字节数据。

②在外部RAM 1000H开始处有10H个带符号数,请找出其中的最大值和最小值,分

别存入内部RAM的MAX、MIN单元。

③分别用近程查表指令和远程查表指令,查找R3内容的平方值。平方值为两个字节

数据。

第二章单片机硬件实验

硬件实验需要连接计算机与80C51的仿真器,在实验前要理解相关的硬件电路,按实验指导书中的硬件连接方法正确连线,才能保证实验的正常进行,得到正确结果。

硬件实验时要注意以下几点:

1、根据实验指导书正确进行模块与模块之间接口的连接;注意一定要在实验系

统上电前进行接口的连接,千万不能带电操作。

2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,

请注意仿真器的方向:缺口朝上。(断电时进行)

3、进行KEIL软件的设置(KEIL软件使用见附录一),编辑汇编源程序,编译,

直至编译无误。

4、打开80C51模块电源和总电源,可以单步或跟踪或全速方式运行程序,同时

观察运行结果(注意:要停止调试,按THKL-C51仿真器上的Reset按键)。

5、也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到

89S52/89S51芯片中运行(注意:芯片缺口朝上;不建议使用)。(ISP烧录器的使用查看附录二)

注:

1、在做完实验时记得养成一个好习惯:把相应单元的短路帽和电源开关还原到

原来的位置!以下将不再重述。

2、不要插拔实验系统上的模块和芯片,不要打开与本实验不相关模块的电源。

注意

不能带电进行模块之间导线的连接!!

实验一I/O控制实验

1.实验目的

①掌握基本IO输入输出操作指令;

②熟练运用keil环境对硬件接口进行调试。

2.预习要求

①理解51单片机IO的输入、输出控制方式;理解P0、P1、P2、P3口做为普通的IO

口有何区别。

②理解实现软件延时程序设计的延时时间估算;

③认真预习本节实验内容,设计出器件之间的实验连接线,自行编写程序,填写实验

报告。

3.实验设备

计算机1台;

ZDGDTH-1型80C51实验开发系统1套;

2号导线4条;

8P数据线1条。

4.基础型实验内容

①8位逻辑电平显示的接口电路设计如图1-1所示,用P1口做输出口,接八位逻辑

电平显示,程序功能使发光二极管从右到左轮流循环点亮。

用8P数据线将D2区80C51/C8051F020MCU模块的 JD1(P1口)与A5区8位逻辑电平显示模块JD1A5相连。在Keil环境运行该程序,观察发光二极管显示情况。

图1-1 8位八位逻辑电平显示接口电路

ORG 0

LOOP: MOV A, #0FEH

MOV R2,#8

OUTPUT: MOV P1,A

RL A

ACALL DELAY

DJNZ R2,OUTPUT

LJMP LOOP

DELAY: MOV R6,#0 ;延时程序

MOV R7,#0

DELAYLOOP: DJNZ R6,DELAYLOOP

DJNZ R7,DELAYLOOP

RET

END

②8位拨动开关的接口电路设计如图1-2所示,假设采用P1口控制LED显示,P2口

接收拨码开关的输入值,用8P数据线将D2区80C51/C8051F020MCU模块的 JD1(P1口)、JD1(P2口)分别与A5区八位逻辑电平显示模块JD1A5、C6区8位拨动开关模块JD1 C6相连。在Keil环境运行该程序,使用单步、断点、连续运行调试程序,查看结果。

图1-2 拨码开关接口电路

ORG 0000H

LL: MOV P2,#0FFH

NOP

MOV A, P2

NOP

MOV P1,A

LJMP LL

END

③如图1-3所示,假设采用P1.0口控制外部LED,拨动开关控制外部中断,用二号

导线将D2区80C51/C8051F020MCU模块的P1.0、P3.2口分别与A 5区八位逻辑电平显示模块的L0、C8区单次脉冲输出相连。并在Keil环境运行程序,观察实验现象。

图1-3 外部中断及LED显示电路

流程图为:

源程序:

ORG 0000H

LJMP MAIN

ORG 0003H

LJMP INTERRUPT

ORG 0030H

MAIN: CLR P1.0

MOV TCON,#01H

MOV IE,#81H

SJMP $

INTERRUPT: PUSH PSW ; 保护现场

CPL P1.0

POP PSW ; 恢复现场

RETI

END

④在上述步骤中,如果改变中断的触发方式为电平触发方式,试改动程序,并在Keil

环境运行程序,观察实验现象,说明实验结果。

5.设计型实验内容

①画出流程并设计程序实现8位逻辑电平显示模块的奇偶位的亮灭闪烁显示,闪烁间

隔为1S。

②画出流程并设计程序实现8位逻辑电平显示模块的LED轮流点亮,间隔为1S。

③设计硬件连接图,画出流程并设计程序实现当拨码开关K0往上拨时,实现设计型

实验内容步骤①,否则LED全灭;当开关K1往上拨时,实现设计型实验内容步骤②,否则LED全灭;当K0、K1同时往上拨的时候,LED全亮。

④累计INT0按键的中断次数,保存到内部RAM的30H单元。

单片机原理及其接口技术实验报告

单片机原理及其接口技术实验指导书 实验1 Keil C51的使用(汇编语言) 一.实验目的: 初步掌握Keil C51(汇编语言)和ZY15MCU12BD型综合单片机实验箱的操作和使用,能够输入和运行简单的程序。 二.实验设备: ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil C51的计算机一台。 三.实验原理及环境: 在计算机上已安装Keil C51软件。这个软件既可以与硬件(ZY15MCU12BD型综合单片机实验箱)连接,在硬件(单片机)上运行程序;也可以不与硬件连接,仅在计算机上以虚拟仿真的方法运行程序。如果程序有对硬件的驱动,就需要与硬件连接;如果没有硬件动作,仅有软件操作,就可以使用虚拟仿真。 四:实验内容: 1.掌握软件的开发过程: 1)建立一个工程项目选择芯片确定选项。 2)加入C 源文件或汇编源文件。 3)用项目管理器生成各种应用文件。 4)检查并修改源文件中的错误。 5)编译连接通过后进行软件模拟仿真。 6)编译连接通过后进行硬件仿真。 2.按以上步骤实现在P1.0输出一个频率为1Hz的方波。 3.在2的基础上,实现同时在P1.0和P1.1上各输出一个频率同为1Hz但电平状态相反的方波。 五:程序清单: ORG 0000H AGAIN:CPL P1.0 MOV R0,#10 ;延时0.5秒 LOOP1:MOV R1,#100 LOOP2:MOV R2,#250 DJNZ R2,$ DJNZ R1,LOOP2 DJNZ R0,LOOP1 SJMP AGAIN END 六:实验步骤: 1.建立一个工程项目选择芯片确定选项 如图1-1所示:①Project→②New Project→③输入工程名test→④保存工程文件(鼠标点击保存按钮)

单片机实验7学习资料

单片机实验7

实验七直流数字电压表设计 姓名:田坤学号:200912512 专业:电子信息科学与技术 1.实验目的: 掌握LED动态显示和A/D 转换接口设计方法。 2.实验原理: 实验电路原理图如图A..94所示。图中显示器采用4位共阴极数码管,并按动态显示方式接线。A/D转换结束标志采用查询法检查,启动信号由软件模拟产生,时钟信号由Proteus的DClock信号发生器产生,频率为5kHz。电位器的输出电压送到A/D转换器中转换,转换结果以十进制形式显示在数码管上。调节电位器可使数码管的显示值发生相应变化。 图A.94 实验7的电路原理图 3.实验内容: (1)、学习使用Proteus软件,掌握原理图绘图方法; (2)、学习使用Keil C软件,掌握C51程序编写与调试方法;(3)、理解动态显示与A/D转换工作原理,完成单片机电压采集与显示程序的编写与调试。 4.实验步骤: (1)、在Proteus中绘制电路原理图,按照表A.9将元件添加到编辑环境中; (2)、在Keil中编写C51程序,并使之编译通过;

(3)、在Proteus中加载程序,观察仿真结果。 5.实验要求: 提交的实验报告中应包括电路原理图、含注释内容的源程序及实验结果分析。 表A.9 实验7的元器件清单 1)源程序如下: #include // 头文件 #include unsigned int tmp; //定义一个整形中间变量 sbit START=P2^5; //定义ADC0808启动位 sbit ad_busy=P2^6; //定义ADC0808转换结束标志位 sbit OE=P2^7; //定义ADC0808输出使能标志位 sbit P2_0=P2^0; //定义四个数码管 sbit P2_1=P2^1; sbit P2_2=P2^2; sbit P2_3=P2^3; char led_mod[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //LED字模

单片机实验讲义

实验一流水灯 实验目的: 1、熟悉用单片机产生流水灯的效果; 2、掌握循环移位的工作原理和操作方法; 3、学会使用C51 封装好的函数库C51LIB,延时函数的时间估算。 实验仪器: 电脑,TX-1C单片机实验板,万用表USB-232线,USB线。 实验原理: 实验内容: P1.0~P1.8对于Led1~Led8八个发光二极管,要求来回循环点亮,停顿时间为0.5秒。显示效果如下: Led1 Led2 Led3 Led4 Led5 Led6 Led7 Led8 亮暗暗暗暗暗暗暗 暗亮暗暗暗暗暗暗 暗暗亮暗暗暗暗暗 暗暗暗亮暗暗暗暗 暗暗暗暗亮暗暗暗 暗暗暗暗暗亮暗暗 暗暗暗暗暗暗亮暗 暗暗暗暗暗暗暗亮 亮暗暗暗暗暗暗暗 暗亮暗暗暗暗暗暗 暗暗亮暗暗暗暗暗 暗暗暗亮暗暗暗暗 ………………………………………………………… 实验步骤: 1、编程,调试,下载; 2、记录实验现象; 3、举一反三:编写3/4/5/6/7个灯循环点亮的程序。

实验二利用定时器控制数码管的显示 实验目的: 1、学会利用单片机的定时器; 2、熟悉数码管显示原理; 3、了解蜂鸣器发声原理。 实验仪器: 电脑,TX-1C单片机实验板,万用表,USB-232线,USB线。实验原理: 2、记录实验现象。

实验三矩阵键盘检测 实验目的: 1、学会矩阵键盘的检测 2、掌握数码管静态显示原理 实验仪器: 电脑,TX-1C单片机实验板,万用表,USB-232线,USB线。 实验原理: 静态数码管显示原理:本开发板数码管为共阴极,所以要想点亮数码管,则给阳极加高电平。 实验内容: 依次按下4*4 矩阵键盘上从第1 到第12个键,同时在六位数码管上依次显示0、1、2、3、4、5、6、7、8、9、A、B。 实验步骤: 1、编程,调试,下载; 2、记录实验现象; 3、举一反三:第13个键到第16个键C、D、E、F。

单片机原理及应用实验指导书

单片机原理及应用实验指导书 河北工业大学 计算机科学与软件学院

实验一指令系统和汇编语言程序设计实验 本章实验主要包括指令系统和汇编语言程序设计两部分。采用软件模拟调试的方法,目的在于通过这些实验可以使学生巩固所学知识,加深对MCS-51单片机内部结构、指令系统的理解,更进一步掌握汇编语言程序设计的方法和技巧。 实验操作说明 Keil 软件调试方式分为:软件仿真方式和硬件调试两种。 软件仿真实验上机操作步骤: 1、进入Keil,点击桌面上“Keil μVersion 3”图标,进入Keil系统窗口; 2、新建工程: 1)打开“工程”菜单中的新建,在弹出的对话框中,键入自己定义的工程名; 2)在进一步打开的对话框中,选择CPU的类型,为Intel公司的8032AH,确定; 3)存入C:\keil 文件夹中。(机房,安装在C盘,改为C:\keil) 3、打开“视图”菜单中的“工程窗口”; 4、在“工程窗口”中,右击“目标1”,为工程设置参数; 1)在弹出的快捷菜单中选择“为目标“目标1”设置选项”; 2)在弹出的对话框中选择“项目”选项卡,设置时钟为“12Mhz”; 3)选择“调试”选项卡,在单选框选择“软件仿真方式”; 4)确定,即完成了“软件仿真方式”的设置。 5、新建文件 1)打开“文件”菜单,选择“新建”; 2)系统打开一个文本窗口,你可在窗口的编辑区输入要调试的汇编语言源程序; 3)存盘,命名文件名和扩展名,文件名任起,扩展名必须是.asm,存入C:\keil 文件夹中(在大机房,安装在C盘,改为C:\keil);例如:a.asm。 6、将刚建的新文件添入当前的工程中 1)在“工程窗口”中,“目标1”的+号处打开,显示“源代码组1”; 2)右击“源代码组1”,在快捷菜单中选择“为“源代码组1”添加文件”,弹出一个对话框; 3)在对话框中选择“文件类型”为*.*; 4) 选择文件所在路径,同时找到刚键入的a.asm文件,点击“add”按钮,然后点击“close”按钮; 5) 在“工程窗口”点击“源代码组1”左侧的+号,显示添加的a.asm文件,添加成功。 7、汇编 1)在“工程窗口”点击“源代码组1”的a.asm文件; 2)打开“a.asm”文件编辑窗口; 3)点击工具按钮中的“重建所有的目标文件”,进行汇编; 4)在“输出窗口”显示汇编是否有错,无错,进入调试; 有错,在编辑窗口修改程序,改后,再次汇编,直至无错后进入调试; 8、调试程序 1)点击“开始/停止调试”按钮,进入调试界面; 2)在程序窗口中有一个黄箭头指向程序的第一条可执行指令的开头; 3)选择调试方式进行调试; ①在“调试”菜单中选择:跟踪、单步、运行、断点等方式;

C51单片机实验指导书

单片机原理与接口技术实验讲义 目录 第一章开发环境安装使用说明 (3) 第二章基于51单片机系统资源实验 (12)

实验1 IO开关量输入实验 (12) 实验2 IO输出驱动继电器(或光电隔离器)实验 (13) 实验3 IO输入/输出---半导体温度传感器DS18B20实验 (14) 实验4 外部中断----脉冲计数实验 (15) 实验5 计数器实验 (16) 实验6 秒时钟发生器实验 (17) 实验7 PC机串口通讯实验 (18) 实验8 RS485通讯实验 (19) 实验9 PWM发生器(模拟)实验 (20) 实验10 蜂鸣器实验 (21) 第一章开发环境安装使用说明 一、KeilC51集成开发环境的安装 1.Keil u Vision2的安装步骤如下

将安装文件拷贝到电脑根目录下,然后双击图标,如图1-1所示:注意:去掉属性里的只读选项。 图1-1 启动安装环境对话框 2.选择Eval Version。然后一直next直至安装完成,如图1-2所示: 二.在Keil uVision2中新建一个工程以及工程配置 1.打开Keil C环境,如图1-3所示。

图1-3打开工程对话框 2.新建工程或打开工程文件:在主菜单上选“Project”项,在下拉列表中选择“New Project”新建工程,浏览保存工程文件为扩展名为“.Uv2”的文件。或在下拉列表中选择“Open project”打开已有的工程文件。如 图1-4所示: 图1-4 新建工程 3.环境设置:新建工程文件后,在工具栏中选择如下图选项设置调试参数及运行环境,或从主菜单“Project”项中 选择“Options for Target ‘Target1’”,打开如下图1-5设置窗口。

单片机实验讲义

单片机实验讲义

DVCC单片机实验系统简介 本科目实验使用的平台为启东公司的DVCC-52JH单片机仿真实验仪(带有配套试验软件)。可基本满足MCS-51(80C51)系列单片机课程(本/专科)的实验要求。 实验平台资源: 1、AT89C52单片机(6MHz晶体振荡器、256B片内RAM、8KB程 序存储器(FLASH)、3个定时/计数器、6个中断源(T2))。2、实验平台带有总线扩展有64BK片外RAM,用户可使用范围 0000H~0FEFFH;64KB片外ROM,用户可使用范围

0000H~0FEFFH。 3、实验平台的主要芯片有:1片8255可编程通用并行界面芯片、1 片8155芯片、1片译码芯片74138、1片74393芯片、1片D/A 转换芯片0832、1片A/D转换芯片0809、2片串/并转换芯片74164、若干辅助芯片74240、74373等和常用逻辑门电路芯片。 4、实验平台上的主要外设包括:K1~K10滑动开关、L1~L12发光二 极管(有3种颜色)、2个LED七段数码管、1个单脉冲发生器、1个时钟频率选择器、1个步进电机(带驱动电路)、1个直流电机(带驱动电路)、2个电位器、1个继电器、1个扬声器驱动、1个双踪模拟示波器、带有总线扩展区、带有EPROM烧录区。 实验系统的使用步骤: 1、在计算机、实验仪关闭时,使用实验平台自带的RS-232通用串口 线连接计算机的COM口和实验箱的J2串行口。

2、启动计算机,运行“DVCC52JH实验系统”。 3、在计算机上编写并调试实验程序,在实验箱中联接实验所需连线。 4、打开试验箱电源,点击实验箱上的“复位”按钮,再点击实验箱 上键盘区的“PCDBG”按钮。 5、在计算机上的“DVCC实验系统”软件中,左键单击工具栏上的 “联接”按钮(或选择“动态调试”菜单下的“联接DVCC实验系统选项”)。 6、如果联接正常将弹出若干小窗口。如果联接失败重新执行步骤3、 4。 7、在计算机上的“DVCC实验系统”软件中,选择“编译”菜单下 的“编译连接并传送”选项,将实验程序传送到实验箱。 8、在计算机上的“DVCC实验系统”软件中,左键单击工具栏中的 “运行”按钮,设置PC起始地址,观察实验现象,验证实验结果。 9、实验结束后关闭实验箱电源和计算机,拔下连线,收起实验箱并 放回原处。 软件实验 实验一清零实验 一、实验目的:

单片机数据传送实验报告

实验名称: 数据传送实验 实验类型: 设计性实验 姓名:袁志生 时间:第五六节课 一、实验目的与要求 实验目的:1、掌握单片机的汇编指令系统及汇编语言程序设计方法。 2、掌握单片机的存储器体系结构。 3、熟悉keil软件的功能和使用方法。 4、掌握单片机应用程序的调试方法。 实验要求:1、实现单片机内部RAM之间,外部RAM之间以及内部RAM 与外部RAM之间的数据传送。 2、利用Keil软件编辑、汇编、调试、运行实验程序并记录实验数据。 二、设计要求 1、编写程序将00H~0FH 16个数据分别送到单片机内部RAM 30H~3FH 单元中。 2、编写程序将片内RAM 30H~3FH的内容传送至片内RAM 40~4FH单元中。 3、编写程序将片内RAM 40H~4FH单元中的内容传送到外部RAM 4800H~480FH单元中。 4、编写程序将片外4800H~480FH单元内容送到外部RAM 5800H~580FH 单元中。 5、编写程序将片外RAM 5800H~580FH单元内容传送回片内RAM 50H~5FH 单元中。

三、实验程序流程框图和程序清单.

程序清单: ORG 0000H START: MOV R0, #30H MOV DPTR, #QW1 MOV R5, #0 MOV R7, #16 LOOP: MOV A, R5 MOVC A, @A+DPTR MOV @R0, A INC R0 INC R5 DJNZ R7, LOOP LJMP QW2 QW1: DB 00H, 01H, 02H, 03H, 04H, 05H, 06H, 07H DB 08H, 09H, 0AH, 0BH, 0CH, 0DH, 0EH, 0FH QW2: MOV R0, #30H MOV R1, #40H MOV R5, #16 LOOP1: MOV A, @R0 MOV @R1, A INC R0 INC R1 DJNZ R5, LOOP1 MOV R1, #40H MOV DPTR, #4800H MOV R5, #16 LOOP2: MOV A, @R1 MOVX @DPTR, A INC R1 INC DPTR DJNZ R5, LOOP2 MOV SP, #60H MOV 11H, #48H MOV 10H, #58H MOV R2, #00H LOOP3: MOV DPL, R2 PUSH 10H PUSH 11H

单片机原理及应用实验指导书

单片机原理及应用实验指导书 湖南人文科技学院 二00一年三月

实验一I /O口输出实验—LED流水灯实验 一、实验目的 1、掌握单片机最小系统的构成; 2、掌握I/O口的使用及驱动能力的概念; 3、熟悉移位指令和软件延时程序。 二、实验设备与器件 1、计算机1台 2、PROTEUS单片机教学实验箱FB-EDU-P51A 三、实验原理 如下图所示,用单片机控制LED的亮与灭,在实验图中将MCU的P1口与LED的阴极相连,当P1口给低电平时,LED发亮,当P1口给高电平时,

四、实验内容 1、利用51单片机及8个发光二级管等器件,构成一个流水灯单片机系统。 2、用Keil C51软件创建程序 3、对程序进行编译与链接,建立实验程序并编译,加载hex文件,仿真; 4、实验板验证 (1)用ISP下载hex程序到CPU (2)按连接表连接电路 (3)检查验证结果 五、实验报告 在预习报告的基础上写出详细实验过程;画出实验原理图,写出单片机控制程序,写出调试步骤与仿真方法,观察实验现象,得出实验结果,并分析实验结果的正确性。 六、预习要求 1、单片机最小系统的构成 2、单片机I/O口的使用以及软件延时程序的编写。 七、实验参考程序 ORG 00H START: MOV R2,#8 MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A ;循环左移 DJNZ R2,LOOP ;判断移动是否超过8 位, 未超过继续循环 LJMP START DELAY: MOV R5,#20 ;延时程序,延时0.2s D1: MOV R6,#20

单片机实验指导书2

MCS51单片机原理及应用 实验指导书 唐山学院信息工程系 单片机实验室 2008年9月

实验一 P1口实验 一、实验目的 1.学习P1口的使用方法; 2.学习延时子程序的编写和使用; 3.学习单片机实验系统的使用方法和程序的调试方法。 二、实验题目 1.P1口做输出口,接八只发光二极管,编写程序,使其循环点亮。 2.P1口低四位接四只发光二极管L1-L4, P1口高四位接开关K1-K4,编写程 序,将开关的状态在发光二极管上显示出来。 三、实验原理说明 P1口为准双向口,P1口的每一位都能独立地定义为输出线或输入线,作为输入的口线,必须向锁存器相应位写入“1”,该位才能作为输入。8031中所有口锁存器在复位时均置为“1”,如果后来往口锁存器写入过“0”,再作为输入时,需要向口锁存器对应位写入“1”。 延时程序的编写可以用两种方法,一种是用定时器来实现,一种使用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。 如果系统晶振为6.144MHz,则一个机器周期为12/6.144μs即1/0.512μs。 现要编写一个延时0.1s的程序,可以大致写出如下: MOV R7, #200 DE1: MOV R6, #X DE2: DJNZ R6, DE2 DJNZ R7, DE1 上面 MOV、DJNZ指令均为两个机器周期,所以执行一条指令需要1/0.256us, 现求出X值:(X*1÷0.256+1÷0.256+1÷0.256)*200+1÷0.256=0.1*106 指令3 指令2 指令4 指令1 计算出X=126,代入上式可知实际延时约为0.100004s。 四、连线方法 题目1:8031的P1.0—P1.7分别接发光二极管L1—L8 题目2:P1口的P1.0—P1.3接L1-L4, P1口的P1.4—P1.7接K1-K4 五、实验电路

单片机实验报告

汇编语言程序设计 1)编译后,系统提示:目标越界,改为AJMP后编译通过,将ORG 07FFH 改为0800H, 系统提示:目标越界,这说明AJMP可以在2KB 范围内无条件转移。 2.改为LJMP编译通过,这说明LJMP可以在64KB 范围内无条件转移。 3.将LJMP LP1改为SJMP LP0,机器码为80FC,其中FC为偏移量,它是一个补码,01H~7FH说明向PC(增大√、减小)方向跳,80H~FFH说明向PC(增大、减小√)方向跳,这说明SJMP可以在当前PC值-128B~+127B 范围内无条件转移。 1、X、Y以补码的形式存放在20H、21H中,编写程序实现如下函数: 实验程序: MOV A,20H JZ ZREO JB ACC.7,NEG MOV 21H,#01H SJMP PEND ZREO:MOV 21H,A SJMP PEND NEG:MOV 21H,#0FFH PEND:SJMP$ END 结果记录: 1.将数89H存放于20H中,运行程序,观察到21H单元中的内容为FF; 2.将数05H存放于20H中,运行程序,观察到21H单元中的内容为01; 3.将数00H存放于20H中,运行程序,观察到21H单元中的内容为00; 2、将20H~27H中的压缩BCD码拆为两个单字节BCD码,存放在以2000H为首地址的外部RAM 中。 实验程序: MOV R0,#20H MOV R7,#08H MOV DPTR,#2000H LOOP:ACALL CZ INC R0

INC DPTR DJNZ R7,LOOP SJMP $ CZ:MOV A,@R0 SWAP A ANL A,#0FH MOVX @DPTR,A INC DPTR MOV A,@R0 ANL A,#0FH MOVX @DPTR,A RET END 结果记录: 20H 21H 22H 23H 24H 25H 26H 27H 87H 54H 36H 23 19H 43H 77H 69H 2000H 2002H2004H2006H2008H200AH200CH200EH 07H 04H 06H 03H 09H 03H 07H 09H 2001H 2003H2005H2007H2009H200BH200DH200FH 08H 05H 03H 02H 01H 04H 07H 06H 1、数在计算机中是以补码形式存放的,因此,判断数据的正负,往往采用判断第7 位,是0 则为正数,是1 则为正数 2、实验内容2中JZ ZREO 的机器码为600DH ,其中0DH 为偏移量,当前PC值0004 加上这个偏移量等于0011H ,这正是即将执行的程序的首地址,即标号为ZREO 语句。程序计算器PC的功能是指向下一条指令,因此,跳转语句是依靠偏移量来改变程序计数器PC的值,从而改变程序的流向。 3、分支程序一定要注意分支的语句标号的正确性,每一分支之间必须用跳转(如SJMP)指令分隔,并跳转到相应标号。 4、子程序往往用间址寄存器传递数据,内部RAM用@Ri ,外部RAM用@DPTR ,绝对不能用直接地址。最后以RET 结尾。 5、循环程序往往用寄存器传递数据,用R7控制循环次数,用调用作为循环体,用指令INC 修改地址指针,用指令DJNZ 判断循环结束。 6、执行ACALL前(SP)= 07H ,执行ACALL时,(SP)= 09H ,(08H)= 09H ,(09H)= 00H ,(PC)= 000FH ,PC的值正是子程序的入口地址,而堆栈中这两个单元存放的是断点处PC的值;执行到RET后,(SP)= 07H , 原08H的值弹给(PC)7~0 ,原09H的值弹给(PC)15~8 ,因此,返回断点继续执行主程序。

单片机原理实验指导书(2012.10)

《单片机原理》实验指导书 计算机科学与技术系2012年8月

目录 第一部分单片机仿真实验 (1) 实验一:流水灯实验 (1) 实验二:中断实验 (4) 实验三:定时器中断实验 (6) 实验四:串行口实验 (9) 实验五:矩阵式键盘输入识别 (13) 实验六:LCD循环显示设计 (19) 第二部分单片机硬件实验............................错误!未定义书签。第一章试验箱系统概述 ...................................错误!未定义书签。 一、系统地址分配........................................... 错误!未定义书签。 二、系统接口定义........................................... 错误!未定义书签。 三、通用电路简介........................................... 错误!未定义书签。第二章实验指导...............................................错误!未定义书签。实验七P1口亮灯和P1口加法器实验........... 错误!未定义书签。实验八简单I/O口扩展(选作).................. 错误!未定义书签。实验九8255控制交通灯................................ 错误!未定义书签。实验十128*64LCD液晶显示 .......................... 错误!未定义书签。

第一部分单片机仿真实验 实验一:流水灯实验 一、实验目的: 通过对P3口地址的操作控制8位LED流水点亮,从而认识单片机的存储器。 二、实验原理图 实验参考电路图如下: 三、参考实验程序 //流水灯实验 #include //包含单片机寄存器的头文件 sfr x=0xb0; //P3口在存储器中的地址是b0H,通过sfr可定义8051内核单片机 //的所有内部8位特殊功能寄存器,对地址x的操作也就是对P1口的

单片机实验指导书(PROTUES实用)

单片机原理与接口技术实验指导书 2009.10.28

目录 软件部分 (1) 实验一赋值程序 (1) 一实验目的 (1) 二实验内容 (1) 三程序流程图 (1) 四实验步骤 (1) 五参考程序 (1) 实验二数据区传送程序 (3) 一实验目的 (3) 二实验内容 (3) 三程序流程图 (3) 四实验步骤 (3) 五参考程序 (3) 硬件部分 (5) 实验一P1口亮灯实验 (5) 一实验目的 (5) 二实验内容 (5) 三程序流程图 (5) 四仿真电路 (6) 五硬件实现电路 (6) 六实验步骤 (7) 七参考程序 (7) 实验二P1口转弯灯实验 (8) 一实验目的 (8) 二实验内容 (8) 三程序流程图 (8) 四仿真电路 (8) 五实验电路 (9) 六实验步骤 (9) 七参考程序 (9) 附录一Keil Vison2使用入门 (11) 附录二Protues使用入门 (13) 附录三KeilC与Proteus连接调试 (15)

软件部分 软件实验中,涉及外部数据存储器扩展寻址操作,须按下图连接实验线路。 说明: 1 将存储器单元的D0-D7与数据总线单元D0-D7相连;存储器单元的A0-A12与地址总线单元A0-A12相连。 2 存储器单元的WE/PGM与六位LED左下方单元的WR或IOWR相连。 3 存储器单元的CS1与六位LED右下方单元A15相连。 4 存储器单元的OE与六位LED左下方单元的RD或IORD相连

实验一赋值程序 一实验目的 1 熟悉汇编指令 2 掌握汇编语言程序设计的一般方法 二实验内容 编写程序实现存储块(2000H---20FFH)的赋值操作(如全为0FFH)。三程序流程图 图1 流程图 四实验步骤 1 编写程序并调试。 2 在实验箱上运行程序,并查看对应存储器和寄存器的内容。。 五参考程序 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV R0,#00H MOV DPTR,#2000H MOV A,#0FFH LOOP0:MOVX @DPTR,A INC DPTR INC R0

51单片机实验报告

51单片机实验报告

实验一 点亮流水灯 实验现象 Led灯交替亮,间隔大约10ms。实验代码 #include void Delay10ms(unsigned int c); void main() { while(1) { P0 = 0x00; Delay10ms(50); P0 = 0xff; Delay10ms(50); } }

void Delay10ms(unsigned int c) { unsigned char a, b; for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--); } } } 实验原理 While(1)表示一直循环。 循环体首先将P0的所有位都置于零,然后延时约50*10=500ms,接着P0位全置于1,于是LED全亮了。接着循环,直至关掉电源。延迟函数是通过多个for循环实现的。 实验2 流水灯(不运用库函数) 实验现象 起初led只有最右面的那一个不亮,半秒之后从右数第二个led

也不亮了,直到最后一个也熄灭,然后led除最后一个都亮,接着上述过程 #include #include void Delay10ms(unsigned int c); main() { unsigned char LED; LED = 0xfe; while (1) { P0 = LED; Delay10ms(50); LED = LED << 1; if (P0 == 0x00) { LED = 0xfe; } } } void Delay10ms(unsigned int c)

《单片机原理及应用》实验指导书.

单片机原理及应用实验指导书 罗钧付丽编 重庆大学光电工程学院 2010年5月 目录 实验规则 (2 实验一单片机监控程序实验(4学时 (3 附1.1:LAB2000P实验仪 (9 附1.2:验证实验程序 (10 附1.3:K EIL的使用步骤参考 (17 实验二 A/D转换实验 (3学时 (21 附2.1:验证实验程序 (24 实验三 D/A转换实验 (2学时 (25

附3.1:DA转换实验程序 (27 实验四单片机系统综合实验( 3学时 (28 附4.1:实验仪中的温度传感器电路 (30 附4.2:直流电机和步进电机控制接口电路 (31 实验规则 为了维护正常的实验教学次序,提高实验课的教学质量,顺利的完成各项实验任务,确保人身、设备安全,特制定如下实验规则: 一、实验前必须充分预习,完成指定的预习内容,预习要求如下: 1.认真阅读本实验指导书,分析掌握本次实验的基本原理; 2.完成各实验预习要求中指定的内容; 3.明确实验任务。 二、实验时,认真、仔细的写出源程序,进行调试,有问题向指导老师举手提问; 三、实验时注意观察,如发现有异常现象(电脑故障或实验箱故障,必须及时报告指导老师,严禁私自乱动。 四、实验过程中应仔细观察实验现象,认真记录实验数据、波形、逻辑关系及其它现象,记录的原始结果必须经指导教师审阅签字后,方可离开。 五、自觉保持实验室的肃静、整洁;实验结束后,必须清理实验桌,将实验设备、工具、导线按规定放好,并填写仪器设备使用记录。 六、凡有下列情况之一者,不准做实验: 1.实验开始后迟到10 分钟以上者;

2.实验中不遵守实验室有关规定,不爱护仪器,表现不好而又不服从教育者; 七、实验后,必须认真作好实验报告,在规定时间里必须交给实验指导老师,没交实验报告者,视为缺做一次实验。实验报告要求必须包括: 1.写出设计实验程序; 2.总结实验步骤和实验结果; 八、一次未做实验,本实验课成绩视为不及格。 以上实验规则,请同学们自觉遵守,并互相监督。 实验一单片机监控程序实验(4学时 实验预习要求: 1.按照附3学习使用Keil软件。 2.熟悉键盘和显示器接口及工作原理。 3.根据实验原理,读懂验证实验程序,并写出设计性实验源程序。 4.思考题: (1从附1.2监控程序可以看出:六位数码管显示的数据存放在单片机哪个位置? (2参考图1.1A与监控程序,键盘上若数字键7被按下,单片机怎样判断该键被按下? 一、实验目的 1.掌握8031系统中,键盘和显示器的接口方法。 2.掌握键盘扫描和LED八段码显示器的工作原理。

51单片机实验报告

实验一数据传送实验 实验内容: 将8031内部RAM 40H—4FH单元置初值A0H—AFH,然后将片内RAM 40H—4FH单元中的数据传送到片内RAM 50H—5FH单元。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。 源程序清单: ORG 0000H RESET:AJMP MAIN ORG 003FH MAIN:MOV R0,#40H MOV R2,#10H MOV A,#0A0H A1:MOV @R0,A INC R0 INC A DJNZ R2, A1 MOV R1,#40H MOV R0, #50H MOV R2, #10H A3: MOV A, @R1 MOV @R0, A INC R0 INC R1 DJNZ R2, A3 LJMP 0000H 思考题: 1. 按照实验内容补全程序。 2. CPU 对8031内部RAM存储器有哪些寻址方式? 直接寻址,立即寻址,寄存器寻址,寄存器间接寻址。 3. 执行程序后下列各单元的内容是什么? 内部RAM 40H~4FH ___0A0H~0AFH______________________ 内部RAM 50H~5FH___0A0H~0AFH_______________________ 实验二多字节十进制加法实验

实验内容: 多字节十进制加法。加数首地址由R0 指出,被加数和结果的存储单元首地址由R1指出,字节数由R2 指出。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。源程序清单:ORG 0000H RESET: AJMP MAIN ORG 0100H MAIN: MOV SP, #60H MOV R0, #31H MOV @R0, #22H DEC R0 MOV @R0, #33H MOV R1, #21H MOV @R1, #44H DEC R1 MOV @R1, #55H MOV R2, #02H ACALL DACN HERE: AJMP HERE DACN: CLR C DAL: MOV A, @R0 ADDC A, @R1 DA A MOV @R1, A INC R0 INC R1 DJNZ R2,DAL CLR A MOV ACC.0 , C RET 思考题: 1. 按照实验内容补全程序。 2. 加数单元、被加数单元和结果单元的地址和内容为? 3130H,2120H,6688H 3. 如何检查双字节相加的最高位溢出? 看psw.3 的溢出标志位ov=1 则溢出 4. 改变加数和被加数,测试程序的执行结果。 实验三数据排序实验

单片机原理实验指导书

实验一LED 流水灯 一、实验目的 1. 学习单片机并口的使用方法。 2. 学习延时子程序的编写和使用。 3. 学习集成开发环境MedWin的安装与使用。 4. 学习STC单片机在线下载软件STC-ISP的使用。 二、实验内容 所谓流水灯就是4 个发光二极管(LED)轮流点亮,周而复始。实验板上以P3口作输出口,接有四只发光二极管,当单片机的引脚输出为低电平时发光二极管点亮,为高电平时息灭。编写程序,使4 个发光二极管循环点亮,时间间隔约0.5 秒。 三、实验电路连线 实验板上与本实验有关的硬件如下图所示。4 个LED上串联4 个限流电阻,以防止其电 流过大而烧坏。单片机的主时钟为11.0592MHz。 四、实验说明 1、P3 口是准双向口,它作为输出口时与一般的双向口使用 方法相同。由准双向口结构可知当P1 口用作输入口时必须先对它 置“1”。若不先对它置“1”,读入的数据是不正确的。输出时需 要接上拉电阻,P3 口内部有弱上拉,若将外围电路设计为低有效, 高无效,则无需再外接上拉电阻。 2、为使每次点亮一个LED,应使P3.4~P3.7 4 个端口中有 一个为低,其余均为高,延时一段时间后再点亮另一个LED。 3、编写for 循环构成的软件延时子程序,在MedWin 下模拟 执行,根据MedWin 显示的执行时间,调整循环变量的终值,使延时时间约0.5秒,在晶振频率为11.0592MHz情况下,循环终值约27000。程序如下: void delay(void) { unsigned int i,j,k,l; for(i=0;i<=27000;i++) {j++; k++;l++;}; } #include void main (void) { unsigned char i,c[4] = {0xef,0xdf,0xbf,0x7f};// 从左往右流水 i = 0; while(1) { P3 = c[i & 3]; i++; 11 delay(); } } 五、思考 1、如何使点亮的LED 从右往左移动? 2、如何使点亮的LED 从两边往中间移动?

单片机实验资料大全

一、熟悉学习工具开发板 二、点亮LED 1.单片机及最小系统电路

1)电源电路 2)晶振电路 3)复位电路

2.74HC245和74HC138 74HC245的输入: DB_0 即P0.0 DB_1 即P0.1 DB_2 即P0.2 DB_3 即P0.3 DB_4 即P0.4 DB_5 即P0.5 DB_6 即P0.6 DB_7 即P0.7 U3 74HC138的输入: ADDR0即P1.0 ADDR1即P1.1 ADDR2即P1.2 ADDR3即P1.3 E3 ENLED即P1.4 E1 E2 3.跳线

4.LED 三极管基极端输入LEDS6是U3 74HC138的输出Y6 8个LED小灯阴极端的8个输入是74HC245的8个输出:DB 0 也就是P0.0 DB 1 也就是P0.1 DB 2 也就是P0.2 DB 3 也就是P0.3 DB 4 也就是P0.4 DB 5 也就是P0.5 DB 6 也就是P0.6 DB 7 也就是P0.7 5.点亮一个LED的程序 新建工程,添加.c文件,编辑编译,生成hex文件 编译成功会出现reg2.h,,双击可以打开 STP-ISP下载程序到板子,小灯被点亮 1)点亮第1个小灯,熄灭第1个小灯 2)点亮第2个小灯,熄灭第2个小灯 3)点亮第3个小灯,熄灭第3个小灯 4)点亮第1、2小灯,熄灭第1、2小灯 5)点亮第1、3、5、7小灯,熄灭第1、3、5、7小灯

三、闪烁LED 修改小灯闪烁的时间:低于20ms,大于50HZ,小灯的闪烁人眼看到是连续的 四、流水灯 1、用P0点亮小灯 2、依次点亮每个小灯,依次要赋给P0 的数值就是:0xFE、0xFD、0xFB、0xF7、0xEF、0xDF、0xBF、0x7F。 ?左移<<右移>> ?左移,最低位填0补充;右移,最高位填0补充 ?0xf0 11100000 01111000 流水灯程序

单片机导论实验讲义(章专)

第一章单片机软件实验 实验一内存操作 1.实验目的 ①掌握数据传送指令; ②掌握各种数据传送指令的寻址方式; ③熟练运用keil 环境对汇编程序进行调试; ④掌握数据传送、复制等程序的设计与调试方法。 2.预习要求 ①理解数据传送指令和循环指令的使用; ②理解如何对内部寄存器、内部RAM、外部RAM的读写; ③理解各种寻址方式,尤其是较为抽象的变址寻址及相对寻址的方式; ④认真预习本实验内容,自行编写程序,填写实验报告。 3.实验设备 计算机1台; 4.基础型实验内容 ①下列程序的功能是给外部RAM8000~80FFH的256个单元的内容赋值,赋值的内 容取决于程序中A的赋值。在Keil环境运行该程序,并观察寄存器及内存单元的变化。 设置块起始地址 设置块长度 当前地址内容清零 地址加1 否 是否清除完? 是 结束 ORG 0000H START EQU 8000H MAIN: MOV DPTR, #START ;起始地址 MOV R0,#0 ;设置256字节计数值 MOV A,#1H

Loop: MOVX @DPTR,A INC DPTR ;指向下一个地址 DJNZ R0,Loop ;计数值减1 NOP SJMP $ END ②下列程序将3000H起始的256个字节存储块移动到4000H起始的256个字节存储块, 在Keil环境运行如下程序,观察寄存器及存储单元的变化。 设置块的源地 设置块的目标地址 设置移动长度 从源地址取数 保存到目标地址 源地址加1 目标地址加1 是否移动完? 结束 ORG 0000H MOV DPTR,#3000H MOV A,#01H MOV R5,#O LOOP: MOVX @DPTR,A INC DPTR DJNZ R5,LOOP MOV R0,#30H MOV R1,#00H MOV R2,#40H MOV R3,#00H MOV R7,#0 LOOP1: MOV DPH,R0 MOV DPL,R1 MOVX A,@DPTR MOV DPH,R2

单片机实验4报告

学号14142200277 序号19 单片机原理与接口技术 实验报告 实验项目序号实验四 实验项目名称动态显示与矩阵式键盘实验 姓名卢志雄专业电子信息工程班级电信14-2BF 完成时间 2016-05-10

一、实验目的 1、 进一步理解数码管与单片机的接口原理与动态显示原理,理解单片机矩 阵式键盘按键识别的原理; 2、 掌握单片机动态显示应用和编程方法; 3、 掌握单片机矩阵式键盘按键识别的方法。 二、实验内容 实验内容为3项,其中第1、2项必做。 1、动态显示。 未按键不显示,按K1键,动态显示 “19491001”;按K2键,动态显示 “20141210”。 2、动态显示与按键识别。 矩阵式键盘键值分别是0-F ,未按键不显示。每按键一次,键值在最低位显示,原键值向高位移一位。 3、可控动态显示与按键识别。 矩阵式键盘键值分别是0-9,最下面一排键位功能键,左右两个键分别为“清0键”“C ”,和”“回车键”“ ”,其它键无效。未按键不显示,每按键 一次,键值在最低位显示,原键值向高位移一位。按8个键后,再按键无效。 按清0键全显示“0”。按“ ”后全部熄灭,再按键重新开始。 三、实验原理图 XTAL2 18 XTAL1 19 ALE 30EA 31 PSEN 29RST 9 P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732 P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78 P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD 17 P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1 AT89C51 D 02D 13D 24D 35D 46D 57D 68D 7 9 Q 019 Q 118Q 217Q 316Q 415Q 514Q 613Q 7 12 L E 11O E 1 U2 74HC573 D 02D 13D 24D 35D 46D 57D 68D 7 9 Q 019Q 118Q 217Q 316Q 415Q 514Q 613Q 7 12 L E 11O E 1 U3 74HC573 1 2 345678910RP8 1k K1 K2K3K4 U4 AND_4

单片机原理实验报告(详细)

湖南城市学院 实验报告 2018-2019 学年上学期 姓名:*** 班级学号:****** 实验课程:单片机原理及应用 实验室名称:电子工程实验室 湖南城市学院信息与电子工程学院实验中心印制

实验项目名称:实验一指示灯和开关控制器实验 一、实验目的及要求 1、学习51单片机I/O基本输入/输出功能,掌握汇编语言的编程与调试方法; 2、熟悉proteus软件,了解软件的结构组成与功能; 3、学会在ISIS模块中进行汇编程序录入、编译和调试; 4、理解单片机程序控制原理,实现指示灯/开关控制器的预期功能。 二、实验原理 实验电路原理图如图1所示,图中输入电路由外接在P3口的8只拨动开关组成;输出电路由外接在P2口的8只低电平驱动的发光二极管组成。此外,还包括时钟电路、复位电路和片选电路。 图1 实验原理图

在编程软件的配合下,要求实现如下指示灯/开关控制功能:程序启动后,8只发光二极管先整体闪烁3次(即亮→暗→亮→暗→亮→暗,间隔时间以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的灯亮状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行。软件编程原理为:(1)8只发光二极管整体闪烁3次 亮灯:向P2口送入数值0; 灭灯:向P2口送入数值0FFH; 闪烁3次:循环3次; 闪烁快慢:由软件延时时间决定。 (2)根据开关状态控制灯亮或灯灭 开关控制灯:将P3口(即开关状态)内容送入P2口; 无限持续:无条件循环。 程序流程图如图2所示。 图2 实验程序流程图

三、实验仪器设备及装置 (1)硬件:电脑一台; (2)仿真软件:Proteus; (3)编程软件Keil uVision4。 其中,仿真软件ISIS元件清单如表1所示。 表1 仿真软件ISIS元件清单 四、实验内容和步骤 (一)实验内容: (1)熟悉ISIS模块的汇编程序编辑、编译与调试过程; (2)完成实验的汇编语言的设计与编译; (3)练习ISIS汇编程序调试方法,并最终实现实验的预期功能。 (二)实验步骤: (1)提前阅读与实验相关的阅读材料; (2)参考指示灯/开关控制器的原理图和实验的元件清单,在ISIS中完成电路原理的绘制; (3)参考程序流程图在Keil uVision4中编写和编译汇编语言程序; (4)利用ISIS的汇编调试功能检查程序的语法和逻辑错误; (5)观察仿真结果,检验与电路的正确性。

相关文档
最新文档