简易计算器设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告课程名称:单片机原理及应用课程设计

设计题目:简易计算器

系别:通信与控制工程系

专业:电子信息工程

班级:2班

学生姓名:

学号:

起止日期:指导教师:

教研室主任:

摘要

该简易计算器以STC89C52单片机为核心,8255芯片,数码管,利用汇编语言编写相应程序进行有效四则运算。该计算器计算精度不高,只能实现简单的加减乘除,且有效数字位数有限。该装置由STC89C52模块,4x4键盘(包括1~9,+,-,*,/等十六个字符),数码管显示屏组成。STC89C52为主模块,其控制键盘及8255模块。键盘可以实现数字及运算符号的输入,8255控制的数码管可以进行人机交互,显示按下键盘所对应的字符以及显示运算结果。显示部分:采用数码管显示。按键部分:采用4*4键盘;通过扩展必要的外围接口电路,用汇编对单片机进行编程,实现对计算器的设计。

关键字:STC89C52;8255;LED数码管

目录

1 设计要求 (1)

1.1 要求 (1)

2 硬件设计部分 (2)

2.1 主控芯片STC89C52 (2)

2.2 8255芯片 (3)

2.3 键盘 (4)

2.4 LED数码显示管 (4)

3 软件设计部分 (6)

3.1 LED显示程序设计 (6)

3.2 读键输入程序设计 (6)

3.3 数值送显示缓冲程序设计 (7)

3.4 运算主程序设计 (8)

4 系统测试 (9)

4.1 软件调试步骤 (9)

4.2 程序调试步骤 (10)

4.3 矩阵4*4键盘的调试 (10)

4.4 数码管程序调试 (10)

4.5 测试结果 (10)

5 总结与思考 (11)

参考文献 (12)

致谢 (13)

附录一 (14)

附录二 (26)

简易计算器

1设计要求

1.1要求

设计一个简易计算器,要求能够进行简单的加减乘除运算,具体要求如下:

1. 4X4键盘输入,数码管显示。

2. 完成整数的加减乘除,加法和减法要求可以实现连加、连减。

3. 可进行错误判断,溢出、除零等错误将显示一个字符 E 。

4. 由于键盘只有16个按键,安排如下:

+---------------+

| 7 | 8 | 9 | + |

| 4 | 5 | 6 | - |

| 1 | 2 | 3 | * |

| 0 | . | = | / |

+---------------+

2硬件设计部分

2.1主控芯片STC89C52

STC89C52是一个低功耗,高性能CMOS 8位单片机,片内含4k BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用STC公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构。STC89C52具有如下特点:40个引脚(引脚图如图1所示),4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,STC89C52RC设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM 定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP 和PLCC等三种封装形式,以适应不同产品的需求。

图 1 STC89C51

VCC(40):+5V;

GND(20):接地;

P0口(39-32):P0口为8位漏极开路双向I/O口,每引脚可吸收8个TTL门电流。

P1口(1-8):P1口是从内部提供上拉电阻器的8位双向I/O口,P1口缓冲器能接收和输出4个TTL门电流。

P2口(21-28):P2口为内部上拉电阻器的8位双向I/O口,P2口缓冲器可接收和输出4个TTL门电流;P3口(10-17):P3口是8个带内部上拉电阻器的双向I/O口,可接收和输出4个TTL门电流。

P3口也可作为AT89C51的特殊功能口。

RST(9):复位输入。当振荡器复位时,要保持RST引脚2个机器周期的高电平时间。ALE/PROG(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节,在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,它可用作对外部输出的脉冲或用于定时目的,要注意的是,每当访问外部数据存储器时,将跳过图21个ALE脉冲。

PSEN(29):外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期2次PSEN有效,但在访问外部数据存储器时,这2次有效的PSEN信号将不出现。EA/VPP(31):当EA保持低电平时,外部程序存储器地址为(0000H-FFFFH)不管是否有内部程序存储器。FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1(19):反向振荡器放大器的输入及内部时钟工作电路的输入;XTAL2(18):来自反向振荡器的输出。

2.2 8255芯片

利用8255可编程并行口芯片,实现输入/输出实验,实验中用8255 PA和PB口

相关文档
最新文档