基于单片机的计算器设计_计算器毕业论文(编辑修改稿)内容摘要:

单,功能较弱,但由于它使用方便、操作简单、价格低廉,因而广泛运用于商业交易中,也是必备的办公用品之一。 随着科学技术的不断发展及计算器应用的普及,人们发现在工业控制中,有很 多时候需要在恶劣的环境中进行各种数据的采集、运算和控制。 3 第二章 总体方案及设计 设计目的 通过本次毕业设计, 应用《单片机应用基础》《计算机应用基础》等所学相关知识及查阅资料,完成简易计算器的设计,以达到理论与实践更好的结合、 进一步综合运用所学知识设计的能力的目的。 通过本次设计的训练,可以使我在基本思路和基本方法上对基于 MCS51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。 设计任务。 PROTUES 软件。 KEIL 编程,具有一定的编程能力。 设计思路 方案构思 本设计可以采用两种方案,一种是以 FPGA 为核心处理芯片,配备相应的外设;另外一种是以 AT89S52 处理器,配备相应的外设。 方案一:采用 FPGA 控制 FPGA 是一种高密度的可编程逻辑器件 ,自从 Xilinx 公司 1985 年推出第一片FPGA以来 ,FPGA的集成密度和性能提高很快 ,其集成密度最高达 500万门 /片以上 ,系统性能可达 200MHz。 由于 FPGA 器件集成度高 ,方便易用 ,开发和上市周期短 ,在数字设计和电子生产中得到迅速普及和应用 ,并一度在高密度的可编程逻辑器件领域中独占鳌头。 4 但是而基于 SRAM编程的 FPGA,其编程信息需存放在外部存储器上 ,需外部存储器芯片 ,且使用方法复杂 ,保密性差,而其对于一个简单的计算器而言,实用 FPGA有点大材小用,成本太高。 方案二:采用 AT89S52 单片机是单片微型机的简称,故又称为微控制器 MCU( Micro Control Unit)。 通常由单块集成电路芯片组成,内部包含有计算机的 基本功能部件:中央处理器 CPU,存储器和 I/O 接口电路等。 因此,单片机只要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。 单片机广泛用于智能产品,智能仪表,测控技术,智能接口等,具有操作简单,实用方便,价格便宜等优点,而其中 AT89S52 以 MCS51为内核,是单片机中最典型的代表,应用于各种控制领域。 方案比较与选择 通过以上两种方案论证和比较,从设计的实用性,方便性和成本出发,选择了以 AT89S52 单片机作为中央处理单元进行计算器的设计,这样设计能够实现对六位浮点数的加减和三位浮点数 的乘除运算。 系统采用以下方案: (1)采用 AT89S52 作为主控芯片; ( 2)显示模块使用 LCD1602 液晶显示屏; ( 3)输入模块使用 4*4 矩阵键盘; ( 4) AC 清零按键使用独立按键并接入单片机外部中断引脚; ( 5)声音提示开关按键使用独立按键并接入单片机外部中断引脚; ( 6)平方和开方按键由开发板上的独立按键实现; ( 7)电源采用 LM7805 稳压电路。 系统总体模块图 图 21 总体模块图 整个系统由电源给 51 单片机和 LCD 液晶显示提供电源使其工作,当外 接按键输入有效数值和运算模式时,通过主控芯片实现整个系统的功能。 AT89S52单片机 显示模块 电源模块 输入模块 运算模块 5 第三章 系统硬件设计 主控模块设计 主要性能: (1) • 8031 CPU 与 MCS51 兼容 • 8K 字节可编程 FLASH 存储器 (寿命: 1000 写 /擦循环 ) • 全静态工作: 0Hz33MHz • 三级加密程序存储器 • 128*8 位内部 RAM • 32 条可编程 I/O 线 • 三个 16 位定时器 /计数器 • 八个中断源 • 全双工 UART 串行通道 • 低功耗的闲置和掉电模式 • 掉电后中断可唤醒 • 看门狗定时器 • 双数据指针 • 掉电标识符 • 片内振荡器和时钟电路 (2) 管脚说明: VCC:供电电压。 GND:接地。 AT89S52 的功能特性描述 AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。 使用 Atmel 公司高密度非 易失性存储器技术制造,与工业 80C51 产品指令和引脚完 全兼容。 片上 Flash 允许程序存储器在系统可编程,亦适于 常规编程器。 在单芯片上,拥有灵巧的 8 位 CPU 和在系统 可编 6 程 Flash,使得 AT89S52 为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52 具有以下标准功能: 8k 字节 Flash, 256字节 RAM, 32 位 I/O 口线,看门狗定时器, 2 个数据指针,三个 16 位 定时器 /计数器,一个 6 向量2 级中断结构,全双工串行口, 片内晶振及时钟电路。 此外, AT89S52 可降至 0Hz 静态逻 辑操作,支持 2 种软件可选择节电模式。 空闲模式下, CPU 停止工作,允许 RAM、定时器 /计数器、串口、中断继续工 作。 掉电保护方式下, RAM 内 容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。 8 位微控制器 8K 字节在系统可编程 Flash。 同时该芯片还具有 PDIP、 TQFP和 PLCC 等三种封装形式,以适应不同产品的需求。 AT89S52 引脚功能 AT89S52 单片机为 40 引脚芯片见图 31。 图 31 AT89S52 引脚 ( 1) 口线: P0、 P P P3 共四个八位口。 P0 口: P0 口是一个 8 位漏极开路的双向 I/O 口。 作为输出口,每位能驱动 8 个 TTL 逻辑电平。 对 P0 端 口写 “ 1” 时,引脚用作高阻抗输入。 7 当访问外部程序和数据存储器时, P0 口也被作为低 8 位地址 /数据复用。 在这种模式下 , P0 不具有内部上拉电阻。 在 flash 编程时, P0口也用来接收指令字节;在程序校验时,输出指令字节。 程序校验时,需要外部上拉电阻。 P1 口: P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口, p1 输出缓冲器能驱动 4 个 TTL 逻辑电平。 对 P1 端口写 “ 1” 时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流( IIL)。 此外, 和 分别作定时器 /计数器 2 的外部计数输入( )和定时器 /计数器 2 的触发输入( ),具体如下表所示。 在 flash 编程和校验时, P1 口接收低 8 位地址字节。 引脚号第二功能 : T2(定时器 /计数器 T2 的外部计数输入),时钟输出 T2EX(定时器 /计数器 T2 的捕捉 /重载触发信号和方向控制) MOSI(在系统编程用) MISO(在系统编程用) SCK(在系统编程用) P2 口: P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口, P2 输出缓冲器能驱动 4 个 TTL 逻辑电平。 对 P2 端口写 “1” 时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流( IIL)。 在访问外部程序存储器或用 16位地址读取外部数据存储器(例如执行 MOVX @DPTR) 时, P2 口送出高八位地址。 在这种应用中, P2 口使用很强的内部上拉发送 1。 在使用 8 位地址(如 MOVX @RI)访问外部数据存储器时, P2口输出 P2锁存器的内容。 在 flash 编程和校验时, P2 口也接收高 8 位地址字节和一些控制信号。 8 P3 口: P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口, p3 输出缓冲器能驱动 4 个 TTL 逻辑电平。 对 P3 端口写 “1” 时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流( IIL)。 P3 口亦作为 AT89S52 特殊功能(第二功能)使用,如表 31 所示。 表 31 P3 口管脚 备选功能: 端口引脚 第二功能 RXD(串行输入口) TXD(串行输出口) /INT0(外部中断 0) /INT1(外部中断 1) T0(记时器 0 外部输入) T1(记时器 1 外部输入) /WR(外部数据存储器写选通) /RD(外部数据存储器读选通) ( 2)其他引脚说明: RST:复位输入。 晶振工作时, RST脚持续 2 个机器周期高电平将使单片机复位。 看门狗计时完成后, RST 脚输出 96 个晶振周期的高电平。 特殊寄存器 AUXR(地址 8EH)上的 DISRTO 位可以使此功能无效。 DISRTO 默认状态下 ,复位高电平有效。 ALE/PROG—— 当访问外部程序存储器或数据存储器时, ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。 一般情况下, ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。 要注意的是:每当访问外部数据存储器时将跳过一个 ALE脉冲。 对 FLASH 存储器编程期间,该引脚还用于输入编程脉冲( PROG)。 如有必要,可通过对特殊功能寄存器( SFR)区中的 8EH单元的 D0位置位,可禁止 ALE 操作。 该位置位后,只有一条 MOVX 和 MOVC 指令才能将 ALE 激活。 此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE禁止位无效。 9 PSEN—— 程序储存允许( PSEN)输出是外部程序存储器的读选通信号,当AT89S52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次 PSEN信号。 EA/VPP—— 外部访问允许,欲使 CPU 仅访问外部程序存储器(地址为0000HFFFFH), EA端必须保持低电平(接地)。 需注意的是:如果加密位 LB1被编程,复位时内部会锁存 EA 端状态。 如 EA 端为高电平(接 Vcc 端), CPU 则执行内部程序存储器的指令。 FLASH 存储器编程时,该引脚加上 +12V 的编程允许电源 Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 XTAL1 是片内振荡器的反相放大器输入端, XTAL2 则是输出端,使用外部振荡器时,外部振荡信号应直接加到 XTAL1,而 XTAL2 悬空。 内部方式时,时钟发生器对振荡脉冲二分频,如晶振为 12MHz,时钟频率就为 6MHz。 晶振的频率可以在 1MHz24MHz内选择,在本设计电路中选用了 12MHz。 电容取 20PF 左右。 机器周期= 12时间周期,如 12MHz 的机器周期为 1微秒。 ( 3)控制或复位引脚 RESET 此脚为高电平时(约 2个机器周期)可将单片机复位。 RST/VPD—— 当出现两个机器周期高电平时,单片机复位。 复位后, P0~ P3输出高电平; SP 寄存器为 07H;其它寄存器全部清 0;不影响 RAM 状态。 如图 32 所示。 图 32 按键电平复位 10 AT89SXX 系列单片机实现了 ISP 下载功能,故而取代了 89CXX 系列的下载 方式,也是因为这样, ATMEL 公司已经停止生产 89CXX 系列的单片机,现在市面上的AT89CXX 多是停产前的库存产品。 AT89S52的编程方法 编程前,须按编程模式表设置好地址、数据及控制信号;顺序如下: ① 在地址线上加上要编程单元的地址信号。 ② 在数据线上加上要写入的数据字节。 ③ 激活相应的控制信号。 ④ 将 EA/Vpp端加上 +12V编程电压。 ⑤ 每对 Flash存储阵列写入一个字节或每写入一个程序机密位,加上一个ALE/PROG编程脉冲。 每个 字节写入周期是自身定时的,大多数约为 50us。 改变编程单元的地址和写入的数据,重复① — ⑤步骤,直到全部文件编程结束。 单片机的现状及发展方向: 单片机是为了工业控制需要满足而诞生的,是自动控制系统的核心部件,因而也主要用于工业控制、智能化仪器仪表、家用电器中。 它具有体积小,功能多、价格低、使用方便、系统。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。