单片机实验答案

单片机实验答案
单片机实验答案

前言

由于单片机具有高可靠性、超小型、低价格、容易产品化等特点,在仪器仪表智能化、实时工业控制、实时数据采集、智能终端、通信设备、导航系统、家用电器等控制应用领域,具有十分广泛的用途。目前在国内单片机应用中,MCS-51系列单片机仍然是一种主流单片机。为配合《单片机应用技术》课程的教学,使学生尽快了解、掌握89C51单片机的使用,特编写了这本上机指导书(基础篇)。

《单片机》是一门实践性很强的课程,提高教学质量的一个重要环节是上机实习和训练,无论是学习汇编语言程序设计,还是学习接口电路和外设与计算机的连接,或者软硬兼施地研制单片机应用系统,不通过加强动手是不能获得预期效果的。本实验指导书提供了9个实验的指导性材料,实验还有一些思考题,可以根据课时的安排和教学要求进行取舍。为了达到某些实验的目的,书中提供的参考程序与实际应用中的程序会有些差别,所以不一定是最优的。

由于时间紧迫,加上编者学识有限,如有不妥之处,欢迎读者批评指正。

编者

实验须知

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

2. 各种电源的电压和极性不能接错,严禁带电接线和接插元器件。通电前须经过指导教师检查认可后方能通电。

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

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

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

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

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

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

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

第一章实验系统介绍

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

1. 系统概述

1)微处理器:89S51,P1口、P3口对用户开放,供用户使用。

2)时钟频率:6.0MHz

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

0000H----2FFFH为监控程序存储器区,用户不可用。4000H----5FFFH为用户实验程序存储区,供用户下载实验程序。数据存储器的范围为:6000H----7FFFH,供用户实验程序使用。

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

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---CFDFH LCS0---LCS7 用户

CFE0H PC机串行通讯芯片8250 系统*

CFE8H 显示、键盘芯片8279 系统

CFA0H---CFA7H CS0 系统

CFA8H---CFAFH CS1 系统

CFB0H---CFB7H CS2 系统

CFB8H---CFBFH CS3 系统

CFC0H---CFC7H CS4 系统

CFC8H---CFCFH CS5 系统

CFD0H---FFFFH LCS0----LCS7 用户

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

3.系统使用方法

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机屏幕显示“51 EL型(80C51)教学实验环境”界面,如图1-3。

图1-3 51 EL型(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-1 P1口输出实验电路

1.P1口的使用方法

P1口为准双向口,每一位都能独立地定义为输入位或输出位。作为输入位时,必须向锁存器相应位写入“1”。89S51在复位时所有口锁存器均置为“1”,如果曾对口锁存器写过“0”,此时要使它作为一个输入口,则应再次写入一个“1”。

2.延时程序的实现

常用两种方法实现延时程序,一是用定时器中断来实现,二是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。

本实验系统晶振为6.0MHZ,则一个机器周期为12÷6 us=2 us。延时0.1s的程序如下:MOV R7,#X (1)

DEL1:MOV R6,#200 (2)

DEL2:DJNZ R6,DEL2 (3)

DJNZ R7,DEL1 (4)

程序中X为延时值。

指令MOV、DJNZ需两个机器周期,所以每执行一条指令需要4us。

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

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

指令(1)时间指令(2)时间指令(3)时间指令(4)时间

故X=123.75D=7CH 。

将X=123.75D=7CH代入上式,得到实际延时时间约为0.1002S。

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)将P1.0~P1.7分别连接发光二极管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程序清单

ORG 4000H

LJMP START

ORG 4100H

START:MOV A,#00H

MOV P1,A ;点亮8个LED

LCALL DELAY ;延时0.1秒

MOV A,#0FFH

MOV P1,A ;熄灭8个LED

LCALL DELAY ;延时0.1秒

JMP START

DELAY:MOV R1,#124 ;延时0.1秒

DEL1:MOV R2,#200

DEL2:DJNZ R2,DEL2

DJNZ R1,DEL1

RET

END

2.循环点亮LED程序清单

ORG 4000H

LJMP START

ORG 4100H

START:MOV A,#0FEH

LOOP:MOV P1,A ;点亮1个LED

RL A ;左移一位,点亮下一个发光二极管

LCALL DELAY ;延时0.1秒

JMP LOOP

DELAY:MOV R1,#124 ;延时0.1秒

DEL1:MOV R2,#200

DEL2:DJNZ R2,DEL2

DJNZ R1,DEL1

RET

END

实验二P1口实验(二)

一、实验目的:

1.P1口作为输入口的使用方法。

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

二、实验设备:

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

三、实验原理:

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

图2-2-1 P1口作为输入口实验电路2.程序流程图:程序流程图见图2-2-2。

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

四、实验内容与步骤:

1.实验内容:

P1口做输入口:如图2-2-1,P1口的P1.0-P1.8分别接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口的状态显示

ORG 0000H

LJMP START

ORG 4100H

START:MOV P1,#0FFH ;设置P1口为输入状态

LP:MOV A,P1 ;P1口的状态读入累加器A

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

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

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

END

实验三P1口实验(三)

一、实验目的:

1.掌握P1口既做输入又做输出的使用方法。

2.掌握分支程序的设计方法。

二、实验设备:

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

三、实验原理:

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

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

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

四、实验内容与步骤:

1.实验内容:

图2-3-1为模拟汽车转向灯控制电路图,K1为左转弯开关,L5、L6做为左转弯灯;K2为右转弯开关,L7、L8做为右转弯灯。编写程序实现表2-3-1的功能。

表2-3-1:开关K1、K2功能表

图2-3-2 P1口既做输入又做输出程序流程图2.实验步骤:

1)根据图2-3-1连线。

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

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

五、实验报告

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

六、思考题

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

七、参考程序:

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

ORG 4000H

LJMP START

ORG 4100H

START:SETB P1.0

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

L0:MOV A,P1

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

CJNE A,#00H,L1

LJMP PRG0

L1:CJNE A,#01H,L2

LJMP PRG1

L2:CJNE A,#02H,L3

LJMP PRG2

L3:CJNE A,#03H,L4

LJMP PRG3

L4:LJMP L0

PRG0:MOV P1,#0FFH ;向P1口输出#0FFH,LED全灭

;此时K2 K1=0 0

LJMP START

PRG1:MOV P1,#0F3H ;只点亮L5、L6,表示左转弯ACALL DELAY ;此时K2 K1=0 1

MOV P1,#0FFH ;熄灭LED 0.5秒

ACALL DELAY ;延时0.5秒

LJMP START

PRG2:MOV P1,#0CFH ;只点亮L7、L8,表示右转弯ACALL DELAY ;此时K2 K1=1 0

MOV P1,#0FFH ;熄灭LED0.5秒

ACALL DELAY

LJMP START

PRG3:MOV P1,#00H ;LED全亮,此时K2 K1=1 1 LJMP START

DELAY:MOV R1,#5 ;延时0.5秒

DEL1:MOV R2,#200

DEL2:MOV R3,#126

DEL3:DJNZ R3,DEL3

DJNZ R2,DEL2

DJNZ R1,DEL1

RET

END

实验四中断实验

一、实验目的:

1.外部中断技术的基本使用方法。

2.中断处理程序的编程方法。

3.中断嵌套处理程序的编程方法。

二、实验设备:

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

三、实验原理:

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

图2-4-1 外部中断实验电路2.程序流程图:程序流程图见图2-4-2。

图2-4-2 K1中断控制LED程序流程图

四、实验内容与步骤:

1.实验内容:

1)单一外部中断控制:按K1在INT0端产生中断信号,从而使P1的8个LED同时闪烁5次。

2)两级中断控制(中断嵌套):按K1使8个LED闪烁后,按K2使LED右循环点亮。

3)根据图2-4-3,编写程序:的下降沿产生中断,中断服务程序为读入P1.4 ~ P1.7开关状态,并通过P1.0 ~ P1.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中断

ORG 4000H

LJMP START

ORG 4003H

LJMP EXT0

ORG 4013H

LJMP LPT

ORG 4100H

START: MOV A,#0FFH

MOV BAH,A

SETB EX0

SETB EX1

CLR IT0

SETB EA

MOV SP, #70H

MOV A, #0FFH

MOV P1, A

SJMP $

DELAY: MOV R1, #5

DEL1: MOV R2, #200

DEL2: MOV R3, #126

DEL3: DJNZ R3, DEL3

DJNZ R2, DEL2

DJNZ R1, DEL1

RET

;INT0中断服务程序:8个LED闪烁5次。

EXT0: MOV R0, #10

MOV A, #00H

LOOP: MOV P1, A

CALL DELAY

CPL A

MOV P1, A

DJNZ R0, LOOP

MOV A, #0FFH

MOV P1, A

RETI

LPT: MOV A,#01H SHIF:LCALL FLASH

RR A

SJMP SHIFT FLASH: MOV P1,A

LCALL DELAT

MOV P1,#00H

LCALL DELAY

DJNZ R2,FLASH

RET

DELAY: MOV R5,#200

D1:MOV R6,#123

NOP

DJNZ R6,$

DJNZ R5,D1

RET

实验五定时器/计数器实验(一)

一、实验目的:

1.掌握89S51内部定时器、计数器的使用和编程方法。

2.定时器中断处理程序的编程方法。

二、实验设备:

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

三、实验原理:

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

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

1)定时常数的确定

采用定时器中断方法可实现时间延时,延时时间由主频和定时器方式来确定。

本实验中时钟频率为6.0 MHZ,其延时时间最大值约为0.13s(方式一下)。若要产生0.5秒延时时间,需采用定时器定时和软件计数的方法来实现。为此我们可在主程序中设置软件循环次数初值为05H(用R0)的软件计数器和定时时间为0.1s的定时器。这样定时器每隔0.1s产生一次中断,CPU响应中断后将R0中计数值减一,即可实现0.5s延时。

定时器时间常数的确定方法如下:

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

定时器工作于方式一,设计数初值为X,则有(216-X)×2×10-6s =0.1s,由此可求得X=15536D=3CB0H。故初始值为TH=3CH,TL=B0H

2)初始化程序

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

3)设计中断服务程序和主程序

中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。主程序则用来控制发光二极管按要求亮灭。

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

图2-5-2 定时器T0中断控制LED程序流程图

四、实验内容与步骤:

1.实验内容:

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

2.实验步骤:

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

2)根据程序流程图编写程序,编辑程序并进行汇编。

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

五、实验报告

根据实验内容写出相应的实验报告。(变化花样可自行设计),

六、思考题

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

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

3.根据图2-5-3,编写用T0中断控制LED闪烁5次的程序。

单片机原理与应用教程第3版习题课后答案

《单片机原理及应用程序》(第三版)习题参考答案 第一章 1. 为什么计算机要采用二进制数?学习十六进制数的目的是什么? 在计算机中,由于所采用的电子逻辑器件仅能存储和识别两种状态的特点,计算机部一切信息存储、处理和传送均采用二进制数的形式。可以说,二进制数是计算机硬件能直接识别并进行处理的惟一形式。十六进制数可以简化表示二进制数。 2. (1) 01111001 79H (2) 0.11 0.CH (3) 01111001.11 79.CH (4) 11101010.101 0EA.AH (5)01100001 61H (6) 00110001 31H 3. (1) 0B3H (2)80H (3) 17.AH (4) 0C.CH 4. (1)01000001B 65 (2) 110101111B 431 5. (1) 00100100 00100100 00100100 (2) 10100100 11011011 11011100 (5) 10000001 11111110 11111111 6. 00100101B 00110111BCD 25H 7. 137 119 89 8.什么是总线?总线主要有哪几部分组成?各部分的作用是什么? 总线是连接计算机各部件之间的一组公共的信号线。一般情况下,可分为系统总线和外总线。 系统总线应包括:地址总线(AB)控制总线(CB)数据总线(DB) 地址总线(AB):CPU根据指令的功能需要访问某一存储器单元或外部设备时,其地址信

息由地址总线输出,然后经地址译码单元处理。地址总线为16位时,可寻址围为216=64K,地址总线的位数决定了所寻址存储器容量或外设数量的围。在任一时刻,地址总线上的地址信息是惟一对应某一存储单元或外部设备。 控制总线(CB):由CPU产生的控制信号是通过控制总线向存储器或外部设备发出控制命令的,以使在传送信息时协调一致的工作。CPU还可以接收由外部设备发来的中断请求信号和状态信号,所以控制总线可以是输入、输出或双向的。 数据总线(DB):CPU是通过数据总线与存储单元或外部设备交换数据信息的,故数据总线应为双向总线。在CPU进行读操作时,存储单元或外设的数据信息通过数据总线传送给CPU;在CPU进行写操作时,CPU把数据通过数据总线传送给存储单元或外设9.什么是接口电路? CPU与接口电路连接一般应具有哪些信号线?外部设备与接口电路连接一般应具有哪些信号线? CPU通过接口电路与外部输入、输出设备交换信息, 一般情况下,外部设备种类、数量较多,而且各种参量(如运行速度、数据格式及物理量)也不尽相同。CPU为了实现选取目标外部设备并与其交换信息,必须借助接口电路。一般情况下,接口电路通过地址总线、控制总线和数据总线与CPU连接;通过数据线(D)、控制线(C)和状态线(S)与外部设备连接。 10. 存储器的作用是什么?只读存储器和随机存储器有什么不同? 存储器具有记忆功能,用来存放数据和程序。计算机中的存储器主要有随机存储器(RAM)和只读存储器(ROM)两种。随机存储器一般用来存放程序运行过程中的中间数据,计算机掉电时数据不再保存。只读存储器一般用来存放程序,计算机掉电时信息不会丢失。 11.某存储器的存储容量为64KB,它表示多少个存储单元?64×1024 12. 简述微型计算机硬件系统组成。

单片机练习题标准答案

单片机练习题答案 一、填空题 1、若单片机振荡脉冲频率为6MHz时,一个机器周期为______2μs________。 2、AT89C51单片机的XTAL1和XTAL2引脚是___外接晶振或时钟__引脚。 3、定时器/计数器的工作方式3是指的将定时器/计数器T0 拆成两个独立的8位计数器。 4、若由程序设定RS1、RS0=01,则工作寄存器R0~R7的直接地址为__08~0FH____。 5、写出完成相应功能的汇编指令:将立即数11H送到R2____ MOV R2,#11H ____、使ACC.2置位____ SETB ACC.2__、使累加器的最低2位清零___ ANL A,#0FCH ___。 6、A/D转换的作用是将__模拟____量转为数字量。ADC0809是__8___位的A/D转换芯片。 7、8051的堆栈区一般开辟在用户RAM区的地址为30H~7FH。 8、所谓寻址,其实质就是__如何确定操作数的单元地址问题_。 9、若单片机振荡脉冲频率为12MHz时,一个机器周期为____1μs ______。 10、定时器中断请求发生在__计数溢出的时候_____。 11、中断响应时间是指__从中断请求发生直到被响应去执行中断服务程序所需的时间____。 12、通过CPU对I/O状态的测试,只有I/O已准备好时才能进行I/O传送,这种传送方 式称为____程序查询方式___。 13、在中断服务程序中现场保护和现场恢复期间,中断系统应处在__关中断__状态。 14、8051单片机的内部硬件结构包括了:中央处理器(CPU)、数据存储器(RAM)、程序存储器、和2个16位定时/计数器以及并行I/O口、串行口、中断控制系统、时钟电路、位处理器等部件,这些部件通过内部总线相连接。 15、MCS-51的堆栈只可设置在RAM的地址为30H~7FH,堆栈寄存器sp是8位寄存器。 16、MCS-51单片机的P0~P4口均是并行I/O口,其中的P0口和P2口除了可以进行数据的输入、输出外,通常还用来构建系统的数据总线和地址总线,在P0~P4口中,P0为真正的双相口,P1—P3为准双向口;P3口具有第二引脚功能。 17、若LED为共阳极接法(即负逻辑控制),则字符3的八段代码值(a->dot)应当为__0D__H。 18、MCS-51片内20H~2FH范围内的数据存储器,既可以__字节__寻址又可以位寻址。

单片机实验报告

实验报告 专业:计算机科学与技术班级:C093 姓名:孙丽君 学号:098677

实验一:数据传送实验 1.实验内容: 将8031内部RAM 40H—4FH单元置初值A0H—A FH,然后将片内RAM 40H—4FH单元中的数据传送到片内RAM 50H—5FH单元。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。 2. 源程序清单: 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 3.实验结果: 4. CPU 对8031内部RAM存储器有哪些寻址方式? 答:直接寻址,寄存器寻址,寄存器间接寻址,位寻址。

5. 执行程序后下列各单元的内容是什么? 内部RAM 40H~4FH内容:A0~AF 内部RAM 50H~5FH内容:A0~AF 实验二多字节十进制加法实验 1.实验内容: 多字节十进制加法。加数首地址由R0 指出,被加数和结果的存储单元首地址由R1指出,字节数由R2 指出。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。 2. 源程序清单: ORG0000H RESET: AJMP MAIN ORG0100H MAIN: MOV SP, #60H MOV R0, #31H MOV@R0, #22H DEC R0 MOV@R0, #33H

单片机课后习题答案

单片机课后习题答案 1.89C51单片机内包含哪些主要逻辑功能部件? 答:80C51系列单片机在片内集成了以下主要逻辑功能部件: (l)CPU(中央处理器):8位(2)片内RAM:128B(3)特殊功能寄存器:21个(4)程序存储器:4KB (5)并行I/O口:8位,4个(6)串行接口:全双工,1个(7)定时器/计数器:16位,2个(8)片内时钟电路:1个 2.89C51的EA端有何用途? 答:/EA端接高电平时,CPU只访问片内flash Rom并执行内部程序,存储器。/EA端接低电平时,CPU只访问外部ROM,并执行片外程序存储器中的指令。/EA端保持高电平时,CPU执行内部存储器中的指令。 3.89C51的存储器分哪几个空间?如何区别不同空间的寻址? 答:ROM(片内ROM和片外ROM统一编址)(使用MOVC)(数据传送指令)(16bits地址)(64KB)片外RAM(MOVX)(16bits地址)(64KB)片内RAM (MOV)(8bits地址)(256B) 4.简述89C51片内RAM的空间分配。 答:片内RAM有256B,低128B是真正的RAM区,高128B是SFR(特殊功能寄存器)区。 5.简述布尔处理存储器的空间分配,片内RAM中包含哪些可位寻址单元。 答:片内RAM区从00H~FFH(256B) 其中20H~2FH(字节地址)是位寻址区对应的位地址是00H~7FH 6. 如何简捷地判断89C51正在工作? 答:用示波器观察8051的XTAL2端是否有脉冲信号输出(判断震荡电路工作是否正常?)ALE(地址锁存允许)(Address Latch Enable)输出是fosc的6分频 用示波器观察ALE是否有脉冲输出(判断8051芯片的好坏?) 观察PSEN(判断8051能够到EPROM 或ROM中读取指令码?) 因为/PSEN接外部EPROM(ROM)的/OE端子OE=Output Enable(输出允许) 7. 89C51如何确定和改变当前工作寄存器组? 答:PSW(程序状态字)(Program Status Word)中的RS1和RS0 可以给出4中组合,用来从4组工作寄存器组中进行选择PSW属于SFR(Special Function Register)(特殊功能寄存器) 9.读端口锁存器和“读引脚”有何不同?各使用哪种指令? 答:读锁存器(ANLP0,A)就是相当于从存储器中拿数据,而读引脚是从外部拿数据(如MOV A,P1这条指令就是读引脚的,意思就是把端口p1输入数据送给A)传送类MOV,判位转移JB、JNB、这些都属于读引脚,平时实验时经常用这些指令于外部通信,判断外部键盘等;字节交换XCH、XCHD算术及逻辑运算 ORL、CPL、ANL、ADD、ADDC、SUBB、INC、DEC控制转移CJNE、DJNZ

单片机试题及答案1

一、填空题 已知x的补码数10110111B,x的真值是___201D。 进制转换:134D=__10000110B;=______86H。 32K存储容量对应的地址范围从0000H-7FFFH_。 CPU与内存或I/O接口相连的系统总线通常由_控制总线__、数据总线__、地址总线___等三种信号组成。MCS-51单片机上电复位时PC=_0000_H,SP=_07_H;工作寄存器缺省采用第___________组,这组寄存器的地址范围是从______H~_____H。 MCS-51单片机系列有__5__个中断源,可分为___2__个优先级。上电复位时外部中断0__中断源的优先级别最高。 MCS-51单片机内部RAM共分为______2__个功能区,其高端128个字节的地址空间称为特殊功能寄存器_区,其中仅有________个字节有实际意义。 8255可编程芯片通常作为_并行接口_______扩展之用;8253可编程芯片通常作为_定时器_______扩展之用。8155可编程芯片通常作为_并行接口计数器和存储器______扩展之用;8279可编程芯片通常作为_键盘/显示控制器________扩展之用。 MCS-51 的并行I/O口信息有____读引脚________和____读锁存_________两种读取方法,读一改一写操作是针对并行I/O口内的锁存器进行的。 74LS273通常用来作为简单______输出__________接口扩展;而74LS244则常用来作为简单________输入_______接口扩展。 不带输入数据锁存器的D/A转换器,CPU必须通过______锁存或寄存__器件与D/A转换器传送数据;无三态输出功能的A/D转换器,应当通过_____三态___器件与CPU传送数据。 若用并行口来扩展一个有36只按键的行列式键盘,最少需__12_根I/O线。 74LS138是具有3个输入的译码器芯片,其输出作为片选信号时,最多可以选中___八_块芯片。 MCS-51单片机访问外存储器时利用_____ALE_______信号锁存来自_____P0_____口的低八位地址信号。在MCS-51系统中,当晶振频率采用12MHz时,一个机器周期等于_1__微秒。 8051的T0作为计数器用时,其计数频率不能超过晶振频率的___二十四分之一__。 二、选择题 通常所说的主机是指( C )。 (A)硬件和软件(B)CPU和磁盘存储器 (C)CPU和主存(D)运算器和控制器

单片机实验内容

实验一P1口输入输出实验、继电器控制、音频控制 一、实验目的: 1.学习I/O端口的使用方法 2.掌握继电器控制的基本方法,了解用弱点控制强电的工作原理 3.学习单片机汇编语言源程序的编制方法和调试方法,学习延时子程序的编写和使用 4.了解音频发声原理 二、实验要求: 1.P1口做输出口,接8只发光二极管,编写程序使发光二极管循环点亮。 2.P1.0、P1.1作输入口,接两个拨动开关,P1.2、P1.3作输出口接两个发光二极管,编程 读取开关状态,并在二极管上显示出来。 3.利用单片机的端口,输出电平控制继电器的吸合和断开,实现对外部装置的控制。 4.用端口输出不同频率的脉冲,控制喇叭发出不同音调。 5.用P1.0和延时子程序实现占空比可调的PWM电压波形。 三、实验说明: 1. P1口用为输入口时,必须先对它置“1”才能正确读入数据。 2. 继电器可以实现电子电路和电气电路的连接桥梁。其控制电压是5V,控制端为高电平时继电器的工作常开触点吸合,电气线路连接;控制端为低电平时,触点断开,电气线路切断。 3. 声音的频率由端口输出时延时时长来控制,输出的方波经放大滤波后驱动扬声器发声。 4. PWM是脉宽调制电压信号,可以通过占空比(脉冲中高电平与低电平的宽度比)来输出可调模拟电压,是单片机上常用的模拟量输出方法。例如50%(5:5),10%(1:9),90%(9:1)占空比。 四、实验思考题: 将1位十六进制数存放在40H单元中,利用查表法将其转换为相应的ASCII码 实验二外部中断实验 一、实验目的: 1.学习外部中断技术的基本使用方法 2.学习中断处理程序的编程方法 二、实验要求: 1.用单次脉冲申请中断INT0,在中断处理程序中对输出信号进行反转。 2.用单次脉冲申请中断INT1,在中断处理程序中实现8个小灯左移点亮1次。 三、实验思考题: 1. 相应中断请求的条件是什么? 2. 写出同级中断的查询优先次序。

单片机原理与应用技术实验报告(实验项目:发光二极管闪烁)

***数学计算机科学系实验报告 专业:计算机科学与技术班级:实验课程:单片机原理与应用技术姓名:学号:实验室:硬件实验室 同组同学: 实验时间:2013年3月20日指导教师签字:成绩: 实验项目:发光二极管闪烁 一实验目的和要求 1.使用单片机的P1.5口做输出口,使该位发光二极管闪烁。 2.掌握单片机使用。 二实验环境 PC机一台,实验仪器一套 三实验步骤及实验记录 1.在pc机上,打开Keil C。 2.在Keil C中,新建一个工程文件,点击“Project->New Project…”菜单。 3.选择工程文件要存放的路径 ,输入工程文件名 LED, 最后单击保存。 4. 在弹出的对话框中选择 CPU 厂商及型号。 5.选择好 Atmel 公司的 89c51 后 , 单击确定。 6.在接着出现的对话框中选择“是”。 7.新建一个 C51 文件 , 点击file菜单下的NEW,或单击左上角的 New File快捷键。 8.保存新建的文件,单击SAVE。 9.在出现的对话框中输入保存文件名MAIN.C,再单击“保存”。 10.保存好后把此文件加入到工程中方法如下 : 用鼠标在 Source Group1 上单击右键 , 然后再单击 Add Files to Group ‘Source Group 1'。 11.选择要加入的文件 , 找到 MAIN.C 后 , 单击 Add, 然后单击Close。 12.在编辑框里输入代码如下: #include "reg51.h" //包含头文件 sbit led=P1^5; //表示用led等效于P1^5, P1^0就是指头文件里定义的P1寄存器的第5BIT #define uchar unsigned char #define uint unsigned int

单片机实验考核题目及答案

---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------

单片机课后习题答案部分筛选

第一章 2单片机具有哪些特点 (1)片内存储容量越来越大。 (2抗干扰性好,可靠性高。 (3)芯片引线齐全,容易扩展。 (4)运行速度高,控制功能强。 (5)单片机内部的数据信息保存时间很长,有的芯片可以达到100年以上。 第二章 6. 如何简捷地判断89C51正在工作? 答:用示波器观察8051的XTAL2端是否有脉冲信号输出(判断震荡电路工作是否正常?) ALE(地址锁存允许)(Address Latch Enable)输出是fosc的6分频用示波器观察ALE是否有脉冲输出(判断 8051芯片的好坏?) 观察PSEN(判断8051能够到EPROM 或ROM中读取指令码?) 因为/PSEN接外部EPROM(ROM)的/OE端子 OE=Output Enable(输出允许) 9. 读端口锁存器和“读引脚”有何不同?各使用哪种指令? 答:读锁存器(ANL P0,A)就是相当于从存储器中拿数据,而读引脚是从外部拿数据(如MOV A,P1 这条指令就是读引脚的,意思就是把端口p1输入数据送给A) 传送类MOV,判位转移JB、JNB、这些都属于读引脚,平时实验时经常用这些指令于外部通信,判断外部键盘等;字节交换XCH、XCHD算术及逻辑运算 ORL、CPL、ANL、ADD、ADDC、SUBB、INC、DEC控制转移CJNE、DJNZ都属于读锁存器。 13. 内部RAM低128字节单元划分为哪3个主要部分?各部分主要功能是什么? 答:片内RAM低128单元的划分及主要功能: (l)工作寄存器组(00H~lFH) 这是一个用寄存器直接寻址的区域,内部数据RAM区的0~31(00H~lFH),共32个单元。它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0~R7。 (2)位寻址区(20H~2FH) 从内部数据RAM区的32~47(20H~2FH)的16个字节单元,共包含128位,是可位寻 址的RAM区。这16个字节单元,既可进行字节寻址,又可实现位寻址。 (3)字节寻址区(30H~7FH) 从内部数据RAM区的48~127(30H~7FH),共80个字节单元,可以采用间接字节寻址 的方法访问。 15. 开机复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组?

单片机考试试题带答案

单片机原理及应用试卷A 一、填空题(每空1分,共20分) 1、单片微型计算机由CPU、存储器和I/O 三部分组成。 PSEN信号有效时,表示从P0口稳定地送出了低8位地址。 2、MCS-51系统中,当 3、访问8031片外数据存储器采用的是寄存器间接寻址方式。 4、累加器(A)=80H,执行完指令ADD A,#83H后,进位位CY= 1 。 5、指令LCALL 37B0H,首地址在2000H,所完成的操作是2003H入栈,37B0H送入PC。 6、51有5个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器IP 加以选择。 7、在变址寻址方式中,以A作为变址寄存器,以PC或DPTR作基址寄存器。 8、中断请求信号有电平触发和脉冲触发两种触发方式 9、用串行口扩展并行口时,串行接口的工作方式应选为方式0。 10、74LS273通常用来作简单输出接口扩展;而74LS244则常用来作简单输入接口扩展。 11、51的并行I/O口信息有读引脚和读锁存器两种读取方法,读—改—写操作是针对并行I/O口内的锁存器进行的。 12、A/D转换器的三个重要指标是转换速度、分辨率和转换精度。 二、选择题(从备选答案中选择一个正确答案,并将代号写在括号内。每题1.分,共10分) 1、计算机能识别的语言是( C )。 (A)汇编语言(B)自然语言(C)机器语言(C)高级语言 2、MCS-51单片机外扩存储器芯片时,4个I/O口中用作数据总线的是( B )。 (A)P0和P2口(B)P0口(C)P2和P3口(D)P2口 3、在中断服务程序中,至少应有一条( D )。 (A)传送指令(B)转移指令(C)加法指令(D)中断返回指令

单片机实验报告

南京晓庄学院电子工程学院 实验报告 课程名称:单片机系统设计与应用 姓名:森 专业:电子信息科学与技术 年级:14级 学号:05 2016年12 月1 日

实验项目列表 序号实验项目名称成绩指导教师 1 单片机仿真软件的使用 2 单片机I/O接口应用实验——流水灯 3 外部中断实验——工业顺序控制模拟 4 定时/计数器实验——矩形波 5 定时/计数器实验——计数器 6 综合实验 7 8 9 10 注: 1、实验箱端口为com6。 2、芯片选择切换到51 3、停止运行使用实验箱上的复位按钮

实验室号:___ 实验时间:成绩: 实验一仿真软件的使用 1.实验目的和要求 1)熟悉Keil C51软件界面,以及编辑、编译、运行程序的步骤; 2)掌握单片机仿真软件使用和调试的方法。 2.实验原理 Keil C51软件使用 在Keil C51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。 3.主要仪器设备(实验用的软硬件环境) 安装有Keil C51软件的PC机1台 4.操作方法与实验步骤 Keil C51软件使用 (1)建立用户文件夹 (2)建立工程 (3)建立文件并编码。输入以下源程序,并保存在项目所在的目录中 (4)把文件加入工程中 (5)编译工程。编译时观察在界面下方的“Build”页中的到编译错误信息和使用的系统资源情况等。 (6)调试。利用常用调试命令,如复位、运行、暂停、单步、单步跳过、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令进行调试,观察并分析调试结果。 (7)目标代码文件的生成。运行生成相应的.HEX文件。 5.实验内容及程序 1)从DATA区地址起始地址为40H的连续10个内存单元的内容传送到XDATA区起始地址为2000H的10个内存单元中。 注意:DATA区地址起始地址为40H的连续10个内存单元必须先赋初值。 P83-5源程序 #include #define uchar unsigned char xdata unsigned char buffer1[10]_at_ 0x2000; //在xdata区定义数组变量BUF1,首地址为2000H data unsigned char buffer2[10]_at_ 0x40; //在data区定义数组变量BUF2,首地址为40H void main(void)

单片机原理及应用习题答案

思考与练习题1 1.1单项选择题 (1)单片机又称为单片微计算机,最初的英文缩写是( D ) A.MCP B.CPU C.DPJ D.SCM (2)Intel公司的MCS-51系列单片机是( C )的单片机。 A.1位 B.4位 C.8位 D.16位 (3)单片机的特点里没有包括在内的是( C ) A.集成度高 B.功耗低 C.密封性强 D.性价比高 (4)单片机的发展趋势中没有包括的是( B ) A.高性能 B.高价格 C.低功耗 D.高性价比 (5)十进制数56的二进制数是( A ) A.00111000B B.01011100B C.11000111B D.01010000B (6)十六进制数93的二进制数是( A ) A.10010011B B.00100011B C.11000011B D.01110011B (7)二进制数11000011的十六进制数是( B ) A. B3H B.C3H C.D3H D.E3H (8)二进制数11001011的十进制无符号数是( B ) A. 213 B.203 C.223 D.233 (9)二进制数11001011的十进制有符号数是( B ) A. 73 B.-75 C.-93 D.75 (10)十进制数29的8421BCD压缩码是( A ) A.00101001B B.10101001B C.11100001B D.10011100B (11)十进制数-36在8位微机中的反码和补码是( D ) A.00100100B、11011100B B.00100100B、11011011B C.10100100B、11011011B D.11011011B、11011100B (12)十进制数+27在8位微机中的反码和补码分别是( C ) A.00011011B、11100100B B.11100100B、11100101B C.00011011B、00011011B D.00011011B、11100101B (13)字符9的ASCII码是( D ) A.0011001B B.0101001B C.1001001B D.0111001B (14)ASCII码1111111B的对应字符是( C ) A. SPACE B.P C.DEL D.{ (15)或逻辑的表达式是( B ) A.A?B=F B. A+B=F C. A⊕B=F D.(A?B)=F (16)异或逻辑的表达式是( C ) A.A?B=F B. A+B=F C. A⊕B=F D.(A?B)=F (17)二进制数10101010B与00000000B的“与”、“或”和“异或”结果是( B ) A.10101010B、10101010B、00000000B B.00000000B、10101010B、10101010B C.00000000B、10101010B、00000000B D.10101010B、00000000B、10101010B (18)二进制数11101110B与01110111B的“与”、“或”和“异或”结果是( D ) A.01100110B、10011001B、11111111B B.11111111B、10011001B、01100110B C.01100110B、01110111B、10011001B D.01100110B、11111111B、10011001B (19)下列集成门电路中具有与门功能的是( D ) A.74LS32 B.74LS06 C.74LS10 D.74LS08

51单片机练习题

一.闪烁灯 1.实验任务 如图4.1.1所示:在端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.程序设计内容 (1)延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为秒,相对于微秒来说,相差太大,所以我们在执行 某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是 如何设计呢下面具体介绍其原理:

如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个22+2×248=49820× DJNZ R7,$ 2个2×248(498 DJNZ R6,D1 2个2×20=40 10002 因此,上面的延时程序时间为。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时,延时10ms,以此为基本的计时单位。如本实验要求秒=200ms,10ms×R5 =200ms,则R5=20,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当端口输出高电平,即=1时,根据发光二极管的单向导 电性可知,这时发光二极管L1熄灭;当端口输出低电平,即=0时,发 光二极管L1亮;我们可以使用SETB指令使端口输出高电平,使用CLR 指令使端口输出低电平。 5.程序框图

大工19春《单片机原理及应用》大作业题目及要求【参考答案】

网络教育学院《单片机原理及应用》大作业 大工2019年春离线大作业 题目:题目一:单片机电子时钟设计 学习中心:奥鹏学习中心 层次: 专业: 年级:年春/秋季 学号: 学生姓名:

(注:本页为课程学习要求,阅读后请删除) 大工2019年春《单片机原理及应用》大作业具体要求: 1 作业内容 从以下五个题目中任选其一作答。 2 正文格式 作业正文内容统一采用宋体,字号为小四,字数在2000字以上。 3. 作业提交 学生需要以附件形式上交离线作业(附件的大小限制在10M以内),选择已完成的作业,点“上交”即可。如下图所示。 4.注意事项 请同学独立完成作业,不准抄袭其他人或者请人代做,如有雷同作业,成绩以零分计! 大连理工大学网络教育学院 2019年5月

题目一:单片机电子时钟设计 准则:设计一个基于51单片机或STM单片机的电子时钟,并且能够实现时分 秒的显示和调节 撰写要求:(1)首先介绍课题背景,并进行需求分析及可行性分析,包括软硬件功 能分配、核心器件的选型等; (2)对系统硬件进行设计,包括硬件功能模块划分、电路原理图设计等; (3)对系统软件进行设计,选用汇编语言或C语言编写程序,给出软件 开发流程; (4)总结:需要说明的问题以及设计的心得体会。 答: 单片机电子时钟设计 一、引言 单片机技术是计算机科学技术的独立分支,拥有着高性价比、高集成度、体积少、强大控制功能、功耗低、高可靠性、电压低、容易生产、方便携带等优点,越来越广泛的被应用于实际生活中。单片机全称,单片机微型计算机,从应用领域来看,单片机主要用来控制系统运行,所以又称微控制器或嵌入式控制器,单片机是将计算机的基本部件微型化并集成在一块芯片上的微型计算机。 二、时钟的基本原理分析 利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。 为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管

C51单片机实验报告

实验报告册 课程名称:单片机原理与应用B 指导老师:xxx 班级:xxx 姓名:xxx 学号:xxx 学期:20 —20 学年第学期南京农业大学工学院教务处印

实验目录实验一:指示灯/开关控制器 实验二:指示灯循环控制 实验三:指示灯/数码管的中断控制 实验四:电子秒表显示器 实验五:双机通信

姓名:学号:班级:成绩: 实验名称:指示灯/开关控制器 一、实验目的: 学习51单片机I/O口基本输入/输出功能,掌握C语言的编程与调试方法。 二、实验原理: 实验电路原理图如图所示,图中输入电路由外接在P1口的8只拨动开关组成;输入电路由外接在P2口的8只低电平驱动的发光二极管组成。此外,还包括时钟电路、复位电路和片选电路。 在编程软件的配合下,要求实现如下指示灯/开关控制功能:程序启动后,8只发光二极管先整体闪烁3次(即亮→暗→亮→暗→亮→暗,间隔时间以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行。 三、软件编程原理为; (1)8只发光二极管整体闪烁3次

亮灯:向P2口送入数值0; 灭灯:向P2口送入数值0FFH; 闪烁3次:循环3次; 闪烁快慢:由软件延时时间决定。 (2)根据开关状态控制灯亮或灯灭 开关控制灯:将P1口(即开关状态)内容送入P2口;无限持续:无条件循环。 四、实验结果图: 灯泡闪烁:

按下按键1、3、5、7:

经检验,其余按键按下时亦符合题目要求。 五、实验程序: #include"reg51.h" void delay(unsigned char time) { unsigned int j=15000; for(;time>0;time--) for(;j>0;j--); } void main(){ key,char i; for(i=0;i<3;i++) { P2=0x00; delay(500); P2=0xff; delay(500) } while(1) { P2=P3;

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

单片机原理实验报告 专业:计算机科学与技术 学号: :

实验1 计数显示器 【实验目的】 熟悉Proteus仿真软件,掌握单片机原理图的绘图方法 【实验容】 (1)熟悉Proteus仿真软件,了解软件的结构组成与功能 (2)学习ISIS模块的使用方法,学会设置图纸、选元件、画导线、修改属性等基本操作 (3)学会可执行文件加载及程序仿真运行方法 (4)理解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制【实验步骤】 (1)观察Proteus软件的菜单、工具栏、对话框等基本结构 (2)在Proteus中绘制电路原理图,按照表A.1将元件添加到编辑环境中(3)在Proteus中加载程序,观察仿真结果,检测电路图绘制的正确性 表A.1

Switches&Relays BUT BUTTON 【实验原理图】 【实验源程序】 #include sbit P3_7=P3^7; unsigned char x1=0;x2=0 ; unsigned char count=0; unsigned char idata buf[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(int time) { int k,j;

for(;time<0;time--) for(k=200;k>0;k--) for(j=500;j<0;j--); } void init() { P0=buf[x1]; delay(10); P2=buf[x2]; delay(10); } void main() { init(); while(1) { x1=count/10; x2=count%10; P0=buf[x1]; delay(10);

单片机上机操作考试题及答案

单片机上机考试试题 1.使得8个发光二极管循环点亮,采用定时器方式0使得每个发光二极管点亮的时间为0.5s。#include int count=0; int minute=0; int temp; char code style[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; void desplay() { temp=minute%8; P0= style[temp]; } void toProc() interrupt 1 { count++; TH0=0x0c; TL0=0x78; } void main() { TMOD=0; TH0=0x0c; TL0=0x78; TR0=1; ET0=1; EA=1; while(1) { if(count==100) { minute++; count=0; } desplay(); } }

P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 K1=0,K2=0 ○○○○○○○○ K1=0,K2=1 ●●●●○○○○ K1=1,K2=0 ●●○○●●○○ K1=1,K2=1 ●●●●●●●● #include char code style[4]={0x0,0xf0,0x33,0xff}; sbit P1_0=P1^0; sbit P1_1=P1^1; void main() { P0=0xff; while(1) { if(P1_0==0&&P1_1==0) { P0=style[0]; } if(P1_0==0&&P1_1==1) { P0=style[1]; } if(P1_0==1&&P1_1==0)

单片机实验报告

实 验 报 告 实验课程:单片机原理及应用 班级: 12自动化2班 学号: 姓名: 教师:张玲 成绩: 实验日期:年月日 实验名称:实验1——计数显示器 一、实验目的: 学习Proteus 软件的使用,掌握单片机原理图的绘图方法。 二、实验内容: 1、绘制“计数显示器”电路原理图; 2、利用提供的hex文件验证此电路的运行效果。 三、实验要求: 提交的实验报告中应包括:1、绘图方法简述,要求说明元件与电源的选取、摆放及属性编辑,总线与标签的画法等内容;2、电路原理图; 3、仿真运行效果展示,要求就仿真文件加载方法及3~4幅运行截图进行简要说明;4、实验小结,说明遇到的主要问题或实验

1体会等。 参考电路原理图如下: 元件类别电路符号元件名称 Microproces sor ICs “U1”80C51 Miscellaneo us “X1”/12MHz CRYSTAL Capacitors“C1”~“C2” /1nF CAP Capacitors“C3”/22μF CAP-ELEC Resistors Packs “RP1”/7-100ΩRESPACK-7 Resistors“R1”/100ΩRES Optoelectro nics “LED1”~ “LED2” 7SEG-COM-CAT-G RN Switches & Relays “BUT”BUTTON 1、编程思路及C51源程序:

2、电路原理图: 3、仿真运行效果展示:

4、实验小结: 熟悉Proteus软件,了解软件的结构组成与功能;学习ISIS模块的使用方法, 学会设置图纸、选元件、线画总线、修改属性等基本操作;学会可执行文件 加载及程序仿法;理解Proteus在单片机开发中的作用,完成单片机电路原 理图的绘制。

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

《单片机原理及应用》 实验报告 2017/2018 学年第1 学期 系别计算机学院 专业软件工程 班级17软件工程班 姓名XXXXXX 学号8888888888 授课老师******

实验一:流水灯实验 1.实验目的 (1)学习编译和仿真环境使用 (2)学习P3口的使用方法 (3)学习延时子程序的编写 2实验内容 (1)通过对P3口地址的操作控制8位LED流水点亮,从而认识单片机的接口;(2)通过改变并行口输出电平控制LED灯的点亮与否,通过延时程序控制亮灯时间。 3.实验运行结果图 4.源代码 //流水灯实验 #include //包含单片机寄存器的头文件 sfr x=0xb0; //P3口在存储器中的地址是b0H,通过sfr可定义8051内核单片机 //的所有内部8位特殊功能寄存器,对地址x的操作也就是对P1口的

操作 /**************************************** 函数功能:延时一段时间 *****************************************/ void delay(void) { unsigned char i,j; for(i=0;i<255i++) for(j=0;j<255j++) ; //利用循环等待若干机器周期,从而延时一段时间 } /***************************************** 函数功能:主函数 ******************************************/ void main(void) { while(1) { x=0xfe; //第一个灯亮 delay(); //调用延时函数 x=0xfd; //第二个灯亮 delay(); //调用延时函数 x=0xfb; //第三个灯亮 delay(); //调用延时函数 x=0xf7; //第四个灯亮 delay(); //调用延时函数 x=0xef; //第五个灯亮 delay(); //调用延时函数 x=0xdf; //第六个灯亮

相关文档
最新文档