多路数据采集系统设计报告.doc_第1页
多路数据采集系统设计报告.doc_第2页
多路数据采集系统设计报告.doc_第3页
多路数据采集系统设计报告.doc_第4页
多路数据采集系统设计报告.doc_第5页
免费预览已结束,剩余27页可下载查看

下载本文档

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

文档简介

1 目目 录录 第 1 章 绪论设计目的及要求 2 1 1 绪 论 2 1 2 设计目的 2 1 3 设计要求 2 第 2 章系统总体方案选择与说明 3 2 1 硬件设计框图 3 2 2 软件设计框图 4 第 3 章 数据采集系统概述 工作原理及其说明 5 3 1 数据采集系统概述 5 3 2 工作原理及其说明 5 第 4 章 各单元硬件设计及说明 7 4 1 单片机的时钟源 7 4 2 ADC0809 模数转换芯片 10 4 3 程序存储器和数据存储器电路设计 11 第 5 章 软件设计与说明 12 5 1 设计条件 12 5 3 模块程序设计 15 第 6 章 调试步骤及使用说明 21 第 7 章 设计总结 22 参考文献 23 附 录 24 A 系统电路原理图 24 B 程序 25 电气信息学院课程设计评分表 31 2 第第 1 1 章章 绪论设计目的及要求绪论设计目的及要求 1 11 1 绪绪 论论 随着计算机技术的飞速发展和普及 数据采集系统也迅速地得到应用 在生产过程中 应用这一系统可对生产现场的工艺参数进行采集 监视和 记录 为提高产品质量 降低成本提供信息和手段 在科学研究中 应用 数据采集系统可获得大量的动态信息 是研究瞬间物理过程的有力工具 也是获取科学奥秘的重要手段之一 总之 不论在哪个应用领域中 数据 采集与处理越及时 工作效率就越高 取得的经济效益也越高 本设计采 用 ATMEGA16 单片机作为数据采集系统的控制核心 系统分为数据采集模 块 A D 转换模块 系统控制模块 键盘模块 显示模块等几部分 1 1 2 2 设设计计目目的的 利用单片机为核心设计一个多路数据采集系统 要求每个通道的信号 经 A D 转换后以 10 进制数在 LED 显示器上显示 并能够通过键盘操作切 换显示不同通道的采样值 1 1 3 3 设设计计要要求求 本课题要求利用单片机为核心设计一个八路数据采集系统 要求 每个通道的信号经A D 转换后以 10 进制数在 LED 显示器上显示 并能够通过键盘操作切换显示不同通道的采样值 本系统中包括8 路 模拟量输入 范围0 5V 要求对 8 个通道的模拟量进行巡回采样 再将采集的数据进行工程量化转换后在 LED 显示器上显示 并能 通过按键切换所选通道的采样数据 3 第第 2 2 章章 系系统统总总体体方方案案 选选择择与与说说明明 2 2 1 1 硬硬件件设设计计框框图图 典型数据采集系统配置如图 2 1 所示 有的已实现集成化 多个传感 器的预处理电路输出接入多路模拟开关 然后经过取样 保持电路和 A D 转换后进入 CPU 系统 生产工艺现场 传感器 1 传感器 2 传感器 R 预处理系统 多路模拟开关 A D 转 换 器 计算机 或其他 微处理 器 图 2 2 典型数据采集系统配置图 1 传感器是经典的利用各种原理将被测物理量转化为电信号 2 预处理模块是将模拟信号进行调整 放大 在模拟电路方便实 现的基础上对信号进行自动补偿 自动校正 抑制温漂的模块 3 数据采集 A D 模块将模拟信号进行采样 量化 转化为数字信 号 4 计算机可能为 PC 机 单片机或其他专用处理器 具有数据存 储 记忆与信息处理功能 具有判断 决策处理功能 4 2 22 2 软件设计框图软件设计框图 信号选择单通道 八通道循环 A D 转换并送到 70H 77H 单元 选择被测通道 并确定存储地址 指定内容送到显示器 A D 转换值存入 78H 7AH 单元 通 道 选 择 信 号 随 动 显 示 循 环 显 示 A D 转换值存入 78H 7AH 单元 A D 转换并送到 70H 77H 单元 移动指针指向下通道存储地址 选择被测通道 并确定存储地址 指定内容送到显示器 开始 图 2 2 软件设计框图 5 第第 3 3 章章 数数据据采采集集系系统统概概述述 工工作作原原理理及及其其说说明明 3 13 1 数据采集系统概述数据采集系统概述 数据采集是信息科学的一个主要组词成部分 信息技术的核心是信息 获取 通信和计算机技术 常被称为 3C 技术 其中信息获取是基础和前 提 数据采集是获取信息的主要手段 它随着科学技术的进步而得到迅速 发展 目前各种各样的数据采集系统已得到广泛应用 新型数据采集系统 仍不断涌现 随着科学技术的发展与普及 数字设备正越来越多地取代模拟设备 在生产过程控制和科学研究等广泛领域中 计算机控制技术正发挥着越来 越主要的作用 然而外部世界的大部分信息是以连续变化的物理量形式出 现的 例如温度 压力 位移 速度等 要将这些信息送入计算机进行处 理 就必须先将这些连续的物理量离散化 并进行量化编码 从而变成数 字量 这个过程就是数据采集 数据采集系统是计算机与外部世界联系的桥梁 数据采集技术是信息 科学的主要组成部分 它是以传感器技术 信号检测与处理 电子学 计 算机技术等方面技术为基础而形成的一个综合应用技术学科 已广泛应用 于国民经济和国防建设的各个领域 并且随着科学技术的发展 尤其是计 算机技术的发展与普及 数据采集技术有广阔的发展前景 3 23 2 工作原理及其说明工作原理及其说明 1 采用 80C52 单片机和 ADC0809 构成一个八路数据采集系统 2 能够顺利采集各个通道的信号 3 采集信号的动态范围 0 5V 4 每个通道采样速率 100 sps 5 在面包板上完成电路 将采集的数据送入单片机 70H 77H 存储 单元 6 6 编写相应的单片机采集程序到达规定的性能 8 路输入模拟信号数值显示电路由 A D 转换 数据处理及显示控制等 组成 A D 转换由集成电路 0809 完成 0809 具有 8 路模拟输入端口 地 址 线 23 25 脚 可决定对哪一路模拟输入作 A D 转换 第 22 脚为地址锁存 控制 当输入为高电平时 对地址信号进行锁存 6 脚为测试控制 当输 入一个 2 微秒宽脉冲时 就开始 A D 转换 7 脚为 A D 转换结束标志 当 A D 转换数据结束时 7 脚输出高电平 9 脚为 A D 转换数据输出允许控制 当 OE 脚为高电平时 A D 转换数据从端口输出 10 脚为 0809 的时钟输入 端 利用单片机 30 脚的六分频晶振信号再通过 74hc193 二分频得到 单 片机的 P1 P3 端口作 4 位 LED 数码管显示控制 P0 端口作 A D 转换数据 读入用 P2 端口用作 A D 转换控制 7 第第 4 4 章章 各单元硬件设计及说明各单元硬件设计及说明 4 14 1 单片机的时钟源单片机的时钟源 4 1 1 单片机时钟源 电容 C1 C2 和晶振 6MHz 组成 8031 的外部时钟源电路 如图 4 1 1 将 C1 C2 和晶振组成的回路称为 LC 并联谐振回路 晶振起电感的作用 谐振频率由晶振的频率所决定 8031 单片机的晶振可以选 1 2MHz 12MHz 电容 C1 C2 的取值一般在 20Pf 100pF 之间 在 60pF 70pF 时 频率比较稳定 图 4 1 1 单片机时钟源 采用 80C52 单片机作为数据处理及显示芯片 80C52 的芯片 管脚图如下 8 图 3 1 80C52 单片机引脚图 各管脚说明 VCC 40 供电电源 GND 20 接地 P0 32 39 口 P0 口为一个 8 位漏级开路双向 I O 口 每脚可吸 收 8TTL 门电流 当 P1 口的管脚第一次写 1 时 被定义为高阻输入 P0 能够用于外部程序数据存储器 它可以被定义为数据 地址的第八位 在 FIASH 编程时 P0 口作为原码输入口 当 FIASH 进行校验时 P0 输出原码 此时 P0 外部必须被拉高 P1 1 8 口 P1 口是一个内部提供上拉电阻的 8 位双向 I O 口 P1 口缓冲器能接收输出 4TTL 门电流 P1 口管脚写入 1 后 被内部上 拉为高 可用作输入 P1 口被外部下拉为低电平时 将输出电流 这是 由于内部上拉的缘故 在 FLASH 编程和校验时 P1 口作为第八位地址 接收 P2 21 28 口 P2 口为一个内部上拉电阻的 8 位双向 I O 口 P2 口缓冲器可接收 输出 4 个 TTL 门电流 当 P2 口被写 1 时 其管 脚被内部上拉电阻拉高 且作为输入 并因此作为输入时 P2 口的管 脚被外部拉低 将输出电流 这是由于内部上拉的缘故 P2 口当用于 外部程序存储器或 16 位地址外部数据存储器进行存取时 P2 口输出地 址的高八位 在给出地址 1 时 它利用内部上拉优势 当对外部八位 地址数据存储器进行读写时 P2 口输出其特殊功能寄存器的内容 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号 P3 10 17 口 P3 口管脚是 8 个带内部上拉电阻的双向 I O 口 可接收输出 4 个 TTL 门电流 当 P3 口写入 1 后 它们被内部上拉为 高电平 并用作输入 作为输入 由于外部下拉为低电平 P3 口将输 出电流 ILL 这是由于上拉的缘故 P3 口作为 AT89C51 的一些特殊功 9 能口 管脚 备选功能 表 4 1 80C52 单片机 P3 口引脚功能 端口引脚第二功能 P3 0 RXD 串行输入口 P3 1 TXD 串行输出口 P3 2 外部中断 0 0INT P3 3 外部中断 1 1INT P3 4 T0 定时器 0 P3 5 T1 定时器 1 P3 6 外部数据存储器写选通 WR P3 7 外部数据存储器都选通 RD RST 9 复位输入 当振荡器复位器件时 要保持 RST 脚两个机 器周期的高电平时间 PSEN 29 外部程序存储器的选通信号 在由外部程序存储器取 指期间 每个机器周期两 PSEN 有效 但在访问外部数据存储器时 这 两次有效的 PSEN 信号将不出现 EA VPP 31 当 EA 保持低电平时 则在此期间外部程序存储器 0000H FFFFH 不管是否有内部程序存储器 注意加密方式1 时 EA 将内部锁定为 RESET 当 EA 端保持高电平时 此间内部程序存储 器 在 FLASH 编程期间 此引脚也用于施加 12V 编程电源 VPP XTAL1 18 反向振荡放大器的输入及内部时钟工作电路的输入 XTAL2 19 来自反向振荡器的输出 电容 C1 C2 和晶振 6MHz 组成 8031 的外部时钟源电路 将 C1 C2 和晶振组成的回路称为 LC 并联谐振回路 晶振起电感的作用 谐振频率 由晶振的频率所决定 8031 单片机的晶振可以选 1 2MHz 12MHz 电容 10 C1 C2 的取值一般在 20Pf 100pF 之间 在 60pF 70pF 时 频率比较稳定 4 4 2 2 A AD DC C0 08 80 09 9 模模数数转转换换芯芯片片 本系统采用 ADC0809 来转换模拟信号 其管脚图如下 ADC0908 引脚功能说明 图 4 2 ADC0809 引脚图 ADC0809 引脚功能说明 IN0 IN7 1 5 26 28 8 路模拟量输入端 2 1 2 8 8 14 15 17 18 19 20 21 8 位数字量输出端 ADDA ADDB ADDC 23 25 3 位地址输入线 用于选通 8 路 模拟输入中的一路 ALE 22 地址锁存允许信号 输入 高电平有效 START 6 A D 转换启动脉冲输入端 输入一个正脉冲 至少 100ns 宽 使其启动 脉冲上升沿使 0809 复位 下降沿启动 A D 转换 EOC 7 A D 转换结束信号 输出 当 A D 转换结束时 此 端输出一个高电平 转换期间一直为低电平 11 OE 9 数据输出允许信号 输入 高电平有效 当A D 转换 结束时 此端输入一个高电平 才 能打开输出三态门 输出数字量 CLK 10 时钟脉冲输入端 要求时钟频率不高于640KHZ REF REF 12 16 基准电压 Vcc 11 电源 单一 5V GND 13 地 4 34 3 程序存储器和数据存储器电路设计程序存储器和数据存储器电路设计 EPROM2716 是 8031 单片机的程序存储器 用于存放指令 常数及表格 其地址范围为 0000H 07FFH 片选端接地 表示 2716 总是处于选通状CS 态 开机后 由 8031 的 PSEN 控制端 低电平有效 自动执行从 0000H 开始的程序 如果从OE EPROM 中取常数或查表 则需要执行 MOVCA A DPTR 指令 RAM6116 是 8031 单片机的数据存储器 用于存放采集的数据及数据的 计算与处理结果等 它的地址范围也是 0000H 07FFH 但不会与 EPROM2716 的地址发生冲突 因为它的片选端是通过 8031 的地址线控SC 制的 当地址线 P26 0 时 RAM6116 才选通 8031 执行 MOVX DPTR A 指令可以产生信号 将累加器 A 的内容送片外数据RW 存储器 执行 MOVX A DPTR 指令可以产生信号 将片外数据存储器由 DPTR 指RD 定的地址单元中的内容送至累加器 A DPTR 表示 16 位的地址计数器的内 容 它可以通过执行 MOV DPTA addrl6 指令被赋值 12 第第 5 5 章章 软件设计与说明软件设计与说明 5 5 1 1 设计条件设计条件 本系统 8 路模拟量输入 范围 0 5V 要求对 8 个通道的模拟量进行巡 回采样 再将采集的数据进行工程量转换后在 LED 显示器上显示 并能通 过按键切换所选通道的采样数据 5 25 2 编程思想和流程图编程思想和流程图 编程思想 根据硬件电路图 我们应用汇编语言进行编程 首先在 P2 4 和 P2 3 引脚提供正脉冲 启动 A D 转换 因转换需要一定的时间 所以 需延时等待 然后读取数据 利用软件编程 将二进制数转换为十进制数 送到数码管显示 从左到右轮流点亮显示器各位 对于显示器的每一位来 说 每隔一段时间点亮一次 利用人的视觉暂留功能可以看到整个显示 但必须保证扫描速度足够快 字符才不闪烁 利用单片机的 P1 口提供显 示段码 P3 口的低四位提供位码 数码管的第一位显示通道数 后三位显 示 0 255 的采集数据 流程图如下所示 13 5 1 主程序流程图 将转换结果的个位送到 数码管显示 单片机初始化 转换是否结束 将采集的数据通道送到数码管显 示 将转换结果的十位送到 数码管显示 8 路数据是否采集完 结束 将转换结果的百位送到 数码管显示 启动 A D 转换 开始 Y N Y N 14 5 2 1 主程序流程图 开始 启动测试 AD 转换结 束 P3 7 1 取数据 P2 5 1 0809 地址加 1 地址小于 8 结束 Y N N Y 5 2 2 模数转换流程图 15 5 5 3 3 模模块块程程序序设设计计 1 初始化程序 系统上电时 将 70H 77H 内存单元清 0 P2 口置 1 CLEARMEMIO CLR A MOV P2 A P2 口置 0 MOV R0 70H 内存循环清零 70H 7BH MOV R2 0CH LOOPMEM MOV R0 A INC R0 DJNZ R2 LOOPMEM MOV A OFFH MOV P0 A P0 P1 P3 端口置 1 MOV P1 A MOV P3 A RET 子程序返回 2 主程序 在刚上电时 因 70H 77H 内存单元的数据为 0 则每一通道的数 码管显示值都是 000 当进行一次测量后 将显示出每一通道的 AD 转换 值 每个通道的数据显示时间在 1S 左右 主程序在调用显示程序和测 试程序之间循环 其流程图如 5 1 1 汇编程序 START LCALL CLEARMEMIO 初始化 16 MAIN LCALL DISPLAY 显示数据一次 LCALL TEST 测量一次 AJMP MAIN 返回 MAIN 循环 NOP PC 值出错处理 NOP 空操作 NOP 空操作 LJMP START 重新复位启动 DISPLAY MOV R3 08H 8 路信号循环显示控制 MOV R0 70H 显示数据初值 70H 77H MOV 7BH 00H 显示通道路数 0 7 DISLOOP1 MOV A R0 显示数据转为 3 位十进制 BCD MOV B 100 7AH 79H 78H 显示单元内 DIV AB 显示数据除 100 MOV 7AH A 商入 7AH MOV A 10 A 放入数 10 XCH A B 余数与数 10 交换 DIV AB 余数除 10 MOV 79H A 商入 79H MOV 78H B 余数入 78H MOV R2 0FFH 每路显示时间控制 4ms 255 DISLOOP2 LCALL DISP 调 4 位 LED 显示程序 DJNZ R2 DISPLOOP2 每路显示是时间控制 INC R0 显示下一路 INC 7BH 通道显示数值加 1 DJNZ R3 DISLOOP1 17 8 路显示未完转 DISLOOP1 再循环 RET 8 路显示完子程序结束 LED 共阳显示子程序 显示内容 78H 7BH 数据在 P1 输出 列扫描在 P3 0 P3 3 口 DISP MOV R1 78H 赋显示数据单元首地址 MOV R5 0FEH 扫描字 PLAY MOV P1 0FFH 关显示 MOV A R5 取扫描字 ANL P3 A 开显示 MOV A R1 取显示数据 MOV DPTR TAB 取段码表首地址 MOVC A A DPTR 查显示数据对应段码 MOV P1 A 段码放入 P1 口 LCALL DL1MS 显示 1ms INC R1 指向下一地址 MOV A P3 取 P3 口扫描字 JNB ACC 3 ENDOUT 4 位显示完转 ENDOUT RL A 扫描字循环左移 MOV R5 A 扫描字放入 R5 暂存 MOV P3 0FFH 显示暂停 ALMP PLAY 转 PLAY 循环 ENDOUT MOV P3 0FFH 显示数据 端口置 1 MOV P1 0FFH 18 RET 子程序返回 LED 数码显示管用共阳段码表 分别对应 0 9 最后一个是 熄灭符 TAB DB 0C0H 0F9H 0A4H 0B0H 99H 92H 82H 0F8H 80H 90H 0FFH 1ms 延时子程序 LED 显示用 DL1MS MOV R6 14H DL1 MOV R7 19H DL2 DJNZ R7 DL2 DJNZ R6 DL1 RET 3 显示子程序 采用动态扫描法实现 4 位数码管的数值显示 测量所得的 AD 转换 数据放 70H 77H 内存单元中 测量数据在显示时需经过转换成十进制 BCD 码放在 78H 7BH 中 其中 7BH 存放通道表指数 寄存器 R3 用作 8 路循环控制 R0 用作显示数据地址指针 4 模数转换测量子程序 模数转换测量子程序是用来控制对 0809 八路模拟输入电压的 AD 转 换 并对应的数值移入 70H 77H 内存单元 其流程图如 5 1 2 TEST CLR A 清累加器 A MOV P2 A 清 P2 口 MOV R0 70H 转换值存放首地址 MOV R7 08H 转换 8 次控制 LCALL TESRART 启动测试 WAIT JB P3 7 MOVD 等 A D 转换结束信号后转 MOVD AJMP WAIT P3 7 为 0 等待 19 TESTART SETB P2 3 锁存测试通道地址 NOP 延时 2 微秒 NOP CLR P2 3 测试通道地址锁存完毕 SETB P2 4 启动测试 发开始脉冲 NOP 延时 2 微秒 NOP CLR P2 4 发启动脉冲完毕 NOP 延时 4 微秒 NOP NOP NOP 子程序调用结束 RET 取 A D 转换数据至 70H 77H 内存单元 MOVD SETB P2 5 0809 输出允许 MOV A P0 将 A D 转换值入 A MOV R0 A 放入内存单元 CLR P2 5 关闭 0809 输出 INC R0 内存地址加 1 MOV A P2 通道地址移入 A INC A 通道地址加 1 MOV P2 A 通道地址送 0809 CLR C 清进位标志 CJNE A 08H TESTCON 通道地址不等于 8 转 TESTCON 在测试 JC TESTCON 通道地址小于 8 转 TESTCON 在测试 20 CLR A 大于或等于 8 A D 转换结 束 恢复端口 MOV P2 A P2 口置 0 MOV A 0FFH MOV P0 A P0 口置 1 MOV P1 A P1 口置 1 MOV P3 A P3 口置 1 RET 取 A D 转换数据结束 TESTCON LCALL TESTART 再发测试启动脉冲 LJMP WAIT 跳至 WAIT 等待 A D 转换 结束信号 END 程序结束 21 第第 6 章章 调试步骤及使用说明调试步骤及使用说明 由于程序比较多 整体调试不容易发现和改正错误 故采取子程序 调试的方法 但要明确子程序的具体功能 例如 调试显示子程序时 只将显示子程序进行汇编 确认无误后单步执行 观察 CPU 窗口和 DATA 窗口以及 CODE 窗口相应单元的变化是否跟预期的一样 如果有问题找出 问题所在 采取各个击破的方法调试好各个子程序 确定各子程序无误后 再调试完整的程序 要注意各子程序之间的 衔接以及和主程序之间的调用和返回 运行后 观察有无键盘显示功能 若运行结果不正确 首先应根据程序运行的实际现象分析判断哪些因素 可引起相关故障 再通过调试方法逐一认证和排除 通过反复调试 发 现并排除软件与硬件存在的各类问题 以满足系统设计的预期目的 22 第第 7 7 章章 设计总结设计总结 课程设计是培养学生综合运用所学知识 发现 提出 分析和解决实际 问题 锻炼实践能力的重要环节 是对学生实际工作能力的具体训练和考察 过程 随着科学技术发展的日新日异 单片机已经成为当今计算机应用中 空前活跃的领域 在生活中可以说得是无处不在 因此作为二十一世纪 的大学来说掌握单片机的开发技术是十分重要的 回顾起此次单片机课程设计 我仍感慨颇多 的确 从选题到定稿 从理论到实践 在接近两星期的日子里 可以说得是苦多于甜 但是可以 学到很多很多的的东西 同时不仅可以巩固了以前所学过的知识 而且学 到了很多在书本上所没有学到过的知识 通过这次课程设计使我懂得了理 论与实际相结合是很重要的 只有理论知识是远远不够的 只有把所学的 理论知识与实践相结合起来 从理论中得出结论 才能真正为社会服务 从而提高自己的实际动手能力和独立思考的能力 在设计的过程中遇到问 题 可以说得是困难重重 这毕竟第一次做的 难免会遇到过各种各样的 问题 同时在设计的过程中发现了自己的不足之处 对以前所学过的知识 理解得不够深刻 掌握得不够牢固 比如说不懂一些元器件的使用方法 对单片机汇编语言掌握得不好 通过这次课程设计之后 一定把以前所 学过的知识重新温故 这次课程设计终于顺利完成了 在设计中遇到了很多编程问题 最后 在同学们的探讨下在蔡老师的辛勤指导下 终于游逆而解 同时 在蔡老 师那里我学得到很多实用的知识 在次我表示感谢 同时 对给过我帮助 的所有同学和各位指导老师再次表示忠心的感谢 23 参考文献参考文献 1 单片机应用系统设计 何立民 编 北航出版社 2 单片机原理及应用 王迎旭 主编 机械工程出版社 3 51 系列单片机设计实例 楼然苗 等编 北航出版社 4 51 单片机应用系统开发典型实例 戴家 等编 中国电力出版社 5 单片微型计算机原理及接口技术 陈光东 等编 华中科技大学出版 社 6 单片机实用系统设计技术 房小翠 编 国防工业出版社 24 附附 录录 A 系统电路原理图 系统电路原理图 25 系统电路原理图 B B 程序 程序 70 77H 存放采样值 78H 7BH 存放显示数据 一次个位 十位百位 通 26 道标志 主程序和中断程序入口 ORG 0000H 程序执行开始地址 LJMP START 跳至 START 执行 ORG 0003H 外中断 0 中断入口地址 RETI 中断返回 不开中断 ORG 000BH 定时器 T0 中断入口地址 RETI 中断返回 不开中断 ORG 0013H 外中断 1 中断入口地址 RETI 中断返回 不开中断 ORG 001BH 定时器 T1 中断入口地址 RETI 中断返回 不开中断 ORG 0023H 串行口中断入口地址 RETI 中断返回 不开中断 ORG 002BH 定时器 T2 中断入口地址 RETI 中断返回 不开中断 初始化程序中的各变量 CLEARMEMIO CLR A MOV P2 A P2 口置 0 MOV R0 70H 内存循环清零 70H 7BH MOV R2 0CH LOOPMEM MOV R0 A INC R0 DJNZ R2 LOOPMEM MOV A OFFH 27 MOV P0 A P0 P1 P3 端口置 1 MOV P1 A MOV P3 A RET 子程序返回 主程序 START LCALL CLEARMEMIO 初始化 MAIN LCALL DISPLAY 显示数据一次 LCALL TEST 测量一次 AJMP MAIN 返回 MAIN 循环 NOP PC 值出错处理 NOP 空操作 NOP 空操作 LJMP START 重新复位启动 DISPLAY MOV R3 08H 8 路信号循环显示控制 MOV R0 70H 显示数据初值 70H 77H MOV 7BH 00H 显示通道路数 0 7 DISLOOP1 MOV A R0 显示数据转为 3 位十进制 BCD 码存入 MOV B 100 7AH 79H 78H 显示单元内 DIV AB 显示数据除 100 MOV 7AH A 商入 7AH MOV A 10 A 放入数 10 28 XCH A B 余数与数 10 交换 DIV AB 余数除 10 MOV 79H A 商入 79H MOV 78H B 余数入 78H MOV R2 0FFH 每路显示时间控制 4ms 255 DISLOOP2 LCALL DISP 调 4 位 LED 显示程序 DJNZ R2 DISPLOOP2 每路显示是时间控制 INC R0 显示下一路 INC 7BH 通道显示数值加 1 DJNZ R3 DISLOOP1 8 路显示未完转 DISLOOP1 再 循环 RET 8 路显示完子程序结束 LED 共阳显示子程序 显示内容 78H 7BH 数据在 P1 输出 列扫描在 P3 0 P3 3 口 DISP MOV R1 78H 赋显示数据单元首地址 MOV R5 0FEH 扫描字 PLAY MOV P1 0FFH 关显示 MOV A R5 取扫描字 ANL P3 A 开显示 MOV A R1 取显示数据 MOV DPTR TAB 取段码表首地址 MOVC A A DPTR 查显示数据对应段码 MOV P1 A 段码放入 P1 口 LCALL DL1MS 显示 1ms INC R1 指向下一地址 MOV A P3 取 P3 口扫描字 29 JNB ACC 3 ENDOUT 4 位显示完转 ENDOUT RL A 扫描字循环左移 MOV R5 A 扫描字放入 R5 暂存 MOV P3 0FFH 显示暂停 ALMP PLAY 转 PLAY 循环 END

温馨提示

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

评论

0/150

提交评论