




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、由于单片机具有高可靠性、超小型、低价格、容易产品化等特点,在 仪器仪表智能化、实时工业控制、实时数据采集、智能终端、通信设备、 导航系统、家用电器等控制应用领域,具有十分广泛的用途。目前在国内 单片机应用中, MCS-51 系列单片机仍然是一种主流单片机。为配合单 片机应用技术 课程的教学, 使学生尽快了解、 掌握 89C51 单片机的使用, 特编写了这本上机指导书(基础篇) 。 单片机是一门实践性很强的课程,提高教学质量的一个重要环节 是上机实习和训练,无论是学习汇编语言程序设计,还是学习接口电路和 外设与计算机的连接,或者软硬兼施地研制单片机应用系统,不通过加强 动手是不能获得预期效果的。
2、 本实验指导书提供了 9 个实验的指导性材料, 实验还有一些思考题,可以根据课时的安排和教学要求进行取舍。为了达 到某些实验的目的,书中提供的参考程序与实际应用中的程序会有些差 别,所以不一定是最优的。 由于时间紧迫,加上编者学识有限,如有不妥之处,欢迎读者批评指 正。 编者 实验须知 1. 实验前必须阅读教科书的有关部分和本实验指导书,了解实验目 的、内容、步骤,做好实验前的准备工作,编写好实验中要求自编或修改 的程序;完成实验前要求完成的准备工作后方可以上机实验,否则不得上 机操作。 2. 各种电源的电压和极性不能接错, 严禁带电接线和接插元器件。通 电前须经过指导教师检查认可后方能通电。
3、 3. 不准随意拨弄各种与实验无关的旋钮和开关, 凡与本次实验无关的 任何设备都禁止动用和摸弄,注意安全。 4. 严禁用手触摸实验系统印制电路板和元器件的引脚, 防止静电击穿 芯片。 5. 实验中若损坏仪器或元器件,应及时向指导教师报告,听候处理。 6. 在实验室内保持安静和卫生,不得随意走动和喧哗,集中精力完成 实验。 7. 实验完成后,关掉电源,及时整理实验台桌面,保持环境整洁。 8. 按规定认真完成实验报告, 对实验中出现的现象进行分析,在规定 的时间内交上实验报告。 9. 凡实验或实验报告未能按规定完成的学生, 不能参加本课程的考试 或考查。 第一章 实验系统介绍 本实验系统采用 EL
4、-MUT-III 型单片机教学实验系统。 1. 系统概述 1)微处理器: 89S51,P1口、 P3 口对用户开放,供用户使用。 2)时钟频率: 6.0MHz 3)存储器:程序存储器与数据存储器统一编址,最多可达64KB ,板载 ROM(监控 程序 27C256)12KB ;RAM1(程序存储器 6264)8KB 供用户下载实验程序, 可扩展达 32KB ; RAM2 (数据存储器 6264)8KB 供用户程序使用,可扩展达 32KB 。 0000H2FFFH 为监控程序存储器区, 用户不可用。 4000H5FFFH 为用户实验程序 存储区,供用户下载实验程序。数据存储器的范围为: 6000H
5、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 做为地址的译码。 地址的编译码分为两部分。一
6、部分为系统 CPLD ,提供了系统器件(如监控程序存储 器、用户程序存储器、数据存储器、系统显示控制器、系统串行通讯控制器等)的地址译码 功能, 此外还通过插孔 CS0、CS1、CS2、CS3、CS4、CS5 提供固定的译码地址给用户使用。 译码地址见表 1-2。 另一部分为用户 CPLD ,它完全对用户开放, 用户可通过芯片的 JTAG 接口与 PC机相 连,对芯片进行编程,得到译码地址,由插孔 LCS0、LCS1、LCS2、LCS3、 LCS4 、LCS5 、 LCS6、 LCS7 输出,供使用。 表 12: CPLD 地址分配表 地址范围 输出孔 / 映射器件 性质(系统 /用户) 00
7、00H-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 LCS0LCS7 用户 注:系统地址中带“ * ”的表示用
8、户不可用,也不可改,其他系统地址用户可用,但不可改。 3. 系统使用方法 RS232 接口与 PC 机 1)用通信电缆将 EL-MUT-III 型单片机教学实验系统侧面的 的 COM 口相连接。 2)启动 EL-MUT-III 型单片机教学实验系统的电源开关, EL-MUT-III 型单片机 教学实验系统面板上的 LED 显示“ 199502 ”,几秒后显示 P- 。 3)双击桌面 MCS51 快捷图标如图 1-1 ,启动 51 实验系统,启动后的界面如图 1-2 。 图 1-1 图 1-2 4)如需改变串口和波特率,在相应列表框中修改。点击“确定”按钮后,立即实验系 统面板上的“ PRESE
9、T”键,面板上的 LED 显示“C-”,同时 PC机屏幕显示“51 EL 型( 80C51) 教学实验环境”界面,如图 1-3。 图 1-3 51 EL 型( 80C51)教学实验环境界面 5)通过“文件” 菜单新建或打开汇编语言文件,也可通过工具按钮新建汇编文件。 新建汇编文件的扩展名为 .ASM 。 6)用“编译”菜单下的汇编命令或工具按钮对汇编文件进行汇编。如有错误,应 对文件重新编辑,直至汇编无错误为止。 7)用“调试”菜单下的“调试”命令或工具按钮进入“调试”界面,如图 1-4 。 图 1-4 “调试”界面 8)用“调试”菜单下各调试命令,如图 1-5 对汇编文件进行调试,或用工具按
10、钮 对汇编文件进行调试。工具按钮的功能如图1-6 。 图 1-5 9讣H 3 I U HII; 卜血电B料滋 irjamwsusy hem戦工曹 “g辱茶匱w 述必肖銅 霍囚跚 第二章 上机指导 实验一 P1 口实验(一) 、实验目的: 1学习 P1 口作为输出口的使用方法。 2延时子程序的编写和使用。 、实验设备: EL-MUT-III 型单片机实验箱、 8051CPU 模块。 、实验原理: 实验原理如图 2-1-1。 图 2-1-1 P1 口输出实验电路 1P1 口的使用方法 P1 口为准双向口,每一位都能独立地定义为输入位或输出位。作为输入位时,必须向 锁存器相应位写入“ 1”。89S5
11、1 在复位时所有口锁存器均置为“ 1”,如果曾对口锁存器写过 “0”,此时要使它作为一个输入口,则应再次写入一个“1”。 2延时程序的实现 常用两种方法实现延时程序, 一是用定时器中断来实现, 二是用指令循环来实现。 在系 统时间允许的情况下可以采用后一种方法。 本实验系统晶振为 6.0MHZ ,则一个机器周期为 126 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 需两个机
12、器周期,所以每执行一条指令需要4us。 延时程序中 X 值应满足下式: 6 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 个 发
13、光二极管同时熄灭 延时 点亮。 2)根据程序流程图 1-3,编写程序使 P1 口 8 个发光二极管每隔一个左移循环点亮。 2实验步骤: 1)将 P1.0P1.7 分别连接发光二极管 L1L8。 2)按流程图 2-1-2 编写程序,对程序进行编辑、汇编直至无语法错误。 3)调试程序: (1)单步调试,观察并记录相应寄存器内容及发光二极管L1L8 的状态。 (2)全速运行程序,观察并记录发光二极管L1L8 的状态。 4)重复 2、3 步骤,进行实验内容 2的实验。 五、实验报告 1写出使 P1 口 8 个发光二极管同时熄灭 延时 点亮源程序清单,并对每条指令 给予注解。 2写出使 P1 口 8 个
14、 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秒 D
15、EL1: 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 实
16、验二 P1 口实验(二) 、实验目的: 1P1 口作为输入口的使用方法。 2掌握数据输入、输出程序的设计方法。 、实验设备: EL-MUT-III 型单片机实验箱、 8051CPU 模块 三、实验原理: 1P1 口作为输入口实验原理见图 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-K
17、8 状态,并在 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,#0FF
18、H LP: MOV A,P1 MOV DPTR , #0CFA0H MOVX DPTR ,A JMP LP END ;设置 P1 口为输入状态 ; P1 口的状态读入累加器 A ; 74LS273 地址(输出口地址)送 DPTR ; A 的值送 LED 显示 ;继续循环监测端口 P1 的状态 11 实验三 P1 口实验(三) 、实验目的: 1掌握 P1 口既做输入又做输出的使用方法。 2掌握分支程序的设计方法。 、实验设备: EL-MUT-III 型单片机实验箱、 8051CPU 模块 、实验原理: 1P1 口同时作输入、输出口电路原理见图2-3-1。 图 2-3-1 P1 口同时作输入、输出
19、口实验电路 2程序流程图:程序流程图见图 2-3-2 。 四、实验内容与步骤: 1实验内容: 图 2-3-1 为模拟汽车转向灯控制电路图, K1 为左转弯开关, L5 、L6 做为左转弯灯; K2 为右转弯开关, L7、L8 做为右转弯灯。编写程序实现表 2-3-1 的功能。 表 2-3-1:开关 K1、 K2 功能表 12 2实验步骤: 1)根据图 2-3-1 连线。 2)输入相应程序,对程序进行编辑、汇编直至无语法错误。 3)调试程序,拨动开关 K1-K2 ,观察并记录程序运行结果。 五、实验报告 仿照实验一,写出相应的实验报告。 六、思考题 当 K1K2=11 时,左转弯灯和右转弯灯同时
20、闪烁,程序应如何修改?编程并调试。 七、参考程序: ;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
21、 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 ST
22、ART 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 14 实验四 中断实验 、实验目的: 1外部中断技术的基本使用方法。 2中断处理程序的编程方法。 3中断嵌套处理程序的编程方法。 、实验设备: EL-MUT-III 型单片机实验箱、 8051CPU 模块 、实验原理: 1实验原理如图 2-4
23、-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.4 P1.7 开关状态,并通过 P1.0 P1.3 输出。 图 2-4-3 2实验步骤: 1)按图 2-4-1 连接线
24、路。 2)根据程序流程图编写程序,编辑程序并进行汇编。 3)用“单步连续运行程序”命令运行程序,观察程序运行等待中断过程,在等待中断 过程时,按 K1(K2) 键,观察并记录程序运行过程和 LED 显示情况。 4)对实验内容 2 编程,重复 2-3 步骤。观察并记录程序运行结果。 5)对实验内容 3 编程,重复 2-3 步骤。观察并记录程序运行结果。 6)在中端服务程序中设置断点,重复2-3 步骤。观察并记录程序运行结果。 五、实验报告 1根据实验 1 内容写出相应的实验报告。 2画出实验内容 2 的程序框图 3对程序语句加以注解。 六、思考题 1中断时,需保护现场 (如 PSW,ACC 等寄
25、存器的内容) ,中断服务程序应如何修改? 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: MO
26、V 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: MOV A , #01H SHIF:LCALL FLASH RR A SJMP SHIFT FL
27、ASH: 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)定时常数的确定 采用定时器中断方
28、法可实现时间延时,延时时间由主频和定时器方式来确定。 本实验中时钟频率为 6.0 MHZ ,其延时时间最大值约为 0.13s(方式一下) 。若要产生 0.5 秒延时时间,需采用定时器定时和软件计数的方法来实现。为此我们可在主程序中设置 软件循环次数初值为 05H(用 R0)的软件计数器和定时时间为 0.1s 的定时器。这样定时器 每隔 0.1s产生一次中断, CPU 响应中断后将 R0中计数值减一,即可实现 0.5s延时。 定时器时间常数的确定方法如下: 机器周期 =12晶振频率 =12/(6 106)=2 (us) =210-6( s) 定时器工作于方式一,设计数初值为X,则有( 216-X
29、 )210-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实验内容: 定时器工作于
30、方式 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-5-3 定时器 T0 中断控制 LED 闪烁 5 次程序流程图 七、参考程序: ;实验五 定时器定时 0.5S 中断实验, LED 闪烁,
31、R0:0.5s 延时循环次数 ORG 4000H LJMP START ORG 400BH LJMP T0INT ORG 4100H MOV TMOD, #01H MOV TH0, #3CH MOV TL0, #0B0H MOV A, #0FFH MOV P1, A START: 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
32、 ;实验五 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 L
33、P1 LP: CPL A MOV P1, A MOV R0, #05H NEXT: MOV TH0, #3CH MOV TL0, #0B0H SETB TR0 LP1: RETI END 23 实验六 定时器 /计数器实验(二) 、实验目的: 18031 外部计数的使用和编程方法。 2中断处理程序的编程方法。 、实验设备: EL-MUT-III 型单片机实验箱、 8051CPU 模块 、实验原理: 1实验原理如图 2-6-1。 图 2-6-1 计数器实验电路 图中 74LS132、按键 S和电阻组成一单脉冲发生器, P+端接 89S51的 T0 端,按键每按 动一次将在 P+端产生一个负脉冲,
34、从而在 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,能否实
35、现本实验功能? 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 T0INT: SJMP $ MOV P1, A CPL A RETI END 26 实验七 8255A PB 口控制 PA
36、 口实验 、实验目的: 1掌握 8255A 芯片的结构及编程方法。 2掌握 8255A 并行口读取开关数据的方法。 、实验设备: EL-MUT-III 型单片机实验箱、 8051CPU 模块 、实验原理: 1实验原理如图 2-7-1 。 图 2-7-1 8255A 接口实验电路 2程序流程图:程序流程图见图2-7-2 。 27 图 2-7-2 8255A 接口实验程序流程图 四、实验内容步骤: 1实验内容: 8255A B 口作为开关量输入口, A 口作为显示输出口。编写程序读取按纽开关状态,在 发光二极管上显示出来。 2实验步骤: 1)按图 2-7-1 连接线路。 2)根据程序流程图编写程序
37、,编辑程序并进行汇编。 3)运行程序,拨动开关 K1-K8 ,观察并记录 LED 显示情况。 五、实验报告 根据实验内容写出相应的实验报告。 六、参考程序: ;实验七 8255A 接口实验, A 口显示输出口, B 口作为开关量输入口 ORG 4000H LJMP START ORG 4100H PA EQU 0CFA0H PB EQU 0CFA1H PCTL EQU 0CFA3H START: MOVDPTR, #PCTL ;置 8255A 控制字 ,A、B、C 口均工作方式 0, ;A、 C 口为输出 ,B 口为输入 MOV A, #82H 28 MOVX DPTR, A LOOP: MO
38、V DPTR, #PB ;从 B 口读入开关状态值 MOVX A, DPTR MOV DPTR, # PA ;从 A 口将状态值输出显示 MOVX DPTR, A MOV R7, #10H ;延时 DEL0: MOV R6, #0FFH DEL1: DJNZ R6, DEL1 DJNZ R7, DEL0 JMP LOOP END 29 实验八 8 位 A/D 转换器 ADC0809 接口实验 、实验目的: 1了解 A/D 转换器 ADC0809 的工作原理。 2掌握 ADC0809 与 89S51 接口电路设计方法。 3掌握 A/D 转换程序编程方法。 、实验设备: EL-MUT-III 型单
39、片机实验箱、 8051CPU 模块、数字万用表 、实验原理: 1实验原理如图 2-8-1。 图 2-8-1 89S51 与 ADC0809 接口电路 2程序流程图: 根据 A/D 与单片机连接方式和控制系统本身要求的不同,实现 A/D 转 换的软件设计方也不同。常用的控制方式有程序查询、定时采样和中断方式。 定时采样方式程序流程图见图 2-8-2。 四、实验内容与步骤 1实验内容 1)从 ADIN0 输入模拟信号 VIN (05V),间隔为 0.25V (即 0V、0.25V0. 5V 、 0.75V 5V )用万用表电压档测量该模拟信号的大小。 2)启动 A/D 转换。用转换后数字量与万用表
40、测量结果进行比较。 3)用模拟电压作横坐标,转换后的数字量作纵坐标作D-V 图,找出 ADC0809 的数字 量输出值 D(换算为十进制叔) 与模拟量输入值 VIN 之间的关系。 检查 A/D 转换的线性度。 2实验步骤: 1)按图 2-8-1 连线。 ADIN0 接 AN0 ,参考程序采用查询法,因此 ADC0809 的 EOC 引 脚不连接。 30 2)通过 “V.ARJ ”电位器调整加在 IN0 通道的电压,用数字万用表进行测量, 从 0V 开 始,间隔为 0.25V 。 3)输入程序。对每个电压值,运行程序。转换后的数字量保存于30H 开始的单元。 4)读取 30H 开始的单元中的数据
41、,并填入表格。 VIN (V ) 0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.25 VOUT(H) VOUT(D) VIN (V ) 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00 VOUT(H) VOUT(D) 五、实验报告 1根据实验内容写出相应的实验报告。 2用模拟电压作横坐标,转换后的数字量作纵坐标作D-V 图,找出 ADC0809 的数字 量输出值 D(换算为十进制叔) 与模拟量输入值 VIN 之间的关系。 检查 A/D 转换的线性度。 六、思考题 1若转换后的数字量保存于
42、外部RAM 4300H 开始单元,程序应如何修改 ?上机调试。 2若程序采用中断法,电路应如何连接? 3画出中断法流程图,修改程序,重做实验。 七、参考程序: ;实验八 A/D 采样程序 ORG 4000H LJMP START ;开始执行第一条指令的地址 ;跳转到主程序 31 START: MOV R1, #30H MOV R6, #20H MOV A, #00H LP: MOV R1, A INC R1 DJNZ R6, LP MOV R1, #30H MOV R7, #14H MOV DPTR, #0CFA0H CAIJI: MOVX DPTR, A LP1: MOV R2, # 40H
43、 WAIT: DJNZ R2, WAIT MOVX A, DPTR MOV R1, A INC R1 CW: DJNZ R7, CAIJI SJMP $ END ORG 4100H ;主程序的地址 ;指向内部 RAM 20H 单元 ;30H-4FH 共 32 个内部 RAM 单元 ,它们用 ;来存放被采集电压的数据区 ;30H-4FH 内部 RAM 单元清 0 ;指向下一个单元 ; 32 个单元清 0 未完成 , 返回 LP 处继续清 0 ;数据区首址送 R1 寄存器 ;采集数据的总数 14H( 20)送 R7 寄存器 ;IN0 通道地址 0CFA0H 送 DPTR 寄存器 ; 启动 A/D 进行转换 ;设置延时时间 ; 延时等待 A/D 转换结束 ; 读 A/D 转换的数值到累加器 A ;转换后的数据送数据区( 30H 4FH)保存 ;指向下一个单元 ;20 个数据采集完成停止 ,否则继续采集 ;停止 ;结束 32 实验九 8 位 D/A 转换器 DAC0832 接口实验 、实验目的:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 动脉留置针护理规范与流程
- 转本录取就业协议书
- 项目开发责任协议书
- 转让牛蛙场地协议书
- 顶名购房资格协议书
- 造价咨询挂靠协议书
- 车位使用租赁协议书
- 护理人才竞聘演讲
- 驾照内部保密协议书
- 钢板废料出售协议书
- L4-《采购与供应策略》-讲义课件
- 固定资产和无形资产培训课程课件
- 合欢树史铁生课件
- 机房工程系统调试检验批质量验收记录表
- 光伏项目试验报告
- DB37-T 3587-2019养老机构护理型床位认定
- 汽车电子可靠性测试项目-(全)-16750-1-to-5
- 丁苯橡胶乳液聚合的生产工艺
- JOINT VENTURE AGREEMENT合资企业协议(双语版)
- CJ343-2010 污水排入城镇下水道水质标准
- 2022秋期版2208国开电大专科《政治学原理》网上形考(任务1至4)试题及答案
评论
0/150
提交评论