单片机电子计算器设计报告
- 格式:doc
- 大小:905.00 KB
- 文档页数:29
目录 一.设计任务和要求 ................................................................................. 1 1.1概要 .............................................................................................. 1 1.3 设计要求 ..................................................................................... 1 二.硬件设计 ............................................................................................ 2 2.1总设计思路 .................................................................................... 2 2.2 总原理图 ..................................................................................... 2 2.3最小系统 ....................................................................................... 3 三.软件设计 ............................................................................................ 4 3.1 主程序 ......................................................................................... 4 3.2 显示程序设计(程序见附录) ........................................................ 5 3.3键盘识别程序设计(程序见附录) .................................................. 6 3.4运算程序设计(程序见附录) ....................................................... 9 四.Keil调试与仿真 ................................................................................. 11 4.1 keil的使用方法 ........................................................................... 11 五.总电路图 .......................................................................................... 12 六. 总结................................................................................................ 13 七.参考文献 .......................................................................................... 14 附录A ...................................................................................................... 15 程序清单 .......................................................................................... 15 附录B ...................................................................................................... 26 元器件清单 ....................................................................................... 26 附录C ...................................................................................................... 27 实物图 .............................................................................................. 27 1
一.设计任务和要求 1.1概要 简易计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 1.2设计任务 本次课程设计,我们选择的课题是单片机数字计算器硬软件设计 ,设计任务为: 1.扩展4*4键盘,其中10个数字,5个功能键,1个清零 2.强化对于电路的焊接 3.使用五位数码管接口电路 4. 完成十进制的四则运算(加、减、乘、除); 5. 实现结果低于五位的连续运算; 6. 使用keil 软件编写程序,使用汇编语言; 7. 最后用ptoteus模拟仿真; 8.学会对电路的调试 1.3 设计要求 单片机课程设计既要让我们巩固课本学到的理论,还要学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,数字计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高对单片机的兴趣,同时学习查阅资料、参考资料的方法。 通过实践更好的了解单片机,巩固了键盘扫描,数码管,等一系列单片机的知识。本次设计我们需要AT89C51芯片,要充分理解各个管脚的用途;还是用了两个四位一体的共阳极的数码管,要知道其位控和字控的引脚位置;还用了4*4的键盘;采用手电复位。 而我的设计任务是计算器的软件部分,硬件部分参见同组的人。 2
二.硬件设计 2.1总设计思路 本设计是一个实现加、减、乘、除的计算器,它的硬件主要由四部分组成,一个AT89C51单片机芯片,两个四位一体的共阳极的数码管,一个4*4的键盘,一个排阻(10K)做P0口的上拉电阻(接线图再总电路图),它可以实现结果低于65535的加、减、乘、除运算。 首先.显示部分,让P2口做位扫描,P0口做段码输出,设置一个单元用来记录输入数字的位数,这样可以不用循环扫描每一位,而是根据输出位数判断扫描哪些位。如当显示1234时,不用在向高四位送入11H,也不需要熄灭的代码了。调用显示程序时先选通第一位(最低位),送出代码1,然后判断是否显示完毕,(通过记录数字个数单元的内容减一是否得0来判断),如没显示完则显示下一位,如显示完则跳出。 其次是设计键盘扫描程序,这里采用4*4矩阵键盘,通过软件识别,行和列可接在同个端口上,也可接在不同端口上,本设计行接在P3口的高四位,列接在P1口的低四位,通过循环扫描行,读取列的数据判断是否有键按下,如果有则调用按键识别程序识别是哪个键,执行相应的操作,按键识别是根据按键时得到的列代码与行代码组合,来判断是哪个键的。按键识别后,如果是数字键则直接放入数码管显示缓冲区,如果再次有数字键按下,则应将缓存区的数字向高位移一位,将刚输入的数放入最低位,并且记录按键次数,每输入一个键值都调用显示程序显示出来,如果是运算符,则执行相应的运算,然后在调用显示程序显示结果。 最后是运算程序的加入,运算程序很简单,只要把+、-、*、/分别做成模块,用到时即可调用,本设计的难点是键盘识别和数值显示,因为这里边涉及到键盘输入的数值在内部要转换成10进制运算,运算结果要转换成各个位的显示数字输出。 2.2 总原理图
P3.4 ~
P3.7
4*4矩阵键盘
P0.0
~ P0.7
AT89C51
P2.0 ~
两个四位数码管显示
初始化,各位显0 根据按键,
通过三级管
P0=FEH 左移进行位控
P1.0~P1.3
图2-1 通过P0口进行位控 3
2.3最小系统 手动复位: 由电容串联电阻构成,系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位。 晶振电路: 典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作) 单片机:一片AT89S51/52或其他51系列兼容单片机 特别注意:对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行。
XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435
P0.5/AD534
P0.6/AD633
P0.7/AD732
P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11
P3.2/INT012
P3.3/INT113
P3.4/T014
P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC11nFC21nFGNDC310uR233ufR133ufGND 图2 -2 最小系统