12V5AH万用表测试电池容量13.5V是否充满

万用表测电源接口 5V 12V 3.3V等对地电阻问题_百度知道
万用表测电源接口 5V 12V 3.3V等对地电阻问题
黑笔改放到哪里? 我就是想知道怎样测量,是不是红笔怎样家侧是否对地短路呢? 操作步骤是怎样的呢
我有更好的答案
ATX 架 构 电 源引脚 1 2 3 4 5 6 7 8 9 10颜色 橙 橙 黑 红 黑 红 黑 灰 紫 黄电压 3.3V 3.3V GND 5V GND 5V GND 5V 5V 12V引脚 11 12 13 14 15 16 17 18 19 20颜色 橙 蓝 黑 绿 黑 黑 黑 白 红 红电压 3.3V -12V GND 5V GND GND GND -5V 5V 5V
这个不太好说,每个电源的阻值不尽相同,每种电压值的阻值也不一样,至于怎么测量,一般黑笔插到GND也就是黑色线的也里,红笔去插想测试的孔,只有在测试黑色线时才有蜂鸣才是正常,也就是说这时的阻值是零(当然有的表有误差会大于零但一般在7以下都是正常,有时电源的黑色线因为做工等其它原因即使表误差小也会出现阻值大于零的状况,但一般阻值7以下都正常。)其它颜色的线阻值应该在180到700之间,当然这个数值也不是绝对的,有的电源阻值不在这个范围之内也正常使用,便这种情况不是很多。
黑线就是地,黑笔查黑线,测电压,万用表打电压档20v,红笔接其它线,电压值按航宝给的电压对应,相差不大没关系。测对地阻值,万用表打电阻档,红笔测各个线。具体量程看实测,一般应该比较高。测短路万用表开蜂鸣档,红笔测各个线,长蜂鸣一般即为短路。注意的是,测电压需要上电源带电测量,绿黑短接强制启动,非专业人员小心操作。
为您推荐:
其他类似问题
万用表的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。12v 5ah电瓶充电的充电电压和电流都用多大?
答案长度必须超过10个字,请勿发布无效或违法言论。
(共有2个回答)
请表达清楚。。。
充电电压大约13V—16V之间
电流选择有两种:
快速(特殊情况)充电,以2.5A电流充2—3小时
匀速(例行保养)充电,以0.5A电流充10—12小时
1 车上有充电器,不需要另外充电(一切正常的情况下)。2 其它问题, 到我空间里。
你好:——★1、电瓶应该是 12 V 、7 Ah 的吧? ...... 7 Ah 的电瓶,使用 3 A 电流【恒流充电】,充电时间为:(7 Ah ÷ 3 A)
检测电瓶漏电要用“放电叉”,专门检查电瓶性能的工具。如果放电叉指针能稳定在绿颜色区,表明无漏电。检查汽车用电器和线路是否漏电,需要用万用表毫安档。具体操作是,关
充电时主要是调整电压表 电流表是用来观察的 车用电池单个电压正常值都是12伏 单个充电时电压调到12伏 如果是多个一起充 要根据连接情况来定 如果是串联电压表数
48V的电池肯定不能用60V的充电器充啦,会过充电,电压变高了电流自然就高,负载当然也会受不了而发热,过充,过热而坏,你把电池一个个拆下来分开用12V充满再装回
一般单块蓄电池的电压时12V,(过去汽车电瓶有3V和6V的,现在基本看不到了)电流大小要看电池的蓄电量。蓄电量越大的电流越大。例如100AH的电池用于起动时输出
电瓶充电机充电时,供电电压变大充电电流变小不正常,电瓶电压变大充电电流变小正常。
理论上充电电流越小对蓄电池寿命越有利,但充电时间会很长,因此时间充足时用小电流充,时间紧时用大电流充,建议充电电压为12V,充电电流10A,充电时间48小时即可
电压不变12,电流十分之一18个电流。
电机是什么电机?是发电机还是使用电机。达到输入额定电流电压,电机端就是标称值,如果过不是就需要万用表直接测了
大家都关注
(C)2017 列表网&琼ICP备号-12&增值电信业务经营许可证B2-&当前位置: >>
微机实验指导(二版)
微机原理\单片机应用 实验指导(第二版)胡景春 刘洪南昌航院计算机系2004.21 目录第一章 DVCC 实验系统 …………………………………………………………… .1 1.1 DVCC 实验系统简介 …………………………………………………………… .1 1.1.1 系统特点 ………………………………………………………………… 1 1.1.2 系统联机软件使用介绍……………………………………………………….1 1. 软件的安装和进入 …………………………………………………………… .1 2. 实验系统窗口简介 …………………………………………………………… .1 3. 完成一个实验的步骤 ……………………………………………………… .8 1.1.3 系统的硬件资源 …………………………………………………………… .8 1.2 DVCC 实验系统安装与启动……………………………………………………… 11 1.2.1 系统硬件安装 ………………………………………………………………11 1.2.2 系统启动与连接 ……………………………………………………………1 2 1.3 DVCC 实验系统模拟示波器的使用 ……………………………………………1 2 第二章 MCS-51 系列单片机实验……………………………………………………14 2.1 软件实验…………………………………………………………………………… 14 2.1.1 清零程序…………………………………………………………………… .14 2.1.2 拆字程序 ………………………………………………………………… .15 2.1.3 拼字程序…………………………………………………………………… .16 2.1.4 数据传送程序 ……………………………………………………………… 16 2.1.5 数据排序…………………………………………………………………… .18 2.1.6 查找相同数个数 ……………………………………………………………1 9 2.1.7 无符号双字节快速乘法………………………………………………………21 2.1.8 多分支程序 …………………………………………………………………2 3 2.1.9 脉冲计数…………………………………………………………………… .24 2.1.10 电脑时钟…………………………………………………………………… 26 2.2 硬件实验 ………………………………………………………………………… 31 2.2.1 P3.3 输入,P1 口输出实验…………………………………………………3 1 2.2.2 工业顺序控制实验…………………………………………………………3 3 2.2.3 并行 I/O 口 8255 扩展实验…………………………………………… 35 2.2.4 简单 I/ O 口输入,输出扩展实验……………………………………………38 2.2.5 A/D 转换 0809 应用实验…………………………………………………39 2.2.6 D/A 转换 0832 应用实验…………………………………………………40 2.2.7 串并转换实验 …………………………………………………………… 42 2.2.8 定时 /计数器 8253A 应用………………………………………………..4 4 2.2.9 8279 键盘、 显示实验………………………………………………………..45 2.2.10 微型打印机打印字符、 曲线、 汉字实验……………………………………48 2.2.11 步进电机控制实验…………………………………………………………51 2.2.12 直流电机调速实验………………………………………………………..5 6 2.2.13 电子音响实验 ……………………………………………………… ..572 继电器控制实验 ………………………………………………………… 58 数据存贮器和程序存贮器扩展实验………………………………………59 8031 串行口应用 (与个人计算机机通信) 实验………………………..61 综合设计实验………………………………………………….64 2.2.17.1.1 8251 可编程串行口双机通信实验……………………………64 2.2.17.1.2 温度测量实验 ……………………………………………… .65 2.2.17.1.3 压力测量实验………………………………………………… .66 第三章 8086 微机实验 ………………………………………………………… ..68 3 . 1 软件 实验 … …… …… … …… …… …… ……… … …… …… …… ……… … . 6 8 3.1.1 两个多位十进制相加 ………………………………………………… .68 3.1.2 数据排序 ……………………………………………………………… .69 3.2 硬件实验 ……………………………………………………………………… ..71 3.2.1 A/D 转换 0809 应用实验………………………………………………7 1 3.2.2 D/A/ 转换 0832 应用实验 ( 一 ) …………………………………………7 3 3.2.3 D/A/ 转换 0832 应用实验 ( 二 ) …………………………………………7 5 3.2.4 并行口 8255A 应用 …………………………………………………… .76 3.2.5 定时 /计数器 8253A 应用………………………………………………7 8 3.2.6 中断控制器 8259A 应用 ………………………………………………..79 3.2.7 8251 应用―双机通信(接收) …………………………………………82 3.2.8 8251 应用―双机通信(发送) ……………………………………..8 6 3.2.9 步进电机控制实验 ……………………………………………………… .89 3.2.10 直流电机调速实验 ……………………………………………………… .90 3.2.11 继电器控制实验 ……………………………………………………… .91 3.2.12 存贮器读写实验 ……………………………………………………… .92 3.2.13 8237 可编程直接内存存取控制实验……………………………………..93 3.2.14 8259 串级中断控制实验…………………………………………………..96 3.2.15 综合设计实验 ……………… . ………………………………………… 99 3.2.15.1 二台微机直接连接(三线连接)串行通信…………………… ..99 3.2.15.2 并行口输入/输出扩展实验…………………………………… 99 3.2.15.3 简单开环控制实验 ………………………………………… ..99 2.2.14 2.2.15 2.2.16 2.2.17 附一: 附二: 附三: 实验设备及器件清单??????????????????????1 00 微机原理习题?????????????????????????100 模拟试卷???????????????????????? 1033 第一章1.1 DVCC 实验系统简介DVCC 实验系统简介1.1.1 系统特点 1. 仿真实验全新组合工作方式,模拟实际工作环境。 2. 全部实验内容均为设计性实验,有利于实现创新教育。 系统中的实验部件均为模块化形式, 每一个模块给学生的可以认为仅仅是一个独立的 接口电路,让学生自己通过查资料,学习分析,然后进行设计实验。 3. 提供二种工作方式 第一种独立运行工作方式.无须任何外部设备,利用实验机上键盘、数码管、管理监 控和微控制器, 自成系统, 独立运行完成各种软硬件实验, 以满足上位机配置不足的情况。 第二种联上位机工作方式。 通过 RS232 通信接口和上位机联机,在 Win9X 软件平 台上利用上位机丰富的软硬件资源,实现用户实验程序的动态调试。 4. 具有电路保护功能,使用安全、可靠。 5. 具有模拟示波器测量功能。 6. 系统支持 Win9X 软件平台。使电路原理介绍、实验项目选择、实验目的、内容、 实验线路图的查阅、器件查询、联机帮助等均可在线得到。程序设计、编译、调试等均在 同一界面下进行,勿须切换。 7. 系统提供机电一体化控制实验接口,可做机电一体化实验。 系统中的实验部件设计有步进电机、直流电机、继电器、电子音响等控制驱动电路, 可做单片机控制实验。还可以配上专用的温度压力实验盒做温度压力测量实验。 8. 软硬件实验丰富。 9. 一机多用,既可做 MCS 一 51,MCS 一 96 单片机实验开发,又可做十六位微 机 8086 原理和接口实验。 10. 系统中实验项目的设置按照教育部大纲要求,并有适当提高。实验项目 ,可参看 第二,三章目录。 1.1.2 系统联机软件使用介绍 1. 软件的安装和进入 安装:在 WINDOWS 下运行 DVCC 光盘上 SETUP 程序,即可自动安装。 进入:安装完毕后,在 WIN95/98 桌面下双击 DVCC 图标或在’开始’-‘程序’菜单下 点击 DVCC 图标,进入 DVCC 窗口。如图 1-2 为 51、196 实验平台窗口,图 1-3 为 8086 实 验平台窗口。 2. 实验系统窗口简介: 本书以 51、196 单片机实验窗口为例介绍,8086 微机原理实验窗口类似。 由图 1-2 可见,窗口由上而下分为:标题栏、菜单栏、工具栏、调试区、状态栏。4 图 1-1图 1-2 (1) 标题栏: 包括窗口名称和对窗口操作的按钮:最大化、最小化、关闭、ROLL UP、ON TOP。 其中:主窗口的右上角的∧(Roll Up)∨(Roll Down)可将窗口缩成一个窗口条/复 原正常,⊙(ON TOP)为铆钉可将窗口始终铆在桌面最前面。 (2)菜单栏: ? 文件菜单5 新建 打开 关闭 保存 盘。创建一个新的文件。 打开一个已存在的文件文件。 关闭一个打开的文件。 将一个已打开的文件用原文件名存另存为 以指定的文件名存盘一个已打开的文件。 打印 打印一个文件。 打印设置 选择打印机及其配置。 历史文件 在历史文件中可保留 4 个最近打开 过的文件用于再次打开。 退出 退出 DVCC 实验系统 ? 编辑菜单 (图 1-4) 撤消 使用该命令恢复文档中最后一次所做的修改。 重做 使用该命令重复文档中最后一次所做的修改。 剪切 删除选定的文字并放置在剪贴板上。 只有在选 定文字后,这一命令才是有效的。 复制 将选定的文字复制到剪贴板上, 只有在选定文 字后,这一命令才是有效的。 粘贴 使用该命令可以在插入点位置插入剪贴板内 容,或者用剪贴板上的内容替换选定内容(如果已经选定)。 全选 选择当前文件的所有内容。图 1-3图 1-4图 1-5 ? 选项菜单(图 1-5) 编辑工具栏 显示或关闭编辑工具栏 调试工具栏 显示或关闭调试工具栏 实验指南工具栏 显示或关闭实验指南工具栏 显示工具栏文字 显示不显示工具栏文字 状态栏 显示或关闭状态栏 编译选项 对编译软件进行参数设置 连接选项 对连接软件进行参数设置6图 1-6 系统设置 系统设置 更改仿真模式 切换仿真模式(参见系统设置) ? 动态调试菜单(图 1-6) 联接 DVCC 系统 同下位实验系统握手 设当前行为断点 设当前行为断点(针对反汇编窗口/编辑窗口) 设当前地址为 PC 设光标所在的行地址为 PC 执行到光标处 执行到光标所在行 清除断点 清除断点地址 单步执行(TaceInto) 单步执行一条程序行,遇子程序调用则步入子程序。 连续单步(In) 连续执行单步操作(TaceIn) 单步执行(TaceOut) 单步执行一条程序行,遇子程序调用则跳过子程序。 连续单步(Out) 连续执行单步操作(TaceOut) 结束连续单步 结束连续单步 连续运行 连续运行程序 装载目标文件 传送目标文件(HEX/BIN/ABS51)到下位实验系统中 移动数据块 进行移动数据块操作 填充数据 进行填充数据块操作 比较数据 进行比较数据块操作 查找数据 进行查找数据块操作 数据存盘 进行数据块存盘操作 ? 编译菜单(图 1-7) 图 1-7 编译文件 编译当前文件 编译连接文件 编译连接当前文件,生成目标文件 编译连接传送 编译连接当前文件,并传送目标文件 到下位实验系统中,并且开始调试 ? 窗口菜单(图 1-8) 显示反汇编窗口 显示数据窗口 显示寄存器窗口 刷新所有窗口 对所有的反汇编/寄存器/数据窗口进 行刷新 图 1-8 重新排列 重新排列所有窗口 ? 帮助菜单(图 1-9) 帮助主题 在线帮助类似系统窗口使用说明书。 使用帮助 介绍“帮助”的使用方法。 (3)工具栏: ? 编辑工具栏:(图 1-10) 新建一个文件 打开一个文件7图 1-9 保存当前文件 剪切选定的文字到剪贴板(在选定文字后,按钮才有效) 复制选定的文字到剪贴板 ( 在选定文字 后,按钮才有效) 粘贴剪贴板文字到插入点,或者替换选定 内容(如果已经选定) 图 1-10 ? 调试工具栏:(图 1-11) 联接系统:建立微机和实验台的连接 编译当前文件 ( 当前激活窗口为编辑 窗口) 图 1-11 编译连接传送当前文件(当前激活窗口为编辑窗口) 单步运行(子程序追踪)(已经成功联接系统) 单步运行(子程序不追踪)(已经成功联接系统) 连续运行程序到当前行(已经成功联接系统) 连续运行程序(已经成功联接系统) 设当前行为断点(已经成功联接系统) ? 实验指南工具栏:(图 1-12) 用下拉选择框选择实验项目, 点击功能 键可以显示或装入所选实验的“目的” 、 “内 容” 、 “原理” 、 “位置图” 、 “源程序” 。 图 1-12 (4)调试区: 进行实验程序的编辑、汇编、运行与 调试。在“联接系统”成功之后,在该区 会出现以下窗口: ? 编辑窗口:(图 1-13) 进行源程序的编辑、修改,具有: 文字输入 在文本中移动 选择文字 图 1-13 删除、复制和移动文本 查找与替换 光标的快速定位与书签 等功能,其操作方法和 WORD 的 编辑方法基本一样。 ? 反汇编窗口(图 1-14) 是调试的基本组成部分 , 大部分的 调试命令都是针对它而言的 图 1-14 F2 设置当前行为断点8 F3设置当前行为 PCF4 运行到当前行 F6 清除断点 F7 TaceInto 单步 Ctrl+F7 连续执行 TaceInto 单步操作 F8 TaceOut 单步 Ctrl+F8 连续执行 TaceOut 单步操作 图 1-15 F9 运行 在反汇编窗口中还有个快捷菜单(图 1-15),使用回车/鼠标右键来激活 设置新反汇编地址 输入一个新的反汇编地址 设置新 PC 输入一个新 PC 地址 设置新断点 输入一个新断点地址 输入小汇编 输入单行小汇编 文件存盘 保存目标码为 Hex/Bin 文件 刷新窗口 ? 寄存器窗口: 用来显示单片机内部寄存器中当前的值.(图 1-16)图 1-16 图 1-17 ? 数据窗口(图 1-17) 数据窗口也是调试的基本部分,用来对内存变化监视 在数据窗口中有快捷菜单(图 1-18),使用回车/鼠标右键来激活 设置数据块新地址 输入一个新数据块地址 移动数据块 移动数据块 放置数据块 放置数据块 每行显示八字节 上面的就是八字节 每行显示十六字节 这儿是十六字节方式 刷新窗口 图 1-18 ? 数据块操作窗口 在该窗口下可以进行数据块的“移动” 、 “填充” 、 “比较” 、 “查找” 、 “存盘” 。 见图 1-19。9 A 移动数据块B 填充数据块C 比较数据块D 查找数据块E 数据存盘图 1-19 (5)状态栏: 如图 1-20 从左面起: 第一个为动态提示栏 第二个为 PC 地址 第三个为仿真器状态 第四个为编辑窗口的当前光标位置 第五个为编辑窗口修改状态 第六个为编辑窗口的覆写/插入状态 第七个为编辑窗口的当前大小写状态图 1-20 3. 完成一个实验的步骤 (1) 按图正确连接好实验线路10 (2) 理解实验原理 (3) 仔细阅读,弄懂实验程序 (4) 运行实验程序 实验软件参考程序存放在两个地方: 一是放在系统监控中, 二是放在随机软盘中。 1.1.3 系统的硬件资源 1. 存储器 (1) MCS51 存储器 片内 片外程序 上 ( 0000-FEFFH ) 片外数据 上 ( 0000-FEFFH ) (2) MCS96 S S 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 (3) 8086 存储器 单板态 2000-BFFF 0000-1FFF, C000-FFFFH 2000-7FFF 0000-1FFF, 8000-FFFFH 2000-5FFF 0000-1FFF, 6000-FFFFH 2000-3FFF 0000-1FFF, 4000-FFFFH 0000-BFFF C000-BFFFH 0000-7FFF 8000-7FFFH 0000-5FFF 6000-5FFFH 仿真 RAM 0000-3FFF ) 仿真实验系统 上 ( 0000-FEFFH ) 目标空间(外部样机) 4000-3FFFH ) 用户目标系统 上 ( 0000-FEFFH 单板状态 用户/系统共用 (00-FFH) 仿真实验系统 上 ( 0000-FEFFH ) 用户目标系统 仿真 1 态 用户/系统共用 (00-FFH) 仿真实验系统 上 ( 0000-FEFFH 仿真 2 态 用户/系统共用 (00-FFH) 用户目标系统11 H FFH 00199-00FFFH 01000-0FFFFH监控/用户中断矢量区 用户中断矢量区 监控数据区,默认用户栈区 用户数据区,程序区2. I/O 接口器件地址 (1)8255 和 8155 是三个实验系统共用。8155 用于键盘/显示接口,8255 用于 EPROM 固化接口。 接口器件 8155 控制口 8155A 口(字位) 8155B 口(字形) 8155C 口(键扫) (2) 138 译码地址系统 状态 51/96
+5V 138 译码输入 G2 地 C A14 A6 B A13 A5 A A12 A4 Y0 80008FFF 地 00-0F 138 译码输出 Y1 90009FFF 10-1F Y2 A000AFFF 20-2F Y3 B000BFFF 30-3F Y4 C000CFFF 40-4F Y5 D000DFFF 50-5F Y6 E000EFFF 60-6F Y7 F000FFFF 70-7FI/O 地址 FF23H FF20H FF21H FF22H接口器件 8255 控制口 8255A 口 8255B 口 8255C 口I/O 地址 FF2BH FF28H FF29H FF2AH3. 通用外围电路 通用外围电路均提供插线孔以便和其它电路连接,组成不同的实验。 (1) 逻辑电平开关电路(图 1-21) :K1-K12 开关可由插线孔连接。图 1-21 (2) 发光二极管显示电路(图 1-22) :L1-L12 为 12 个发光二极管的控制信号, 可由插线孔连接外部电路。12 图 1-22 (3) 时钟电路 可以输出 4MHz 经分频器 74LS393 1-8 次分频得到 8 种时钟信号,如图 1-23,T0-T7 分别为 1-8 次分频后的时钟信号,可由插线孔连接外部电路。图 1-23 (4) 单脉冲发生电路 采用 RS 触发器产生正、 负单 脉冲(图 1-24) 。每按一次 AN 按 钮,既从 SP、/SP 端输出正、负 脉冲。SP、/SP 端可由插线孔连 接外部电路。 (5) 继电器驱动电路` 图 1-24 如图 1-25,其中对继电器控制信号可由 JIN 插 线孔接入, 继电器常开触点 JK 和常闭触点 JB 经插 线孔接出。图 1-25 (6) 直流电机驱动电 路如图 1-26,其电机转速由插 线孔 DJ 输入的脉冲电平的占 空比来调节。 (7) 步进电机驱动电路 如图 1-27,有 A、B、C、图 1-2613 D 四项绕组分别受插线孔 BA、BB、BC、BD 输入的脉冲信号控制,每次只有相邻的一个 信号变化,步距角为 18 度,改变脉冲频率即可改变步进电机转速。 图 1-27 (8) 电子音响驱动电路 如图 1-28,由插线孔 SIN 端的输入信号控制喇叭发音。图 1-28 (9) 模拟信号、基准电压产生电路 如图 1-29, 供 A/D、 D/A 转换实验用。 (10) 脉冲滤波电路 如图 1-30,插线孔 FIN 输入脉冲经过 滤波,可形成三角波输出。 4. 实验台各开关插头、插座定义 插座名称 J1 J2 J3 J4 J5 插针数 2 9 5 2 2 作用 电源 系统通信 步进电机 直流电机 喇叭 插座名称 J6 J7 J8 J9 J10 插针数 40 14 20 40 3图 1-29图 1-30作用 51 仿真;96/88 插卡 打印机接口 9279 键盘/显示接口 51 仿真;96/88 插卡 用户通信1.2DVCC 实验系统安装与启动1.2.1 系统硬件安装(各种开关设置和连线必须在断电状态下进行) 1. 设置实验台开关: 开关名称 KB1 KB2 KB3 KB4 KB5 KBB 卧式 KBB 立式 开关位 1-5 6- 10 1-2 1-10 1-10 1-10 开关状态 ON/OFF OFF/ON ON/OFF ON/OFF OFF/ON OFF/ON 51,196/86 51,88/196 实验类型 51/86,196 51/86,196 51,196/86 51,196/86 51,196/86 51,196/86 51,196/86 51,88/196 备注14 2. 设置短路块: 1-2 位相联:51,196 实验 DL1-DL4 的 3. 安装插板: 3-4 位相联:8086 实验 51: 不需插卡 196: 将 196CPU 卡插入 J6(连 CZ1)和 J9(连 CZ2) ; 8086: 将 88CPU 卡插入 J6(连 CZ1)和 J9(连 CZ2) ; 4. 连接通信线 两头 9 芯(9D)通信电缆,一端接实验台 J2 插座 ,另一头接微机串行口上(COM1/COM2 任 选) 。 5. 连接实验台电源 实验台外接电源箱如图 1-32,一般实验只要用 实验台自带的 J1 插头,一头插入实验台 POWER 插 座,另一头红线接+5V,黑线接地。 (要十分仔细, 不能接错) 。 6. 实验台通电 打开实验台电源,显示闪烁的‘P’为正常; 否则不正常,关掉电源检查。 6. 打开微机电源,启动微机,按照 1.2.2 的 方法进行系统的软件运行和实验。 1.2.2 系统启动与连接 1. 在 WIN95/98 桌面下双击 DVCC 图标或在’开始’-‘程序’菜单下点击 DVCC 图 标,进入 DVCC 窗口。如图 1-2 为 51、196 实验平台窗口,图 1-3 为 8086 实验平台窗口。 2. 在 DVCC 实验系统上按 PCDBG 键。 3. 在 DVCC 实验系统窗口中选择要做的实验项目. 4. 在 DVCC 实验系统窗口中,单击工具栏 &联接& 按钮。 5. 在成功联机后,单击工具栏“程序”按钮。 6. 单击工具栏 &调试& 按钮。系统即自动完成汇编,连接和把所生成的 . EXE 文件 传送装载到用户的对应起始地址中去。 7. 单击工具栏中“运行”按钮,运行实验程序,并观察实验结果, 有的实验,在程序 运行中要按实验要求调整相关器件。 8. 运行完毕,在 DVCC 实验系统上按复位按钮后,再按 PCDBG 键,并单击 ” 确认”,运行结束。 9. 如选择另一实验则重复上述步骤中 3~8。1.3DVCC 实验系统模拟示波器的使用1. 硬件连接(微机、实验台断电后操作) (1) 示波器和实验台主板连接:将实验台左边示波器的 WAVE 插头插到台上的 WAVE 插座上。 (2) 实验台同微机连接:将通信线 2 的 3 芯插头一端插入板上 J10 插座,将 9 芯插 头一端插入微机串行口(COM1/COM2)插座。15 (3) 插好示波器表棒: 黑表棒一头插入黑座孔, 另一头接地 (若测量实验台上信号, 则内部已经接地,不必再接) ;红表棒一头插入红座孔,另一头接测量点。 2. 使用方法 (1)在作某个实 验时, 若要用示波器, 从软件的“窗口”菜 单选择“进入示波器 窗口”或直接运行 WAVE.EXE 文件。即 可进入示波器画面如 图 1-33。 (2) 正确选择连 接的串行口。 (3) 点 击 “开关” 既开始测量。 (4) 测 量 技 巧: ① 将红表棒按在测量点上,查看波形。 ② 微调“步数”和“速度” ,使波形清晰。 图 1-33 ③ 用鼠标直接点击波形窗口,会在窗口中显示时间电压。16 第二章MCS-51 系列单片机实验开始 2.1 软件实验 2.1.1 清零程序 一. 实验目的 R0 =0,DPTR=7000H 掌握汇编语言设计和调试方法,熟悉键盘操作。 00 二. 实验内容 00 送到(DPTR) 把 7000H ~ 70FFH 三. 实验程序框图 DPTR+1,R0+1 四. 实验步骤 1. 当 DVCC 单片机仿真实验系统独立工作时 N (1)将固化区 EPROM 中实验程序目标码传送到仿 R0 = FF? 真 RAM 区, 操作如下: 输入 0 后按 F1 键, 再输入 0FFF Y 后按 F2 键,再输入 0 后按 EPMOV 稍等,系统返回初 结束 始状态,显示“P."。 (2)按 F2 键进入仿真 1 态,仿真实验系统显示闪动“P. . . . . . ”时,根据表一所示, 通过键盘输入实验程序的起始地址 0030H,再按执行键 EXEC,表示连续运行该程序, 稍后,按 RESET 键退出运行;如果以单步运行程序,则输入 0300 后,按 STEP 键,按 一次执行一条语句,直到执行到 003CH 为止,按 MON 键退出运行;如果以断点运行程 序,则先输入 003C(断点地址) ,再按 F1 键,再输入 0030(起始地址) ,然后按 EXEC 键执行程序,当执行到 003CH 时自动停下来,此时按 MON 键退出。 (3)用存储器读写方法检查 7000H―70FFH 中的内容应全是 00H。 2. 当 DVCC 单片机仿真实验系统联 PC 机工作时 (1)在闪动“P. ”状态,按 PCDBG 键。 (2)在 PC 机处于 WIN95/98 软件平台下,单击 DVCC 图标。 (3)在系统设置选项中设定仿真模式为内程序、内数据。 (4)根据屏幕提示进入 51/96 动态调试菜单。 (5)联接 DVCC 实验系统(Ctrl + H) 。 (6)装载目标文件(Ctrl + L) 。 (7)设置 PC 起始地址。 (8)从起始地址开始连续运行程序(F9)或单步(F8)或断点运行程序。 (9)单步、 断点运行完后, 在存储器窗口内检查 7000H―70FFH 中的内容是否全为 00H。 五. 思考: 假使要把 7000H ~ 70FFH 中的内容改成 FFH,如何编制程序。 六. 清零程序(源文件名:Clear.Asm) ORG 0030H CLEAR: MOV R0,#00H MOV DPTR,#7000H ;设数据指针 DPTR=7000H CLEAR1: CLR A17 MOVX @DPTR,A INC DPTR INC R0 CJNE R0,#00H,CLEAR1 CLEAR2: SJMP CLEAR2 END;清第一个数据单元 ;指针加一 ;字节数加一 ;判字节数满 256 个否,不满继续 ;满结束程序2.1.2 拆字程序 开始 一. 实验目的 掌握汇编语言设计和调试方法。 二. 7000H 内容送 A 把 7000H 的内容拆开, 高位送 7001H, 低位送 7002H。 7001H 、7002H 高位清零,一般本程序用于把数据送显示 高低位交换 缓冲区时用。 屏蔽高位后送 7001H 三. 实验程序框图 四. 实验步骤 7000H 内容送 A (1) 先用存储器读写方法将 7000H 单元置成 34H。 (2) 用单步、断点或连续执行程序的方法从起始地 屏蔽高位后送 7002H 址 0050H 开始运行程序(输入 0050H 后按 STEP 为单步, R0 = FF 按 EXEC 为连续) 。 结束 (3) 按 MON 键或 RESET 键退出。 (4) 检查 7001H 和 7002H 单元中的内容应为 03H 和 04H。 五. 思考:如何用断点方法调试本程序。 六. 拆字程序(源文件名:Cword.Asm) ORG 0050H CWORD: MOV DPTR,#7000H ;设数据指针 DPTR=7000H MOVX A,@DPTR ;取(7000H)内容暂存 B MOV B,A SWAP A ANL A,#0FH ;将(7000H)的高半字节存入(7001H) INC DPTR MOVX @DPTR,A INC DPTR MOV A,B ;将(7000H)的低半字节存入(7002H) ANL A,#0FH MOVX @DPTR,A CWORD1: SJMP CWORD1 ;结束 END18 2.1.3 拼字程序 一. 实验目的 进一步掌握汇编语言设计和调试方法。 二. 实验内容 把 7000H、 7001H 的低位相拼后送 7002H, 一般本程序 开始 用于把显示缓冲区的数据取出拼装成一个字节。 三. 实验程序框图 (7000H)送 A,屏蔽高位 四. 实验步骤 (1) 将 7000H 单元中内容置 03H,7001H 单元中内 交换高低位后送 B 容置 04H。 (2) 用单步或断点方式从 0070H 开始运行程序(输 (7001H)送 A,屏蔽高位 入 0070 后按 STEP 键为单步运行) 。 (3) 按 MON 键退出。 A 和 B 相或后送 7002H (4) 检查 7002H 中的内容应为 34H。 FF 五. 拼字程序(源文件名:Pword.Asm) ORG 0070H 结束 PWORD: MOV DPTR,#7000H ;设数据指针 DPTR=7000H MOVX A,@DPTR ANL A,#0FH SWAP A MOV B,A ; (7000H)中内容低 4 位交换到高 4 位暂存 B 中 INC DPTR MOVX A,@DPTR 开始 ; (7001H)中的内容屏蔽高 4 位 ANL A,#0FH 源地址内容送 A ORL A,B ;两字节的内容相或后存入(7002H) (A)送目的地址 INC DPTR MOVX @DPTR,A PWORD1: SJMP PWORD1 源地址加 1 END 2.1.4 数据传送程序 一. 实验目的 掌握 RAM 中的数据操作。 二. 把(R2、R3)源 RAM 区首址内的(R6、R7)个字节数据,传 送到(R4、R5)目的 RAM 区。 三. 实验程序框图 四. 实验步骤19目的地址加 1 字节数到吗? Y 结束 N (1) 在 R2、R3 中装入源首址&例如 6000H&,R4、R5 中装入目的地址 & 例如 7000H&,R6 、 R7 中装入字节数 &0FFFH&。 (2) 用单步、断点方法从起始地址 0090H 开始运行实验程序(输入 0090H 后按 STEP 键为单步运行; 先输入末地址 00C4 后按 F1 键, 再输入 0090 后, 按 EXEC 键为断点运行) 。 (3) 如果是断点运行,运动到断点处会自动停下来,再按 MON 键返回“P. ”态。如 果是单步运行,运行到末址 00C4 时,按 MON 键返回“P. ”态。 (4) 检查 7000H 开始的内容和 6000H 开始的内容是否完全相同。 五. 数据传送程序(源文件名:Dmve.Asm) ORG 0090H SJMP DMVE4 DMVE: MOV SP,#70H ; 设堆栈指针 ;循环调显示子程序 MOV DPL,R3 DMVE5: DEC R7 MOV DPH,R2 SJMP DMVE DMVE6: DEC R7 MOVX A,@DPTR DEC R6 ;取源操作数 SJMP DMVE ;未完继续 MOV DPL,R5 DISPD: SETB 0D4H ; 显示子程序 MOV DPH,R4 MOV R1,#7EH MOVX @DPTR,A MOV R2,#20H MOV R3,#00H ;存入目的地址中 CJNE R3,#0FFH,DMVE1 DISPD1: MOV DPTR,#0FF21H INC R2 ;从右至左第一位点亮 MOV A,R2 DMVE1: INC R3 ;源地址加 1 CJNE R5,#0FFH,DMVE2 MOVX @DPTR,A INC R4 ;显示位码送字位口 MOV A,@R1 DMVE2: INC R5 ; 目的地址加 1 CJNE R7,#00H,DMVE5 MOV DPTR,#0FF22H CJNE R6,#00H,DMVE6 MOVX @DPTR,A ;未传送完字节数减 1 ;显示段码送字位口 MOV R0,7EH DISPD2: DJNZ R3,DISPD2 ;延 MOV A,#0FFH 时 DEC R1 ;关显示器的 1―5 位 MOV R4,#06H CLR C DMVE3: MOV @R0,A MOV A,R2 DEC R0 ;未到最后一位继续 DJNZ R4,DMVE3 RRC A MOV 7EH,#8CH MOV R2,A JNZ DISPD1 ;最后一位显示 P DMVE4: LCALL DISPD M OV A,#0FFH ;关显示20 MOV DPTR,#0FF22H MOVX @DPTR,A CLR 0D4HRET END;返回2.1.5 数据排序 一. 实验目的 开始 熟悉 8031 指令系统,掌握程序设计方法。 二. 清标志位 编写并调试一个排序程序,其功能为用冒 泡法将内部 RAM 中几个单元字节无符号的正 从(R0)取数送 A 整数,按从小到大的次序重新排列。 三. 实验程序框图 (R0)+1 送 R0 四. 实验步骤 (1) 把 8031 片内 RAM 区 50H―5AH Y 中放入不等的数据(用寄存器读写方法) 。 (A) & (( R0 )) ? (2) 用 连 续 运 行 方 式 从 起 始 地 址 N 0100H 开始运行程序(输入 0100 后按 EXEC 置标志位,交换内容 键) 。 (3) 排序结束,显示“P. ” 。 N 长度减 1=0? (4) 用 寄 存 器 读写 方 法 检查 50H ― Y 5AH 中内容应从小到大排列。 N 标志位=0? 思考:编一程序把 50H―5AH 中内容应从 大到小排列。 Y 结束 五. 数据排序程序 (源文件名: Dorde. asm) ORG 0100H DORDE: MOV SP,#60H ;设堆栈指针 MOV R3,#50H DORDE1: MOV A,R3 MOV R0,A ;数据指针送 R0 MOV R7,#0 ;长度送 R7 CLR 00H ;清标志位 MOV A,@R0 DORDE2: INC R0 DORDE3: MOV A,R2 MOV R2,A JC DORDE4 CLR C ;小于或等于不交换 SETB 00H ;清进位标志 MOV 22H,@R0 XCH A,@R0 CJNE A,22H,DORDE ;大于交换位置 DEC R0 ;相等否 SETB C XCH A,@R021 DORDE4:DORDE5:DORDE6:DISPD:DISPD1: DPTR,#0FF21HINC R0 MOV A,@R0 DJNZ R7,DORDE2 JB 00H,DORDE1 ;未完继续 MOV R0,#7EH ;完关显示器前三位 MOV A,#0FFH MOV R4,#06H MOV @R0,A DEC R0 DJNZ R4,DORDE5 MOV 7EH,#0CH ; “P . ”显示代码送 显示缓冲区最后一 位 LCALL DISPD ;循环调显示子程序 SJMP DORDE6 SETB 0D4H ;显示子程序 MOV R1,#7EH MOV R2,#20H MOV R3,#00H MOVDISPD2: DJNZ R3,DISPD2 DEC R1 CLR C MOV A,R2 RRC A MOV R2,A JNZ DISPD1 MOV A,#0FFH MOV DPTR,#0FF22H MOVX @DPTR,A CLR 0D4H RET END 开始字节数送 R0,查找字节送 R17000H 送 DPTR从 DPTR 中取数Y判和被查数相同否?R1+1N DPTR+1 N字节数到吗?MOV A,R2 MOVX @DPTR,A MOV A,@R1 MOV DPTR,#0FF22H MOVX @DPTR,AY R1 送显示缓冲区2.1.6 查找相同数个数 调显示子程序 一. 实验目的 熟悉汇编语言编程。 二. 在 7000H―700FH 查出有几个字节是零,统计“00”的个数再显示在数码管上。 三. 实验步骤 (1) 在 7000H―700FH 的单元中放入随机数,其中几个单元中输入零。 (2) 用连续方式从起始地址 0160H 开始运行程序(输入 0160 后按 EXEC 键) 。22 (3) 观察显示器上的内容,应显示 00 单元的个数。 四. 实验程序框图 五. 思考: 修改程序,查找其他内容。 六. 查找相同数个数程序(源文件名:Find.asm) ORG 0160H FIND: MOV SP,#60H ;设堆栈指针 MOV R0,#10H ;查找 16 个字节 MOV R1,#00H MOV DPTR,#7000H FIND1: MOVX A,@DPTR CJNE A,#00H,FIND2 ;取出的内容与 00H 相等吗? INC R1 ;计数值加 1,指针加 1 FIND2: INC DPTR DJNZ R0,FIND1 ;未完成继续 MOV A,R1 MOV R0,#79H ;个数送显示缓冲区 ANL A,#0FH MOV @R0,A INC R0 MOV A,R1 SWAP A ANL A,#0FH MOV @R0,A INC R0 MOV A,#10H MOV R4,#04H MOV A,R2 FIND3: MOV @R0,A MOVX @DPTR,A INC R0 MOV DPTR,#DATA1 DJNZ R4,FIND3 MOV A,@R1 FIND4: LCALL DISP MOVC A,@A+DPTR MOV DPTR,#0FF22H ;循环调显示程序 SJMP FIND4 MOVX @DPTR,A DISP2: DJNZ R3,DISP2 DISP: SETB 0D4H ;显示子程序 MOV R1,#7EH DEC R1 MOV R2,#20H CLR C MOV R3,#00H MOV A,R2 DISP1: MOV DPTR,#0FF21H RRC A23 MOV R2,A MOVX @DPTR,A JNZ DISP1 CLR 0D4H MOV A,#0FFH RET MOV DPTR,#0FF22H DATA1: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;显示代码 DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH 2.1.7 无符号双字节快速乘法 一. 实验目的 掌握 MCS―51 汇编语言程序设计方法。 二. 预备知识 本程序是利用单字节的乘法指令,根据下面的公式进行乘法运算的。 (R2R3)* (R6R7) = ((R2) * 28 + (R3)) * ((R6) * 28 + (R7)) = (R2) * (R6) * 216 + ((R2) * (R7) + (R3) * (R6)) * 28 + (R3) * (R7) 三. 将 (R2R3) 和 (R6R7) 中双字节无符号整 开始 数相乘,积送 R4R5R6R7 中。 四. 实验程序框图 被乘数和乘数低字节相乘 五. 实验步骤 积高位送 R5,地位送 R7 (1) 7000H―7001H 中存放无符号整 数作为被乘数 000AH, 7002H―7003H 中存 放乘数 0019H。 被乘数高字节和乘数低字节相乘 (2) 用 连 续 或 单 步 从 起 始 地 址 积低位加 R5 送 R4,高位加 CY 送 R5 01D0H 运行本实验程序(输入 01D0 后按 EXEC 键或 STEP 键) 。 被乘数低字节和乘数高字节相乘 (3) 用 MON 或 RESET 键退出。 积低位加 R4 送 R6, 高位加 R5 送 R5,CY 送 F0 (4) 检查两个数的乘积 7004 ― 7007 单元中的内容应为 000000FAH。 被乘数和乘数高字节相乘 六. 双字节乘法程序(源文件名: 积低位加 R5,CY 送 R5,高位加 F0 送 F4 Ncmul.Asm) ORG 01D0H 结束 MOV SP,#50H MOV DPTR,#7000H ;取(7000H)字中的被乘数 MOVX A,@DPTR MOV R2,A INC DPTR MOVX A,@DPTR MOV R3,A INC DPTR MOVX A,@DPTR24;取(7002H)字中的乘数 MOV R6,A INC DPTR MOVX A,@DPTR MOV R7,A NCMUL: MOV A,R3 MOV B,R7 MUL AB ;两数相乘 XCH A,R7 MOV R5,B MOV B,R2 MUL AB ADD A,R5 MOV R4,A CLR A ADDC A,B MOV R5,A MOV A,R6 MOV B,R3 MUL AB ADD A,R4 XCH A,R6 XCH A,B ADDC A,R5 MOV R5,A MOV PSW.5,C MOV A,R2 MUL AB ADD A,R5 MOV R5,A CLR A MOV ACC.0,C MOV C,PSW.5 ADDC A,B MOV R4,A INC DPTR MOV A,R4 MOVX @DPTR,A INC DPTR MOV A,R5 MOVX @DPTR,A INC DPTR MOV A,R6 MOVX @DPTR,A 2.1.8 多分支程序 一. 实验目的25INC DPTR MOV A,R7 MOVX @DPTR,A MOV R0,#7EH MOV A,#0FFH MOV R4,#06H NCMUL1: MOV @R0,A DEC R0 MOV 7EH,#8CH DJNZ R4,NCMUL1 NCMUL2: LCALL DISPD ; 调用显示子程序, 显示 “P. ” SJMP NCMUL2 DISPD: SETB 0D4H MOV R1,#7EH MOV R2,#20H MOV R3,#00H DISPD1: MOV DPTR,#0FF21H MOV A,R2 MOVX @DPTR,A MOV A,@R1 MOV DPTR,#0FF22H MOVX @DPTR,A DISPD2: DJNZ R3,DISPD2 DEC R1 CLR C MOV A,R2 RRC A MOV R2,A JNZ DISPD1 MOV A,#0FFH MOV DPTR,#0FF22H MOVX @DPTR,A CLR 0D4H RET END 掌握汇编语言的编程。 二. 编写散转程序,根据 8032 片内 20H 中的内容(00 或 01 或 02 或 03)进行散转。 三. 实验步骤 (1) 8032 片内 20H 单元用寄存器读写方法写入 00 或 01 或 02 或 03。 (2) 从起始地址 0250H 开始连续运行程序(输入 0250 后按 EXEC 键) 。 (3) 观察数码管显示的内容(20H)=00 时,显示“0”循环, (20H)=01 时, 显示“1”循环 . . . . . . 开始 四. 实验程序框图 五. 多分支程序 (20H)送A (源文件名:Mjup.Asm) ORG 0250H A+散转首地址 MJUP:MOV A,20H MOV DPTR,#TABADDR ;散转表首地址 0 字循 1 字循 RL A 环保局 环 ; (20H )×2 4× 环 环 JMP @A+DPTR ;转到(20H ) 2 + DPTR TABADDR: SJMP DISP0 SJMP DISP1 MJUP2: SJMP DISP2 SJMP DISP3 DISP0: MOV 20H,#0C0H ;0 字循环 LJMP MJUP1 DELY: DISP1: MOV 20H,#0F9H ;1 字循环 LJMP MJUP1 DISP2: MOV 20H,#0A4H ;2 字循环 LJMP MJUP1 DISP3: MOV 20H,#0B0H ;3 字循环 MJUP1: MOV A,20H ;循环显示程序 MOV R0,#22H MOV R1,#21H MOVX @R0,A 2.1.9 脉冲计数262 字循 环3 字循 环MOV A,#01H MOVX @R1,A MOV R2,#20H LCALL DELY RL A SJMP MJUP2 PUSH 02H ;延时子程序 DELY1: PUSH 02H DELY2: PUSH 02H DELY3: DJNZ R2,DELY3 POP 02H DJNZ R2,DELY2 POP 02H DJNZ R2,DELY1 POP 02H DJNZ R2,DELY RET END 一. 实验目的 熟悉 8031 定时/计数功能,掌握定时/计数初始化编程方法。 二. 实验内容 对定时器 0 外部输入的脉冲进行计数,并送显示器显示。 三. 实验步骤 (1) 把 8032CPU 的 P3.4插孔接 T0―T7 任一根信号线或单脉冲输出空“SP” 。 (2) 用连续方式从起始地址 02A0H 开始运行程序(按 02A0 后按 EXEC 键) 。 (3) 观察数码管显示的内容应为脉冲个数。 四. 实验程序框图 二进制转十进制子程序 开始 堆栈、定时/计数初始化 开定时器 取出 TL0、TH0 内容 调用二转十进制子程序 结果送显示缓冲器 调显示子程序 结束 五. 思考:修改程序使显示器可显示到 999999 个脉冲 个数。 六. 脉冲计数程序(源文件名:Cont.asm) ORG 02A0H LCALL CONT2 CONT: MOV SP,#53H ;调二转十进制子程序 MOV TMOD,#05H MOV R0,#79H MOV A,R6 ;初始化定时/计数器 MOV TH0,#00H LCALL PWOR MOV TL0,#00H MOV A,R5 SETB TR0 LCALL PWOR MOV A,R4 ;允许定时/计数中断 CONT1: MOV R2,TH0 LCALL PWOR LCALL DISP ;取计数值 MOV R3,TL0 ;调显示子程序270 送 R4 R5 R6 16 送位计数器 R7 0 送 CY R2 R3 右移一位 2*(R4R5R6)+CY 送 R4R5R6 (R7)-1送R7 R7=0? Y N SJMP CONT1 ;拆送显示缓冲区 LCALL PWOR1 ;循环 CONT2: CLR A MOV A,R1 SWAP A ;清 R4、R5、R6 MOV R4,A PWOR1: ANL A,#0FH MOV R5,A MOV @R0,A MOV R6,A INC R0 MOV R7,#10H RET CONT3: CLR C DISP: SETB 0D4H ;R2、R3 左移,移出的位送 CY ;显示子程序 MOV A,R3 MOV R1,#7EH RLC A MOV R2,#20H MOV R3,A MOV R3,#00H MOV A,R2 DISP1: MOV DPTR,#0FF21H RLC A MOV A,R2 MOV R2,A MOVX @DPTR,A MOV A,R6 MOV DPTR,#CDATA ADDC A,R6 MOV A,@R1 MOVC A,@A+DPTR ;R4、R5、R6×2 + CY 送 R4、R5、R6 DA A MOV DPTR,#0FF22H MOV R6,A MOVX @DPTR,A DISP2: DJNZ R3,DISP2 ;十进制调整 MOV A,R5 DEC R1 ADDC A,R5 CLR C DA A MOV A,R2 MOV R5,A RRC A MOV A,R4 MOV R2,A ADDC A,R4 JNZ DISP1 DA A MOV A,#0FFH MOV R4,A MOV DPTR,#0FF22H DJNZ R7,CONT3 MOVX @DPTR,A CLR 0D4H ;循环 16 次 RET RET PWOR: MOV R1,A ; CDATA: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH 2.1.10 电脑时钟 一. 实验目的 1. 熟悉 MCS―51 定时器、串行口和中断初始化编程方法,了解定时器应用在实28 时控制中程序的设计技巧。 2. 编写程序,从 DVCC 系列单片机实验仪键盘上输入时间初值,用定时器产生 0.1S 定时中断,对时钟计数器计数,并将数值实时地送数码管显示。 二. 实验步骤 (1) 用连续方式从起始地址 0340H 开始执行程序(输入 0340 后按 EXEC 键) 。 (2) 连续运行程序,在键盘上输入时间初值。如果输入时分秒初值超范围,则显示 000000 后要求重新设置初值,初值的默认值为 000000。 (3) 再次按 EXEC 键时钟开始工作,数码管上实时显示时间值。 三. 思考: (1) 电子钟走时精度和程序中那些常数有关? (2) 修改程序使定时器工作方式改变,调节有关参数,进一步提高精度。 四.实验程序框图 定时器中断服务程序 开始 清显示缓冲区 初始化定时计数器 显示初值 000000 从键盘设时钟初值 判时钟初值合乎规定否? Y 开定时器 显示器显示当前时钟值 N 定时中断 恢复初值,保护现场 1 秒到吗? N N N N 0.1 秒加 1 秒加 1 分加 1 时加 1Y 0.1 秒单元清零,60 秒到吗? Y 秒单元清零,60 秒到吗? Y 分单元清零,24 小时到吗? Y 时单元清零 堆栈返回五. 电脑时钟程序(源文件名:Cock.asm) ORG 000BH LJMP TINTRUP ORG 0340h CLOCK0: MOV SP,#50H MOV R0,#7EH ;清显示缓冲区 MOV R4,#06H CLR A CLOCK1:MOV @R0,A29DEC R0 DJNZ R4,CLOCK1 MOV A,#7EH MOV DPTR,#1FFFH MOVX @DPTR,A MOV 76H,#00H ;初始化定时/计数器 MOV 77H,#00H LCALL KEYDISP0 ;调显示键扫子程序 LCALL DISDA0 ;调显示缓冲区放数程序 MOV TMOD,#01H ORL IE,#82H MOV TL0,#0B7H MOV TH0,#3CH MOV 23H,#00H SETB TR0 ; 开定时中断 CLOCK2: LCALL DISP ;调显示子程序 LCALL DISDA0 ;调显示缓冲区放数子程序 SJMP CLOCK2 ;循环 DISDA0: MOV R0,#79H ;显示缓冲区放数子程序 MOV A,22H ACALL DISDA MOV A,21H ACALL DISDA MOV A,20H ACALL DISDA RET DISDA: MOV R1,A ACALL DISDA1 MOV A,R1 SWAP A DISDA1: ANL A,#0FH MOV @R0,A INC R0 RET TINTRUP: MOV TL0,#0B7H ;定时器中断服务程序 MOV TH0,#3CH ;重新置初值 PUSH PSW PUSH ACC ;保护当前值 SETB 0D3H INC 23H30;0.1 秒单元加 1 MOV A,23H CJNE A,#0AH,TINTRUP1 ;判 1 秒到否,未到继续 MOV 23H,#00H ;清 0.1 秒单元 MOV A,22H INC A ;秒单元加 1 DA A MOV 22H,A CJNE A,#60H,TINTRUP1 ;判 60 秒到否,未到继续 MOV 22H,#00H ;清秒计数单元 MOV A,21H INC A ;分单元加 1 DA A MOV 21H,A CJNE A,#60H,TINTRUP1 ;判 60 分到否,未到继续 MOV 21H,#00H ;清分计数单元 MOV A,20H INC A ;时单元加 1 DA A MOV 20H,A CJNE A,#24H,TINTRUP1 ;判 24 小时到否,未到继续 MOV 20H,#00H ;清时计数单元 TINTRUP1:POP ACC POP PSW RETI ;返回主程序 KEYDISP0:LCALL KEY ;调显示键扫子程序 JNC FANCKEY ;转功能键处理 LCALL DATAKEY1 ;数值键处理 DB 79H,7EH SJMP KEYDISP0 FANCKEY: CJNE A,#16H,KEYDISP0 ; 是执行键, 判输入的秒初值是否超限 MOV A,7AH SWAP A ORL A,79H MOV 22H,A CJNE A,#60H,FANCKEY1 FANCKEY1: JNC FANCKEY4 ;判输入的分初值是否超限 MOV A,7CH SWAP A ORL A,7BH MOV 21H,A CJNE A,#60H,FANCKEY2 FANCKEY2: JNC FANCKEY4 ;判输入的时初值是否超限 MOV A,7EH SWAP A ORL A,7DH MOV 20H,A CJNE A,#24H,FANCKEY3 FANCKEY3:JNC FANCKEY4 RET FANCKEY4:CLR TR0 LJMP CLOCK0 DATAKEY1:MOV R4,A ;数字键处理子程序 MOV DPTR,#1FFFH MOVX A,@DPTR MOV R1,A MOV A,R4 MOV @R1,A CLR A POP 83H POP 82H DATAKEY:31MOVC A,@A+DPTR INC DPTR CJNE A,01H,DATAKEY3 DEC R1 CLR A MOVC A,@A+DPTR DATAKEY2: PUSH 82H PUSH 83H MOV DPTR,#1FFFH MOVX @DPTR,A POP 83H POP 82H INC DPTR PUSH 82H PUSH 83H RET DATAKEY3: DEC R1 MOV A,R1 SJMP DATAKEY2 KEY0: MOV R6,#20H ;数字键闪动程序 MOV DPTR,#1FFFH MOVX A,@DPTR MOV R0,A MOV A,@R0 MOV R7,A MOV A,#10H MOV @R0,A KEY3: LCALL KEYDISP JNB 0E5H,KEY2 DJNZ R6,KEY3 MOV DPTR,#1FFFH MOVX A,@DPTR MOV R0,A MOV A,R7 MOV @R0,A KEY: MOV R6,#50H KEY1: LCALL KEYDISP JNB 0E5H,KEY2 DJNZ R6,KEY1 SJMP KEY0 LJMP KEYDISP5 MOV R6,A KEYDISP3: MOV R4,#0FH MOV A,R7 KEYDISP2: MOV R2,04H MOV @R0,A MOV R4,03H MOV A,R6 KEYDISP5: MOV R1,#76H MOV A,R2 ;A = 键值 KEYEND: RET MOV @R1,A KEYDISP:LCALL DISP INC R1 MOV A,R3 ;调用显示子程序 LCALL KEYSM MOV @R1,A MOV A,R4 ;调用键扫子程序 MOV R4,A CJNE R3,#10H,KEYDISP4 KEYDISP4: RET ;键值存 R4 MOV R1,#76H DISP: SETB 0D4H ; 显示子程序 MOV A,@R1 MOV R1,#7EH MOV R2,A MOV R2,#20H INC R1 MOV R3,#00H MOV A,@R1 DISP1: MOV DPTR,#0FF21H MOV R3,A MOV A,R2 XRL A,R4 MOVX @DPTR,A MOV R3,04H MOV DPTR,#DATACO MOV R4,02H MOV A,@R1 JZ KEYDISP1 MOVC A,@A+DPTR MOV R2,#88H MOV DPTR,#0FF22H MOV R4,#88H MOVX @DPTR,A KEYDISP1: DEC R4 DISP2: DJNZ R3,DISP2 MOV A,R4 DEC R1 XRL A,#82H CLR C JZ KEYDISP2 MOV A,R2 MOV A,R4 RRC A XRL A,#0EH MOV R2,A JZ KEYDISP2 JNZ DISP1 MOV A,R4 MOV A,#0FFH ORL A,R4 MOV DPTR,#0FF22H JZ KEYDISP3 MOVX @DPTR,A MOV R4,#20H CLR 0D4H DEC R2 RET DATACO: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH KEY2:32 键扫子程序 KEYSM:SETB 0D4H ;无键且未到最后一列继续 MOV A,#0FFH DJNZ R3,KEYSM1 MOV DPTR,#0FF22H SJMP KEYSM10 MOVX @DPTR,A KEYSM2: ;有键,计算键值 KEYSM0: MOV R2,#0FEH CPL A MOV R3,#08H JB 0E0H,KEYSM3 MOV R0,#00H MOV A,#00H KEYSM1: MOV A,R2 SJMP KEYSM7 MOV DPTR,#0FF21H KEYSM3: JB 0E1H,KEYSM4 MOVX @DPTR,A MOV A,#08H SJMP KEYSM7 ;键矩阵中第 1 列置 0 NOP KEYSM4: JB 0E2H,KEYSM5 RL A MOV A,#10H MOV R2,A SJMP KEYSM7 MOV DPTR,#0FF23H KEYSM5: JB 0E3H,KEYSM10 MOV A,#18H ;读键的行值 MOVX A,@DPTR KEYSM7: ADD A,R0 CPL A CLR 0D4H NOP CJNE A,#10H,KEYSM9 NOP KEYSM9: JNC KEYSM10 NOP MOV DPTR,#KEYDATA ANL A,#0FH MOVC A,@A+DPTR JNZ KEYSM2 KEYSM10: RET ;返回 INC R0 KEYDATA: DB 07H,04H,08H,05H,09H,06H,0AH,0BH ;键值表(0―F) DB 01H,00H,02H,0FH,03H,0EH,0CH,0DH 2.2 硬件实验 2.2.1 P3.3 输入、P1 口输出实验 一. 实验目的 (1) 掌握 P3 口、P1 口简单使用。 (2) 二. (1) P3.3 口做输入口,外接一脉冲,每输入一个脉冲,P1 (2) P1 口做输出口,编写程序,使 P1 口接的 8 个发光二极管 L1―L8 按 16 进制加 三. (1) P1 口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结 构可知:当 P1 口作为输入口时,必须先对它置高电平,使内部 MOS 管截止,因内部上拉 电阻是 20KΩ ―40KΩ ,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,33 则 MOS 管导通,读入的数据是不正确的。 (2) 对于延时程序 : DELAY :MOV R6, #00H DELAY1:MOV R7, #80H DJNZ R7, $ DJNZ R6, DELAY1 查指令表可知 MOV、DJNZ 指令均需用两个机器周期,而一个机器周期时间长度为 12/ 6.0MHZ,所以该段指令执行时间为:((80+1)×256+1)×2×(12÷2.1ms 四. 实验程序框图 开始 延时子程序 Y P3.3 为高吗? Y R6 设初值 FFH N 延时 R7 设初值 FFH P3.3 真的高吗? R7-1=0否? Y R6-1=0否? Y 返回 A+1 送 P1 口 循环 N N P3.3 为低吗? N 延时 Y YN五. 实验电路原理图图 2―134 六. ①P3.3 用插针连至 K1, P1.0―P1.7 用插针连至 L1―L8 ②从起始地址 0540H 开始连续运行程序(输入 0540 后按 EXEC 键) ③开关 K1 每拨动一次,L1―L8 发光二极管按 16 进制方式加一点亮 七. P3、P1 口应用程序(源文件名:H51S.ASM) RG 0540h ;取反后送 P1 显示 HA1S: MOV A,#00H MOV P1,A HA1S1: JB P3.3,HA1S1 POP ACC ;判 P3.3 为低电平否 AJMP HA1S1 ;循环 MOV R2,#20H DELAY: PUSH 02H ;延时子程序 LCALL DELAY DELAY1: PUSH 02H DELAY2: PUSH 02H ;调延时子程序 JB P3.3,HA1S1 DELAY3: DJNZ R2,DELAY3 POP 02H ;再判 P3.3 为低电平否 HA1S2: JNB P3.3,HA1S2 DJNZ R2,DELAY2 MOV R2,#20H POP 02H LCALL DELAY DJNZ R2,DELAY1 JNB P3.3,HA1S2 POP 02H DJNZ R2,DELAY ;判 P3.3 为高电平否 RET INC A ;加 1 PUSH ACC END CPL A2.2.2 工业顺序控制实验 一. 实验目的 掌握工业顺序控 二. 8032 的 P1 0―P1 6 控制注塑机的七道工序, 现模拟控制七只发光二极管的点亮, 高电平有效,设定每道工序时间转换为延时,P3.4 为开工启动开关,低电平启动。P3.3 为 外故障输入模拟开关,P3.3 为 0 时不断告警。P1.7 为报警声音输出,设定 6 道工序只有一 三. 实验说明 实验中用外部中断 0 1 2 EX0 位。 一般中断程序进入时应保护 PSW、ACC 以及中断程序使用但非其专用的寄存器,本 四. 实验程序框图35 中断服务子程序 开始 关输出 中断、P1 口、P3 口初始化 P1 口全低 保护现场 报警 故障清除了吗? 恢复现场 返回 N等开工 工序 1 延时 工序 2 延时 工序 7 延时Y五. ①P3.4 连 K1,P3.2 连 K2,P1.0―P1.6 分别连到 L1―L7,P1.7 连 SIN(电子音响输入 端)。 ②K1 开关拨在上面,K2 拨在上面。 ③用连续方式从起始地址 0580H 开始运行程序(输入 0580 后按 EXEC 键),此时应在 等待开工状态。 ④K1 拨至下面(显低电平) ⑤K2 拨至下面(低电平),应有声音报警(人为设置故障) ⑥K2 拨至上面(高电平),即排除故障,程序应从刚才报警的那道工序继续执行。 六. 思考: 修改程序,使每道工序中有多位输出。 七: 实验电路原理图图 2―236 八. 工业顺序控制程序(源文件名:H52S.ASM) ORG 0013H LJMP HA2S3 ORG 0580H HA2S: MOV P1,#07FH ;关各道工序 ORL P3,#00H HA2S1: JNB P3.4,HA2S1 ;开始工作否 ORL IE,#84H ORL IP,#04H MOV PSW,#00H MOV SP,#53H HA2S2: MOV P1,#07EH ;第一道工序 ACALL HA2S7 MOV P1,#07DH ;第二道工序 ACALL HA2S7 MOV P1,#07BH ;第三道工序 ACALL HA2S7 MOV P1,#077H DJNZ 20H,HA2S5 CLR P1.7 ACALL HA2S6 JNB P3.2,HA2S4 ;判故障排除否 MOV R2,B RETI ;排除后中断返回 HA2S6: MOV R2,#06H ;延时子程序 1 ACALL DELAY RET HA2S7: MOV R2,#30H ;延时子程序 2 ACALL DELAY37;第四道工序 ACALL HA2S7 MOV P1,#06FH ;第五道工序 ACALL HA2S7 MOV P1,#05FH ;第六道工序 ACALL HA2S7 MOV P1,#03FH ;第七道工序 ACALL HA2S7 SJMP HA2S2 ;循环 HA2S3:MOV B,R2 ;外部中断服务程序 HA2S4: MOV P1,#07FH ;关各道工序 MOV 20H,#0A0H HA2S5: SETB P1.7 ;声音报警 ACALL HA2S6 CLR P1.7 ACALL HA2S6 RET DELAY:PUSH 02H ;延时子程序 DELAY1: PUSH 02H DELAY2: PUSH 02H DELAY3: DJNZ R2,DELAY3 POP 02H DJNZ R2,DELAY2 POP 02H DJNZ R2,DELAY1 POP 02H DJNZ R2,DELAY RET END 2.2.3 并行 I/O 口 8255 扩展实验 一. 实验目的 了解 8255 芯片的结构及编程方法,学习模拟交通灯控制的实现方法。 二. 实验内容 用 8255 三. 实验程序框图 四. 实验说明 1,因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化情况和规律。假 设一个十字路口为东西南北走向。初始状态 0 8255 初始化 为东西红灯,南北红灯。然后转状态 1 东西绿 灯通车,南北红灯。过一段时间转状态 四个路口红灯亮 2,东西绿灯灭,黄灯闪烁几次,南北仍 然红灯。再转状态 东西绿灯亮,南北红灯亮,延时 3,南北绿灯通车,东西红灯。过一段时 间转状态 4,南北绿灯灭,闪几次黄灯,延时几秒, 东西黄灯闪烁,南北红灯亮,延时 东西仍然红灯。最后循环至状态 1。 五. 实验步骤 东西红灯亮,南北绿灯亮,延时 ①8255 PC0―PC7、PB0―PB3 依次接发 光二极管 L1―L12。 东西红灯亮,南北黄灯闪烁,延时 ②以连续方式从 0630H 开始执行程序, 初始态为四个路口的红灯全亮之后, 东西路口 的绿灯亮南北路口的红灯亮,东西路口方向通车。延时一段时间后东西路口的绿灯熄灭, 黄灯开始闪耀。闪耀若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方 向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪耀。闪耀若干次后,再 切换到东西路口方向,之后重复以上过程。 六. 实验电路原理图38 图 2―3 七. 并行 I/O 口 8255 扩展程序(源文件名:H53S.ASM) ORG 0630H ; HA4S: MOV SP,#60H ;设置堆栈指针 MOV DPTR,#0FF2BH MOV A,#80H ;设置PC、PB 口为输出口, 工作在方式 0 MOVX @DPTR,A MOV DPTR,#0FF29H MOV A,#49H MOVX @DPTR,A HA4S1: INC DPTR MOV A,#49H MOVX @DPTR,A ;点亮四个红灯 MOV R2,#25H LCALL DELAY ;延时 HA4S3: MOV DPTR,#0FF29H39MOV A,#08H MOVX @DPTR,A INC DPTR MOV A,#61H MOVX @DPTR,A ;东西绿灯亮,南北红灯亮 MOV R2,#55H LCALL DELAY MOV R7,#05H ;黄灯闪烁次数为 05H MOV DPTR,#0FF29H MOV A,#04H MOVX @DPTR,A INC DPTR MOV A,#51H ;东西黄灯亮,南北红灯亮 MOVX @DPTR,A MOV R2,#20H LCALL DELAY MOV DPTR,#0FF29H MOV A,#00H MOVX @DPTR,A INC DPTR MOV A,#41H ;南北红灯 MOVX @DPTR,A MOV R2,#20H LCALL DELAY DJNZ R7,HA4S1 ;闪烁次数未到继续 MOV DPTR,#0FF29H MOV A,#03H MOVX @DPTR,A INC DPTR MOV A,#0cH MOVX @DPTR,A ;东西红灯亮,南北绿灯亮 MOV R2,#55H LCALL DELAY MOV R7,#05H ;置黄灯闪烁次数 HA4S2: MOV DPTR,#0FF29H MOV A,#02H MOVX @DPTR,A INC DPTR MOV A,#8aH MOVX @DPTR,A ;东西绿灯亮,南北黄灯亮 MOV R2,#20H LCALL DELAY MOV DPTR,#0FF29H MOV A,#02HMOVX @DPTR,A INC DPTR MOV A,#08H ;东西绿灯亮 MOVX @DPTR,A MOV R2,#20H LCALL DELAY DJNZ R7,HA4S2 ;闪烁次数未到继续 LJMP HA4S3 ;循环 DELAY: PUSH 02H ;延时子程序 开始 置端口地址 从 74LS244 读入开关状态 从 74LS244 输出开关状态 延时 0.01S DELAY1: PUSH 02H DELAY2: PUSH 02H DELAY3: DJNZ R2,DELAY3 POP 02H DJNZ R2,DELAY2 POP 02H DJNZ R2,DELAY1 POP 02H DJNZ R2,DELAY RET END2.2.4 简单 I/O 口输入,输出扩展实验 一. 实验目的 学习在单片机系统中扩展简单 I/ O 口的基本方法。 二. 实验内容 MCS―51 外部扩展空间很大, 但数据总线口和控制信号的负载能力是有限的, 若需要 扩展的芯片较多,则 MCS―51 总线口负载过重,74LS244 是一个输入扩展口,同时也是40 一个单向驱动器,以减轻总线负担。74LS373 做为同向输出口,控制 8 个发光二极管的亮 三. 程序框图说明 四. 实验电路原理图图 2―4 五. 实验步骤 ①74LS244 的输入端 PI0―PI7 接 K1―K8,74LS373 的输出端 PO0―PO7 接 L1―L8。 ②在 EXIC 插座上插上一片 74LS02、一片 74LS32 ③K1―K7 全拨在上面(高电平),L1―L8 ④按 F2 键进入仿真 1 态,即“P..... ⑤用连续方式从起始地址 0600H 开始运行程序。 ⑥拨动 K1―K8,观察 L1―L8 点亮情况。 六. 简单 I/O 口输入,输出扩展程序(源文件名:H54S.ASM) ORG 0600H HA3S: MOV DPTR,#0A000H ;读输入口内容 MOVX A,@DPTR MOV DPTR,#0B000H ;送输出口显示 MOVX @DPTR,A41MOV R2,#20H ACALL DELAY ;调延时子程序 SJMP HA3S ;循环 DELAY: PUSH 02H ;延时子程序 DELAY1: PUSH 02H DELAY2: PUSH 02H DELAY3: DJNZ R2,DELAY3 POP 02H DJNZ R2,DELAY2 POP 02H DJNZ R2,DELAY1 POP 02HDJNZ R2,DELAY RET END2.2.5 A/D 转换 0809 应用实验 一. 实验目的 1 A/ D 2 A/ D 芯片 0809 3 二. 利用实验仪上的 0809 做 A/ D 转换实验,实验仪上的 W1 电位器提供模拟量输入。编 制程序,将模拟量转换成数字量,通过发光二极管 L1―L8 三. 实验说明 A/ D 转换器大致分有三类:一是双积分 A/ D 转换器,优点是精度高,抗干扰性好, 价格便宜,但速度慢;二是逐次逼近式 A/ D 转换器,精度、速度、价格适中;三是并行 A/ D 转换器,速度快,价格也昂贵。实验用 ADC0809 属第二类,是 8 位 A/ D 转换器。每 采集一次一般需 100μ s。由于 ADC0809 A/ D 转换器转换结束后会自动产生 EOC 信号(高 电平有效),取反后将其与 8031 的 INT0 相连,可以用中断方式读取 A/ D 转换结果。 四. 实验电路原理图(图 2―5) 五. 实验步骤 ①把 A/D 区 0809 的 0 通道 IN0 用插针接至 W1 的中心抽头 V01 插孔(0―5V) ②0809 的 CLK 插孔与分频输出端 T4 ③将 W2 的输入 VIN 接+12V 插孔,+12V 插孔再连到外置电源的+12 上(电源内置时, 该线已连好)。调节 W2,使 V REF +5V ④将 A/D 区的 VREF W2 的输出 VREF ⑤EXIC1 上插上 74LS02 芯 片,在 EXIC2 上插 74LS32 芯片一片,将有关线路按图连好。 ⑥将 A/D 区 D0―D7 用排线与 BUS1 区 XD0―XD7 相连。 ⑦仿真实验系统在“P..... ⑧以连续方式从起始地址 06D0 运行程序,在发光二极管 L7―L0 上显示当前采集的 电压值转换后的数字量,调节 W1,L7―L0 将随着电压变化而相应变化,L7―L0 对应数 字量 D7―D0。42 图 2―5 六. 实验程序框图 七. A/D 转换 0809 应用实验(H55S.ASM) ORG 06D0H START: MOV A,#00H ; 通道地址送 0809 并启动 D/A 转换 MOV DPTR,#9000H MOVX @DPTR,A MOV R7,#0FFH ;延时,等待转换结果 H55S: DJNZ R7,H55S MOVX A,@DPTR ;读取转换值 MOV DPTR,#0A000H ;显示转换值 MOVX @DPTR,A SJMP START END 2.2.6 D/A 转换 0832 应用实验 一. 实验目的 1 了解 D/ A 2 了解 D/ A 转换芯片 0832 3 了解单片机系统中扩展 D/ A 二. 开始 0809 初始化 初始显示 00 0809 通道 0 采样 L1―L8 显示采样值43 利用 0832 输出一个从-5V 开始逐渐升到 0V 再逐渐升至 5V,再从 5V 逐渐降至 0V, 再降至-5V 开始 三. 实验程序框图 四. 实验步骤 设置数字量初值 ①把 D/A 区 0832 片选 CS 信号线 接至译码输出插孔 Y0 ②将+12V 插孔、―12V 插孔通过 导线连到外置电源上,如果电源内置 时,则+12V\,-12V ③将 D/A 区 WR 插孔连到 BUS3 区 XWR ④将电位器 W2 的输出 VREF 连 到 D/A 区的 VREF 上,电位器 W2 的输 VIN 连到+12V 插孔, 调节 W2 使 VREF 为+5V ⑤用 8 芯排线将 D/A 区 D0―D7 与 BUS2 区 XD0―XD7 ⑥在“P.....”状态下,从起始地址 0740H 开始连续运行程序(输入 0740 后 按 EXEC 键) ⑦用万用表或示波器 测 D/A 输出端 AOUT,应能测出不断 加大和减小的电压值。 五. 实验电路原理图数字量初值送 0832 启动 D/A数字量增 1 数字量增加到 FF 否 Y 数字量送 0832 启动 D/A 数字量减 1 启动 D/A Y 数字量减到 0 否 N 数字量送 0832 启动 D/A N数字量送 0832 启动 D/A启动 D/A图 2―6 六. 思考: 修改程序,使 D/A 转换输出产生方波或正弦波 七. D/A 转换 0832 应用(源文件名:H56S.ASM) ORG 0740H ;数字量初值 00H 送 0832 HA6S: MOV SP,#53H HA6S2: MOV DPTR,#8000H HA6S1: MOV R6,#00H MOV A,R644 MOVX @DPTR,A MOV R2,#0BH ;延时 LCALL DELAY INC R6 ; 数字量加 1 继续转换直到为 FFH 为止 CJNE R6,#0FFH,HA6S2 HA6S3: MOV DPTR,#8000H ;从 FFH 开始减 1 转换 DEC R6 MOV A,R6 MOVX @DPTR,A MOV R2,#0BH ;延时 LCALL DELAY CJNE R6,#00H,HA6S3 ; 数字量减 1 继续转换直到为00H 为止 SJMP HA6S1 DELAY: PUSH 02H ;延时子程序 DELAY1: PUSH 02H DELAY2: PUSH 02H DELAY3: DJNZ R2,DELAY3 POP 02H DJNZ R2,DELAY2 POP 02H DJNZ R2,DELAY1 POP 02H DJNZ R2,DELAY RET ENDINT―T0 中断服务程序 2.2.7 串并转换实验 INT T0 入口 一. 实验目的 1 8031 串行口方式 0 工作方式及编程方法。 保护现场 2 I/O 通道的方法。 二. 置 T0 定时常数 利 用 0831 串 行 口 和 串行 输 入 并 行 输 出 移 位寄存 器 74LS164,扩展一个 8 位输出通 N 判是否到 1 秒 开始 道,用于驱动一个数码显示器, 在显示器上循环显示从 8031 串行 Y 设置 T1 参数 口输出的 0―9 这 10 个数字。 读表格 三. 实验程序框图 设置初始常数 四. 送串口显示 串行口工作在方式 0 时,可 通过外接移位寄存器实现串并行 置串口模式 调整表格指针 转换。在这种方式下,数据为 8 位,只能从 RXD 端输入输出, 开中断 恢复现场 TXD 端总是输出移位同步时钟信 号,其波特率固定为晶振频率 1/ 等待 中断返回 12。由软件置位串行控制寄存器 启动 D/A (SCON)的 REN 后才能启动串行接收, 在 CPU 将数据写入 SBUF 寄存器后, 立即启动发送。 待 8 位数据输完后,硬件将 SCON 寄存器的 TI 位置 1,TI 五. 实验步骤 ①将 S/P 区 DATA 插孔接 BUS 3 区 P3.0(RXD)45 ②将 S/P 区 CLK 插孔接 BUS 3 区 P3.1(TXD) ③将 S/P 区 CLR 插孔接 MP 区 /SP 插孔,上电时对 164 复位。 ④在 DVCC 系统处于仿真 1 态即“P.”状态下,将地址 000B 内容改为 E1B1,作为定 时器 0 的入口地址。 ⑤将状态切换为“P.....”状态,从地址 0790H 开始连续执行程序。 ⑥在扩展的一位数码管上循环显示 0―9 这 10 个数字。 六. 实验电路原理图图 2―7 七. 串并转换实验程序(源文件名:H57S.ASM) TIMER EQU 01H ORG 000BH ;T0 中断程序入口 断 AJMP INT_T0 ORG 0790H START: MOV SP,#53H MOV TMOD,#01H ;T0 方式 1 MOV TL0,#00H ;设定时时间常数为 50ms MOV TH0,#4BH MOV R0,#0H MOV TIMER,#20 MOV SCON,#00H ;置串行口工作方式 CLR TI CLR RI SETB TR0 SETB ET0 ;开中断 SETB EA SJMP $ INT_T0: PUSH ACC ;T0 中断服务程序46PUSH PSW CLR EA;保护现场 ;关中CLR TR0 MOV TL0,#0H ;延时 50ms 的常数 MOV TH0,#4BH SETB TR0 DJNZ TIMER,EXIT MOV TIMER,#20 ;延时 1 秒的常数 MOV DPTR,#CDATA ;置表格基址 MOV A,R0 MOVC A,@A+DPTR ;置表格偏移量 CLR TI ;读表格数据 CPL A MOV SBUF,A ;串行发行数据 INC R0 CJNE R0,#0AH,EXIT EXIT:;判断是否到表尾 POP PSW ;恢复现场 MOV R0,#0H POP ACC RETI ;调整表格偏移量 SETB EA ;开中断 CDATA: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H2.2.8 定时/计数器 8253A 应用 开始 一. 实验目的 1 学会 8253A 置 8253 工作方式控制字 2 掌握 8253A 定时器/ 二. 实验内容 8253A 的 0 通道工作在方式 3 启动 8253 方波程序 三. 四. 实验步骤 结束 ①用插针把 8253 的 CLK0 插孔和分频输出端 T2 插孔相 ②8253 的 GATE0 插孔和+5V ③8253 的片选信号 8253CS 和译码输出端 Y4 ④KBB 拨在左边 OFF 位置。 ⑤用排线将 SIO 区的 D0―D7 连到 BUS2 区 XD0―XD7 ⑥在“P.....”状态下,从起始地址 08C0H 开始连续运行程序,用示波器测 8253 的 0 通道输出端 OUTO,应有方波产生。 五 . 实 验 电 路 原 理 图 六 . 定时 / 计数器 8253A 应用程序(源文件名:H58S.ASM) ORG 08C0H L8253:MOV DPTR,#0C003H MOV A,#36H MOVX @DPTR,A ; 置 8253 工作方式 (定 时器/计数器 0 输出方波) MOV DPTR,#0C000H MOV A,#00H ;启动 8253 MOVX @DPTR,A MOV A,#10H 图 2―8 MOVX @DPTR,A SJMP $ END 2.2.9 8279 键盘显示实验 一. 实验目的 1 8031 系统中,扩展 827947 2 8279 二. 在外接的键盘功能板上, 按数字键, 数码管上应相应能显示按下的数字, 按下功能键, 三. 实验说明 利用 8279 可以实现对键盘/显示器的自动扫描,以减轻 CPU 负担,具有显示稳定,程 序简单,不会出现误动作等特点。本实验利用 8279 四. 实验程序框图 8279 初始化 显示器显示 P N 有键按下吗? Y 数字键吗?&功能键& Y 计算键值 查字型代码 送显示缓冲区 显示 五. 实验步骤 ①将 DVCC 实验系统上 J8 ②将 KEY 区 D0―D7 用 8 芯排线连到 BUS2 区 XD0―XD7 ③将 KEY 区 WR、RD、ALE 分别连到 BUS3 区 XWR、XRD、ALE ④KEY 区 A0 连到 BUS1 区 XA0 ⑤KEY 区 RST 连到 MP 区 SP ⑥KEY 区 KCS 连到 SELET 区的 Y3 ⑦在 DVCC 实验系统上按 F2 键进入仿真 1 态,即显示“P.....” ,从起始地址 08F0H 开 始连续执行程序。 六. 实验电路原理图 N 计算键值散转 0 字循环 1 字循环 2 字循环48 图 2―9 七. 8279 键盘显示实验程序(源文件名:H59S.ASM) ORG 08F0H HA7S: MOV SP,#53H MOV DPTR,#0B001H MOV A,#00H MOVX @DPTR,A ;写 8279 方式字 MOV A,#32H MOVX @DPTR,A ;写分频系数 MOV A,#0DFH MOVX @DPTR,A ;清显示缓冲区 HA7S1: MOVX A,@DPTR JB ACC.7,HA7S1 MOV DPTR,#0B000H MOV A,#0C8H MOVX @DPTR,A ;字形送入 8279 INC DPTR49MOV A,#80H MOVX @DPTR,A ;字位送入 8279(显示 P) HA7S2: MOV 30H,#80H MOV 31H,#40H HA7S3: MOV DPTR,#0B001H MOVX A,@DPTR ANL A,#07H CJNE A,#00H,HA7S4 ;有键按下吗? AJMP HA7S3 HA7S4: MOV DPTR,#0B000H MOVX A,@DPTR MOV B,A ;取键值 MOV R1,#00H MOV DPTR,#KEYTAB HA7S5:MOV A,#00H MOVC A,@A+DPTR CJNE A,B,HA7S6 MOVX @DPTR,A ;查键值表是否相同 AJMP HA7SA ;字位送入 8279 MOV A,R1 ;转数字键处理程序 HA7S6: INC DPTR MOV R0,31H MOV @R0,A ;键值表地址加 1 INC R1 ; 查找次数加 1 INC 31H ;字形缓冲区加 MOV A,R1 1 JB ACC.4,HA7S7 MOV DPTR,#CDATA MOVC A,@A+DPTR ;是功能键吗? AJMP HA7S5 ;继续查找 ;取字形代码 HA7S7: MOV R1,#00H MOV DPTR,#0B000H MOV DPTR,#KEYTAB1 MOVX @DPTR,A HA7S8: MOV A,#00H ;送 8279 显示 MOVC A,@A+DPTR INC 30H ;取出功能键键值 ;字位加 1 CJNE A,B,HA7S9 MOV A,30H CJNE A,#88H,HA7SB ;键值相同吗? AJMP HA7SC ;显示到 8 位从头开始 LJMP HA7S2 ;转功能键处理子程序 HA7S9: INC DPTR HA7SB: AJMP HA7S3 INC R1 HA7SC: MOV DPTR,#KJPADDR MOV A,R1 MOV A,R1 JNB ACC.2,HA7S8 RL A ADD A,R1 ;继续查找 AJMP HA7SD JMP @A+DPTR ;无键按下返回 ;功能键散转处理 HA7SD: LJMP HA7S KJPADDR: LJMP LOOP0 HA7SA: MOV A,30H LJMP LOOP1 MOV DPTR,#0B001H LJMP LOOP2 KEYTAB: DB 0C1H,0C8H,0C9H,0D0H,0D8H,0E0H,0C2H,0CAH,0D1H,0D9H DB 0DAH,0C3H,0CBH,0D2H,0D3H,0DBH KEYTAB1:DB 0E3H,0E2H,0E1H CDATA: DB 0CH,9FH,4AH,0BH,99H,29H,28H,8FH,08H,09H,88H,38H DB 6CH,1AH,68H,0E8H LOOP0: MOV R5,#0CH LJMP DISPC LOOP1: MOV R5,#9FH LJMP DISPC LOOP2: MOV R5,#4AH ;0 字循环 ; 1 字循环 DISPC: MOV R6,#80H ;2 字循环 DISPC1: MOV A,R6 MOV DPTR,#0B001H MOVX @DPTR,A ;字位送 827950 MOV A,R5 MOV DPTR,#0B000H MOVX @DPTR,A ;字形送 8279 MOV R2,#20H LCALL DELAY ;延时 MOV A,#0FFH MOVX @DPTR,A ;关显示 INC R6 ;下一位显示 CJNE R6,#88H,DISPC1 AJMP DISPC ;不到最后 1 位继续 2.2.10 微型打印机打印字符、曲线、 汉字 一. 实验目的 了解微型打印机和 8031 系统联接方 法,掌握编程技巧。 二. 实验内容 微型打印机打印年、 月、 日和启东及曲 三. LH―16 打印机自带单片微型计算机, 便于和各种 CPU 的微型计算机或智能化仪 器仪表联机, 采用标准 CENTRONICS 并行 接口信号,逻辑电平为标准的 TTL 电平。 . 实验步骤 ①把 LH―16 微型打印机连接电缆联 接到 DVCC 实验系统 J7DELAY: PUSH 02H ;延时子程序 DELAY1: PUSH 02H DELAY2: PUSH 02H DELAY3: DJNZ R2,DELAY3 POP 02H JNZ R2,DELAY2 POP 02H DJNZ R2,DELAY1 POP 02H DJNZ R2,DELAY RET END开始 8255I/O 初始化 字符打印 8 个# 打印 99 年 12 月 30 日 打印 8 个# 图形打印方式打印启东 打印存放在表格里的曲线点阵数 显示 五. 实验程序框图 六.实验电路原理图 七. 打印机打印字符、曲线、汉字实验程 序(源文件名:H510S.ASM)图 2―10 ②在 P 状态下,从起始地址 0930 开始51ORG 0EE0H HA9S: MOV SP,#53H MOV DPTR,#0FF2BH ;设 8255A 口为基本输出口 MOV A,#88H ;C 口为基本输入 MOVX @DPTR,A ACALL HA9SB ;打印空格和#号 ACALL HA9S3 ;换行 MOV R6,#0A6H ;取代码偏移量 MOV R7,#0DH ;设 13 个代码 HA9S1: MOV A,R6 MOVC A,@A+PC ;取代码 ACALL HA9SD ;打印 INC R6 DJNZ R7,HA9S1 ;未完继续 ACALL HA9S3 ACALL HA9SB ;再打印一行空格和#号 ACALL HA9S3 ACALL HA9S5 ;设置行间距子程序 ACALL HA9SA ;图形打印命令子程序 MOV R6,#68H ACALL HA9S6 ;取代码偏移量 ACALL HA9SA ;打印上部图形 MOV R6,#8CH ACALL HA9S6 ;打印下部图形 ACALL HA9S4 ACALL HA9S4 ;回车换行 MOV DPTR,#PRDATA ;曲线数据存放首址 MOV R6,#14H ACALL HA9S8 ;取曲线数据 MOV R7,#0DH ;行数52HA9S2: MOV R6,#09H ;列数 ACALL HA9S8 ;取曲线次数 DJNZ R7,HA9S2 SJMP $ HA9S3: MOV A,#0AH ;打印机完否? ACALL HA9SD ;调换行子程序 RET HA9S4: MOV A,#0DH ;回车子程 序 ACALL HA9SD RET MOV A,#1BH ACALL HA9SD MOV A,#31H ACALL HA9SD ;ESC in(n=0) MOV A,#00H ;行间距等于 0 ACALL HA9SD ACALL HA9S3 RET MOV R7,#24H MOV A,R6 MOVC A,@A+PC ACALL HA9SD ;36 个图形代码送打印机 INC R6 DJNZ R7,HA9S7 ACALL HA9S3 RET MOV A,#1BH ACALL HA9SD MOV A,#27H ACALL HA9S4 ;ESC/m n1 n2 nk CR 命令 MOV A,R6 ACALL HA9SD ; (R6)=mHA9S5:HA9S6: HA9S7:HA9S8: HA9S9: MOVX A,@DPTR ACALL HA9SD INC DPTR DJNZ R7,HA9SC RET ; (DPTR)=n1 n2 nk ACALL HA9SD HA9SD: PUSH DPH DJNZ R6,HA9S9 PUSH DPL PUSH ACC ACALL HA9S4 ;CR 命令 RET MOV DPTR,#0FF2AH HA9SA: MOV A,#1BH HA9SE: MOVX A,@DPTR ACALL HA9SD JB ACC.4,HA9SE MOV A,#4BH ;打印机忙否? ACALL HA9SD POP ACC MOV DPTR,#0FF28H ;ESC K n1 n2 MOV A,#24H MOVX @DPTR,A ;图形打印命令 ;送打印机 ACALL HA9SD MOV DPTR,#0FF2BH MOV A,#00H MOV A,#00H ACALL HA9SD MOVX @DPTR,A RET ;产生 STB 后沿 HA9SB: MOV R7,#20H MOV A,#01H HA9SC: MOV A,#23H MOVX @DPTR,A ACALL HA9SD POP DPL POP DPH ;打印 7 个#和空格 MOV A,#20H RET PRDATA: DB 23H,20H,39H,34H,8CH,31H,32H,8DH,33H,30H,8EH,20H,23H DB 00H,00H,00H,7FH,3FH,22H,22H,0A2H,0E2H,62H,22H,22H,22H,3EH,7FH,20H,00H,00H DB 00H,00H,00H,00H,20H,21H,27H,3FH,79H,0E1H,0BFH,27H,21H,21H,23H,61H,20H,00H DB 00H,03H,06H,0FCH,0FCH,7FH,3EH,22H,22H,22H,22H,22H,22H,3FH,7FH,20H,00H,00H DB 00H,00H,00H,00H,04H,0CH,0B8H,70H,22H,02H,0FEH,0FEH,00H,40H,38H,1EH,08H,00H 2.2.11 步进电机控制实验 一. 实验目的 153 2 二. 从键盘上输入正、反转 命令,转速参数和转动步数 显示在显示器上,CPU 再读 取显示器上显示的正、反转 命令, 转速级数(16 级)和转动 步数后执行。转动步数减为图 2―11 开始 从键盘输入数据,数码管显示 N 执行键是否按下? Y 显示缓冲区(7E)=1 吗? Y 逆时针转动一部 步距数-1,送显示缓冲区 根据显示缓冲区(7D)内容计算延时 步距数为 0 吗? 步距数-1,送显示缓冲区 N 步距数为 0 吗? Y 停止 三. 实验电路原理图(图 2―11) 四. 实验程序框图 五. 实验说明 步进电机驱动原理是通过对它每相线圈中的电流和顺序切换来使电机作步进式旋转。 驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速,微电脑 六. 实验步骤 1 J3 插座中,P1.0―P1.3 接到 BA―BD 2 P.”状态下, 从始地址开始(0A30H)连续执行程序。输入始地址后按 EXEC 键。 停止 N 顺时针转动一步 (7D)内容计算延时54 3 0 表示正转,为 1 表示反转,第二 位 0―F 为转速等级,第三到第六位设定步数,设定完按 EXEC 键,步进电机开始旋转。 七. 步进电机控制程序(源文件名:H511S.ASM) ORG 0A30H MONIT: MOV SP,#50H MOV 7EH,#00H ;设步进电机正转标志显示在第一位 MOV 7DH,#02H ;设步进电机速转控制值显示在第二位 MOV R0,#7CH ;设步距数值为 8888,显示在第三到第六位 MOV A,#08H MOV R4,#04H MONIT1: MOV @R0,A ADD A,7BH DEC R0 MOV R7,A DJNZ R4,MONIT1 MOV A,7EH CJNE A,#00H,MONIT4 MOV A,#7EH ; 置显示位置 标志 ;判转动方向 MOV DPTR,#1FFFH MONIT3: MOV P1,#03H ; 顺时针转 MOVX @DPTR,A LCALL DELAY0 MOV 76H,#00H LCALL MONIT5 MOV 77H,#00H MOV P1,#06H KEYDISP0:LCALL KEY LCALL DELAY0 LCALL MONIT5 ;调显示键扫子程序 JC DATAKEY MOV P1,#0CH LCALL DELAY0 ;转数字键处理 AJMP MONIT2 LCALL MONIT5 MOV P1,#09H ;转功能键处理 DATAKEY:LCALL DATAKEY1 LCALL DELAY0 DB 79H,7EH LCALL MONIT5 SJMP KEYDISP0 SJMP MONIT3 MONIT2: CJNE A,#16H,KEYDISP0 MONIT4:MOV P1,#09H ;不是执行键转 ;逆时针转 LCALL DELAY0 LCALL DISP ; 调显示子程序 MOV A,7AH LCALL MONIT5 MOV P1,#0CH ;取步距数送 R6、R7 ANL A,#0FH LCALL DELAY0 SWAP A LCALL MONIT5 ADD A,79H MOV P1,#06H MOV R6,A LCALL DELAY0 MOV A,7CH LCALL MONIT5 ANL A,#0FH MOV P1,#03H SWAP A LCALL DELAY055 LCALL MONIT5 SJMP MONIT4 MONIT5:DEC R6 CJNE R6,#0FFH,MONIT6 DEC R7 CJNE R7,#0FFH,MONIT6 ;判步距数到否 LJMP MONIT ; 重新开始 MONIT6: LCALL MONIT7 RET MONIT7: MOV R0,#79H MOV A,R6 LCALL MONIT8 MOV A,R7 LCALL MONIT8 LCALL DISP RET MONIT8: MOV R1,A ACALL MONIT9 MOV A,R1 SWAP A MONIT9: ANL A,#0FH MOV @R0,A INC R0 RET DELAY0: MOV R0,#7DH ;根据(7D)内容改变延时时间 MOV A,@R0 SWAP A MOV R4,A DELAY1: MOV R5,#80H DELAY2: DJNZ R5,DELAY2 LCALL DISP DJNZ R4,DELAY1 RET DATAKEY1:MOV R4,A ;数字键处理子程序 MOV DPTR,#1FFFH MOVX A,@DPTR MOV R1,A56MOV A,R4 MOV @R1,A CLR A POP 83H POP 82H MOVC A,@A+DPTR INC DPTR CJNE A,01H,DATAKEY3 DEC R1 CLR A MOVC A,@A+DPTR DATAKEY2: PUSH 82H PUSH 83H MOV DPTR,#1FFFH MOVX @DPTR,A POP 83H POP 82H INC DPTR PUSH 82H PUSH 83H RET DATAKEY3: DEC R1 MOV A,R1 SJMP DATAKEY2 KEY0: MOV R6,#20H ;数字键显示闪动程序 MOV DPTR,#1FFFH MOVX A,@DPTR MOV R0,A MOV A,@R0 MOV R7,A MOV A,#10H MOV @R0,A KEY3: LCALL KEYDISP JNB 0E5H,KEY2 DJNZ R6,KEY3 MOV DPTR,#1FFFH MOVX A,@DPTR MOV R0,A MOV A,R7 MOV @R0,A MOV R6,#50H ;显示键扫子程序 KEY1: LCALL KEYDISP JNB 0E5H,KEY2 DJNZ R6,KEY1 SJMP KEY0 KEY2: MOV R6,A MOV A,R7 MOV @R0,A MOV A,R6 KEYEND: RET KEYDISP:LCALL DISP LCALL KEYSM ;调键扫子程序 MOV R4,A ;键消抖 MOV R1,#76H MOV A,@R1 MOV R2,A INC R1 MOV A,@R1 MOV R3,A XRL A,R4 MOV R3,04H MOV R4,02H JZ KEYDISP1 MOV R2,#88H MOV R4,#88H KEYDISP1: DEC R4 MOV A,R4 XRL A,#82H JZ KEYDISP2 MOV A,R4 XRL A,#0EH JZ KEYDISP2 MOV A,R4 ORL A,R4 JZ KEYDISP3 MOV R4,#20H DEC R2 KEY:57LJMP KEYDISP5 KEYDISP3: MOV R4,#0FH KEYDISP2: MOV R2,04H MOV R4,03H KEYDISP5: MOV R1,#76H MOV A,R2 MOV @R1,A INC R1 MOV A,R3 MOV @R1,A MOV A,R4 CJNE R3,#10H,KEYDISP4 KEYDISP4: RET DISP: SETB 0D4H ;显示子程序 MOV R1,#7EH MOV R2,#20H MOV R3,#00H DISP1: MOV DPTR,#0FF21H MOV A,R2 MOVX @DPTR,A MOV DPTR,#DATA1 MOV A,@R1 MOVC A,@A+DPTR MOV DPTR,#0FF22H MOVX @DPTR,A DISP2: DJNZ R3,DISP2 DEC R1 CLR C MOV A,R2 RRC A MOV R2,A JNZ DISP1 MOV A,#0FFH MOV DPTR,#0FF22H MOVX @DPTR,A CLR 0D4H RET DATA1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H, 0F8H,80H,90H 开始 置 0832 口地址 数字量 FF 送 0832,启动 D/A N 判高电平时间到否? Y 数字量 00 送 0832,启动 D/A N 判低电平时间到否? Y 高电平时间初值减 1 低电平时间初值加 1 DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,8 9H,0DEH KEYSM: SETB 0D4H ;键扫子程序 MOV A,#0FFH MOV DPTR,#0FF22H MOVX @DPTR,A ;关显示 KEYSM0: MOV R2,#0FEH MOV R3,#08H MOV R0,#00H KEYSM1: MOV A,R2 ;使第一列为 0 MOV DPTR,#0FF21H MOVX @DPTR,A NOP RL A MOV R2,A MOV DPTR,#0FF23H MOVX A,@DPTR KEYSM3: KEYSM2:KEYSM4:KEYSM5: KEYSM7:KEYSM9:KEYSM10: DATA2: DB 07H,04H,08H,05H,09H,06H,0AH,0BH ;键值表(0―F) DB 01H,00H,02H,0FH,03H,0EH,0CH,0DH ENDCPL A ;读行值 NOP NOP NOP ANL A,#0FH JNZ KEYSM2 INC R0 ;无键继续扫描下一行 DJNZ R3,KEYSM1 SJMP KEYSM10 CPL A ;有键,计算键值 JB 0E0H,KEYSM3 MOV A,#00H SJMP KEYSM7 JB 0E1H,KEYSM4 MOV A,#08H SJMP KEYSM7 JB 0E2H,KEYSM5 MOV A,#10H SJMP KEYSM7 JB 0E3H,KEYSM10 MOV A,#18H ADD A,R0 CLR 0D4H CJNE A,#10H,KEYSM9 JNC KEYSM10 MOV DPTR,#DATA2 MOVC A,@A+DPTR RET58 2.2.12 直流电机调速实验 一. 实验目的 1 2 二. 实验内容 1 0832 D/A 转换电路后的输出经放 大后驱动直流电机。 2 0832 输出经放大后的 方波信号的占空比来控制电机转速。 本实验中 D/A 输出为双极性输出, 因此电机可以正反向开始置 0832 口地址数字量 FF 送 0832,启动 D/A N 判高电平时间到否? Y数字量 00 送 0832,启动 D/A 三. 实验程序框图 四. N 判低电平时间到否? 1 将 D/A 区 0832 的片选信号连到译码 Y 输出 Y0 上。 2 0832 的输出 AOUT 端连到 DJ 插孔。 高电平时间初值减 3 直流电机插头插到实验仪 DM 插座 1 上。 低电平时间初值加 4 D/A 区 0832 的 WR 连到 BUS3 区 1 XWR。 5 将+12V、 -12V 插孔用导线连到外置电 源上。如果电源内置,则+12V、-12V 6 D/A 区 0832 的 VREF W2 的输出 VREF W2 输入 VIN 连到+12V 插孔,调节 W2,使 VREF +5V 7 将 DMTO 区-5V 插孔用导线连到外置电源上, 如果电源内置, -5V 线内部已连好。 五. 实验电路原理图图 2―12 六. 1 2、在“P.....”状态下,从起始地址 0C30H 3、观察直流电机的转速。 七. 直流电机调速实验程序(源文件名:H512S.ASM)59 ORG 0C30H HA14S: MOV SP,#53H MOV DPTR,#8000H MOV A,#0FFH HA14S1:MOVX @DPTR,A ;数字量 FF 送 0832 转换 LCALL DELAY ; 即+5V 输出驱动直流电机 HA14S2:DEC A ;数字量减 1 送 0832 转换 LCALL DELAY MOVX @DPTR,A JNE A,#00H,HA14S2 ;数字量未减到 0 继续 HA14S3: INC A;数字量减到 0 后加 1 MOVX @DPTR,A ;转换 LCALL DELAY CJNE A,#0FFH,HA14S3 ;数字量未加到 FF 继续 SJMP HA14S1 ;数字量加到 FF 后循环 DELAY: MOV R7,#0FFH ;延时子程序 DELAY1: MOV R6,#80H DELAY2: DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET END2.2.13 电 子 音 响 实验 一. 实验目的 了解计算机发出不同音调声音的编程 方法。 二. 实验内容 利用定时器产生不同频率的方法,组成 乐谱由单片机进行信息处理, 经过放大利用
图 2―13 三. 实验说明 (1)要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以 2,即为半 周期的时间,利用计时器计时此半周期时间,计时到后即反相输出,重复此过程即得到此 频率的脉冲。 (2)让定时器工作在计数方式,改变计数值 TH0 及 TL0 (3)每个音符使用一个字节,字节的高四位代表音符的高低,低四位代表音符的节拍。 四. 实验电路原理图( 图 2―13) 五. 实验步骤 (2) 把软盘上 ROG0 文件装载到 DVCC 仿真实验系统的 RAM 区,起始地址为 8000H (3) 把 P1.7 用插针连至 SIN 插孔上。喇叭插头线插到 DVCC 系统 J5 “P.”状态下,从 8000H 开始连续执行程序,放出“祝您生日快乐”等歌曲。 六. 电子音响程序(源文件名:H513S.ASM) (程序略) 2.2.14 继 电 器 控 制 实验 一. 实验目的60 二. 利用 P1 三. 实验说明 现代自动化控制设备都存在一个电子与电气电路的互相 联结问题, 一方面要使电子电路的控制信号能够控制电气电路的执行元件(电动机、 电 磁铁、电灯等),另一方面又要为电子电路和电气电路提供良好的电隔离,以保护电子电路 本实验采用 JZC―23F 型继电器,其控制电压为 5V。继电器电路中一般要在继电器的 四.实验程序框图 五. 实验电路原理图 开始 P1.0 清零 延时 P1.0 置 1 延时六. 实验步骤 图 2―14 1 在 EXIC1 上插上 07 2 8031 的 P1 0 插孔接到 07 芯片的第一脚,07 芯片的第二脚接 JIN 端,继电 器的 JZ(中心轴头)接 GND,JK 常开开关接 L1,JB 常闭开关接 L2 3 编制程序,使 P1 0 电平变化,低电平时继电器吸合,常开触点接上 L1 点亮, L2 熄灭,高电平时继电器不工作,常闭触点闭合,L1 熄灭,L2 4 在“P 0C60H 开始连续运行程序,L1、L2 交替亮灭 七.继电器控制程(源文件名:H514S.ASM) ORG 0C60H DELAY: MOV R7,#0FFH START: SETB P1.0 DELAY1: MOV R6,#0FFH LCALL DELAY DELAY2: DJNZ R6,DELAY2 CLR P1.0 DJNZ R7,DELAY1 LCALL DELAY RET SJMP START END61 2.2.15 数 据 存 贮 器 和 程 序 存 贮 器 扩 展实验 一. 实验目的 开始 1 学习片外存贮器扩展方 2 学习数据存贮器不同的读写方法。 置测试数据1 3 二. 写外部RAM 1 使用一片 2764EPROM,作

我要回帖

更多关于 万用表测试线路通断 的文章

 

随机推荐