单片机实验答案.docx

上传人:b****5 文档编号:30254838 上传时间:2023-08-13 格式:DOCX 页数:40 大小:215.88KB
下载 相关 举报
单片机实验答案.docx_第1页
第1页 / 共40页
单片机实验答案.docx_第2页
第2页 / 共40页
单片机实验答案.docx_第3页
第3页 / 共40页
单片机实验答案.docx_第4页
第4页 / 共40页
单片机实验答案.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

单片机实验答案.docx

《单片机实验答案.docx》由会员分享,可在线阅读,更多相关《单片机实验答案.docx(40页珍藏版)》请在冰豆网上搜索。

单片机实验答案.docx

单片机实验答案

前言

由于单片机具有高靠得住性、超小型、低价钱、容易产品化等特点,在仪器仪表智能化、实时工业操纵、实时数据搜集、智能终端、通信设备、导航系统、家用电器等操纵应用领域,具有十分普遍的用途。

目前在国内单片机应用中,MCS-51系列单片机仍然是一种主流单片机。

为配合《单片机应用技术》课程的教学,使学生尽快了解、把握89C51单片机的利用,特编写了这本上机指导书(基础篇)。

《单片机》是一门实践性很强的课程,提高教学质量的一个重要环节是上机实习和训练,不管是学习汇编语言程序设计,仍是学习接口电路和外设与运算机的连接,或软硬兼施地研制单片机应用系统,不通过增强动手是不能取得预期成效的。

本实验指导书提供了9个实验的指导性材料,实验还有一些试探题,能够依照课时的安排和教学要求进行取舍。

为了达到某些实验的目的,书中提供的参考程序与实际应用中的程序会有些不同,因此不必然是最优的。

由于时刻紧迫,加上编者学识有限,如有不妥的地方,欢迎读者批评指正。

编者

实验须知

1.实验前必需阅读教科书的有关部份和本实验指导书,了解实验目的、内容、步骤,做好实验前的预备工作,编写好实验中要求自编或修改的程序;完成实验前要求完成的预备工作后方能够上机实验,不然不得上机操作。

2.各类电源的电压和极性不能接错,严禁带电接线和接插元器件。

通电前须通过指导教师检查认可后方能通电。

3.不准随意拨弄各类与实验无关的旋钮和开关,凡与本次实验无关的任何设备都禁止动用和摸弄,注意平安。

4.严禁用手触摸实验系统印制电路板和元器件的引脚,避免静电击穿芯片。

5.实验中假设损坏仪器或元器件,应及时向指导教师报告,听候处置。

6.在实验室内维持安静和卫生,不得随意走动和喧哗,集中精力完成实验。

7.实验完成后,关掉电源,及时整理实验台桌面,维持环境整洁。

8.按规定认真完成实验报告,对实验中显现的现象进行分析,在规定的时刻内交上实验报告。

9.凡实验或实验报告未能按规定完成的学生,不能参加本课程的考试或考查。

第一章实验系统介绍

本实验系统采纳EL-MUT-III型单片机教学实验系统。

1.系统概述

1)微处置器:

89S51,P1口、P3口对用户开放,供用户利用。

2)时钟频率:

3)存储器:

程序存储器与数据存储器统一编址,最多可达64KB,板载ROM(监控程序27C256)12KB;RAM1(程序存储器6264)8KB供用户下载实验程序,可扩展达32KB;RAM2(数据存储器6264)8KB供用户程序利用,可扩展达32KB。

0000H----2FFFH为监控程序存储器区,用户不可用。

4000H----5FFFH为用户实验程序存储区,供用户下载实验程序。

数据存储器的范围为:

6000H----7FFFH,供用户实验程序利用。

用户在编写实验程序时要注意,程序的起始地址应为4000H,所用的中断入口地址均应在原地址的基础上,加上4000H。

用户中断入口地址见表1-1。

表1-1:

用户中断程序入口表

中断名称

8051原中断程序入口

用户实验程序响应程序入口

外中断0

0003H

4003H

定时器0中断

000BH

400BH

外中断1

0013H

4013H

定时器1中断

001BH

401BH

串行口中断

0023H

4023H

2.资源分派

本系统采纳可编程逻辑器件(CPLD)EPM7128做为地址的译码。

地址的编译码分为两部份。

一部份为系统CPLD,提供了系统器件(如监控程序存储器、用户程序存储器、数据存储器、系统显示操纵器、系统串行通信操纵器等)的地址译码功能,另外还通过插孔CS0、CS1、CS2、CS3、CS4、CS5提供固定的译码地址给用户利用。

译码地址见表1-2。

另一部份为用户CPLD,它完全对用户开放,用户可通过芯片的JTAG接口与PC机相连,对芯片进行编程,取得译码地址,由插孔LCS0、LCS1、LCS2、LCS3、LCS4、LCS5、LCS6、LCS7输出,供利用。

表1—2:

CPLD地址分派表

地址范围输出孔/映射器件性质(系统/用户)

0000H---2FFFH监控程序存储器系统*

3000H---3FFFH数据存储器系统*

4000H---7FFFH用户程序存储器系统*

8000H---CFDFHLCS0---LCS7用户

CFE0HPC机串行通信芯片8250系统*

CFE8H显示、键盘芯片8279系统

CFA0H---CFA7HCS0系统

CFA8H---CFAFHCS1系统

CFB0H---CFB7HCS2系统

CFB8H---CFBFHCS3系统

CFC0H---CFC7HCS4系统

CFC8H---CFCFHCS5系统

CFD0H---FFFFHLCS0----LCS7用户

注:

系统地址中带“*”的表示用户不可用,也不可改,其他系统地址用户可用,但不可改。

1)用通信电缆将EL-MUT-III型单片机教学实验系统侧面的RS232接口与PC机的COM口相连接。

2)启动EL-MUT-III型单片机教学实验系统的电源开关,EL-MUT-III型单片机教学实验系统面板上的LED显示“199502”,几秒后显示P-。

3)双击桌面MCS51快捷图标如图1-1,启动51实验系统,启动后的界面如图1-2。

图1-1图1-2

4)如需改变串口和波特率,在相应列表框中修改。

点击“确信”按钮后,当即实验系统面板上的“PRESET”键,面板上的LED显示“C-”,同时PC机屏幕显示“51EL型(80C51)教学实验环境”界面,如图1-3。

图1-351EL型(80C51)教学实验环境遇面

5)通过“文件”菜单新建或打开汇编语言文件,也可通过工具按钮

新建汇编文件。

新建汇编文件的扩展名为.ASM。

6)用“编译”菜单下的汇编命令或工具按钮

对汇编文件进行汇编。

如有错误,应付文件从头编辑,直至汇编无错误为止。

7)用“调试”菜单下的“调试”命令或工具按钮

进入“调试”界面,如图1-4。

图1-4“调试”界面

8)用“调试”菜单下各调试命令,如图1-5对汇编文件进行调试,或用工具按钮

对汇编文件进行调试。

工具按钮的功能如图1-6。

图1-5

图1-6

 

第二章上机指导

实验一P1话柄验

(一)

一、实验目的:

1.学习P1口作为输出口的利用方式。

2.延时子程序的编写和利用。

二、实验设备:

EL-MUT-III型单片机实验箱、8051CPU模块。

三、实验原理:

实验原理如图2-1-1。

图2-1-1P1口输出实验电路

1.P1口的利用方式

P1口为准双向口,每一名都能独立地概念为输入位或输出位。

作为输入位时,必需向锁存器相应位写入“1”。

89S51在复位时所有口锁存器均置为“1”,若是曾对口锁存器写过“0”,现在要使它作为一个输入口,那么应再次写入一个“1”。

2.延时程序的实现

经常使用两种方式实现延时程序,一是用按时器中断来实现,二是用指令循环来实现。

在系统时刻许诺的情形下能够采纳后一种方式。

本实验系统晶振为,那么一个机械周期为12÷6us=2us。

延时的程序如下:

MOVR7,#X

(1)

DEL1:

MOVR6,#200

(2)

DEL2:

DJNZR6,DEL2(3)

DJNZR7,DEL1(4)

程序中X为延时值。

指令MOV、DJNZ需两个机械周期,因此每执行一条指令需要4us。

延时程序中X值应知足下式:

4+X(4+200×4+4)=×106

指令

(1)时刻指令

(2)时刻指令(3)时刻指令(4)时刻

故X==7CH。

将X==7CH代入上式,取得实际延不时刻约为。

3.程序流程图:

程序流程图见图2-1-2和图2-1-3。

图2-1-2点亮发光二极管程序流程图图2-1-3左移循环点亮发光二极管程序流程图

四、实验内容与步骤

1.实验内容:

1)P1口做输出口,接八只发光二极管,依照程序流程图2-1-2,编写程序使P1口8个发光二极管同时熄灭-----延时-----点亮。

2)依照程序流程图1-3,编写程序使P1口8个发光二极管每隔一个左移循环点亮。

2.实验步骤:

1)将~别离连接发光二极管L1~L8。

2)按流程图2-1-2编写程序,对程序进行编辑、汇编直至无语法错误。

3)调试程序:

(1)单步伐试,观看并记录相应寄放器内容及发光二极管L1~L8的状态。

(2)全速运行程序,观看并记录发光二极管L1~L8的状态。

4)重复2、3步骤,进行实验内容2的实验。

五、实验报告

1.写出使P1口8个发光二极管同时熄灭-----延时-----点亮源程序清单,并对每条指令给予注解。

2.写出使P1口8个LED每隔一个(或二个)左移循环点亮源程序清单,并对每条指令给予注解。

六、试探题

1.改变延时常数,重做实验。

2.修改程序,使LED发光方式、方向等改变。

七、参考程序:

1.点亮8个LED程序清单

ORG4000H

LJMPSTART

ORG4100H

START:

MOVA,#00H

MOVP1,A;点亮8个LED

LCALLDELAY;延时秒

MOVA,#0FFH

MOVP1,A;熄灭8个LED

LCALLDELAY;延时秒

JMPSTART

DELAY:

MOVR1,#124;延时秒

DEL1:

MOVR2,#200

DEL2:

DJNZR2,DEL2

DJNZR1,DEL1

RET

END

2.循环点亮LED程序清单

ORG4000H

LJMPSTART

ORG4100H

START:

MOVA,#0FEH

LOOP:

MOVP1,A;点亮1个LED

RLA;左移一名,点亮下一个发光二极管

LCALLDELAY;延时秒

JMPLOOP

DELAY:

MOVR1,#124;延时秒

DEL1:

MOVR2,#200

DEL2:

DJNZR2,DEL2

DJNZR1,DEL1

RET

END

实验二P1话柄验

(二)

一、实验目的:

1.P1口作为输入口的利用方式。

2.把握数据输入、输出程序的设计方式。

二、实验设备:

EL-MUT-III型单片机实验箱、8051CPU模块

三、实验原理:

1.P1口作为输入话柄验原理见图2-2-1。

图2-2-1P1口作为输入话柄验电路

2.程序流程图:

程序流程图见图2-2-2。

图2-2-2显示P1口状态程序流程图

四、实验内容与步骤:

1.实验内容:

P1口做输入口:

如图2-2-1,P1口的别离接8个单刀双郑开关K1~K8,74LS273做输出口接八个LED,编写程序读取开关K1-K8状态,并在LED上显示出来。

2.实验步骤:

1)依照图2-2-1连线,CS273接CS0。

2)依照流程图2-2-2编写相应程序,对程序进行编辑、汇编直至无语法错误。

3)调试程序,拨动开关K1-K8,观看并记录程序运行结果。

五、实验报告

仿如实验一,写出相应的实验报告。

六、试探题

1.图2-2-1中芯片74LS273的作用是什么?

2.在图2-2-1中,假设LED反转1800,电路和程序如何修改?

七、参考程序:

;通过LED将P1口的状态显示

ORG0000H

LJMPSTART

ORG4100H

START:

MOVP1,#0FFH;设置P1口为输入状态

LP:

MOVA,P1;P1口的状态读入累加器A

MOVDPTR,#0CFA0H;74LS273地址(输出口地址)送DPTR

MOVX@DPTR,A;A的值送LED显示

JMPLP;继续循环监测端口P1的状态

END

实验三P1话柄验(三)

一、实验目的:

1.把握P1口既做输入又做输出的利用方式。

2.把握分支程序的设计方式。

二、实验设备:

EL-MUT-III型单片机实验箱、8051CPU模块

三、实验原理:

1.P1口同时作输入、输出口电路原理见图2-3-1。

图2-3-1P1口同时作输入、输出话柄验电路

2.程序流程图:

程序流程图见图2-3-2。

四、实验内容与步骤:

1.实验内容:

图2-3-1为模拟汽车转向灯操纵电路图,K1为左转弯开关,L5、L6做为左转弯灯;K2为右转弯开关,L7、L8做为右转弯灯。

编写程序实现表2-3-1的功能。

表2-3-1:

开关K1、K2功能表

图2-3-2P1口既做输入又做输出程序流程图

2.实验步骤:

1)依照图2-3-1连线。

2)输入相应程序,对程序进行编辑、汇编直至无语法错误。

3)调试程序,拨动开关K1-K2,观看并记录程序运行结果。

五、实验报告

仿如实验一,写出相应的实验报告。

六、试探题

当K1K2=11时,左转弯灯和右转弯灯同时闪烁,程序应如何修改?

编程并调试。

七、参考程序:

;P1口同时作输入、输出话柄验程序

ORG4000H

LJMPSTART

ORG4100H

START:

SETB

SETB;用于输入时先置位口内锁存器

L0:

MOVA,P1

ANLA,#03H;从P1口读入开关状态,取低两位

CJNEA,#00H,L1

LJMPPRG0

L1:

CJNEA,#01H,L2

LJMPPRG1

L2:

CJNEA,#02H,L3

LJMPPRG2

L3:

CJNEA,#03H,L4

LJMPPRG3

L4:

LJMPL0

PRG0:

MOVP1,#0FFH;向P1口输出#0FFH,LED全灭

;现在K2K1=00

LJMPSTART

PRG1:

MOVP1,#0F3H;只点亮L5、L6,表示左转弯

ACALLDELAY;现在K2K1=01

MOVP1,#0FFH;熄灭LED秒

ACALLDELAY;延时秒

LJMPSTART

PRG2:

MOVP1,#0CFH;只点亮L7、L8,表示右转弯

ACALLDELAY;现在K2K1=10

MOVP1,#0FFH;熄灭秒

ACALLDELAY

LJMPSTART

PRG3:

MOVP1,#00H;LED全亮,现在K2K1=11

LJMPSTART

DELAY:

MOVR1,#5;延时秒

DEL1:

MOVR2,#200

DEL2:

MOVR3,#126

DEL3:

DJNZR3,DEL3

DJNZR2,DEL2

DJNZR1,DEL1

RET

END

实验四中断实验

一、实验目的:

1.外部中断技术的大体利用方式。

2.中断处置程序的编程方式。

3.中断嵌套处置程序的编程方式。

二、实验设备:

EL-MUT-III型单片机实验箱、8051CPU模块

三、实验原理:

1.实验原理如图2-4-1。

图2-4-1外部中断实验电路

2.程序流程图:

程序流程图见图2-4-2。

图2-4-2K1中断操纵LED程序流程图

四、实验内容与步骤:

1.实验内容:

1)单一外部中断操纵:

按K1在INT0端产生中断信号,从而使P1的8个LED同时闪烁5次。

2)两级中断操纵(中断嵌套):

按K1使8个LED闪烁后,按K2使LED右循环点亮。

3)依照图2-4-3,编写程序:

的下降沿产生中断,中断效劳程序为读入~开关状态,并通过~输出。

图2-4-3

2.实验步骤:

1)按图2-4-1连接线路。

2)依照程序流程图编写程序,编辑程序并进行汇编。

3)用“单步持续运行程序”命令运行程序,观看程序运行等待中断进程,在等待中断进程时,按K1(K2)键,观看并记录程序运行进程和LED显示情形。

4)对实验内容2编程,重复2-3步骤。

观看并记录程序运行结果。

5)对实验内容3编程,重复2-3步骤。

观看并记录程序运行结果。

6)在中端效劳程序中设置断点,重复2-3步骤。

观看并记录程序运行结果。

五、实验报告

1.依如实验1内容写出相应的实验报告。

2.画出实验内容2的程序框图

3.对程序语句加以注解。

六、试探题

1.中断时,需爱惜现场(如PSW,ACC等寄放器的内容),中断效劳程序应如何修改?

2.如安在程序中实现INT1的中断优先权高于INT0中断优先权?

七、参考程序:

;实验四

;INT0中断实验程序

;主程序8个LED熄灭,等待INT0中断

ORG4000H

LJMPSTART

ORG4003H

LJMPEXT0

ORG4013H

LJMPLPT

ORG4100H

START:

MOVA,#0FFH

MOVBAH,A

SETBEX0

SETBEX1

CLRIT0

SETBEA

MOVSP,#70H

MOVA,#0FFH

MOVP1,A

SJMP$

DELAY:

MOVR1,#5

DEL1:

MOVR2,#200

DEL2:

MOVR3,#126

DEL3:

DJNZR3,DEL3

DJNZR2,DEL2

DJNZR1,DEL1

RET

;INT0中断效劳程序:

8个LED闪烁5次。

EXT0:

MOVR0,#10

MOVA,#00H

LOOP:

MOVP1,A

CALLDELAY

CPLA

MOVP1,A

DJNZR0,LOOP

MOVA,#0FFH

MOVP1,A

RETI

LPT:

MOVA,#01H

SHIF:

LCALLFLASH

RRA

SJMPSHIFT

FLASH:

MOVP1,A

LCALLDELAT

MOVP1,#00H

LCALLDELAY

DJNZR2,FLASH

RET

DELAY:

MOVR5,#200

D1:

MOVR6,#123

NOP

DJNZR6,$

DJNZR5,D1

RET

实验五按时器/计数器实验

(一)

一、实验目的:

1.把握89S51内部按时器、计数器的利用和编程方式。

2.按时器中断处置程序的编程方式。

二、实验设备:

EL-MUT-III型单片机实验箱、8051CPU模块

三、实验原理:

1.实验原理如图2-5-1。

图2-5-1按时器实验电路

1)按时常数的确信

采纳按时器中断方式可实现时刻延时,延不时刻由主频和按时器方式来确信。

本实验中时钟频率为MHZ,其延不时刻最大值约为(方式一下)。

假设要产生秒延不时刻,需采纳按时器按时和软件计数的方式来实现。

为此咱们可在主程序中设置软件循环次数初值为05H(用R0)的软件计数器和定不时刻为的按时器。

如此按时器每隔产生一次中断,CPU响应中断后将R0中计数值减一,即可实现延时。

按时器时刻常数的确信方式如下:

机械周期=12÷晶振频率=12/(6×106)=2(us)=2×10-6(s)

按时器工作于方式一,设计数初值为X,那么有(216-X)×2×10-6s=,由此可求得X=15536D=3CB0H。

故初始值为TH=3CH,TL=B0H

2)初始化程序

初始化程序包括按时器初始化和中断系统初始化,即对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时刻常数送入按时器中。

3)设计中断效劳程序和主程序

中断效劳程序除要完成计数减一工作外,还要将时刻常数从头送入按时器中,为下一次中断做预备。

主程序那么用来操纵发光二极管按要求亮灭。

2.程序流程图:

程序流程图见图2-5-2。

图2-5-2按时器T0中断操纵LED程序流程图

四、实验内容与步骤:

1.实验内容:

按时器工作于方式1,每秒LED1~LED8闪烁。

2.实验步骤:

1)按图2-5-1连接线路。

2)依照程序流程图编写程序,编辑程序并进行汇编。

3)运行程序,观看并记录LED显示情形。

五、实验报告

依如实验内容写出相应的实验报告。

(转变花腔可自行设计),

六、试探题

1.用按时器工作方式0或方式2,可否实现本实验功能?

2.如能,修改程序并调试。

3.依照图2-5-3,编写用T0中断操纵LED闪烁5次的程序。

 

图2-5-3按时器T0中断操纵LED闪烁5次程序流程图

七、参考程序:

;实验五按时器按时中断实验,LED闪烁,R0:

延时循环次数

ORG4000H

LJMPSTART

ORG400BH

LJMPT0INT

ORG4100H

START:

MOVTMOD,#01H

MOVTH0,#3CH

MOVTL0,#0B0H

MOVA,#0FFH

MOVP1,A

SETBEA

SETBET0

SETBTR0

MOVR0,#05H

SJMP$

T0INT:

CLRTR0

DJNZR0,NEXT

CPLA

MOVP1,A

MOVR0,#05H

NEXT:

MOVTH0,#3CH

MOVTL0,#0B0H

SETBTR0

RETI

END

;实验五1LED闪烁5次,R0:

延时循环次数,R1:

闪烁次数

ORG4000H

LJMPSTART

ORG400BH

LJMPT0INT

ORG4100H

START:

MOVTMOD,#01H

MOVTH0,#3CH

MOVTL0,#0B0H

MOVR1,#10

MOVA,#0FFH

MOVP1,A

SETBEA

SETBET0

SETBTR0

MOVR0,#05H

SJMP$

T0INT:

CLRTR0

DJNZR0,NEXT

DJNZR1,LP

MOVA,#0FFH

MOVP1,A

SJMPLP1

LP:

CPLA

MOVP1,A

MOVR0,#05H

NEXT:

MOVTH0,#3CH

MOVTL0,#0B0H

SETBTR0

LP1:

RETI

END

实验六按时器/计数器实验

(二)

一、实验目的:

1.8031外部计数的利用和编程方式。

2.中断处置程序的编程方式。

二、实验设备:

EL-MUT-III型单片机实验箱、8051CPU模块

三、实验原理:

1.实验原理如图2-6-1。

图2-6-1计数器实验电路

图中74LS132、按键S和电阻组成一单脉冲发生器,P+端接89S51的T0端,按键每按动一次将在P+端产生一个负脉冲,从而在T0端产生一次中断请求,因此将T0设置为计数器方式即可对外部脉冲进行计数。

2.程序流程

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1