




已阅读5页,还剩85页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理与应用单片机原理与应用 实验指导书实验指导书 徐爱钧 徐阳 张利勇 编 长江大学工程技术学院信息系 2 目目 录录 第第 1 1 章章 单片机实验系统简介单片机实验系统简介 3 1 1 仿真实验系统的特点与基本组成 3 1 2 实验系统的软件支持 3 1 3 实验系统模块 6 第第 2 2 章章 基础性实验基础性实验 17 实验一 实验系统基本操作 17 实验二 汇编语言程序设计 23 实验三 P1 口应用实验 25 实验四 外部中断实验 28 实验五 定时器 计数器的计数功能实验 31 实验六 8255 输入输出实验 35 实验七 D A 转换实验 38 实验八 A D 转换实 验 41 实验九 键盘显示实验 45 第第 3 3 章章 综合性实验综合性实验 50 实验十 电子时钟实验 50 实验十一 步进电机控制实验 55 实验十二 直流电机转速测量与控制实验 59 实验十三 电子琴实验 67 实验十四 串口通信实验 71 实验十五 温度测量实验 76 实验十六 点阵液晶显示屏实验实验 79 附录附录 实验报告基本要求与书写格式实验报告基本要求与书写格式 90 3 第第 1 1 章章 单片机实验系统简介单片机实验系统简介 1 11 1 实验系统的特点与基本组成实验系统的特点与基本组成 超想 3000TC 综合实验仪将所有的实验模块及 CPU 资源均全力对用户开放 充分满足 验证式 模仿 式 探索式 开发式 的由浅入深的各种实验要求 实验平台作为一个独立的目标系统 能让用户进 行脱机验证实验结果的实验 使实验步骤与实际开发环境完全一致 学以致用 该实验仪对基本实验仅需少量 连线就可进行 以减少学员工作量 同时也提供了一些需较多连线的扩展性实验 并在硬件上预留了自主开发 实验的空间 以进一步锻炼学员的动手能力 本实验仪的自检监控能对所有模块进行检测 管理员仅需在键盘 上输入各自检程序的代码即可 综合实验仪新型实用模块 综合实验仪新型实用模块 1 LCD 液晶实验 2 点阵 LED 广告屏 3 DS12887 实时时钟 4 红外线发送 接收 5 直流电机恒速 6 电子琴模拟实验 7 串行 ROM I2C ROM 8 步进电机变速 传感器实验模块 传感器实验模块 1 温度传感器 2 压力传感器 3 霍尔传感器 4 红外传感器 传统实验模块 传统实验模块 1 模数转换 A D0809 2 数模转换 D A0832 3 8155 控制键显 4 V F 转换 LM331 5 串口通讯 MAX232 6 音响实验 LM386 7 EPROM27C256 扩展 8 RAM6264 扩展 9 PWM 模块 10 微型打印机接口 选配 通用实验模块 通用实验模块 1 模拟信号发生器 2 开关量发生器 3 发光二极管组 4 信号发生器 5 74LS138 译码器 6 分频器电路 7 LED6 位数码管 8 20 个键盘组 9 逻辑笔 10 常用门电路 自由实验模块 自由实验模块 由 DIP40 锁紧插座及 40 个插孔组成 CPU 所有信号均以插孔方式引出 还设计了常用门电路 晶振源 电 源插孔等 可以完成以上实验模块的组合实验以及由实验者自行命题和新器件 新方案的实验 使得实验方式 和内容不受限制 电源电源 超想 3000TC 综合实验仪配备了 5V 2A 12V 1A 12V 0 5A 的电源 直接使用 220V 交流电源工作 1 21 2 实验系统的软件支持实验系统的软件支持 超想 3000TC 综合实验仪支持 Keil uVision2 软件 其性能较其它同类产品优异 特别是兼容 ANS1 C 后 又增加了很多与硬件密切相关的编译特性 使得在 8051 系列单片机上开发应用程序更为方便和快捷 在 Keil uVision2 的平台下 用户源程序的大小不再有任何限制 支持 ASM C PLM 语言混合编程 源文 本调试 具有项目管理功能 为用户的资源共享 课题重组提供强有力的手段 丰富的显示方式 多方位 动 态地显示仿真的各个过程 使用极为便利 为了跟上形势 现在工程师需要掌握不同的项目管理器 编辑器 编译器 它们由不同的厂家开发 相互 不兼容 使用不同的界面 学习使用很吃力 Keil uVision2 调试软件为你提供了一个全集成环境 统一的界 面包含一个项目管理器 一个功能强劲的编辑器 以及汇编和调试工具 并提供一个与第三方编译器的接口 由于风格一致 从而大大节省时间和精力 恒科 Keil C 超级仿真器优特点 1 仿真 8031 内核的单片机 2 接支持 Keil C51 的 IDE 开发仿真环境 63K 用户程序空间 3 全保留单片机特性 避免仿真正常而实际烧录芯片不正常的问题 4 仿真频率 0 40MHZ晶振可选 4 5 程序代码可重复装载 6 监控程序占用用户资源极少 全速运行不占用资源 7 可在 Keil uVision2 下单步 断点 全速 可参考变量 RAM 变量 结构变量等 8 支持汇编 C 语言 混合调试 9 内部存储物理空间为 68K 是伟福通用仿真器 G6 型的 7 倍 是伟福 51 专用仿真器的 4 倍 10 仿真频率可达 40MHZ 11 支持 10 个硬件断点 KEILKEIL 软件的安装软件的安装 将带有 KEIL 安装软件的光盘放入光驱 打开光驱中名为 keil750AHK 3000TC 的文件夹再打开 setup 文 件夹 双击 setup 文件夹中 setup 文件即开始安装 单击 Full Version 如图所示 点击 Next Yes Next 此时则须序列号 序列号在光盘 keil750AHK 3000Tc 文件夹目录下的 sn 文件中 输入序列号 其他四项输入任意字母 如图 5 点击 Next 开始安装 反复点击 Next 直到 Finish 即完成安装 6 USBUSB 驱动的安装 驱动的安装 若使用的仿真器是 USB 接口的 则需要安装 USB 驱动 打开安装光盘中的 安装 USB 驱动 文件夹 双击 USB CP2102 XP 2000 开始安装 1 31 3 实验系统模块实验系统模块 超想 3000TC 综合实验仪有丰富的实验电路和灵活的组成方法 这些电路即可以和 51CPU 适配板 Keil C 超级仿真器 组合 完成 MCS51 系列实验 模拟信号发生器 模拟信号发生器 电位器电路用于产生可变的模拟量 顺时钟旋转 电压值加大 反之 减小 减小 加大 138138 译码器译码器 实验仪的ROM RAM 采用64K 空间统一分配地址 程序空间占用前 32K 0000 7FFFH 数据空间占用后 32K 8000H 0FFFFH 使用两片74LS138 译码器对后32K 空间进行译码 7 地址分配如下 EPROM27C256 0000H 7FFFH YC0 YC1 8000H 9FFFH 6264RAM YC7 0F000H 0FFFFH U17 号 74LS138 选通 YC6 0E000H 0EFFFH 8155 YC2 0A000H 0AFFFH 备用 YC3 0B000H 0BFFFH 备用 YS7 0FE00H 0FFFFH DALLAS12887 YS6 0FC00H 0FDFFH 自检时的点阵 LED YS5 0FA00H 0FBFFH LCD 液晶显示 YS4 0F800H 0F9FFH LCD 液晶显示 YS2 0F400H 0F5FFH LED 发光二极管 YS1 0F200H 0F3FFH 自检时的 DA0832 YS0 0F000H 0F1FFH 自检时的 AD0809 开关量发生器开关量发生器 实验平台上有 8 只拨动开关 K0 K7 及相应的驱动电路 以产生 1 0 的逻辑电平 开关向上拨相应插 孔输出高电平为 1 反之 输出低电平为 0 信号发生器 信号发生器 由 U3 的 74LS04 U43 的 74LS00 组成 每按一次带锁开关即产生一个单脉冲 向上 1 向下 0 8 发光二极管组发光二极管组 实验平台上有 8 只发光二极管 由 U33 的 74HC245 驱动 以显示电平状态 高电平 1 点亮发光二极管 步进电机实验电路步进电机实验电路 超想 3000TC 综合实验仪选用的是四相步进电机 由 U25 的 74LS04 和 U21 U23 的 75452 驱动 D A0832D A0832 模块模块 高电平 1 点 亮 9 音响模块 音响模块 喇叭由 U16 的 LM386 驱动 AD0809AD0809 模块模块 10 RS232RS232 通讯模块通讯模块 PWMPWM 模块模块 分频器模块 分频器模块 由 74LS74 的一组锁存器组成二分频的分频器 另一组的引脚均以插孔方式引出 如把 2D 孔与 2 Q 孔相连 还可产生另一个二分频的分频器 EPROM27256EPROM27256 扩展模块扩展模块 TD I 11 V FV F 压频转换压频转换 RAM6264RAM6264 扩展模块扩展模块 81558155 键显模块键显模块 12 DALLAS12887DALLAS12887 时钟模块时钟模块 霍尔传感器霍尔传感器 直流电机直流电机 122X32LCD122X32LCD 液晶显示模块液晶显示模块 13 点阵点阵 LEDLED 模块模块 压力传感器压力传感器 温度传感器温度传感器 14 微型打印机接口微型打印机接口 逻辑笔电路逻辑笔电路 超想 3000TC 综合实验仪上有逻辑测量电路 用于测量各种电平 其中红灯亮表示高电平 绿灯亮表示低 电平 如果两灯同时闪动 表示有脉冲信号 两灯都亮时 表示浮空 高阻态 15 复位电路复位电路 红外线发送红外线发送 接收接收 LEDLED 发光二极管总线驱动发光二极管总线驱动 常用逻辑门电路常用逻辑门电路 16 自由实验插座自由实验插座 超想 3000TC 综合实验仪设计了一个扩展实验板 以供自开发实验用 插座全部引脚都被引出到相应的插 孔 40 芯 32 芯 28 芯 24 芯 20 芯 16 芯 14 芯 8 芯通用 并按照各自的封装标明引脚号 利用这些插 座 可对双列直插式的各种微机芯片进行实验 直流电源外引插座直流电源外引插座 总线插孔 总线插孔 超想 3000TC 综合实验仪的所有总线及控制信号均以插孔方式引出 以便进行开放式实验 空间分配空间分配 扩 展 模 块资源分配 138 译码 27C2560000H 7FFFH 6264 YC0 YC1 8000H 9FFFH 8155 YC6 0E000H 0EFFFH LCD 液晶显示 YS4 YS5 0F800H 0FBFFH DS12887 YS7 0FE00H 0FFFFH LED 二极管总线驱动 YS2 0F400H 0F5FFH 自检时 AD0809 YS0 0F000H 0F1FFH 自检时 DA0832 YS1 0F200H 0F3FFH 黑色 地 红色 5V 88 锁 紧 插 座 1816141210864 171513119753 20 2 1 39 40 2325272931333537 22 2426283032343638 19 21 17 自检时点阵 LED YS6 0FC00H 0FDFFH 自检时微型打印机YC2 0A000H 0AFFFH 备 用 YC2 0A000H 0AFFFH 备 用 YC3 0B000H 0BFFFH 18 第第 2 2 章章 基础性实验基础性实验 实验一实验一 熟悉操作环境熟悉操作环境 八段数码管显示 将 KEIL 仿真器上 40 芯排线一端和实验箱上 51CPU 板上的 40 芯排针连接起来 将仿真器连接的 USB 或串口 线与 PC 机对应的 USB 或串口连接起来 打开实验箱电源 启动 Vision3 进入 KEIL 软件界面 用鼠标左键点击工具栏 项目 选项中的 新项目 如下图所示 输入项目文件名称 并选则保存文件的目录 该目录位置任意 可新建文件夹 如下图所示 为项目文件选择一个目标器件 ATMEL89C51 如下图所示 19 点确定后会弹出一个对话框选择否 如下图所示 右键点击项目工作区的目标 1 再弹出的菜单中选择 为目标 目标 1 选项 如下图所示 在 为目标 目标 1 设置选项 中 点击 调试 菜单 在此菜单中可选择是使用硬件仿真 还是软件 仿真 连接实验箱做实验时选择硬件仿真 点击硬件仿真选项后面的 设置 选项 在此对对话框中选择串口和 波特率 串口根据所连电脑来决定 波特率为 38400 如下图所示 20 点击 文件 新建 创建程序文件并输入下面的实验程序 OUTBIT EQU 0E101H 位控制口 CLK164 EQU 0E102H 段控制口 接 164 时钟位 DAT164 EQU 0E102H 段控制口 接 164 数据位 IN EQU 0E103H 键盘读入口 LEDBUF EQU 60H 显示缓冲 NUM EQU 70H 显示的数据 DELAYT EQU 75H ORG 0000H LJMP START LEDMAP 八段管显示码 DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H DB 7FH 6FH 77H 7CH 39H 5EH 79H 71H DELAY 延时子程序 MOV R6 0FFH MOV R7 00H DELAYLOOP DJNZ R7 DELAYLOOP DJNZ R6 DELAYLOOP RET DISPLAYLED MOV R0 LEDBUF MOV R1 6 共 6 个八段管 MOV R2 00100000B 从左边开始显示 LOOP MOV DPTR OUTBIT MOV A 00H MOVX DPTR A 关所有八段管 MOV A R0 MOV B 8 送 164 DLP RLC A MOV R3 A MOV ACC 0 C ANL A 0FDH MOV DPTR DAT164 MOVX DPTR A 21 MOV DPTR CLK164 ORL A 02H MOVX DPTR A ANL A 0FDH MOVX DPTR A MOV A R3 DJNZ B DLP MOV DPTR OUTBIT MOV A R2 MOVX DPTR A 显示一位八段管 MOV R6 1 LCALL DELAY MOV A R2 显示下一位 RR A MOV R2 A INC R0 DJNZ R1 LOOP MOV DPTR OUTBIT MOV A 0 MOVX DPTR A 关所有八段管 RET START MOV DPTR 0E100H MOV A 03H MOVX DPTR A MOV SP 40H MOV NUM 0 MLOOP INC NUM MOV A NUM MOV B A MOV R0 LEDBUF FILLBUF MOV A B ANL A 0FH MOV DPTR LEDMAP MOVC A A DPTR 数字转换成显示码 MOV R0 A 显示在码填入显示缓冲 INC R0 INC B CJNE R0 LEDBUF 6 FILLBUF MOV DELAYT 30 DISPAGAIN LCALL DISPLAYLED 显示 DJNZ DELAYT DISPAGAIN LJMP MLOOP END 输入完成后以 asm 为扩展名保存到磁盘中 如下图所示 22 右键点击目标 1 下的 源代码组 1 添加文件到源代码组 1 文件类型改为 所有文件 把源程序 添加进去 如下图所示 文件类型的设置 源程序示 C 语言就在 类型 选择 C 语言 是汇编则选择 汇编语言文件 点击确定 如下图所示 23 点击 编译连接 图标 对项目文件进行编译 如下图所示 若编译无误 则点击 调试 启动 停止调试 进入调试界面 如下图所示 在调试界面中点击 调试 启动 停止调试 进入调试界面 点击 调试 运行 可看到 8 段数码管循环显 示 0 F 24 实验二实验二 汇编语言程序设计实验汇编语言程序设计实验 1 1 拆字程序实验 拆字程序实验 一 实验目的 一 实验目的 掌握汇编语言设计方法 二 实验内容 二 实验内容 把 8000H 地址上的内容拆开 高位送 8001H 地址的低位 低位送 8002H 地址的低位 8001H 8002H 地址的高位清零 本程序通常在把数据送显示缓冲区时使用 三 实验器材 三 实验器材 计算机 1 台 四 实验步骤 四 实验步骤 1 按流程图编写程序 以下是通过计算机交叉汇编得到的 LST 文件清单 供参考 2 文件编译连接 装载 用鼠标点击 项目 重建所有目标文件 系统自动进行编译 并弹出信息窗口 若有错误则重新修改再编译 若无错误 点击 调试 启动 停止调试 后进入调试状态 3 设置观察窗口 1 用鼠标点击 视图 存储器窗口 在地址栏中输入 0X8000 2 在 8000H 中写入 数据 任意 3 单步执行观察寄存器和 8000H 8002H 的变化 五 程序框图 五 程序框图 七 实验程序 七 实验程序 把指定字节的高低位拆开分别存放 多用于显示子程序 ORG 0000H MOV DPTR 8000H 指定的字节 MOVX A DPTR MOV B A 暂存 SWAP A 交换 ANL A 0FH 屏敝高位 INC DPTR MOVX DPTR A INC DPTR MOV A B ANL A 0FH 指定字节的内容屏敝高位 MOVX DPTR A LOOP SJMP LOOP END 2 2 数据区传送子程序实验数据区传送子程序实验 一 实验目的 一 实验目的 学习 Windows 平台下的编辑 编译 排错调试方法 二 实验内容 二 实验内容 把外部扩展 RAM 6264 的 8000H 807FH 中的内容传送到 8080H 开始的空间中去 R2 R3 存放源 RAM 区首址 R6 R7 存放需传送的字节数 R4 R5 存放目的 RAM 区首址 三 实验器材 三 实验器材 计算机 1 台 四 程序框图 四 程序框图 五 实验程序 数据传送子程序 ORG 0000H MOV R2 80H MOV R3 00H MOV R6 00H MOV R7 7FH MOV R4 80H MOV R5 80H LOOP0 MOV DPL R3 MOV DPH R2 建立源程序首地址 MOVX A DPTR 取数 MOV DPL R5 MOV DPH R4 目标首地址 8000H 内容送 A 高低位交换 屏蔽高位后送 8001H 8000 内容送 A 屏蔽高位后送 8002H 结 束 开 始 字节数到吗 源地址内容送 A A 送目的地址 源地址加 1 目地址加 1 结 束 25 LOOP MOVX DPTR A 传送 CJNE R3 0FFH LOOPA INC R2 LOOPA INC R3 源地址加 1 CJNE R5 0FFH LOOP1 INC R4 LOOP1 INC R5 目地址加 1 CJNE R7 00H LOOP2 CJNE R6 00H LOOP3 LOOP4 SJMP LOOP4 LOOP2 DEC R7 字节数减 1 SJMP LOOP0 LOOP3 DEC R7 DEC R6 SJMP LOOP0 未完继续 END 3 3 清零内存实验清零内存实验 一 实验目的 一 实验目的 学习 Windows 软件的调试方法 二 实验内容 二 实验内容 把外部 RAM 的 8000 80FFH RAM 空间置零 三 实验器材 三 实验器材 计算机 1 台 四 程序框图 四 程序框图 五 实验程序 五 实验程序 ORG 0000H MOV R0 00H MOV DPTR 8000H 空间首地址送 DPTR LOOP mov a 00h MOVX DPTR A 清零 INC DPTR DPTR 加 1 INC R0 字节数加 1 CJNE R0 00H LOOP 连续清 256 个字节 LOOP1 SJMP LOOP1 END 开 始 外部 RAM 首地 2000H DPTR 00H 送 A 结 束 A DPTR DPTR 20FFH N Y 26 实验三实验三 P1P1 口应用实验口应用实验 一 实验目的 一 实验目的 掌握 P1 口的基本方法和编程 二 实验内容 二 实验内容 利用 P1 口输出高低电平 控制对外部装置的控制 三 实验步骤三 实验步骤 1 1 采用采用P1P1口作输出口作输出 P1口是准双向口 它作为输出口使用时具有锁存功能 实验所需要LED电平显示电路如图1所示 实验平台上有 8 只发光二极管 由 U33 的 74HC245 驱动 以显示电平状态 高电平 1 点亮发光二极管 电平显示电路电平显示电路 在实验系统上如下表所示连线 执行如下程序 发光二极管LED将循环显示 连线说明表连线说明表 四 实验程序 四 实验程序 LOOP MOV A 01H MOV R2 8 OUTPUT MOV P1 A RL A LCALL DELAY DJNZ R2 OUTPUT LJMP LOOP DELAY 延时子程序 MOV R6 0 MOV R7 0 DELAYLOOP DJNZ R6 DELAYLOOP DJNZ R7 DELAYLOOP RET END 连线连接孔 1连接孔 2 1P1 0L0 2P1 1L1 3P1 2L2 4P1 3L3 高电平 1 点 亮 27 关于延时子程序的时间计算 查指令表可知 MOV 和 DJNZ 指令均需用两个机器周期 在 6MHz 晶振时 一个 机器周期时间长度为 12 6 2 s 所以上面延时子程序该的执行时间为 256 255 2 2 12 6 261ms 2 2 采用采用P1P1口作输入和输出口作输入和输出 由 P1 口的准双向口结构可知 当作为输入口时 必须先对它置 1 若不先对它置 1 读入的数据是不 正确的 实验所需要 LED 电平显示电路和逻辑电平开关电路如图 2 所示 实验平台上有 8 只拨动开关 K0 K7 及相应的驱动电路 以产生 1 0 的逻辑电平 开关向上拨相应插 孔输出高电平为 1 反之 输出低电平为 0 逻辑电平开关电路逻辑电平开关电路 在实验系统上如下表所示连线 执行如下程序 发光二极管 LED 将随拨动开关的位置而点亮或熄灭 连线说明连线说明 实验程序实验程序 KEYLEFT EQU P1 0 KEYRIGHT EQU P1 1 LEDLEFT EQU P1 2 LEDRIGHT EQU P1 3 SETB KEYLEFT SETB KEYRIGHT LOOP MOV C KEYLEFT MOV LEDLEFT C MOV C KEYRIGHT MOV LEDRIGHT C LJMP LOOP END 连线连接孔 1连接孔 2 1P1 0k0 2P1 1k1 3P1 2L0 4P1 3L1 向上 1 向下 0 28 3 P1 口控制继电器口控制继电器 系统资源区 的 P1 0 接继电器的Con 端 继电器的In 接 VCC 编制程序 使P1 0 电平变化 高电平时继 电器吸合 常开触点接上 双色灯亮绿灯 低电平时继电器不工作 常闭触点闭合 亮红灯 AA CLR P1 0 MOV R0 10H LCALL DELY LCALL DELY NOP SETB P1 0 LCALL DELY LCALL DELY SJMP AA DELY MOV R5 02H 延时 DELY1 MOV R7 00H DELY2 DJNZ R7 DELY2 DJNZ R6 DELY2 DJNZ R5 DELY2 RET END 29 实验四实验四 外部中断实验外部中断实验 一 实验目的 一 实验目的 掌握工业顺序控制程序的简单编程 中断的使用 二 实验内容 二 实验内容 8031 P1 0 P1 6 控制注塑机七道工序 现模拟控制七只发光二极管的点亮 高电平点亮 设定每道工序时 间转换为延时 P3 4 为开工启动开关 高电平启动 P3 3 为外部故障输入模拟开关 低电平报警 P1 7 为报 警声音输出 设定 7 道工序只有一位输出 三 实验器材 三 实验器材 1 超想 3000TC 综合实验仪 1 台 2 KEIL 仿真器 1 台 3 计算机 1 台 4 连线 若干根 四 程序框图 四 程序框图 主程序流程图主程序流程图 中断服务子程序中断服务子程序 五 接线图案 五 接线图案 六 实验步骤 六 实验步骤 按图接好连线 执行程序 把 K1 和 K0 接到高电平 观察发光二极管点亮情况 确定工序执行是否正常 然后把 K0 置为低电平 看是否有声音报警 恢复中断 1 报警停 又从刚才报警时一道程序执行下去 开 始 开中断 P1 P3 口初始化 等开工 工序 1 延时 工序 2 延时 工序 7 延时 关输出 保护现场 报 警 故障清除了吗 恢复现场 返 回 N 30 七 实验程序 七 实验程序 掌握工业顺序控制的简单编程 中断的使用 ORG 0000H SJMP MAIN ORG 0013H LJMP INTO MAIN MOV P1 00H ORL P3 00H PO11 JNB P3 4 PO11 开工吗 ORL IE 84H ORL IP 04H MOV PSW 00H 初始化 MOV SP 53H PO12 MOV P1 01H 第一道工序 ACALL PO1BH MOV P1 02H 第二道工序 ACALL PO1BH MOV P1 04H 第三道工序 ACALL PO1BH MOV P1 08H 第四道工序 ACALL PO1BH MOV P1 10H 第五道工序 ACALL PO1BH MOV P1 20H 第六道工序 ACALL PO1BH MOV P1 40H 第七道工序 ACALL PO1BH SJMP PO12 INTO MOV B R2 保护现场 PO17 MOV P1 00H 关输出 MOV 20H 0A0H 振荡次数 PO18 SETB P1 7 振荡 ACALL PO1A 延时 CLR P1 7 停止 ACALL PO1A 延时 DJNZ 20H PO18 不为零转 CLR P1 7 ACALL PO1A JNB P3 3 PO17 故障消除吗 MOV R2 B 恢复现场 RETI PO19 MOV R2 10H 延时 1 ACALL DELY RET PO1A MOV R2 06H 延时 2 ACALL DELY RET PO1BH MOV R2 30H 延时 3 ACALL DELY 31 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 32 实验五实验五 定时定时 计数器的记数功能实验计数器的记数功能实验 一 实验目的 一 实验目的 1 熟悉 8031 定时 计数器的记数功能 2 掌握初始化编程方法 3 掌握中断程序的调试方法 二 实验内容 二 实验内容 定时 记数器 0 对外部输入的脉冲进行计数 并送显示器显示 三 三 实验器材 实验器材 1 超想 3000TC 综合实验仪 1 台 2 KEIL 仿真器 1 台 3 连线 若干 根 4 计算机 1 台 四 实验原理 四 实验原理 MCS 51 有两个 16 位的定时 计数器 T0 和 T1 计数和定时实质上都是对脉冲信号进行计数 只不过脉冲 源不同而已 当工作在定时方式时 计数脉冲来自单片机的内部 每个机器周期使计数器加 1 由于计数脉冲 的频率是固定的 即每个脉冲为 1 个机器周期的时间 故可通过设定计数值来实现定时功能 当工作在计数方 式时 计数脉冲来自单片机的引脚 每当引脚上出现一个由 1 到 0 的电平变化时 计数器的值加 1 从而实现 计数功能 可以通过编程来指定时计数器的功能 以及它的工作方式 读取计数器的当前值时 应读 3 次 这 样可以避免在第一次读完后 第二次读之前 由于低位溢出向高位进位时的错误 五 接线图 五 接线图 接线方案 1 接线方案 2 六 程序框图 六 程序框图 七 实验步骤 七 实验步骤 用连线把 系统资源区 的 P3 4 孔连 脉冲源 的 DOWN 孔 执行程序 按动 AN 锁按钮 开 始 堆栈 定时 计数初始化 开定时器 取出 TL0 TH0 内容转换 显 示 主程序流程主程序流程 图图 0 送 R4R5R6 10H R7 0 送 CY R2R3 右移一位 2 R4R5R6 CY 送 R4R5R6 R7 1 0 结 束 二转十进制子程序二转十进制子程序 33 观察数码管上计数脉冲的个数 八 思考问题 八 思考问题 把 P3 4 孔分别与 脉冲源 的 2MHZ 1MHZ 0 5MHZ 孔相连时 显示值反而比连 0 25MHZ 孔更慢 为 什么 当 fosc 6MHZ 时 能够计数的脉冲信号最高频率为多少 九 实验程序 九 实验程序 对定时器 0 外部输入的脉冲信号进行计数且显示 OUTBIT EQU 0E101H CLK164 EQU 0E102H 段控制口 接 164 时钟位 DAT164 EQU 0E102H 段控制口 接 164 数据位 LEDBUF EQU 40H IN EQU 0E103H ORG 0000H MOV SP 60H MOV DPTR 0E100H 8155 初始化 MOV A 03H MOVX DPTR A MOV TMOD 05H 定时器初始化 MOV TH0 00H MOV TL0 00H SETB TR0 LOOP0 MOV R2 TH0 MOV R3 TL0 LCALL LOOP1 MOV R0 40H MOV A R6 LCALL PTDS MOV A R5 LCALL PTDS MOV A R4 LCALL PTDS LCALL DISPLAY SJMP LOOP0 LOOP1 CLR A 二转十子程序 MOV R4 A MOV R5 A MOV R6 A MOV R7 10H LOOP2 CLR C MOV A R3 RLC A MOV R3 A MOV A R2 RLC A MOV R2 A MOV A R6 ADDC A R6 DA A MOV R6 A MOV A R5 ADDC A R5 DA A MOV R5 A MOV A R4 ADDC A R4 34 DA A MOV R4 A DJNZ R7 LOOP2 RET PTDS MOV R1 A 拆字子程序 ACALL PTDS1 MOV A R1 SWAP A PTDS1 ANL A 0FH MOV R0 A INC R0 RET DELAY MOV R7 0 延时子程序 DELAYLOOP DJNZ R7 DELAYLOOP DJNZ R6 DELAYLOOP RET DISPLAY SETB 0D3H MOV R0 LEDBUF MOV R1 6 共 6 个八段管 MOV R2 00000001B 从左边开始显示 LOOP MOV DPTR OUTBIT MOV A 00H MOVX DPTR A 关所有八段管 MOV A R0 MOV DPTR LEDMAP MOVC A A DPTR MOV B 8 送 164 DLP RLC A MOV R3 A MOV ACC 0 C ANL A 0FDH MOV DPTR DAT164 MOVX DPTR A MOV DPTR CLK164 ORL A 02H MOVX DPTR A ANL A 0FDH MOVX DPTR A MOV A R3 DJNZ B DLP MOV DPTR OUTBIT MOV A R2 MOVX DPTR A 显示一位八段管 MOV R6 1 CALL DELAY MOV A R2 显示下一位 RL A MOV R2 A INC R0 35 DJNZ R1 LOOP MOV DPTR OUTBIT MOV A 0 MOVX DPTR A 关所有八段管 CLR 0D3H RET LEDMAP 八段管显示码 DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H DB 7FH 6FH 77H 7CH 39H 5EH 79H 71H END 36 实验六实验六 82558255 输入输出输入输出实验实验 一 实验目的 一 实验目的 了解 8255 和 8155 接口方法 了解芯片的性能及编程方法 二 实验内容 二 实验内容 设计 8255 与单片机的接口 三 实验器材 三 实验器材 1 超想 3000TB 综合实验仪 1 台 2 超想 3000 仿真器 1 台 3 连线 若干 根 4 8255 芯片 1 片 四 实验原理 四 实验原理 8255 是一种可编程并行 I O 扩展接口芯片 内集成有 256 字节的静态 RAM 一个 14 位的定 时计数器 8255 有三个 8 位的并行口 端口既可以编程为普通 I O 口 也可以编程为选通 I O 口和双向传输口 8255 为总线兼容型 可以与 8051 的总线直接接口 其中 口地址取决于片选 CS 和 A1 A0 1 1 端口输入输出实验 端口输入输出实验 本实验中 8255 编程为 PB 口输入 PC 口 PA 口输出 根据 8255 状态控制字选择方法 由于该电路中 8255 的片选段 CS 接到 YC2 因此 PA PB PC 以及控制口的地址分别为 0A000H 0A001H 0A002H 0A003H 编程实 现 8255 的 PA 口按方式 0 输出 PB 口按方式 0 输入 将 PB 口外接 8 个开关的状态通过 PA 口外接的 LED 灯反映 出来 接线图 接线图 8255 的片选段 CS55 接到 YC2 8255 的 PA0 PA7 接到 L0 L7 PB0 PB7 接到 K0 K7 实验程序 实验程序 PORTAEQU0A000H 8255PA 口地址 PORTBEQU0A001H 8255PB 口地址 PORTCEQU0A002H 8255PC 口地址 CADDREQU0A003H 8255 控制字地址 SJMPSTART ORG 0030H START MOV A 82H 方式 0 PA PC 输出 PB 输入 MOV DPTR CADDR MOVX DPTR A LOOP MOV DPTR PORTB MOVX A DPTR 读入 PB 口 MOV DPTR PORTA MOVX DPTR A 输出到 PA 口 37 LCALLDELAY LJMPLOOP DELAY MOV R6 0 延时子程序 DELAY1 MOV R7 0 DELAY2 DJNZR7 DELAY2 DJNZR6 DELAY1 RET END 2 2 82558255 控制交通灯控制交通灯 8255 的片选段 CS 接到 YC2 因此 PA PB PC 以及控制口的地址分别为 0A000H 0A001H 0A002H 0A003H 本实验中 8255 编程为 PB 口 PC 口 PA 口均输出 根据 8255 状态控制字 选择方法 8255 控制字应为 80H 接线图 接线图 8255 的片选段 CS55 接到 YC2 实验程序 实验程序 程序框图 程序框图 ORG 0000H START MOV DPTR 0AC03H MOV A 080H MOVX DPTR A MOV DPTR 0AC00H MOV A 0FFH MOVX DPTR A 全灭 LCALLDELAY MOV DPTR 0AC00H MOV A 0F0H MOVX DPTR A 全红 38 LCALLDELAY MOV DPTR 0AC00H MOV A 05AH MOVX DPTR A LCALLDELAY MOV DPTR 0AC00H MOV A 0F5H MOVX DPTR A LCALLDELAY MOV DPTR 0AC00H MOV A 0AH MOVX DPTR A 全黄 LCALLDELAY MOV DPTR 0AC00H MOV A 0A0H MOVX DPTR A LCALLDELAY MOV DPTR 0AC00H MOV A 0A5H MOVX DPTR A LCALLDELAY SJMP START DELAY MOV R7 08H L1 MOV R6 0FFH L2 MOV R5 0FFH L3 DJNZ R5 L3 DJNZ R6 L2 DJNZ R7 L1 RET END 39 实验七实验七 D AD A 转换实验转换实验 一 实验目的 一 实验目的 了解 D A 转换与单片机的接口方法 了解 D A 转换芯片 DA0832 的性能及编程方法 二 实验内容 二 实验内容 利用 0832 输出一个从 0V 开始逐渐升至 5V 再降至 0V 的三角波电压 数码管显示数字量 值 三 实验器材 三 实验器材 1 超想 3000TC 综合实验仪 1 台 2 KEIL 仿真器 1 台 3 连线 若干 根 4 计算机 1 台 四 接线图案 四 接线图案 五 五 实验原理 实验原理 D A 转换器的功能主要是将输入的数字量转换成模拟量输出 在语音合成等方面得到了广泛的应用 本实 验中采用的转换器为 DAC0832 该芯片为电流输出型 8 位 D A 转换器 输入设有两级缓冲锁存器 因此可同时 输出多路模拟量 本实验中采用单级缓冲连接方式 用 0832 来产生三角波 具体线路如上图所示 VREF 引脚 的电压极性和大小决定了输出电压的极性与幅度 超想 3000TC 综合实验仪上的 DA0832 的第 8 引脚 VREF 的 电压已接为 5V 所以输出电压值的幅度为 0 5V 六 实验步骤 六 实验步骤 1 把 DA0832 的片选 CS32 孔接至 YC3 0B000H 0BFFFH 孔 2 编写程序 编译程序 用单步 断点 连续方式调试程序 排除软件错误 运行程序 8155 键显区数 码管上显示不断加大或减小的数字量 用万用表测量 D A 输出孔 AOUT 应能测出不断加大或减小的电压值 七 思考问题 七 思考问题 修改程序 使能产生锯齿波 九 实验程序 九 实验程序 程序框图 程序框图 OUTBIT EQU 0E101H 位控制口 CLK164 EQU 0E102H 段控制口 接 164 时钟位 DAT164 EQU 0E102H 段控制口 接 164 数据位 IN EQU 0E103H 键盘读入口 LEDBUF EQU 40H 显示缓冲 ORG 0000H MOV SP 60H MOV DPTR 0E100H 8155 初始化 MOV A 03H MOVX DPTR A MOV 40H 00H 显示缓冲区置值 N 0832 初始化 显 示 转换显示加 1 N 输入是否到 FF 输入显示减 1 输入是否到 00 40 MOV 41H 08H MOV 42H 03H MOV 43H 02H LOOP1 MOV R5 00H LOOP2 MOV DPTR 0B000H 0832DA 从小到大转换 MOV A R5 MOVX DPTR A MOV R0 45H MOV 45H A 拆字后送显示缓冲区 ACALL PTDS MOV R6 15H DIR10 ACALL DISPLAY 调用显示子程序 DJNZ R6 DIR10 INC R5 CJNE R5 00H LOOP2 LOOP3 MOV DPTR 0B000H 0832DA 从大到小转换 DEC R5 MOV A R5 MOVX DPTR A MOV R0 45H ACALL PTDS MOV R6 15H DIR11 ACALL DISPLAY DJNZ R6 DIR11 CJNE R5 00H LOOP3 SJMP LOOP1 DELAY MOV R7 01 MOV R3 01 延时子程序 DELAYLOOP DJNZ R3 DELAYLOOP DJNZ R7 DELAYLOOP DJNZ R6 DELAYLOOP RET DISPLAY SETB 0D3H MOV R0 LEDBUF MOV R1 6 共 6 个八段管 MOV R2 00100000B 从左边开始显示 LOOP MOV DPTR OUTBIT MOV A 00H MOVX DPTR A 关所有八段管 MOV A R0 MOV DPTR LEDMAP MOVC A A DPTR MOV B 8 DLP RLC A MOV R3 A MOV ACC 0 C ANL A 0FDH MOV DPTR DAT164 MOVX DPTR A 41 MOV DPTR CLK164 ORL A 03H MOVX DPTR A ANL A 0FDH MOVX DPTR A MOV A R3 DJNZ B DLP MOV DPTR OUTBIT MOV A R2 MOVX DPTR A 显示一位八段管 MOV R6 01 CALL DELAY MOV A R2 显示下一位 RR A MOV R2 A INC R0 DJNZ R1 LOOP MOV DPTR OUTBIT MOV A 0 MOVX DPTR A 关所有八段管 CLR 0D3H RET LEDMAP 八段管显示码 DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H DB 7FH 6FH 77H 7CH 39H 5EH 79H 71H PTDS MOV R1 A ACALL PTDS1 MOV A R1 SWAP A PTDS1 ANL A 0FH MOV R0 A DEC R0 RET DELAY1 MOV R7 03H SJMP DELAYLOOP END 42 实验八实验八 A DA D 转换实验转换实验 一 实验目的 一 实验目的 掌握 A D 转换与单片机接口的方法 了解 A D 芯片 0809 转换性能及编程方法 二 实验内容 二 实验内容 利用综合实验仪上的 0809 做 A D 转换器 综合实验仪上的电位器提供模拟量输入 编制程 序 将模拟量转换成数字量 通过 8155 键显区数码管显示出来 三 实验器材 三 实验器材 1 超想 3000TC 综合实验仪 1 台 2 KEIL 仿真器 1 台 3 连线 若干 根 4 计算机 1 台 四 实验原理 四 实验原理 A D 转换器的功能主要是将输入的模拟信号转换成数字信号 如电压 电流 温度测量等都属于这种转换 本实验中采用的转换器为 ADC0809 它是一个 8 位逐次逼近型 A D 转换器 可以对 8 个模拟量进行转换 转换 时间为 100 S 其工作过程如下 首先由地址锁存信号 ALE 的上升沿将引脚 ADDA ADDB 和 ADDC 上的信号锁存 到地址寄存器内 用以选择模拟量输入通道 START 信号的下降沿启动 A D 转换器开始工作 当转换结束时 AD0809 使 EOC 引脚由低电平变成高电平 程序可以通过查询的方式读取转换结果 也可以通过中断方式读取结 果 CLOCK 为转换时钟输入端
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025网络安全行业劳动合同模板
- 2025采购销售货物合同书
- 租赁园区大棚合同范本
- 2025携手共进合作开发土地合同模板
- 2025风电场EMC合同模板
- 民间抵押汽车合同范本
- 车辆采购合同范本
- 爷孙房屋购买合同范本
- 道闸租赁合同范本
- 定制车库维修合同范本
- 福建省福州市联盟校2023-2024学年高一下学期期末考试英语试题(解析版)
- 2025文化和旅游部直属事业单位招聘社会人员29人模拟试卷附答案详解
- 2024-2025学年重庆市万州区八年级(下)期末语文试卷
- 2025年乒乓球二级裁判考试题及答案
- 血标本采集考试试题附有答案
- 2025年公共安全生产试题及答案
- 员工工资及考勤管理制度
- 浙江省温州市龙湾区2024-2025学年七年级下学期学业水平期末检测数学试题
- 废料出售管理办法
- 企业干部退出管理办法
- 河南选调生管理暂行办法
评论
0/150
提交评论