沈理单片机原理及应用实验指导书.doc_第1页
沈理单片机原理及应用实验指导书.doc_第2页
沈理单片机原理及应用实验指导书.doc_第3页
沈理单片机原理及应用实验指导书.doc_第4页
沈理单片机原理及应用实验指导书.doc_第5页
免费预览已结束,剩余16页可下载查看

下载本文档

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

文档简介

单片机原理 实验教学电子教案 实验一 数据传送实验 实验目的 1 学习使用伟福仿真软件 2 掌握 8031 内部 RAM 和外部 RAM 之间数据传送特点和应用 3 复习数据传送指令 实验原理 图 1 1 为 6264 外部 RAM 的扩展原理图 8031 的 P0 口为 RAM 的复式地址数据线 P2 口的 P2 5 P2 7 用于对 RAM 进行片选 通过 74LS138 译码器 在外部 RAM 读 写期间 CPU 产生 RD WR 信号 P2 口输出外部 8 位地址 P0 口分时传送低 8 位地址 P2 ALE MCS 51 P0 PSEN EA 锁存器 外部程序存储器 高 8 地址位 图 1 1 MCS 51 与外部数据存储器的接口逻辑 实验仪器及器件 伟福系列仿真器 CPU586 计算机 实验目标板 WD 4 微机稳压电源 实验内容与要求 1 指定内部 RAM 中某块的起始地址和长度 要求将其内容清零 2 指定外部 RAM 中某块的起始地址和长度 要求将其内容清零 3 指定外部 RAM 中某块的起始地址和长度 要求将其置为固定值 4 根据 MCS 51 与外部数据存储器的接口逻辑原理 编写数据传送程序 使 8031 内部 RAM30H 3FH 置初值 10H 1FH 然后传送到外部 RAM2000H 200FH 中 再将 2000H 200FH 中内容传送到 8031 内部 RAM50H 5FH 中 实验步骤 1 开启稳压电源 将其输出调到 5V 5V 2 关闭稳压电源 将实验目标板电源线 5V 端和接地端分别接到稳压电源的 5V 端和 接地端 3 连接 6264 器件地址 CS 到译码器 CS1 端 使其地址为 2000H 4 检查无误 开启稳压电源 5 输入预习编写程序 汇编通过后单步 断点连续运行程序 检查相应存储器结果 实验接线图 伟福 WAVE6000 使用方法 1 双击桌面 WAVE 图标 打开 WAVE 仿真软件 2 建立一个新的用户程序 点击工具条文件菜单 点击新建文件 在新建文件中编 写程序 3 保存文件 点击文件菜单下保存文件或快捷键 F2 在保存文件对话框内输入文件 名 将其存为 ASM 文件 4 对保存的 ASM 文件进行汇编 点击项目菜单下编译或快捷键 F9 5 确定执行程序地址 将光标点击在要执行程序内 右键 在右键菜单中点击设置 PC 6 单步执行程序 快捷键 F8 7 断点连续运行程序 将光标点击在设置断电程序内 右键 在右键菜单中点击设置 断点 然后连续运行程序 快捷键 CTRL F9 8 在以下窗口观察运行结果 CPU 窗口 信息窗口 数据窗口 注意事项 1 学生进行实验前必须进行预习 拟定程序设计方案 2 连接线路时注意电源端和接地端 不要反接 线路检查无误时在开启稳压电源 重点 能提出程序设计思路 对数值传送类指令进行复习 难点 能设计出符合要求 结果正确的实验程序 学生在实验中容易出现的困难及错误 1 系统的程序设计无从下手 设计出的程序不符合题目要求 指令设计不符合格式规 范 2 对 DJNZ 和 CJNE 两条指令功能混淆 思考题 1 CPU 对 8031 内部 RAM 存储器和外部 RAM 存储器各有哪些寻址方式 MCS 51 的寻址方式共有六种 立即数寻址 直接寻址 寄存器寻址 寄存器间址 变址 寻址 相对寻址 我们必须掌握其表示的方法 1 立即数与直接地址 ata 表示八位立即数 data16 表示是十六位立即数 data 或 direct 表示直接地址 2 Rn n 0 7 A B CY DPTR 寄存器寻址变量 3 R0 R1 DPTR SP 表示寄存器间址变量 4 DPTR A PC A 表示变址寻址的变量 5 PC rel 相对量 表示相对寻址变量 2 为什么 8031 最适合于智能仪表和控制应用场合 8031 控制功能强 体积小 功耗低 具有一定的数据处理能力 能完成数据采集 处理 零 位修正 误差补偿 数字显示 报警 数值计算以及各种逻辑判断和控制 使仪器仪表 数字化 智能化 参考程序 CLRRAM MOV R0 start MOV R7 length CLR A loop MOV R0 A INC R0 DJNZ R7 loop RET CLRXRAM MOV DPTR xstart MOV R7 xlength CLR A xloop MOVX DPTR A INC DPTR DJNZ R7 xloop RET SETXRAM MOV DPTR xstart MOV R7 xlength MOV A value xloop2 MOVX DPTR A INC DPTR DJNZ R7 xloop2 RET MOV R0 30H MOV R2 10H MOV A 10H A1 MOV R0 A INC R0 INC A DJNZ R2 A1 MOV R0 30H MOV DPTR 2000H MOV R2 10H A2 MOV A 2R0 MOVX DPTR A INC R0 INC DPTR DJNZ R2 A2 MOV R0 50H MOV DPTR 2000H MOV R2 10H A3 MOVX A DPTR MOV R0 A INC R0 INC DPTR DJNZ R2 A3 SJMP 实验二 数制转换运算实验 实验目的 1 学习二进制数转换为 BCD 码数的一般算法 2 学习十进制数转换成 ASC 码的一般算法 实验原理 单片机能识别和处理的是二进制码 而输入输出设备 LED 显示器 微型打印机等 则 使用 ASC 或 BCD 码 为此 在单片机应用系统中经常需要通过程序进行二进制码与 BCD ASC 码转换 十六进制数与 ASC 码之间的转换 当十六进制数在 0 9 之间时 其对应的 ASC 码值为该十六进制数加 30H 当十六进制数在 A F 之间时 其对应的 ASC 码值为该 十六进制数加 37H BCD 码是每四位二进制数表示一位十进制数 转换方法是将数制二进制数除以 100 10 所得商即为百位 十位 余数为个位数 实验仪器及器件 伟福系列仿真器 CPU586 计算机 实验目标板 WD 4 微机稳压电源 实验内容与要求 编写程序将 R1 中的十六进制数转换成相应的 ASC 码后 结果放在 R3 和 R4 中 把 累加器 A 的二进制数转化为 BCD 码 将百 十 个位分别存放在内部 RAM 的 50H 51H 52H 中 实验步骤 1 开启电源 2 输入预习编写程序 汇编通过后单步 断点连续运行程序 检查相应存储器结果 注意事项 1 学生进行实验前必须进行预习 拟定程序设计方案 2 连接线路时注意电源端和接地端 不要反接 线路检查无误时再开启稳压电源 重点 能提出程序设计思路 掌握转换程序设计 难点 能设计出符合要求 结果正确的实验程序 学生在实验中容易出现的困难及错误 1 不清楚数值转换方法 2 对 51 汇编语言指令不熟悉 思考题 1 十六进制数与 ASC 码之间的转换方法 2 BCD 码与十进制数之间的转换方法 参考程序 MOV A R0 ANL A 0FH PUSH ACC CLR C SUBB A 0AH POP ACC JC LOOP ADD A 07H LOOP ADD A 30H MOV R2 A RET 扩展程序设计 BCD 码转换为二进制数 将累加器 A 中的 BCD 码转换成二进制数 结果仍存放在 A 中 分析 A 中存放的 BCD 码数的范围是 0 99 转换成二进制数后是 00H 63H 仍然可以 存放在 A 中 转换方法为 A 中的高半个字节 十位 乘以 10 再加上 A 的低半个字节 计算公式为 A7 4 A3 0 PUSH ACC ANL A 0FH SWAP A MOV B 310 MUL AB MOV B A POP ACC ANL A 30FH ADD A B RET 实验三 控制转移程序实验 实验目的 学习掌握控制转移指令程序设计方法 实验原理 控制程序转移指令共有 17 条 不包括按布尔变量控制程序转移的指令 其中有全存 储空间的长调用 长转移和按 2KB 分块的程序空间内的绝对调用和绝对转移 全空间 的长相对转移及一页范围的短相对转移 这类指令用到的助记符有 ACALL AJMP LCALL LJMP JMP JZ CJNE DJNZ JNZ 等 实验仪器及器件 伟福系列仿真器 CPU586 计算机 实验目标板 WD 4 微机稳压电源 实验内容与要求 编写程序 将 20H 2FH 中随机无符号数的最小值存放在 1F 中 编写程序 设有 16 个无符号数 依次存放在 30H 3FH 中 将它们按由小到大排序 实验步骤 1 开启稳压电源 2 输入预习编写程序 汇编通过后单步 断点连续运行程序 检查相应存储器结果 注意事项 1 学生进行实验前必须进行预习 拟定程序设计方案 2 连接线路时注意电源端和接地端 不要反接 线路检查无误时再开启稳压电源 重点 能提出程序设计思路 对控制转移类指令进行复习 难点 能设计出符合要求 结果正确的实验程序 学生在实验中容易出现的困难及错误 1 对程序设计气泡排序算法无法掌握 2 指令运用不灵活 思考题 简述气泡排序算法 气泡排序法是依托比较相邻的一对数据 如不符合规定的递增 或递减 顺序 则交换 两个数据的位置 第一对比较完毕后 接着比较第二对 直到清单中所有的数据依次 比较完成 第一轮比较结束 这是最大 小 的数据降到清单的最低位置 第一轮排序 需要进行 N 1 次比较 第二轮比较需要进行 N 2 次比较 第二轮结束后 次最大 小 的数据排底部第二位置上 重复上述过程 直到全部排完 参考程序 比较大小 MOV R0 20H MOV 1FH R0 MOV R1 09H LOOP INC R0 MOV A 1FH CJNE A 1FH LOOP LOOP1 JNC LOOP2 MOV 1FH A LOOP2 DJNZ R1 LOOP LJMP 求最小值 MOV 1FH 20H MOV R1 21H MOV R0 15 LOOP MOV A R1 CJNE A 1FH LOOP1 LOOP1 JNC NEXT MOV 1FH A NEXT INC R1 DJNZ R0 LOOP RET 另一种方法 MOV 1FH 20H MOV R1 21H MOV R0 15 LOOP MOV A R1 PUSH A SUBB A 1FH JC LOOP1 LJMP NEXT LOOP1 POP A MOV 1FH A NEXT POP A INC R1 DJNZ R0 LOOP RET 排序 升序 T0 MOV R2 30H MOV R3 10H MOV A R2 MOV R0 A INC A MOV R1 A MOV A R3 DEC A MOV R3 A MOV R5 A T1 CLR C MOV A R0 SUBB A R1 JC T2 1 MOV A R1 XCH A R0 XCH A R1 T2 INC R0 INC R1 DJNZ R5 T1 DJNZ R3 T0 RET 注 降序程序须将 1 指令改为 JNC T2 ORG 0000H LJMP MAIN ORG 0100H MAIN MOV R1 50H MOV R2 09H CLR 40H LOOP1 MOV A R1 INC R1 MOV 30H R1 CJNE A 30H LOOP2 LOOP2 JC LOOP3 MOV R1 A DEC R1 MOV R1 30H INC R1 SETB 40H LOOP3 DJNZ R2 LOOP1 JB 40H MAIN SJMP END 实验四 定时器 计数器实验 实验目的 1 学习掌握利用中断 查询方法设计 8031 内部定时计数器程序 2 进一步掌握中断处理程序的编程方法 实验原理 MCS 51 系列单片机有两个 16 位定时器 计数器即 T0 T1 有关寄存器有以下几个 TH0 TL0 TH1 TL1 TMOD TCON TH0 TL0 为 T0 的 16 位计数器的高 8 位和低 8 位 TH1 TL 为 T1 的 16 位计数器的高 8 位和低 8 位 TMOD 为 T0 T1 的方式控制寄存器 TCON 为 T0 T1 的状态和控制寄存 器 存放 T0 T1 的运行控制位和溢出位中断标志位 定时器 0 溢出中断入口地址 000BH 实验仪器及器件 伟福系列仿真器 CPU586 计算机 实验目标板 WD 4 微机稳压电源 导线 发光二极管 实验内容与要求 定时器 T0 的定时中断控制溢出 因定时时间较长 13 位计数器不够用 可选用方式 1 的 16 位计数器 输入运行程序 调节定时器常数或计数数值可以调节输出脉冲宽 度 系统晶振为 6MHZ 利用定时器 0 方式 1 产生一个脉冲宽度可调的方波在 P1 0 管脚 输出 首先设定时器每 100MS 产生一次溢出 然后利用软件计数器每 10 次改变一次 P1 0 管脚输出 就会得到脉冲宽度为 1S 的脉冲 实现与 P1 0 管脚连接的发光二极 管 定时闪烁 实验步骤 1 连接实验线路 2 开启稳压电源 3 输入预习编写程序 汇编通过 连续运行程序 实现控制发光二极管定时闪烁 注意事项 1 可以自己设计实验线路 连好后一定要请教师检查 2 学生进行实验前必须进行预习 拟定程序设计方案 3 连接线路时注意电源端和接地端 不要反接 线路检查无误时再开启稳压电源 实验接线图 重点 对 8051 单片机定时计数器各寄存器功能的掌握 难点 定时初值的计算方法 学生在实验中容易出现的困难及错误 1 计数器循环次数 定时器初值计算错误 2 中断程序设计不熟悉 思考题 晶振为 6MHZ 选择定时器 T0 工作方式 1 定时 100MS 定时器初值应该是多少 设定时器初值为 N 则 216 N 12 6 105 N 15536 即 3CB0H 参考程序 查询方式 MOV TMOD 01H SETB TR0 MOV R2 10H LOOP MOV TH0 3CH MOV TL0 0B0H JNB TF0 CLR TF0 DJNZ R2 LOOP MOV R2 10 CPL P1 0 LJMP LOOP 中断方式 ORG 0000H LJMP MAIN ORG 000BH LJMP T SER ORG 0020H MAIN SETB EA SETB ET0 SETB TR0 MOV TMOD 01H MOV TH0 3CH MOV TL0 0B0H MOV R3 10H SJMP T SER CLR TF0 DJNZ R3 WAIT CPL P1 0 MOV R3 10 WAIT MOV TH0 3CH MOV TL0 0B0H RETI 实验结果 实验五 串行口扩展实验 实验目的 1 掌握串行口控制显示器硬件原理及软件设计方法 2 掌握单片机与 74LS164 接口电路设计 实验原理 MCS 51 单片机应用系统中 当串行口不用作串行通讯时 可用来扩展并行输入输出 口 设定串行口工作在移位寄存器方式 0 状态下 用于显示器时 使用串行输入 并 行输出移位寄存器 74LS164 每接一片 74LS164 可扩展一个 8 位并行输出口 用以连 接一个 LED 段选口静态显示使用 74LS164 与 8051 接口电路 RXD P3 0 做为串行输出与 74LS164 数据输入端 A B 相 连 TXD P3 1 做为移位脉冲输出与 74LS164 的时钟输入端 CP 相连 由 P1 0 口线控 制 74LS164 的清显示端 CR 但要注意 由于 74LS164 的并行输出没有控制器 在串 行输入过程中 其输出状态不断变化 一般在 74LS164 输出端加三态门控制 以保证 串行输入结束后在输出数据 74LS164 与数码管连接 实验使用共阳极 8 段位数码管做为显示器 显示方式为静态 显示 所谓静态显示 就是当显示器显示某一字符时 相应的发光二极管恒定导通或 截止 实验仪器及器件 伟福系列仿真器 CPU586 计算机 实验目标板 WD 4 微机稳压电源 实验用双头导线 实验内容与要求 1 读懂实验线路原理图 2 编制程序 使显示器逐次显示 0 F 3 编制程序 使显示器逐屏显示每位学生的的班级学号 实验步骤 1 连接实验线路 单片机 74LS164 TXD CP RXD DSab P1 0 CR P1 1 S L CS CS2 2 开启稳压电源 3 输入预习编写程序 汇编通过 连续运行程序 实现显示器显示要求 实验接线图 注意事项 1 连接好实验线路 一定要请教师检查后再上电 2 学生进行实验前必须进行预习 拟定程序设计方案 3 连接线路时注意电源端和接地端 不要反接 线路检查无误时再开启稳压电源 重点 对 8051 单片机串行口扩展显示器应用设计 查表程序设计方法 难点 实现逐屏显示程序设计 学生在实验中容易出现的困难及错误 1 线路连接不正确 2 实现逐屏显示 思考题 74LS164 芯片外部引脚功能 74LS164 是串行输入并行输出的移位寄存器 带有清除端 其外部引脚功能如下 Q0 Q7 并行输出端 DSA DSB 串行输入端 CR 清除端 低电平时 使 164 输出清零 CP 时钟脉冲输入端 在 PC 脉冲的上升沿作用下实现移位 在 CP 0 CR 1 时 164 保 持原来数据 参考程序 MAIN MOV DPTR TAB SETB 90H CLR 91H MOV R5 10H DL0 MOV A 00H MOVC A A DPTR MOV SBUF A WAIT JNB TI WAIT CLR TI INC DPTR ACALL D20MS DJNZ R5 DL0 CLR 90H ACALL D20MS SJMP MAIN D20MS ACALL D10MS D10MS MOV R7 0FFH DL1 MOV R6 0FFH DL2 DJNZ R6 DL2 DJNZ R7 DL1 RET TAB DB 0C0H 0F9H 0A4H 0B0H DB 99H 92H 82HH 0F8H DB 80H 90H 88H 83H DB 0C6H 0A1H 86H 8EH 实验六 串行通信实验 实验目的 学习单片机串行通信方式 熟悉串行通信程序设计 实验原理 串行通信的数据传送是一位一位依次进行 而在计算机内部数据是并行传送的 因此 发 送端在发送前要把并行数据转换为串行数据 然后在传送 而接受端接受时又要把串 行数据转换为并行数据 MCS 51 系列单片机有两个串行数据缓冲器 使用同一标号 SBUF 共用一个地址 99H 发送缓冲器只能写入不能读出 接收缓冲器只能读出不能写入 根据读写指令来确定 访问其中哪一个 实验仪器及器件 伟福系列仿真器 CPU586 计算机 实验目标板 WD 4 微机稳压电源 实验用双头导线 实验内容与要求 两个 8031 单片机间的数据传输 两单片机异步通信 设串行口为工作方式 1 波特率 为 2400 波特 振荡频率 11 0592MHZ 利用串行口将甲机内部 RAM30H 3FH 单元内容 送乙机的内部 RAM30H 3FH 实验步骤 1 连接实验线路 2 开启稳压电源 3 输入预习编写程序 汇编通过 连续运行程序 实现显示器显示要求 注意事项 1 学生进行实验前必须进行预习 拟定程序设计方案 2 接线路时注意电源端和接地端 不要反接 线路检查无误时再开启稳压电源 重点 熟悉 51 单片机串行口寄存器 SBUF 读写程序方法 串行通信程序设计方法 难点 实现通信程序设计 学生在实验中容易出现的困难及错误 程序设计不正确 不能实现数据收发 思考题 1 串行通信与并行通信有何异同 串行通信通过串行接口实现 在并行通信中 信息传输的位数和数据位数相等 全双 工的串行通信仅需要一根发送线 并行通信速度快 传输线多 适合于近距离的数据 通信 串行通信速度慢 传输线少 适合于长距离数据输送 2 如何在通信中引入奇偶校验 串行通信有两种形式 同步和异步通信 异步通信在发送字符时 数据位和停止位之 间可以有 1 位奇偶校验位 同步通信通过字符顺序连接 每个数据块前加 1 2 个同步 字符 内部分为若干段 尾部是错误校验字符 参考程序 发送部分 MOV TMOD 20H 定时器 1 置为方式 2 MOV TH1 0F4H 装载定时器初值 MOV TL1 0F4H MOV PCON 00H SETB TR1 MOV SCON 380H MOV R0 30H MOV R2 0FH LP1 MOV A R0 MOV SBUF A LP2 JBC TI LP3 SJMP LP2 LP3 INC R0 DJNZ R2 LP1 SJMP 接收部分 先运行 MOV TMOD 20H 定时器 1 置为方式 2 MOV TH1 0F4H 装载定时器初值 MOV TL1 0F4H MOV PCON 00H SETB TR1 MOV SCON 50H MOV R0 30H MOV R2 0FH SETB REN LP1 JBC RI LP2 SJMP LP1 LP2 CLR RI MOV A SBUF MOV R0 A INC R0 DJNZ R2 LP1 SJMP 实验七 流水灯实验 实验目的 掌握 8051 单片机输入 输出端口程序设计方法 实验原理 P1 口是 8051 惟一的单功能口 仅能用作通用的数据输入 输出口 P1 口是通用的准 双向口 由一个输出锁存器 两个三态输入缓冲器和输出驱动电路组成 内部设有上 拉电阻 其输出高电平时 能向外提供拉电流负载 不必再接上拉电阻 当口用作输入 时 须向口锁存器写入 1 实验仪器及器件 伟福系列仿真器 CPU586 计算机 实验目标板 WD 4 微机稳压电源 实验用双头导线 实验内容与要求 P1 口做输出口

温馨提示

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

评论

0/150

提交评论