简易计算器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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口