51实验指导.doc_第1页
51实验指导.doc_第2页
51实验指导.doc_第3页
51实验指导.doc_第4页
51实验指导.doc_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DICE598K 51单片机实验指导手册单片机实验指导手册 一 一 系统概述系统概述 一 系统简介系统简介 采用在DICE598K主板上扩充一块51K CPU插件板的方式构成51单片机实验系统 配有二片61C256静态RAM构成系统的64K基本内存 地址范围为00000H 0FFFFH 其中00000H 00FFFH监控占用 另配一片W27C512 64K EP1存放监控程序 地址范围F0000H FFFFF 还配有一片W27C512 EP2存放实验程序 为实验系统独立运行时下载实验程序提供方便 自带键盘 显示器 能独立运行 为实验程序调试带来方便 配备Windows仿真调试软件 支持机器码 汇编 C等三种语言的开发和调试 提供标准RS232异步通讯口 以连接IBM PC机 配有各种微机常用I O接口芯片 定时 计数接口芯片8253 A D转换接口芯片0809 D A转换接口芯 片0832 中断控制器8259 键盘显示接口8279 并行I O接口芯片8255 通讯接口芯片8250 8251 485和DMA控 制器8237等 配备键盘 数码显示 发光二极管显示 开关量 LED16 16 LCD12864 温度压力 步进电机 直流电机 扬声器等输入输出设备 带有脉冲发生器 计数器电路 单脉冲发生器等常用电路 可以单步 断点 全速调试各实验程序 内置开关电源 为实验提供 5V 3A l2V 0 5A直流稳压电源 使用环境 环境温度0 40 无明显潮湿 无明显振动碰撞 配备USB接口的电子实验演示装置 通过编制程序 对模拟控制对象进行实时控制 二 系统地址分配系统地址分配 1 存贮器地址分配 地址器件用途 0000H 0FFFFHAT89S58 27C512用户程序空间 0000H 7FFFH61C256用户数据空间 2 I O地址分配 地址扩展名称用途 0FF80H 自定义实验用口地址 0FF90H自定义实验用口地址 0FFA0H 自定义实验用口地址 0FFB0H 自定义实验用口地址 0FFC0H自定义实验用口地址 0FFD0H自定义实验用口地址 0FF20H系统 8255 PA 口键扫 字位口 0FF21H系统 8255 PB 口字形口 0FF22H系统 8255PC 口键入口 0FF23H系统 8255 控制口控制口 0FF28H扩展 8255PA 口扩展用 0FF29H扩展 8255PB 口扩展用 0FF2AH扩展 8255PC 口扩展用 0FF2BH扩展 8255 控制口控制口 60H EX1实验用 三 系统接口定义系统接口定义 1 CZ1 MAIN COM 通讯接口 图1 1 2 CZ4 打印接口 图1 2 3 JX0 JX17为系统提供的数据总线接口 图2 3 4 CZ7 系统提供的扩展接口 图2 4 5 JX12 JX14 液晶显示接口 图2 5 四 通用电路简介 1 LED发光二极管指示电路 实验台上包括16只发光二极管及相应驱动电路 见图2 6 Ll L16为相应发光 二极管驱动信号输入端 该输入端为低电平 0 时发光二极管亮 图2 6 2 逻辑电平开关电路 见图2 7 实验台上有8只开关Kl K8 与之相对应的K1 K8各引线孔为逻辑电平输出 端 开关向上拨相应插孔输出高电平 l 向下拨相应插孔输出低电平 0 图2 7 3 单脉冲电路 实验台上单脉冲产生电路如图2 8 标有 和 的两个引线插孔为正负单 脉冲输出端 AN为单脉冲产生开关 每拨动一次产生一个单脉冲 图2 8 4 分频电路 该电路由一片74LS393组成 见图2 9 T0 T7为分频输出插孔 该计数器在加电时由RESET信 号清零 当脉冲输入为8 0MHZ时 T0 T7输出脉冲频率依次为 4 0MHZ 2 0MHZ 1 0MHZ 500KHZ 250KHZ 125KHZ 62500HZ 31250HZ 图2 9 5 脉冲发生电路 实验台上提供8MHZ的脉冲源 见图2 10 实验台上标有8MHZ的插孔 即为脉冲的输出 端 图2 10 6 485接口电路 图2 11 7 通讯接口电路 图2 12 8 数码管显示电路 图2 13 9 键盘电路 图1 14 10 目标CPU SST89C58 的控制电路 图1 15 11 存储器控制电路 图1 15 二 二 系统系统安装与使用安装与使用 一 软件安装 一 软件安装 1 1 系统要求系统要求 Pentium Pentium 或兼容处理器的 PC 机 Windows95 98 NT4 0 2000 XP 16MB RAM 20MB 硬盘空间 2 2 软件安装说明软件安装说明 运行随机光盘上 DICE 51 仿真开发系统 安装文件 根据提示完成软件安装 然后双击桌面上 DICE 51 仿 真开发系统 银环快捷图标 即可运行 DICE 51 仿真软件 关于该软件的使用参见 DICE 51 CHM 帮助文档 3 3 实验演示模拟装置的软件安装说明实验演示模拟装置的软件安装说明 随机的光盘中有一个电子演示装置文件夹 其中有下列文件 setup exe 演示装置上位软件 点击后自动安装 d12test sys 演示装置 USB 接口驱动程序 usbtest exe 该文件用于测试演示装置的 32 个 I O 口 安装方法 双击 setup exe 根据提示直至安装完毕 然后用 USB 线将演示装置连接到 PC 机 USB 口 屏幕会提示发 现新硬件 根据提示引导进行安装 当选择驱动程序时请把路径指向光盘上的 d12test sys 并直至安装完毕 二 硬件安装二 硬件安装 1 硬件安装说明硬件安装说明 我们通过 DICE 3000 仿真器来连接实验系统和 PC 机 首先用随机串行通讯电缆连接仿真器串行口和 PC 机串 行口 然后用随机扁平线连接仿真器和实验系统的 JCF IDC34 口 从面完成实验系统与 PC 机的联机 注 实验系统上的 CZ11 串行口为用户实验串行口 2 实验演示模拟装置的硬件安装说明实验演示模拟装置的硬件安装说明 用随机 USB 通讯线来连接 DICE 5203K 实验系统的演示模拟装置和 PC 机 首先用 USB 通讯线的扁平 USB 接口与 PC 机的通用 USB 接口相连 然后用 USB 通讯线的方形 USB 接口与 DICE 5203K 实验系统演示模拟装置区 的 USB 接口相连 从而完成实验演示模拟装置与 PC 机的硬件安装 3 系统开关设置系统开关设置 1 SW1 程序空间选择开关 SW1 IP 选择 CPU 内部 出厂模式 SW1 UP 选择 CPU 外部 此时可 脱机运行 EPROM 中固化的程序 2 SW3 SW4 SW5 全部置 ON KB6 开关拨向 59 一侧 把 51K CPU 卡插到 CPU 卡座上 在 8088Unit 两侧 51K CPU 卡短路块向片外程序短接 3 脱机使用 接通实验仪电源 数码管应显示 P 51 表明实验系统处于 51 脱机状态 可通过实验系统键入相应 的实验序号 再按 EX FV 键 即可全上全速执行该实验程序 例如输入数字键 0 9 连接好 A D 实验的导线 再按 EX FV 键 即可运行实验序号九的 A D 实验程序 仿真器所接实验系统的 JCF IDC34 口为系统通讯口 用于程序的仿真 连接 装载 而实验系统的 CZ11 口为用户实验通讯口 用于实验系统与 PC 机之间的串行口通讯实验 4 连PC机操作 用34芯导线连接线连接JF 51K CPU卡上 和仿真器接口 在CPU卡右侧 此时数码管熄灭 自动进入连 机状态 用通讯电缆连接实验系统的CZ1口和PC机的串口COM1 或COM2 运行DICE 51仿真开发系统软件 51单片机部分实验源程序在598Kasm文件夹 三三 实验指导 实验指导 本实验指导是为适应各大 中专院校开设单片机原理与应用方面的课程需做大量软 硬件实验的需要而编写 的 完成本实验指导中的实验 可使学生基本掌握 MCS 5l 单片机的结构原理 接口技术 程序设计技巧 手册中详 细叙述了各实验的目的 内容 列出了接线图 程序结构框图和清单 免除了主讲教师和实验辅导老师为设计 准 备调试实验线路和实验程序所需的工作量 节约了宝贵的时间 一 所有硬件实验程序已固化在程序存储器 EEPROM 中 选择 UP 模式 SW1 我们可以脱机实验 从小键 盘输入相应实验序号 再按 F0 EX 即可运行该实验程序 也可采用联机实验 将实验系统与 PC 机通过 DICE 3000 仿真器相连 联机调试所有实验程序 二 实验接线图上的粗实线表示用户在实验时要用导线连接起来 三 所有实验都是相互独立的 次序上也没有固定的先后关系 在使用本书进行教学时 教师可根据该校 院 的教 学要求 选择相应实验 四 对同一问题的解决办法往往不是唯一的 欢迎用户在使用本书过程中提出更为优秀的实验方案 指出错误和 不足 希望用户反馈给我们 以便及时修改 软件实验软件实验 软件实验共提供了十个软件实验程序 通过对这些实验程序的调试 使大家熟悉MCS 51的指令系统 了解程序 设计过程 掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误 实验一实验一 清零程序清零程序 一 实验目的 掌握汇编语言设计和调试方法 熟悉键盘操作 二 实验内容 把 2000H 20FFH 的内容清零 三 实验程序框图 四 实验步骤 用连续或单步方式运行程序 检查 2000 20FF 中执行程序前后的内容变化 五 思考 假使把 2000H 20FFH 中的内容改成 FF 如何修改程序 六 程序清单 文件名 SW01 ASM ORG 0000H LJMP SE01 ORG 0640H SE01 MOV R0 00H MOV DPTR 2000H 0000H 送 DPTR LOO1 CLR A MOVX DPTR A 0 送 DPTR INC DPTR DPTR 1 INC R0 字节数加 1 CJNE R0 00H LOO1 不到 FF 个字节再清 LOOP SJMP LOOP END 实验二实验二 拆字程序拆字程序 一 实验目的 掌握汇编语言设计和调试方法 二 实验内容 把 2000H 的内容拆开 高位送 2001H 低位 低位送 2002H 低位 2001H 2002H 高位清零 一般本程序用于把数据送 显示缓冲区时用 三 实验程序框图 四 实验步骤 用连续或单步方式运行程序 检查 2000H 2002H 中内容变化情况 五 思考 如何用断点方式调试本程序 六 程序清单 文件名 SW02 ASM ORG 0000H LJMP SE02 ORG 0660H SE02 MOV DPTR 2000H MOVX A DPTR MOV B A 2000 A B SWAP A 交换 ANL A 0FH 屏蔽高位 INC DPTR MOVX DPTR A 送 2001H INC DPTR MOV A B ANL A 0FH 2000 内容屏蔽高位 MOVX DPTR A 送 2002H LOOP SJMP LOOP END 实验三实验三 拼字程序拼字程序 一 实验目的 一 实验目的 进一步掌握汇编语言设计和调试方法 二 实验内容 二 实验内容 把 2000H 2001H 的低位分别送入 2002H 高低位 一般本程序用于把显示缓冲区的数据取出拼装成一字节 三 实验程序框图 三 实验程序框图 四 实验步骤 四 实验步骤 单步或用断点方式运行程序 检查2002H内容变化情况 五 实验程序清单 五 实验程序清单 文件名 SW03 ASM ORG 0000H LJMP START ORG 0680H START MOV DPTR 2000H MOVX A DPTR ANL A 0FH 2000H 内容屏蔽高位 SWAP A 交换 MOV B A 保存 INC DPTR MOVX A DPTR 2000H 内容送 A ANL A 0FH 屏蔽高位 ORL A B 或 INC DPTR MOVX DPTR A 送 2002H SJMP END 实验四实验四 数据区传送子程序数据区传送子程序 一 实验目的 一 实验目的 掌握RAM中的数据操作 二 实验内容 二 实验内容 把R2 R3源RAM区首址内的R6 R7字节数据传送到R4 R5目的RAM区 三 实验程序框图 三 实验程序框图 四 实验步骤 四 实验步骤 在 R2 R3 中输入源首址 例如 0000H R4 R5 中输入目的地址 例如 2000H R6 R7 中输入字节数 例如 lFFFH 运行程序 检查 0000H lFFFH 中内容是否和 2000H 3FFFH 中内容完全一致 五 实验程序清单 五 实验程序清单 文件名 SW04 ASM ORG 0000H LJMP SE22 ORG 07B0H SE22 MOV DPL R3 MOV DPH R2 建立源程序首址 MOVX A DPTR 取数 MOV DPL R5 MOV DPH R4 目的地首址 MOVX DPTR A 传送 CJNE R3 0FFH LO42 INC R2 LO42 INC R3 源地址加 1 CJNE R5 0FFH LO43 INC R4 LO43 INC R5 目的地址加 1 CJNE R7 00H LO44 CJNE R6 00H LO45 字节数减 1 LOOP SJMP LOOP NOP LO44 DEC R7 SJMP SE22 LO45 DEC R7 DEC R6 SJMP SE22 未完继续 END 实验五实验五 数据排序实验数据排序实验 一 实验目的 一 实验目的 熟悉51指令系统 掌握程序设计方法 二 实验内容 二 实验内容 编写并调试一个排序子程序 其功能为用冒泡法将内存 RAM 中几个单字节无符号的正整数 按从小到大的 次序重新排列 三 实验程序框图 三 实验程序框图 四 实验步骤 四 实验步骤 将 RAM 50H 5AH 中放入不等的数据 用断点方法运行本实验程序后检查 50H 5AH 中的内容是否按从小到 大的次序排列 五 实验程序清单 五 实验程序清单 文件名 SW05 ASM ORG 0000H LJMP QUE ORG 09B0H QUE MOV R3 50H QUE1 MOV A R3 指针送 R0 MOV R0 A MOV R7 0AH 长度送 R7 CLR 00H 清标志位 MOV A R0 QL2 INC R0 MOV R2 A CLR C MOV 22H R0 CJNE A 22H QL3 相等吗 SETB C QL3 MOV A R2 JC QL1 大于交换位置 SETB 00H XCH A R0 DEC R0 XCH A R0 INC R0 大于交换位置 QL1 MOV A R0 DJNZ R7 QL2 JB 00H QUE1 一次循环中有交换继续 LOOP SJMP LOOP 无交换退出 END 实验六实验六 查找相同数个数查找相同数个数 一 实验目的 一 实验目的 熟悉汇编语言编程 二 实验内容 二 实验内容 在2000H 200FH的N个单元中填入零 运行本程序后检查2100H中是否为N 三 实验程序框图 三 实验程序框图 四 实验步骤 四 实验步骤 在2000H 200FH的几个单元中填入零 运行本程序后检查2100H中是否是几个单元数 五 思考 五 思考 修改程序 查找其它内容 六 实验程序清单 六 实验程序清单 文件名 SW06 ASM ORG 0000H LJMP L5800 ORG 0AA0H L5800 MOV R0 10H 查找 16 个字节 MOV R1 00H MOV DPTR 2000H L5811 MOVX A DPTR CJNE A 00H L5816 取出内容与 00H 相等吗 INC R1 取出个数加 1 L5816 INC DPTR DJNZ R0 L5811 未完继续 MOV DPTR 2100H MOV A R1 MOVX DPTR A 相同数的个数送 2100H L581E SJMP L581E END 实验七实验七 无符号双字节快速乘法子程序无符号双字节快速乘法子程序 一 实验目的 一 实验目的 1 掌握 MCS 51 汇编语言程序及子程序设计 调试方法 2 预备知识 本程序利用单字节的乘法指令 根据下面的公式进行乘法运算的 R2R3 R6R7 R2 R3 R6 R7 R2 R6 R2 R7 R3 R6 R3 R7 二 实验内容 二 实验内容 将 R2R3 和 R6R7 中双字节无符号整数相乘 积送R4 R5 R6 R7中 三 实验程序框图 三 实验程序框图 四 实验步骤 四 实验步骤 在R2R3和R6R7中输入无符号整数 断点或单步运行本实验程序后检查R4 R5 R6 R7中内容 五 实验程序清单 五 实验程序清单 文件名 SW07 ASM ORG 0000H LJMP QKUL ORG 0970H QKUL MOV A R3 MOV B R7 MUL AB R3 R7 XCH A R7 R7 R3 R7 低字节 MOV R5 B R5 R3 R7 高字节 MOV B R2 MUL AB R2 R7 ADD A R5 MOV R4 A CLR A ADDC A B MOV R5 A R5 R2 R7 高字节 MOV A R6 MOV B R3 MUL AB R3 R6 ADD A R4 XCH A R6 XCH A B ADDC A R5 MOV R5 A MOV PSW 5 C 存 CY MOV A R2 MUL AB R2 R6 ADD A R5 MOV R5 A CLR A MOV ACC 0 C MOV C PSW 5 加上次加法的进位 ADDC A B MOV R4 A LOOP SJMP LOOP END 实验八实验八 多分支程序多分支程序 一 实验目的 一 实验目的 掌握程序散转的方法 实现程序的多分支转移 二 实验内容 二 实验内容 编制程序 根据送入的数据转移运行 三 实验程序框图 三 实验程序框图 四 实验步骤 四 实验步骤 在20H中分次送入00 01 02 03 每次运行程序后 观察数码管上数字循环情况 五 实验程序清单 五 实验程序清单 文件名 SW08 ASM ORG 0000H LJMP MEMS ORG 0A10H MEMS MOV A 43H MOV DPTR 0FF20H MOVX DPTR A MOV A 20H MOV DPTR KKKK 散转地址 RL A 20 2 JMP A DPTR 转到 20 2 DPTR KKKK AJMP MEMSP0 AJMP MEMSP1 AJMP MEMSP2 SJMP MEMSP3 MEMSP0 MOV 20H 0C0H 0 字循环 LJMP SOX0 MEMSP1 MOV 20H 0F9H 1 字循环 LJMP SOX0 MEMSP2 MOV 20H 0A4H 2 字循环 LJMP SOX0 MEMSP3 MOV 20H 0B0H 3 字循环 LJMP SOX0 ORG 0DA0H SOX0 MOV A 20H MOV R0 22H MOV R1 21H MOVX R0 A MOV A 01H SOX1 CPL A MOVX R1 A CPL A MOV R2 20H LCALL DELY RL A 显示字程序 SJMP SOX1 DELY PUSH 02H DEL2 PUSH 02H DEL3 PUSH 02H DEL4 DJNZ R2 DEL4 POP 02H DJNZ R2 DEL3 POP 02H DJNZ R2 DEL2 POP 02H DJNZ R2 DELY RET END 实验九实验九 脉冲计数 定时器脉冲计数 定时器 计数器实验 计数器实验 一 实验目的 一 实验目的 熟悉单片机内部定时 计数器功能 掌握初始化编程方法 二 实验内容 二 实验内容 把定时器 0 外部输入的脉冲进行计数 并送显示器显示 三 三 实验程序框图 实验程序框图 四 实验接线图 四 实验接线图 五 实验步骤 五 实验步骤 用插针把 8MHZ 插孔和 T 插孔连接 P3 4 依次接 T0 T7 或单脉冲输出孔 执行程序 观察数码管上计数 脉冲的速度及个数 六 思考 六 思考 修改程序使显示器上可显示到 999999 个脉冲个数 七 程序清单 七 程序清单 文件名 SW09 ASM ORG 0000H LJMP SE15 ORG 06E0H SE15 MOV SP 53H MOV P2 0FFH MOV A 43H MOV DPTR 0FF20H MOVX DPTR A MOV TMOD 05H MOV TH0 00H 定时计数器初始化 MOV TL0 00H 开计数器 SETB TR0 LO29 MOV R2 TH0 MOV R3 TL0 取出 TH0 TL0 内容 LCALL ZOY0 MOV R0 79H 二转十进制 MOV A R6 LCALL PTDS MOV A R5 LCALL PTDS MOV A R4 LCALL PTDS 送显示缓冲区 LCALL SSEE 显示 SJMP LO29 循环计数 ZOY0 CLR A MOV R4 A MOV R5 A MOV R6 A 0 送 R4 R5 R6 MOV R7 10H LO30 CLR C R2 R3 左移 移出的 MOV A R3 最高位送 CY RLC A MOV R3 A MOV A R2 RLC A MOV R2 A MOV A R6 ADDC A R6 R4 R5 R6 2 送 R4 R5 R6 DA A 十进制调整 MOV R6 A MOV A R5 ADDC A R5 DA A MOV R5 A MOV A R4 ADDC A R4 DA A MOV R4 A DJNZ R7 LO30 循环 16 次 RET PTDS MOV R1 A 拆送显示缓冲区 ACALL PTDS1 MOV A R1 SWAP A PTDS1 ANL A 0FH MOV R0 A INC R0 RET SSEE SETB RS1 换工作区 MOV R5 05H SSE2 MOV 30H 20H MOV 31H 7EH MOV R7 06H SSE1 MOV R1 21H MOV A 30H CPL A MOVX R1 A 字位送入 MOV R0 31H MOV A R0 MOV DPTR DDFF MOVC A A DPTR 取字形代码 MOV R1 22H MOVX R1 A 字形送入 MOV A 30H 右移 RR A MOV 30H A DEC 31H MOV A 0FFH MOVX R1 A 关显示 DJNZ R7 SSE1 6 位显示完了吗 DJNZ R5 SSE2 5 次显示完了吗 CLR RS1 RET DDFF DB 0C0H 0F9H 0A4H 0B0H 99H 92H 82H 0F8H 80H 90H DB 88H 83H 0C6H 0A1H 86H 8EH 0FFH 0CH 89H 0DEH END 实验十实验十 电脑时钟 定时器电脑时钟 定时器 中断综合实验 中断综合实验 一 实验目的 一 实验目的 熟悉 MCS 5l 定时器和中断初始化编程方法 了解定时器的应用实时程序的设计与调试技巧 二 实验内容 二 实验内容 编写程序 从实验系统键盘上输入时间初值 用定时器产生 0 lS 定时中断 对时钟计数器计数 并将数值实时地送 数码管显示 三 实验程序框图 三 实验程序框图 四 实验步骤 四 实验步骤 连续运行程序 在键盘上输入时间初值 按执行键 F0 EX 执行 数码管实时显示时间值 五 思考 五 思考 1 电子钟走时精度和程序中那些常数有关 2 修改程序使定时器工作方式改变 调节有关参数 进一步提高精度 六 程序清单 六 程序清单 文件名 SW10 ASM ORG 0000H LJMP CHK0 ORG 000BH LJMP CLOCK ORG 0030H CHK0 MOV SP 60H MOV 7EH 11H MOV 7DH 10H MOV 7CH 10H MOV 7BH 10H MOV 7AH 10H MOV 79H 10H MOV A 43H MOV DPTR 0FF20H MOVX DPTR A MOV R0 59H MOV A 7EH MOVX R0 A LCALL LCK0 键扫 显示字程序 LCALL PTDS0 显示缓冲区放数子程序 MOV TMOD 01H ORL IE 82H MOV TL0 0E6H MOV TH0 0DBH 定时中断初始化 MOV 23H 00H SETB TR0 开定时 LOO5 LCALL SSEE LCALL PTDS0 SJMP LOO5 循环 PTDS0 MOV R0 79H MOV A 22H ACALL PTDS MOV A 21H ACALL PTDS MOV A 20H ACALL PTDS RET PTDS MOV R1 A 拆送显示缓冲区 ACALL PTDS1 MOV A R1 SWAP A PTDS1 ANL A 0FH MOV R0 A INC R0 RET CLOCK MOV TL0 0E6H 恢复初值 MOV TH0 0DBH PUSH PSW PUSH ACC SETB 0D3H 保护 INC 23H 0 1 秒 1 MOV A 23H CJNE A 64H DONE 1 秒到吗 MOV 23H 00H 清 0 1 秒单元 MOV A 22H INC A 秒加 1 DA A MOV 22H A 十进制调整 CJNE A 60H DONE 60 秒到了吗 MOV 22H 00H 秒单元清零 MOV A 21H INC A DA A 分加 1 十进制调整 MOV 21H A CJNE A 60H DONE 60 分到了吗 MOV 21H 00H 分单元清零 MOV A 20H INC A DA A 时加 1 十进制调整 MOV 20H A CJNE A 24H DONE 24 小时到了吗 MOV 20H 00H 时单元清零 DONE POP ACC 退栈 POP PSW RETI 返回 ORG 0D50H SSEE SETB RS1 换工作区 MOV R5 05H SSE2 MOV 30H 20H MOV 31H 7EH MOV R7 06H SSE1 MOV R1 21H MOV A 30H CPL A MOVX R1 A 字位送入 MOV R0 31H MOV A R0 MOV DPTR DDFF MOVC A A DPTR 取字形代码 MOV R1 22H MOVX R1 A 字形送入 MOV A 30H 右移 RR A MOV 30H A DEC 31H MOV A 0FFH MOVX R1 A 关显示 DJNZ R7 SSE1 六位显示完了吗 DJNZ R5 SSE2 5 次显示完了吗 CLR RS1 RET DDFF DB 0C0H 0F9H 0A4H 0B0H 99H 92H 82H 0F8H 80H 90H DB 88H 83H 0C6H 0A1H 86H 8EH 0FFH 0CH 89H 0DEH ORG 1D00H X3 MOV R4 A MOV R0 59H MOVX A R0 MOV R1 A MOV A R4 MOV R1 A CLR A POP DPH POP DPL MOVC A A DPTR INC DPTR CJNE A 01H X30 CLR A MOVC A A DPTR X31 MOVX R0 A INC DPTR PUSH DPL PUSH DPH RET X30 DEC R1 MOV A R1 SJMP X31 X2 MOV R6 50H X0 ACALL XLE JNB ACC 5 XX0 DJNZ R6 X0 MOV R6 20H MOV R0 59H MOVX A R0 MOV R0 A MOV A R0 MOV R7 A MOV A 10H MOV R0 A X1 ACALL XLE JNB ACC 5 XX1 DJNZ R6 X1 MOV A R7 MOV R0 A SJMP X2 XX1 MOV R6 A MOV A R7 MOV R0 A MOV A R6 XX0 RET XLE ACALL DIS ACALL KEY MOV R4 A MOV R1 48H MOVX A R1 MOV R2 A INC R1 MOVX A R1 MOV R3 A MOV A R4 XRL A R3 MOV R3 04H MOV R4 02H JZ X10 MOV R2 88H MOV R4 88H X10 DEC R4 MOV A R4 XRL A 82H JZ X11 MOV A R4 XRL A 0EH JZ X11 MOV A R4 ORL A R4 JZ X12 MOV R4 20H DEC R2 SJMP X13 X12 MOV R4 0FH x11 MOV R2 04H MOV R4 03H X13 MOV R1 48H MOV A R2 MOVX R1 A INC R1 MOV A R3 MOVX R1 A MOV A R4 RET LS3 DB 07H 04H 08H 05H 09H 06H 0AH DB 0BH 01H 00H 02H 0FH 03H 0EH DB 0CH 0DH DIS PUSH DPH PUSH DPL SETB RS1 MOV R0 7EH MOV R2 20H MOV R3 00H MOV DPTR LS0 LS2 MOV A R0 MOVC A A DPTR MOV R1 22H MOVX R1 A MOV A R2 CPL A DEC R1 MOVX R1 A CPL A DEC R0 LS1 DJNZ R3 LS1 CLR C RRC A MOV R2 A JNZ LS2 INC R1 MOV A 0FFH MOVX R1 A CLR RS1 POP DPL POP DPH RET LS0 DB 0C0H 0F9H 0A4H 0B0H 99H 92H DB 82H 0F8H 80H 90H 88H 83H 0C6H DB 0A1H 86H 8EH 0FFH 0CH 89H 7FH 0BFH KEY SETB RS1 MOV R2 0FEH MOV R3 08H MOV R0 00H LP1 MOV A R2 MOV R1 21H MOVX R1 A RL A MOV R2 A MOV R1 23H MOVX A R1 CPL A ANL A 0FH JNZ LP0 INC R0 DJNZ R3 LP1 MOVX A R1 JB ACC 4 XP33 MOV A 19H SJMP XP3 XP33 MOV A 20H XP3 CLR RS1 RET LP0 CPL A JB ACC 0 XP0 MOV A 00H SJMP LPP XP0 JB ACC 1 XP1 MOV A 08H SJMP LPP XP1 JB ACC 2 XP2 MOV A 10H SJMP LPP XP2 JB ACC 3 XP33 MOV A 18H LPP ADD A R0 CLR RS1 CJNE A 10H LX0 LX0 JNC XP35 MOV DPTR LS3 MOVC A A DPTR XP35 RET LCK0 LCALL X2 JNC LCK1 LCALL X3 MOV R1 7EH SJMP LCK0 LCK1 CJNE A 16H LCK0 MOV A 7AH SWAP A ORL A 79H MOV 22H A CJNE A 60H LCK2 LCK2 JNC EXIT MOV A 7CH SWAP A ORL A 7BH MOV 21H A CJNE A 60H CLK3 CLK3 JNC EXIT MOV A 7EH SWAP A ORL A 7DH MOV 20H A CJNE A 24H CLK4 CLK4 JNC EXIT RET EXIT AJMP LCK0 END 硬件接口实验部分硬件接口实验部分 注意事项 注意事项 1 各实验接线图上的粗实线粗实线表示用户在实验时要用导线连接起来 用导线连接起来 2 在实验导线连接导线连接过程中 请严格按照 先断电再先断电再接线 检查无误才通电的接线 检查无误才通电的步骤步骤 来操作 操作次序千万 不要颠倒 以免损坏实验设备 实验实验 一 一 P1 口亮灯实验口亮灯实验 一 实验目的 一 实验目的 l 学习 P1 口的使用方法 2 学习延时子程序的编写 3 实验顶备知识 l Pl 口为准双向口 每一位都可独立地定义为输入或输出 在作输入线使用前 必须向锁存器相应位写入 1 该位才能作为输入 2 本实验中延时子程序采用指令循环来实现 机器周期 12 6MHz 指令所需机器周期数 循环次数 在系统 时间允许的情况下可以采用此方法 二 实验内容 二 实验内容 P1口输出口 接八只发光二极管 编写程序 使发光二极管循环点亮 三 实验程序框图 三 实验程序框图 图6 1 四 实验接线图 四 实验接线图 五 实验步骤 五 实验步骤 P1 0 P1 7用插针连至L1 L8 运行程序后 观察发光二极管闪亮移位情况 六 六 思考思考 改变延时常数 使发光二极管闪亮时间改变 修改程序 使发光二极管闪亮移位方向改变 七 实验程序清单 七 实验程序清单 程序名 HW01 ASM ORG 0000H LJMP SE18 ORG 0790H SE18 MOV P1 0FFH 送 P1 口 LO34 MOV A 0FEH L1 发光二极管点亮 LO33 MOV P1 A LCALL SE19 延时 RL A 左移位 SJMP LO33 循环 ORG 07A0H SE19 MOV R6 0A0H LO36 MOV R7 0FFH LO35 DJNZ R7 LO35 DJNZ R6 LO36 延时 RET END 实验二实验二 P1P1 口转弯灯实验口转弯灯实验 一 实验目的 一 实验目的 进一步了解P1口的使用 学习汇编语言编程方法及调试技巧 二 实验内容 二 实验内容 P1 0 开关接 5V 右转弯灯闪亮 P1 1 开关接 5V 时左转弯灯闪亮 P1 0 P1 1 开关同时接 5V 或接地时 转弯 灯均不闪亮 三 实验程序框图 三 实验程序框图 四 实验接线图 四 实验接线图 五 实验步骤 五 实验步骤 1 接线 P1 0 K1 P1 1 K2 P1 4 L1 P1 5 L4 P1 6 L7 P1 7 L10 2 连续运行本程序 应看到转弯灯正确闪亮 在用单步方式调试本程序时需修改延时子程序 例可把延时 程序第一个字节改成返回指令 22H 以便观察 六 程序清单 六 程序清单 文件名 HW02 ASM ORG 0000H LJMP PX00 ORG 0C30H PX00 MOV P1 0FFH 初始化 PX03 MOV A P1 MOV B A ANL A 03H CJNE A 01H PX01 满足只是 P1 0 为高条件 JB 00H PX04 闪烁标志位 CLR P1 4 CLR P1 5 开右灯 SETB P1 6 SETB P1 7 关左灯 MOV R2 20H LCALL DELY 延时 SETB 00H 置标志位 LJMP PX03 继续查找状态 PX04 SETB P1 4 SETB P1 5 SETB P1 6 关灯 SETB P1 7 MOV R2 20H LCALL DELY 延时 CLR 00H 清标志位 AJMP PX03 继续查找状态 PX01 CJNE A 02H PX02 满足只是 P1 1 为高条件吗 JB 01H PX05 判标志位 SETB P1 4 SETB P1 5 开左灯 CLR P1 6 CLR P1 7 关右灯 MOV R2 20H LCALL DELY 延时 SETB 01H 置标志位 LJMP PX03 继续查找 PX05 SETB P1 4 SETB P1 5 SETB P1 6 关灯 SETB P1 7 MOV R2 20H LCALL DELY 延时 CLR 01H 清标志位 LJMP PX03 继续查找状态 QPX02 SETB P1 4 SETB P1 5 SETB P1 6 关灯 SETB P1 7 LJMP PX03 继续 DELY PUSH 02H DEL2 PUSH 02H DEL3 PUSH 02H 延时 DEL4 DJNZ R2 DEL4 POP 02H DJNZ R2 DEL3 POP 02H DJNZ R2 DEL2 POP 02H DJNZ R2 DELY RET END 实验三实验三 P3P3 口输入 口输入 P1P1 口输出口输出 一 实验目的 一 实验目的 掌握 P3 口 P1 口简单使用 二 实验内容 二 实验内容 P3 3口输入一脉冲 PI口按16进制加一方式点亮发光二极管 三 实验程序框图 三 实验程序框图 四 实验接线图 四 实验接线图 五 实验步骤 五 实验步骤 1 接线 P3 3 K1 P1 0 P1 7 L1 L8 2 K1 拨动一次 L1 L8 发光二极管按 16 进制方式 加 1 点亮 六 思考 六 思考 修改程序 使发光二极管左移方式点亮 七 程序清单 七 程序清单 程序名 HW03 ASM ORG 0000H LJMP J100 ORG 0810H J100 MOV A 00H J101 JB P3 3 J101 MOV R2 10H LCALL DELY JB P3 3 J101 P3 3 电平为低吗 J102 JNB P3 3 J102 MOV R2 10H LCALL DELY JNB P3 3 J102 P3 3 电平为高吗 INC A 加 1 PUSH ACC CPL A 取反 MOV P1 A 驱动发光二极管 POP ACC AJMP J101 循环 DELY PUSH 02H DEL2 PUSH 02H DEL3 PUSH 02H DEL4 DJNZ R2 DEL4 延时 POP 02H DJNZ R2 DEL3 POP 02H DJNZ R2 DEL2 POP 02H DJNZ R2 DELY RET END 实验四实验四 工业顺序控制工业顺序控制 一 实验目的 一 实验目的 1 掌握工业顺序控制程序的简单编程 中断的使用 2 实验预备知识 在工业控制中 象冲压 注塑 轻纺 制瓶等生产过程 都是一些继续生产过程 按某种顺 序有规律地完成预定的动作 对这类继续生产过程的控制称顺序控制 象注塑机工艺过程大致按 合模 注射 延 时 开模 产伸 产退 顺序动作 用单片机最易实现 二 实验内容 二 实验内容 由 P1 0 1 6 控制注塑机的七道工序 现模拟控制七只发光二极的点亮 低电平有效 设定每道工序时间转换 为延时 P3 4 为开工启动开关 高电平启动 P3 3 为外部故障输入模拟开关 低电平报警 P1 7 为报警声音输出 设定 6 道工序只有一位输出 第七道工序三位有输出 三 实验程序框图三 实验程序框图 四 实验接线图 四 实验接线图 五 实验步骤 五 实验步骤 按图接线 P3 4 K1 P3 3 K2 P1 0 P1 6 L1 L7 P1 7 Vin JP 向下短接 执行程序 把 K1 接到低电平 观察发光二极管点亮情况 确定工序执行是否正常 然后把 K2 置为低电平 看是否有声音报警 恢复中断 1 报警停 又从刚才报警时一道程序执行下去 可用单步 单步跟踪 非全速断点 全 速断点 连续执行功能调试软件 直到符合自己程序设计要求为止 六 思考 六 思考 修改程序 使每道工序中有多位输出 七 实验程序清单 七 实验程序清单 文件名 HW04 ASM ORG 0000H LJMP PO10 ORG 0013H LJMP PO16 ORG 0190H PO10 MOV P1 7FH ORL P3 00H PO11 JNB P3 4 PO11 开工吗 ORL IE 84H ORL IP 04H MOV PSW 00H 初始化 MOV SP 53H PO12 MOV P1 7EH 第一道工序 ACALL PO1B MOV P1 7DH 第二道工序 ACALL PO1B MOV P1 7BH 第三道工序 ACALL PO1B MOV P1 77H 第四道工序 ACALL PO1B MOV P1 6FH 第五道工序 ACALL PO1B MOV P1 5FH 第六道工序 ACALL PO1B MOV P1 0FH 第七道工序 ACALL PO1B SJMP PO12 PO16 MOV B R2 保护现场 PO17 MOV P1 7FH 关输出 MOV 20H 0A0H 振荡次数 PO18 SETB P1 7 振荡 ACALL PO1A 延时 CLR P1 7 停振 ACALL PO1A 延时 DJNZ 20H PO18 不为 0 转 CLR P1 7 ACALL PO1A 停振 JNB P3 3 PO17 故障消除吗 MOV R2 B 恢复现场 RETI PO19 MOV R2 10H ACALL DELY 延时 1 RET PO1A MOV R2 06H ACALL DELY 延时 2 RET PO1B MOV R2 30H ACALL DELY 延时 3 RET DELY PUSH 02H DEL2 PUSH 02H DEL3 PUSH 02H 延时 DEL4 DJNZ R2 DEL4 POP 02H DJNZ R2 DEL3 POP 02H DJNZ R2 DEL2 POP 02H DJNZ R2 DELY RET END 实验五实验五 8255A B C C口输出方波实验口输出方波实验 一 实验目的 一 实验目的 掌握可编程 I O 接口芯片 8255 的接口原理使用 熟悉对 8255 初始化编程和输入 输出软件的设计为法 二 实验内容 二 实验内容 在8255的A B C口用万用表可测出每个口线的高低电平变化 三 实验程序框图 三 实验程序框图 四 实验步骤 四 实验步骤 执行程序 用万用表测量8255A B C口应有高低电平变化 或用8255A B C口分别用插针连至Ll L8 观察发光 二极管变化情况 五 程序清单 五 程序清单 文件名 HW05 ASM ORG 0000H LJMP SE09 ORG 0580H SE09 MOV DPTR 0FF2BH MOV A 80H MOVX DPTR A 8255 初始化 MOV A 55H 一位隔一位高电平 LO15 MOV DPTR 0FF28H MOVX DPTR A INC DPTR MOVX DPTR A INC DPTR MOVX DPTR A A B C 口送入 MOV R2 10H 延时 LCALL DELY CPL A 取反 SJMP LO15 循环 ORG 05A0 DELY PUSH 02H DEL2 PUSH 02H DEL3 PUSH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论