单片机实验答案
更新时间:2023-11-07 10:11:01 阅读量: 教育文库 文档下载
前 言
由于单片机具有高可靠性、超小型、低价格、容易产品化等特点,在
仪器仪表智能化、实时工业控制、实时数据采集、智能终端、通信设备、导航系统、家用电器等控制应用领域,具有十分广泛的用途。目前在国内单片机应用中,MCS-51系列单片机仍然是一种主流单片机。为配合《单片机应用技术》课程的教学,使学生尽快了解、掌握89C51单片机的使用,特编写了这本上机指导书(基础篇)。
《单片机》是一门实践性很强的课程,提高教学质量的一个重要环节是上机实习和训练,无论是学习汇编语言程序设计,还是学习接口电路和外设与计算机的连接,或者软硬兼施地研制单片机应用系统,不通过加强动手是不能获得预期效果的。本实验指导书提供了9个实验的指导性材料,实验还有一些思考题,可以根据课时的安排和教学要求进行取舍。为了达到某些实验的目的,书中提供的参考程序与实际应用中的程序会有些差别,所以不一定是最优的。
由于时间紧迫,加上编者学识有限,如有不妥之处,欢迎读者批评指正。
编 者
1
实 验 须 知
1. 实验前必须阅读教科书的有关部分和本实验指导书,了解实验目的、内容、步骤,做好实验前的准备工作,编写好实验中要求自编或修改的程序;完成实验前要求完成的准备工作后方可以上机实验,否则不得上机操作。
2. 各种电源的电压和极性不能接错,严禁带电接线和接插元器件。通电前须经过指导教师检查认可后方能通电。
3. 不准随意拨弄各种与实验无关的旋钮和开关,凡与本次实验无关的任何设备都禁止动用和摸弄,注意安全。
4. 严禁用手触摸实验系统印制电路板和元器件的引脚,防止静电击穿芯片。
5. 实验中若损坏仪器或元器件,应及时向指导教师报告,听候处理。 6. 在实验室内保持安静和卫生,不得随意走动和喧哗,集中精力完成实验。
7. 实验完成后,关掉电源,及时整理实验台桌面,保持环境整洁。 8. 按规定认真完成实验报告,对实验中出现的现象进行分析,在规定的时间内交上实验报告。
9. 凡实验或实验报告未能按规定完成的学生,不能参加本课程的考试或考查。
2
第一章 实验系统介绍
本实验系统采用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。
表1-1:用户中断程序入口表 中断名称 外中断0 定时器0中断 外中断1 定时器1中断 串行口中断 8051原中断程序入口 用户实验程序响应程序入口 0003H 000BH 0013H 001BH 0023H 4003H 400BH 4013H 401BH 4023H 2.资源分配
本系统采用可编程逻辑器件(CPLD)EPM7128做为地址的译码。
地址的编译码分为两部分。一部分为系统CPLD,提供了系统器件(如监控程序存储器、用户程序存储器、数据存储器、系统显示控制器、系统串行通讯控制器等)的地址译码功能,此外还通过插孔CS0、CS1、CS2、CS3、CS4、CS5提供固定的译码地址给用户使用。译码地址见表1-2。
另一部分为用户CPLD,它完全对用户开放,用户可通过芯片的JTAG接口与PC机相连,对芯片进行编程,得到译码地址,由插孔LCS0、LCS1、LCS2、LCS3、LCS4、LCS5、
3
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。
4
图1-3 51 EL型(80C51)教学实验环境界面
5)通过“文件”菜单新建或打开汇编语言文件,也可通过工具按钮 新建汇编文件。 新建汇编文件的扩展名为.ASM。
6)用“编译”菜单下的汇编命令或工具按钮 对汇编文件进行汇编。如有错误,应对文件重新编辑,直至汇编无错误为止。
7)用“调试”菜单下的“调试”命令或工具按钮 进入“调试”界面,如图1-4。
图1-4 “调试”界面
8)用“调试”菜单下各调试命令,如图1-5对汇编文件进行调试,或用工具按钮
对汇编文件进行调试。工具按钮的功能如图1-6。
图1-5
5
图1-6
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)
7
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。
四、实验内容与步骤
1.实验内容:
图2-1-2 点亮发光二极管程序流程图 图2-1-3 左移循环点亮发光二极管程序流程图
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每隔一个(或二个)左移循环点亮源程序清单,并对每条指令给予注解。 六、思考题
8
1.改变延时常数,重做实验。
2.修改程序,使LED发光方式、方向等改变。 七、参考程序:
1.点亮8个LED程序清单
ORG 4000H LJMP START
ORG 4100H
START: MOV A,#00H
MOV P1, A LCALL DELAY MOV A,#0FFH
MOV P1,A LCALL DELAY JMP START
DELAY: MOV R1,#124 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 RL A LCALL DELAY JMP LOOP
DELAY: MOV R1,#124 DEL1: MOV R2,#200 DEL2: DJNZ R2,DEL2 DJNZ R1,DEL1 RET END
;点亮8个LED
;延时 0.1秒
;熄灭8个LED
;延时 0.1秒
; 延时0.1秒 ; 点亮1个LED
; 左移一位,点亮下一个发光二极管 ;延时 0.1秒
延时0.1秒 9
;实验二 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口状态程序流程图
10
四、实验内容与步骤:
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
11
实验三 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功能表
12
图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 ;用于输入时先置位口内锁存器
13
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 LJMP START
PRG1: MOV P1,#0F3H ACALL DELAY
MOV P1,#0FFH ACALL DELAY LJMP START
PRG2: MOV P1,#0CFH ACALL DELAY MOV
P1,#0FFH ACALL DELAY LJMP START PRG3: MOV P1,#00H
LJMP START
DELAY: MOV R1,#5 DEL1: MOV R2,#200 DEL2: MOV R3,#126 DEL3: DJNZ R3,DEL3 DJNZ R2,DEL2 DJNZ R1,DEL1 RET
END
;向P1口输出#0FFH,LED全灭 ;此时K2 K1=0 0 ;只点亮L5、L6,表示左转弯 ;此时K2 K1=0 1 ;熄灭LED 0.5秒
;延时0.5秒 ;只点亮L7、L8,表示右转弯 ;此时K2 K1=1 0 ;熄灭LED0.5秒
;LED全亮,此时K2 K1=1 1
;延时0.5秒 14
实验四 中断实验
一、实验目的:
1.外部中断技术的基本使用方法。 2.中断处理程序的编程方法。 3.中断嵌套处理程序的编程方法。 二、实验设备:
EL-MUT-III型单片机实验箱、8051CPU模块 三、实验原理:
1.实验原理如图2-4-1。
图2-4-1 外部中断实验电路
2.程序流程图:程序流程图见图2-4-2。
图2-4-2 K1中断控制LED程序流程图
15
四、实验内容与步骤:
1.实验内容:
1)单一外部中断控制:按K1在INT0端产生中断信号,从而使P1的8个LED同时闪烁5次。
2)两级中断控制(中断嵌套):按K1使8个LED闪烁后,按K2使LED右循环点亮。 3)根据图2-4-3,编写程序:开关状态,并通过P1.0 ~ P1.3输出。
的下降沿产生中断,中断服务程序为读入P1.4 ~ P1.7
图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中断优先权? 七、参考程序: ;实验四
16
;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
17
MOV A, #0FFH MOV P1, A RETI LPT: MOVA,#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
18
实验五 定时器/计数器实验(一)
一、实验目的:
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-6 s =0.1s,由此可求得X=15536D=3CB0H。故初始值为TH=3CH,TL=B0H
2)初始化程序
初始化程序包括定时器初始化和中断系统初始化,即对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入定时器中。
19
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次的程序。
20
2)通过“V.ARJ”电位器调整加在IN0通道的电压,用数字万用表进行测量,从0V开始,间隔为0.25V。
3)输入程序。对每个电压值,运行程序。转换后的数字量保存于30H开始的单元。 4)读取30H开始的单元中的数据,并填入表格。 VIN(V) 0.00 VOUT(H) VOUT(D) VIN(V) 2.50 VOUT(H) VOUT(D)
2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.25
图2-8-2 A/D转换实验流程图
五、实验报告
1.根据实验内容写出相应的实验报告。
2.用模拟电压作横坐标,转换后的数字量作纵坐标作D-V图,找出ADC0809的数字量输出值D(换算为十进制叔)与模拟量输入值VIN之间的关系。检查A/D转换的线性度。 六、思考题
1.若转换后的数字量保存于外部RAM 4300H开始单元,程序应如何修改?上机调试。 2.若程序采用中断法,电路应如何连接? 3.画出中断法流程图,修改程序,重做实验。 七、参考程序: ;实验八 A/D 采样程序
ORG 4000H ;开始执行第一条指令的地址 LJMP START ;跳转到主程序
31
ORG 4100H ;主程序的地址
START: MOV R1, #30H ;指向内部RAM 20H单元
MOV R6, #20H ;30H-4FH共32个内部RAM单元,它们用 MOV A, #00H ;来存放被采集电压的数据区
LP: MOV @R1, A ;30H-4FH内部RAM单元清0
INC R1 ;指向下一个单元
DJNZ R6, LP ; 32个单元清0未完成,返回LP处继续清0 MOV R1, #30H ;数据区首址送R1寄存器
MOV R7, #14H ;采集数据的总数14H(20)送R7寄存器 MOV DPTR, #0CFA0H ;IN0通道地址0CFA0H送DPTR寄存器
CAIJI: MOVX @DPTR, A ;启动A/D进行转换 LP1: MOV R2, # 40H ;设置延时时间
WAIT: DJNZ R2, WAIT ; 延时等待A/D转换结束
MOVX A, @ DPTR ;读A/D转换的数值到累加器A
MOV @ R1, A ;转换后的数据送数据区(30H—4FH)保存 INC R1 ;指向下一个单元
CW: DJNZ R7, CAIJI ;20个数据采集完成停止,否则继续采集 SJMP $ ;停止
END ;结束
32
实验九 8位D/A转换器DAC0832接口实验
一、实验目的:
1.了解D/A转换器DAC0832的工作原理。 2.掌握DAC0832与89S51接口电路设计方法。 3.掌握D/A转换程序编程方法。 二、实验设备:
EL-MUT-III型单片机实验箱、8051CPU模块 三、实验原理:
1.实验原理如图2-9-1。
图2-9-1 89S51与DAC0832接口电路
D/A转换是把数字量转换成模拟量的变换,从D/A输出的是模拟电压信号。 产生锯齿波和三角波只需由A存放的数字量的增减来控制。
图2-9-1为双缓冲接口电路,数据要经过输入寄存器和DAC寄存器两级缓冲后才能进入D/A转换电路。输入寄存器和DAC寄存器的地址由A1控制,A1=0控制输入寄存器,A1=1控制DAC寄存器。因此输入寄存器占偶地址端口(PORT),DAC寄存器占较高的奇地址端口(PORT+1)。两个寄存器均对数据独立进行锁存。因而要把一个数据通过0832输出,要经两次锁存。启动D/A转换程序如下:
MOV DPTR,#PORT ;输入寄存器端口地址送DPTR
MOV A,#DATA ;转换初值
MOVX @DPTR,A ;送数据到输入寄存器锁存 INC DPTR ;DAC寄存器端口地址送DPTR
MOVX @DPTR,A ;送数据到DAC寄存器锁存并进行D/A转换 其中第二次I/O写是一个虚拟写过程,其目的只是产生一个WR信号,来启动D/A。
33
2.程序流程图:略 四、实验内容与步骤
1.实验内容
利用DAC0832,编制程序产生锯齿波、三角波程序。 2.实验步骤:
1)DAC0832的片选CS0832接CS0,输出端DAOUT、GND接示波器探头。 2)用短路端子将图2-9-1中DS的1、2短路。 3)编写锯齿波、三角波程序,并运行程序。 4)记录示波器显示的图形。
五、实验报告
根据实验内容写出相应的实验报告,画出锯齿波、三角波程序流程图。 六、思考题
设计产生方波、阶梯波、正弦波的程序。
提示:要产生正弦波,较简单的办法是建立一张正弦数字量表。取值范围为一个周期,采样点越多,精度就越高。 七、参考程序:
;实验九1 锯齿波输出程序 PORT EQU 0CFA0H ORG 4000H LJMP DASAW ORG 4100H
DASAW: MOV A,#00H ;转换初值
W: MOV DPTR,# PORT ;输入寄存器端口地址送DPTR MOVX @DPTR,A ;送数据到输入寄存器 INC DPTR ;DAC寄存器端口地址送DPTR MOVX @DPTR,A ;D/A转换 INC A ;转换值增量 SJMP W END
;实验九2 三角波的输出程序 PORT EQU 0CFA0H ORG 4000H LJMP START ORG 4100H
34
START: CLR A
UP: MOV DPTR,# PORT ;输入寄存器端口地址送DPTR MOVX @DPTR,A ;送数据到输入寄存器 INC DPTR ;DAC寄存器端口地址送DPTR MOVX @DPTR,A ;D/A转换 INC A JNZ UP DOWN: MOV A,#0FFH MOV DPTR,# PORT MOVX @DPTR,A
INC DPTR MOVX @DPTR,A DEC A JNZ DOWN SJMP UP END
;DAC寄存器端口地址送DPTR ;D/A转换 35
图2-5-3 定时器T0中断控制LED闪烁5次程序流程图
七、参考程序:
;实验五 定时器定时0.5S中断实验,LED闪烁,R0:0.5s延时循环次数 ORG 4000H LJMP START ORG 400BH LJMP T0INT
ORG 4100H START: MOV TMOD, #01H MOV TH0, #3CH MOV TL0, #0B0H MOV A, #0FFH MOV P1, A
21
SETB EA SETB ET0 SETB TR0 MOV R0, #05H SJMP $
T0INT: CLR TR0
DJNZ R0, NEXT
CPL A MOV P1, A MOV R0, #05H NEXT: MOV TH0, #3CH MOV TL0, #0B0H SETB TR0 RETI END
;实验五1 LED闪烁5次,R0:0.5s延时循环次数,R1:闪烁次数 ORG 4000H LJMP START ORG 400BH LJMP T0INT
ORG 4100H START: MOV TMOD, #01H MOV TH0, #3CH MOV TL0, #0B0H MOV R1, #10 MOV A, #0FFH MOV P1, A SETB EA SETB ET0 SETB TR0 MOV R0, #05H SJMP $
22
T0INT: CLR TR0
DJNZ R0, NEXT
DJNZ R1, LP MOV A, #0FFH MOV P1, A SJMP LP1 LP: CPL MOV MOV NEXT: MOV MOV SETB LP1: RETI END
A P1, A R0, #05H TH0, #3CH TL0, #0B0H
TR0 23
实验六 定时器/计数器实验(二)
一、实验目的:
1.8031外部计数的使用和编程方法。 2.中断处理程序的编程方法。 二、实验设备:
EL-MUT-III型单片机实验箱、8051CPU模块 三、实验原理:
1.实验原理如图2-6-1。
图2-6-1 计数器实验电路
图中74LS132、按键S和电阻组成一单脉冲发生器,P+端接89S51的T0端,按键每按动一次将在P+端产生一个负脉冲,从而在T0端产生一次中断请求,因此将T0设置为计数器方式即可对外部脉冲进行计数。
2.程序流程图:程序流程图见图2-6-2。 四、实验内容与步骤:
1.实验内容:
定时器工作于方式2,定时器每计5个脉冲使LED1~LED8亮、灭一次(或发光方式变化一次)。
2.实验步骤:
1)按图2-6-1连接线路。
2)根据程序流程图编写程序,编辑程序并进行汇编。 3) 运行程序,观察并记录LED显示情况。 五、实验报告
根据实验内容写出相应的实验报告。
24
图2-6-2 用T0对外部脉冲进行计数控制LED程序流程图
六、思考题
1.用定时器工作方式0或方式2,能否实现本实验功能? 2.如能,修改程序并调试。
3.采用查询方式编写程序,实现外部脉冲进行计数控制LED。 七、参考程序:
;实验六 按右下角的“PULSE”按键5次,LED交替亮灭
ORG 4000H LJMP START ORG 400BH LJMP T0INT ORG 4100H
START: MOV TMOD, #06H MOV TH0, #0FBH MOV TL0, #0FBH MOV A, #00H
SETB EA SETB ET0 SETB TR0
25
正在阅读:
单片机实验答案11-07
双曲线冷却塔施工组织设计方法-8wr-典尚设计-三维动画效果图01-20
蒙牛之道09-25
火锅店转让协议06-27
《计算机组装与维修试题》+答案10-14
党支部“立项活动”项目申报表05-01
2019年秋高中数学 第三章 不等式 3.1 不等关系与不等式学案 新人教A版必修508-27
交响乐鉴赏之感想06-24
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 单片机
- 答案
- 实验
- 2015年武汉大学医学博硕士慕课题目及答案 最新版
- 工作中37个问题解决方案
- 16秋浙大《亲属与继承法》在线作业
- 江西省赣州市南康区第三中学、兴国县第一中学高三上学期期中联考数学(文)试题
- 2008级信管期末考试试卷a
- 第三章消费者市场
- 为热力学建筑确定合适的模型 - 图文
- 数字频谱分析仪设计论文
- 艮岳
- 2010年证券从业资格考试终极复习讲义1125
- 人机交互知识点整理(重点强化版本)
- 新疆史读后感
- 电缆沟施工方案
- 2013英语高频缩略语大全
- 桩基钢筋笼制作安装交底(3级) - 图文
- 技术开发、技术转让合同登记、退税流程及注意事项
- 生化核苷酸代谢和生物转化
- 最新大象版四年级科学上册教学计划整理版
- 华为数通考试试卷(路由协议基础&动态路由协议和RIP协议原理)20121022(含答案)
- 2011–2012学年2学期《职场英语》课程期末考试试卷A