基于C51单片机的计算器系统设计 论文.doc_第1页
基于C51单片机的计算器系统设计 论文.doc_第2页
基于C51单片机的计算器系统设计 论文.doc_第3页
基于C51单片机的计算器系统设计 论文.doc_第4页
基于C51单片机的计算器系统设计 论文.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1 目录 引言引言 4 1 设计任务设计任务 4 2 方案论证方案论证 5 3 电路的硬件设计电路的硬件设计 5 3 1 系统框图 5 3 2 微处理器的选择 5 3 3 电源模块 6 3 4 AT89C51 单片机参数 6 3 5 键盘的设计 8 3 6 复位电路的设计 9 3 7 振荡电路的设计 9 3 8 数码显示及驱动电路 9 4 电路调试和结论电路调试和结论 11 4 1 具体电路系统图 11 4 2 复位电路的测试 11 4 3 振荡电路及端口测试 12 4 4 电源的测试 12 4 5 数码显示电路及测试 13 5 5 软件设计部分软件设计部分 14 5 1 软件设计总宽图 14 5 2 程序流程图 15 6 本次设计的心得与体会 本次设计的心得与体会 16 6 1 设计需考虑下列几点 16 6 2 硬件系统稳定工作应考虑的几点问题 16 6 3 软件编程注意事项 17 6 4 C 语言编程与汇编编程的比较 18 7 本次课程设计已完成如下功能 本次课程设计已完成如下功能 20 8 结论 结论 21 参考文献参考文献 21 附录一 PCB 的 3D 效果 22 附录二 总的程序 23 附录三 元件清单表 38 致致 谢谢 39 2 基于 C51 单片机的计算器系统设计 姓名 杜兴荣 学号 0310402005 专业 电子信息科学与技术 引言 随着社会的发展 科学的进步 人们的生活水平在逐步的提高 尤其是微电子技术的发展 犹如雨后春笋般的变化 电子产品的更 新速度快就不足惊奇了 计算器在人们的日常中是比较的常见的电子产品之一 可是它 还在发展之中 以后必将出现功能更加强大的计算器 基于这样的 理念 本次设计是用单片机来设计的两位数计算器 该设计系统是 以 AT89C51 为单片机 P1 口作为输入端 外接 4X4 的键盘 通过 键盘扫描来对输入数的控制 在 P0 口 P2 口接了驱动电路 用来 保证 LED 的工作正常 计算器将完成的功能有加 减 乘 除等功 能 该系统还设了功能键 开始显示 0 按了键后就进入计算状态 再按该键就进入时钟状态 当然还有一些不足之处 本次设计还不 能进行小数计算 在做除法运算时也只能计算除数是被除数的整数 倍的情况 但是硬件的设计上是可以实现的 比如 设几个功能键 还可以实现时间的调时 频率计 秒表等 1 设计任务 基于AT89C51芯片的应用及端口的扩展 来实现两位数的计算即 3 加 减 乘 除等功能 在硬件的基础上做扩展功能 如时钟显示 2 方案论证 方案一 用分立元件来做计算器系统 分别用4X4键盘 加法器 移位寄存器 译码器 存储器 4个1位的共阴LED显示管 其中乘 法运算是用加法和移位两种操作实现 除法运算可用减法和移位操 作来实现 方案二 采用AT89C51为核心 4x4的键盘 用共阴的四位来显 示计算数值 其中数码管的段码驱动电路是选用74LS245 UN2003 来做位选 经过对两个方案的比较 本设计运用方案二来实现计算 器系统 3 电路的硬件设计 3 1 系统框图 键盘输入驱动芯片数码显示AT89C51 3 1 系统框图系统框图 3 2 微处理器的选择 1 控制中心用 AT89C51 来实现 2 驱动是用 74LS245 UN2003 来实现 3 显示是用共阴的四位数码管来完成 4 4 用 7805 来做稳压 提供 5V 电源 实际是 4 98V 符合设计 的要求 3 3 电源模块 图3 3电源模块 参数设置 变压器选取原则 VI 比 VO 一般高出 2 6V D1 D4 为普通整流二极管 D5 为发光二极管 C1 取 1000UF 4700uf 的电 解电容 C2 C4 取 0 1 1uf 的无极性的电容 C3 取 100 470uf 此 系统的元件参数如上图 3 3 在 7805 的 1 3 两端可以在就加个二极管可以有效的保护电路 在电流过大时候可以对 7805 的耐压起到了保护作用一致于烧毁 7805 芯片 在 C1 的电容增大时可以提高电路的稳压效应 当然也 不是说越大越是好 还的受其使用电路的制约 C2 是一个滤波电容 可以有效的滤掉高平信号产生的干扰 D5 是一个发光的二极管可以 在上电是看到电路是不是导通 C3 和 C4 构成了电容的反馈有效的 滤低平波和进行保护电路 5 3 4 AT89C51 单片机参数 Vcc 正常的运行的电压是 5v 的电源 Vss 为地端 I O 总线 P0 口 P1 口 P2 口 P3 口 AT89C51 是 MCS 51 产品的兼容型 ROM 128 字节 ROM 32 根 I O 引线 每根都可以独立的使用 每 个的端口包含一个 8 位的数据锁存和一个输入缓冲器 输出时 数 据可以锁存 输入是 数据可以缓冲 作为一般的 I O 口使用时 在指令的控制下 可以有三种基本的方式 输入输出和读 修改 写 在 AT89C51 用作输入端时 将首先向引脚写 1 而使内部 MOS 管截止以便引脚处于悬浮状态 从而可获得高阻抗输入 引脚图如下图 图 3 4 AT89C51 单片机的注意事项 1 在把电流输入单片机的过程中我们要做的事前有 4 步 第一 用 万用表测电压是不是在 5v 1 5v 5v 1 5v 之间 因为电压太大会给 单片机工作造成硬件的损害 电流要求是 1 5A 0 5A 安全电流 第二步 确保电压输入 电流的安全情况下 先断电源 再插 89c51 芯片测量各个端口电压 第三 在各个端口的电压在调试相 关的用电器件达到了规定的数值 然后就可以编程了 第四 要是 6 出现电压为 0v 的情况我们就要首先查看有没有虚焊的现象 2 在 P0 口加上拉电阻 10K 目的是提供单片机的内部电压 因为 单片机 P0 口内部是由 CMOS 管构成的 电压偏低 不能使单片机 P0 口正常工作 3 5 键盘的设计 1234 A B C D 4321 D C B A Title NumberRevisionSize A4 Date 11 May 2007Sheet of File C Documents and Settings Administrator 业业 业业业 MyDesign ddbDrawn By S1 SW D PST S5 SW D PST S2 SW D PST S3 SW D PST S4 SW D PST S13 SW D PST S6 SW D PST S7 SW D PST S8 SW D PST S10 SW D PST S9 SW D PST S12 SW D PST S11 SW D PST S14 SW D PST S16 SW D PST S15 SW D PST p1 0vcc p0 0p1 1 p0 1 p0 2 p1 2 p0 3 p0 4 p1 3 p0 5 p0 6 p1 4 p0 7 vpp p1 5 ale psen p1 6 p2 7 p2 6 p1 7 p2 5 p2 4 vpd p2 3 p2 2 p3 0 p2 1 p2 0 p3 1 p3 2 p3 3 p3 4 p3 5 p3 6 p3 7 txal2 txal1 vss JP1 AT 89C51 R1 2 R2 3 R3 4 R4 5 vcc 1 RP1 10k 图 3 5 键盘的设计 图是键盘设计 采用 AT89C51 芯片接口构成 4X4 的的键盘 P1 口的高四位作为输入 P1 口的低四位作为输出 如果有键按下 则应输出为低电平 否则输出为高电平 通过这样可以判断按下什 么键 在键按下后 要有一定的延时 防止由于键盘的抖动而引起误 操作 键盘电路设计说明 1 在安装前首先要确保开关没有什么问题 7 2 看电路有没有短接的现象 3 在把开关安装好后要测一下看看有没有虚焊 4 在 p1 口的低四位都加了 10k 的电阻 把电压拉高的目的 3 6 复位电路的设计 123456 A B C D 654321 D C B A Title Num berRevisionSize B Date 24 Apr 2007Sheet of File H 业业业业业业业 M yDesign ddbDrawn B y C3 10UF R14 470 VC C R15 10k f1 图3 6 复位电路的设计 图中的RC为延时电路 只要RST端出现2个机器周期的高电平就可 以使单片机复位 单片机复位后RST端出现底电平 3 7 振荡电路的设计 Y1 CRYS TAL C4 33PF C5 33PF T11 T12 图3 7振荡电路的设计 单片机芯片内部设有一个反向放大器所构成的振荡器 18脚和 19脚分别为振荡电路的输入端和输出端 时钟由内部电路产生 定时 器件为石英晶体和电容组成的并联谐振回路 电容C5 C6的取值在 8 5 30Pf Y1的取值在1 2 12M之间选取 3 8 数码显示及驱动电路 如图所示 AT89C51 的 P0 口用于数码管的段选 由 74LS245 来驱 动 P2 口用于数码管的位选 由 ULN2003 来驱动 所用数码管为 共阴极 1234 A B C D 4321 D C B A Title NumberRevisionSize A4 Date 13 May 2007Sheet of File C Documents and Settings Administrator 业业 业业业 MyDesign ddbDrawn By C7 104PF VCC p1 0vcc p0 0p1 1 p0 1 p0 2 p1 2 p0 3 p0 4 p1 3 p0 5 p0 6 p1 4 p0 7 vpp p1 5 ale psen p1 6 p2 7 p2 6 p1 7 p2 5 p2 4 vpd p2 3 p2 2 p3 0 p2 1 p2 0 p3 1 p3 2 p3 3 p3 4 p3 5 p3 6 p3 7 txal2 txal1 vss JP1 AT 89C51 1 2 3 4 5 6 7 8 9 J33 CO N9 p00 p01 p02 p03 p04 p05 p06 p07 p00 p01 p02 p03 p04 p05 p06 L1 L2 L3 L4 L1 L2 L3 L4 DIR A1 A2 A3 A4 A5 A6 A7 A8 GN DB8 B7 B6 B5 B4 B3 B2 B1 G VCC J22 74LS245 int1 int2 int3 int4 int5 int6 int7 GN D out2 out3 out4 out5 out6 out7 out1 VCC J44 UL N2003 t1 t2 t3 t4 t5 t6 t7 h1 h2 h3 h4 L5 VCC VCC VCC p07 t8 a bf c g d e dp a bf c g d e dp a bf c g d e dp a bf c g d e dp 2 11 10 6 1 9 b s3 s2 f a s15 4 8 3 7 12 e d dp c g s4 Q5 gongyin t1 t2 t3 t4 t5 t6 t7 h1 h2 h3 h4 t8 R111 470 R112 470 R113 470 R114 470 R115 470 R116 470 R117 470 R118 470 vcc 1 R1 2 R2 3 R3 4 R4 5 R5 6 R6 7 R7 8 R8 9 RP2 10k VCC 图 3 8 数码显示及驱动电路 四位数码管 段码端为高电平有效 位码端为低电平有效 在设计驱动电路时 是把驱动分成了两部分 即断码驱动和位驱 动 断码驱动电路 芯片从单片机的 p0 口加上拉 10k 的电阻并 且送数据到 74LS245 芯片 位选择驱动电路 从单片机的 p2 口加 上拉选择 10k 的电阻送数据到头 UN2003 芯片的低四位 在从低 9 四位送数据到数码管 4 电路调试和结论 4 1 具体电路系统图 S1 SW D PST S5 SW D PST S2 SW D PST S3 SW D PST S4 SW D PST S13 SW D PST S6 SW D PST S7 SW D PST S8 SW D PST S10 SW D PST S9 SW D PST S12 SW D PST S11 SW D PST S14 SW D PST S16 SW D PST S15 SW D PST C3 10UFY1 CRYSTAL C4 33PF C5 33PF C7 104PF VCC R14 470 VCC R15 10k R24 2 2k VCC D4 LE D p1 0vcc p0 0p1 1 p0 1 p0 2 p1 2 p0 3 p0 4 p1 3 p0 5 p0 6 p1 4 p0 7 vpp p1 5 ale psen p1 6 p2 7 p2 6 p1 7 p2 5 p2 4 vpd p2 3 p2 2 p3 0 p2 1 p2 0 p3 1 p3 2 p3 3 p3 4 p3 5 p3 6 p3 7 txal2 txal1 vss JP1 AT 89C51 1 2 3 4 5 6 7 8 9 J33 CO N9 p00 p01 p02 p03 p04 p05 p06 p07 p00 p01 p02 p03 p04 p05 p06 L1 L2 L3 L4 L1 L2 L3 L4 T11 T12 T11 T12 f1 f1 DIR A1 A2 A3 A4 A5 A6 A7 A8 GN DB8 B7 B6 B5 B4 B3 B2 B1 G VCC J22 74LS245 int1 int2 int3 int4 int5 int6 int7 GN D out2 out3 out4 out5 out6 out7 out1 VCC J44 UL N2003 t1 t2 t3 t4 t5 t6 t7 h1 h2 h3 h4 L5 L5 VCC VCC VCC p07 t8 R1 2 R2 3 R3 4 R4 5 vcc 1 RP1 10k a bf c g d e dp a bf c g d e dp a bf c g d e dp a bf c g d e dp 2 11 10 6 1 9 b s3 s2 f a s15 4 8 3 7 12 e d dp c g s4 Q5 gongyin t1 t2 t3 t4 t5 t6 t7 h1 h2 h3 h4 t8 78 1 2 3 U 78业业3业业业业 1 2 3 JP业 业业业业 C11 0 1uf C14 0 1uf C15 0 1uf C16 0 1uf A A K K D12 1n4148 R111 470 R112 470 R113 470 R114 470 R115 470 R116 470 R117 470 R118 470 vcc 1 R1 2 R2 3 R3 4 R4 5 R5 6 R6 7 R7 8 R8 9 RP2 10k VCC 图 4 1 具体电路系统图 4 2 复位电路的测试 经过测试复位后 单片机的 1 脚电压为 0 只是在复位的瞬间 出现 4 95 V 的高电平 从而使单片机复位 在测试中 在上电后还会出现不能复位的现象 或者是复位跳 变 有时候可以复位有时候不能跳变 分析情况有电容太小了 或 10 者是电容的保护电阻选择不是很正确 通常电阻 470 1k 而电容是 10u 1000u 电容大电阻也要相应的变大 在与单片机连接处还要加 一个 10k 的电阻 电阻接地 使复位工作稳定 4 3 振荡电路及端口测试 在电路中 我们用示波器看到晶振不能起振波形 对这样的情 况 我们可查看硬件电路 一看 电容 33p 104p 是不是有引脚 没有接地 二看 是不是存在虚焊 三看 单片机有没有电流输出 四测 把晶振拿下来 再测是不是正常 经过测试单片机 4 脚电压为 3 7V 5 脚的电压为 2 2V 振荡电 路的波形测试为 11 0522MHZ 的正弦波 复位后的端口除 10 脚和 1 脚为低电平 0V 外 其他脚为高电平 4 95V 4 4 电源的测试 电源通过示波器测试图形如下 图 4 4 电源的测试 电源在调试过程中 1 在稳压管前面的电容太小 出现电源的输出不是很稳定情况 常在稳压管前面加的电容是有极限的 470u 1000u 左右 11 2 接通电源以后会出现稳压管很烫的现象 出现的情况可能是输入 的电流功率太大 也有可能是硬件的接法存在问题 基于第一种 我们可以用人为的加一个煽热片 保证稳压管的正常工作 第二 种可加入一个反向的稳压二级管 不让稳压管烧坏 在稳压管的 后面还要加滤波电容和反馈电容 4 5 数码显示电路及测试 在进行调试过程中我们会发现数码管显示不是很正常 问题如 比较的暗 显示的断码不是很全面以及数码显示时出现闪动的现象 等 下面简要地描述一些解决问题的方法 首先 检查在编写程序没有出现编写错误的前提下 要从单片机 的输出口查起 看看输出值跟编写的程序输出值是不是相一致 接 下来就要看看各个端口连接处是不是有虚焊的存在 再次 就要用万用表测量电压 电流的输出结果 看看能不能 达到可以让数码管正常工作 有击穿的话就应该立即更换 最后 要是数码管的相关的问题还是没有解决 那就要看自己 的电路图是不是存在问题 以及电阻选择上的错误 12 5 软件设计部分 5 1 程序流程图 初始化地址参数 输出列扫描信号 列扫描信号移位 读入行信号 时钟记时间状态 模式键再次按下 四列扫描完 返回 模式键第一次 按下 开始 计算器状态 读入键值执行运算操作 等于操作 终止 13 图 5 1 程序流程图 5 2 软件设计总宽图 显示缓冲初始地址 LED 显 示 开 始 读取键值 键值转换为显示数 判断有键输 入 图 5 2 软件设计总宽图 6 本次设计的心得与体会 6 1 设计需考虑下列几点 1 尽可能选择典型电路 2 系统的扩充与外围装置 应充分满足应用系统的要求 并保留一 些扩充槽 以便进行第二次开发 14 3 硬件结构应结合应用软件一并考虑 软件有执行的功能尽可能 用软件来执行 以便简化硬件结构 但必须注意 用软件执行硬 件的功能 其响应时间比直接使用硬件时间长 且占CPU时间 4 整个系统器件应尽可能做到性能匹配 例如选用石英振荡频率 较高时 应选择存储速度较快的IC 选择CMOS单片机构成低功耗 系统时 系统IC都应选择低功耗的IC 5 可靠性及抗干扰设计是硬件设计极其重要的部分 包括器件选 择 电路版布线 通道隔离等 6 单片机微处理器外接电路较多时 必须考虑其驱动能力 驱动 能力不足时 系统工作不可靠 解决办法是 增加驱动能力或减 小IC功耗 降低总线负载 6 2 硬件系统稳定工作应考虑的几点问题 1 与外界容易产生干扰的输入接点 继电器的输出接点等器件部 分 采用光耦隔离 使外界杂散信号无法干扰 CPU 的运行 2 没有使用的端口引脚应接到一个固定的逻辑电位以免受到外界 的静电干扰 导致 CPU 运行失常而死机 3 易受杂散信号干扰处则接一个 0 01uF 的树脂电容的机体外壳 使杂散信号的尖峰毛刺经此电容到外壳 4 每一颗 IC 的 VCC 与 GND 之间一般接 0 01uF 到 0 1uF 的积层电 容以使电源的电压波纹及杂散信号有所旁路同时可以抵消电路的 电感性 使整个电路有较好的稳定性 15 5 所设计的逻辑门尽量使用高速 CMOS 型来配合 CPU 的快速动作 要求 硬件设计时尽量使用商品化的设计电路 以减小个人开发 时间 6 3 软件编程注意事项 1 编程时先画流程图 使编程思路更清晰 2 嵌入汇编语言的非主函数必须放在同主函数不同的文件中 放在同一文件中时 会在程序初始化时产生不能跳转至主函数 的错误 3 编程中 间接寻址要使用 DPTR PC R0 R1 寄存器 写入 数据时亦同 且不能写入立即数 而应用寄存器 如 A 例子 如下 MOV R1 SP MOV A R1 MOV A 03H MOV R1 A 4 堆栈压入时指针为从低地址到高地址移动 先压入高地址 后压入低地址 堆栈指针所指为空 函数返回后 PC 修改为所 弹出的地址 由此可通过修改堆栈中的地址 而达成修改函数 返回后的运行位置 5 关于 MOVX 的使用 对于 DPTR 在程序运行中不能直接赋值 由于没有其他寄存器同 16 为 16 位 想直接赋值只能用直接数 但间接赋值很方便 把寄 存器内容 MOV 给 DPH 和 DPL 赋值就可以了 在 MOVX 中 P0 与 P2 的值都只是在前半部分跳变一下 后面就不再输出地址 了 若想将 P2 的数值锁存 另需他法 ALE 的信号亦同 但需 注意 其他命令也会导致 ALE 的跳变 故不可认为使用 MOVX 之后 所存器的输出端会一直为 P0 所输出的低地址 6 注意跳转指令的跳转范围 例如JZ跳转范围为256个字节 而 AJMP为2KB的跳转范围 当碰到跳转范围不够时 可以想办法搞 一个中间跳转 先让JZ跳到某个位置 然后用AJMP去跳到所需要 跳的地方 7 编程时尽量优化代码 6 4 C 语言编程与汇编编程的比较 1 汇编语言是一种用文字助记符来表示机器指令的符号语言 是 最接近机器码的一种语言 其主要优点是占用资源少 程序执行 效率高 但是不同的CPU 其汇编语言可能有所差异 所以不易 移植 2 C语言是一种结构化的高级语言 其优点是可读性好 移植容易 是普遍使用的一种计算机语言 缺点是占用资源较多 执行效率 没有汇编高 3 对于目前普遍使用的RISC架构的8bit MCU来说 其内部 ROM RAM STACK等资源都有限 如果使用C语言编写 一条 17 C语言指令编译后 会变成很多条机器码 很容易出现ROM空间 不够 堆栈溢出等问题 而且一些单片机厂家也不一定能提供C编 译器 而汇编语言 一条指令就对应一个机器码 每一步执行什 么动作都很清楚 并且程序大小和堆栈调用情况都容易控制 调 试起来也比较方便 所以在单片机开发中 还是采用汇编语言比 较好 而 C 语言是一种编译型程序设计语言 它兼顾了多种高级语言 的特点 并具备汇编语言的功能 C 语言有功能丰富的库函数 运算速度快 编译效率高 有良好的可移植性 而且可以直接 实现对系统硬件的控制 C 语言是一种结构化程序设计语言 它支持当前程序设计中广泛采用的由顶向下结构化程序设计技 术 此外 C 语言程序具有完善的模块程序结构 从而为软件 开发中采用模块化程序设计方法提供了有力的保障 因此 使 用 C 语言进行程序设计已成为软件开发的一个主流 用 C 语言 来编写目标系统软件 会大大缩短开发周期 且明显地增加软 件的可读性 便于改进和扩充 从而研制出规模更大 性能更 完备的系统 4 深刻的理解了 AT89C51 的芯片的功能 5 学会用 74LS245 芯片 UN2003 芯片的应用 6 能够解决一些在设计过程中的存在问题 包括在软件的设计 7 掌握了设计过程中存在电路问题的分析方法 例如 怎么样测 试芯片的好坏 电路在没有电压大于 5V 或小于 5V 时是怎么样 18 解决问题 以及怎么样用软件来测试硬件的问题 7 本次课程设计已完成如下功能 1 可以进行两位的数字计算加 减 可以显示负数 乘 除功 能 2 进行电子时钟计时 误差 2ms 8 结论 本次设计完成对数字的两位计算功能 其中还存在一些不足的 地方 在做除法运算时也只能计算除数是被除数的整数倍的情况 在该次设计还添加了电子时钟的显示功能 由于带有 4X4 的键盘 对功能的扩展是完全可以实现的 只要用软件设定功能键就可以完 成 今后电子产品的发展也会顺着多功能应用的趋势 在设计与实现过程中 遇到了很多的困难 在老师和同学的帮 助下 本设计基本上实现了所要求的功能 能满足题目的基本要求 尽量做到了硬件电路简单 稳定 减少了电磁干扰及其它的环境干扰 充分发挥了软件编程的优点 减少了因元件精度不够引起的误差 由于时间有限和我们本身知识水平的限制 我们一致认为本系统 还有需要改进和提高的地方 例如 选用精度更高的电子元器件 采 用更人性化的显示 控制系统等 使硬件电路部分更加精确稳定 选 用更加简便的算法来进一步的完善软件部分 19 参考文献 1 余锡存 曹国华 单片机原理及接口技术 西安电子科技大学出版 社 2000 2 阎石 数字电子技术基础 第四版 高等教育出版社 1998 3 童诗白 华成英 模拟电子技术基础 第三版 高等教育出版社 2001 4 朱善君 孙新亚 单片机接口技术与应用 清华大学出版社 2005 5 曾一江 单片微机原理与接口技术 科学出版社 2006 6 单片机无线数据通信IC原理与应用 黄智伟 北航出版社 7 单片机微型机原理接口应用 徐费民 北京邮电大学出版社 附件 附录一 PCB 的 3D 效果 图A 1 PCB 板三维图 20 图 A 2 元气键分派三维图 图 A 4 PCB 板 21 附录二 总的程序 include REGX51 H include intrins h define uchar unsigned char define uint unsigned int uchar code disptab 0 xB7 0 0 xA0 1 0 xD3 2 0 xF1 3 0 xE4 4 0 x75 5 0 x77 6 0 xA1 7 0 xF7 8 0 xF5 9 显示器缓冲区段码 P10 到 P13 的键驱动码 uchar code drive code 4 0 x7f 0 xdf 0 xbf 0 xef P1 口的键盘译码 uchar code key yima 16 0 x77 0 xb7 0 xd7 0 xe7 0 x7b 0 xbb 0 xdb 0 xeb 0 x7d 0 xbd 0 xdd 0 xed 0 x7e 0 xbe 0 xde 0 xee 第一操作数 第二操作数 22 一秒到的标志 运算符标志 负号标志 uint second flag op fuhao 0 时间存储器 操作数存储区 uint data timebuf 6 0 0 0 0 9 1 shuju 2 4 0 0 0 0 0 0 0 0 void mdelay uint delay 延时 1MS 子程序 uint s for delay 0 delay for s 0 s 124 s 显示扫描次数 显示数据 位选口初值 void timer0 init 定时器 0 初始化子程序 EA 0 TR0 0 TMOD 0 x01 TH0 65536 10000 256 TL0 65536 10000 256 TR0 1 EA 1 ET0 1 23 static void timer0 work void interrupt TF0 VECTOR using 1 定时器 0 中断子程序 TH0 65536 10000 256 TL0 65536 10000 256 second flag if second flag 100 timebuf 0 1 if timebuf 0 10 分个位为十则清 0 分十位加 1 timebuf 0 0 timebuf 1 1 if timebuf 1 6 分十位为 6 则清 0 时个位加 1 timebuf 1 0 timebuf 2 1 if timebuf 2 10 十位为 4 则清 0 时十位加 1 timebuf 2 0 timebuf 3 if timebuf 3 6 时十位为 3 则清 0 timebuf 3 0 timebuf 4 if timebuf 4 4 时十位为 3 则清 0 timebuf 3 0 timebuf 5 if timebuf 5 3 时十位为 3 则清 0 timebuf 5 0 24 second flag 0 void time disp uint time1 uint wei1 uchar first1 时间显示子程序 uint scan time1 0 P2 first1 if time1 4 for scan time1 time1 scan time1 P0 disptab wei1 scan time1 2 mdelay 2 P2 crol P2 1 P0 0 x00 段码置 0 消影 void key disp uint wei uchar first 键盘显示子程序 static uint scan time P2 first if fuhao 0 fuhao 0 表示显示的数据是正数 25 if wei 0 0 P0 0 xb7 else if wei 3 0 P0 disptab wei 0 else if wei 3 0 for scan time 0 scan time 2 scan time P0 disptab wei scan time mdelay 3 P2 crol P2 1 P0 0 x00 段码置 0 消影 else if wei 3 0 显示 P2 first for scan time 0 scan time 3 scan time P0 disptab wei scan time mdelay 3 P2 crol P2 1 26 P0 0 x00 段码置 0 消影 else P2 first for scan time 0 scan time 4 scan time 显示 P0 disptab wei scan time mdelay 3 P2 crol P2 1 P0 0 x00 段码置 0 消影 else 否则 fuhao 1 表示显示的数据是正数 if wei 0 0 P0 0 xb7 else if wei 3 0 for scan time 0 scan time 2 scan time P0 disptab wei scan time mdelay 3 P2 crol P2 1 P0 0 x00 段码置 0 消影 mdelay 3 P0 0 x40 mdelay 3 P0 0 x00 else if wei 3 0 显示 P2 first for scan time 0 scan time 3 scan time 28 P0 disptab wei scan time mdelay 3 P2 crol P2 1 P0 0 x00 段码置 0 消影 mdelay 3 P0 0 x40 mdelay 3 P0 0 x00 else P2 first for scan time 0 scan time 4 scan time 显示 P0 disptab wei scan time mdelay 3 P2 crol P2 1 P0 0 x00 段码置 0 消影 mdelay 3 29 P2 crol P2 1 P0 0 x40 mdelay 3 P0 0 x00 uchar key search void 键盘译码数据获取子程序 calculate uint m 计算器存储子程序 uint result temp0 temp1 temp0 shuju 0 0 shuju 0 1

温馨提示

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

评论

0/150

提交评论