单片机课程设计--简易计算器

上传人:aa****6 文档编号:38379913 上传时间:2018-05-01 格式:DOC 页数:32 大小:809KB
返回 下载 相关 举报
单片机课程设计--简易计算器_第1页
第1页 / 共32页
单片机课程设计--简易计算器_第2页
第2页 / 共32页
单片机课程设计--简易计算器_第3页
第3页 / 共32页
单片机课程设计--简易计算器_第4页
第4页 / 共32页
单片机课程设计--简易计算器_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《单片机课程设计--简易计算器》由会员分享,可在线阅读,更多相关《单片机课程设计--简易计算器(32页珍藏版)》请在金锄头文库上搜索。

1、 1信息与通信工程学院信息与通信工程学院简易计算器简易计算器2目 录一、设计任务和性能指标.21.1 设计任务.21.2 性能指标.2二.设计方案.2三.系统硬件设计.33.1 单片机最小系统.33.2 键盘接口电路.33.3 数码管显示电路.43.4 错误报警电路.5四、系统软件设计.64.1 键盘扫描子程序设计.64.2 移位子程序及结果计算子程序设计.104.3 显示子程序设计.124.4 主程序设计.13五、调试及性能分析.135.1 调试步骤.135.2 性能分析.14六、心得体会.14参考文献.14附录 1 系统硬件电路图.15附录 2 程序清单.1633一、设计任务和性能指标一、

2、设计任务和性能指标1.1 设计任务印刷电路板(要求布局合理,线路清晰),绘出程序流程图,并给出程 利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个计算器,用 LED 显示计算数值及结果。要求用 Protel 画出系统的电路原理图(要求以最少组件,实现系统设计所要求的功能),序清单(要求思路清晰,尽量简洁,主程序和子程序分开,使程序有较强的可读性)。1.2 性能指标1. 加法:四位加法,计算结果若超过四位则显示计算错误2. 减法:四位减法,计算结果若小于零则显示计算错误3. 乘法:个位数乘法4. 除法:整数除法5. 有清零功能,计算错误报警二二.方案总体设计方案总体设计按照系统设计

3、的功能的要求,初步确定设计系统由主控模块、显示模块、错误报警模块、键扫描接口电路共四个模块组成,电路系统构成框图如图 1.1 所示。主控芯片使用 51 系列 AT89C52 单片机,采用高性能的静态 80C51 设计,由先进工艺制造,并带有非易失性 Flash 程序存储器。它是一种高性能、低功耗的 8 位 COMS 微处理芯片,市场应用最多。键盘电路采用 4*4 矩阵键盘电路。显示模块采用 4 枚共阳极数码管和 74ls273 锁存芯片构成等器件构成。错误报警电路采用 5V 蜂鸣器。系统选用以 STC89C51 单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。44复位电路晶振图

4、 2.1 基本 结构三三.系统硬件设计系统硬件设计3.1 单片机最小系统单片机最小系统就是支持主芯片正常工作的最小电路部分,包括主控芯片、复位电路和晶振电路。主控芯片选取 STC89C52RC 芯片,因其具有良好的性能及稳定性,价格便宜应用方便。晶振选取 11.0592MHz,晶振旁电容选取 30pF。采用按键复位电路,电阻分别选取 100 和 10K,电容选取 10F。以下为单片机最小系统硬件电路图。44 矩阵键盘单片机显示电路55图 3.1 单片机最小系统3.2 键盘接口电路计算器所需按键有:数字键:1,2,3,4,5,6,7,8,9,0功能键:+, - , *, / , = , C( 清

5、零)共计 16 个按键,采用 4*4 矩阵键盘,键盘的行和列之间都有公共端相连,四行和四列的 8 个公共端分别接 P1.0P1.7,这样扫描 P1 口就可以完成对矩阵键盘的扫描,通过对 16 个按键进行编码,从而得到键盘的口地址,对比 P1 口德扫描结果和各按键的地址,我们就可以得到是哪个键按下,从而完成键盘的功能。以下为键盘接口电路的硬件电路图66图 3.2 矩阵键盘内部电路3.3 LCD 显示模块:本设计采用 LCD 液晶显示器来显示输出数据通过 D0-D7 引脚向 LCD 写指令字或写数据以使 LCD 实现不同的功能或显示相应数据在与单片机最小系统连接时,采用并行连接方式,此方式的特点是

6、传输速度快。并行接口的输入由 p0.0-p0.7 进行控制,传输信息。LCD 显示使用了两片极化材料,在它们之间是液体水晶溶液。电流通过该液体时会使水晶重新排列,以使光线无法透过它们。因此,每个水晶就像百叶窗,既能允许光线穿过又能挡住光线。LCD 也就显示具有直角显示、低耗电量、体积小、还是零辐射等优点。77图 3.3 LCD 显示电路3.4 错误报警电路错误报警电路就是在计算结果出现错误时或输入数据出现错误时,发出声音警报,提示使用者错误出现。这里就采用 5V 蜂鸣器作为报警设备,利用 PNP 三极管对蜂鸣器进行驱动,有P2.2 对其进行控制,这样在出现错误的同时用 P2.2 输出低,就可以

7、使蜂鸣器工作,完成报警任务。在编写程序时,报警电路实现的功能是:当计算正常时使 p2.2 口输出高电平时,蜂鸣器不会响应。当计算出现错误(例如 0 作为被除数时)此时给 p2.2 输出低电平,使蜂鸣器响应,达到报警功能。以下为报警电路硬件电路图88图 3.4 报警电路四系统软件设计四系统软件设计首先初始化参数;然后扫描键盘看是否有键输入,若有,读取键码;判断键码是数字键、清零键还是功能键(“+”“-”“*”“/”“=”),是数值键则送数码管显示并保存数值,是清零键则做清零处理,是功能键则又判断是“=”还是运算键,若是“=”则计算最后结果并送数码管显示,若是其它功能键则不显示。(其中里面包含了延

8、时去抖动程序)。 99开始初始化清零键和功 能键输入是否是数字键?是否图 4.1 程序流程图4.1 键盘扫描子程序设计要进行数据的计算就必须先进行数据的输入,也就必须确定按键输入的数值是什么,这就需要对键盘进行扫描,从而确定究竟是哪个键按下。是否是运算键?清零键数码管不显示数码管显示数字计算数码管显示结果数字键是否否1010对于键盘的扫描,既可以用行扫描也可以用列扫描,这里采用行扫描的方法来完成对键盘的扫描。行扫描就是逐行扫描键盘,看是哪一行有键按下,再通过返回的键码来确定究竟是哪个按键按下。如对第一行扫描就令 P1.0 为低,P1 口其余为高,这样若第一行有键按下,则 P1 口的值就会由 0

9、xfe 变为其他值,再由这个值来确定是哪个键按下。以下为键盘扫描子程序的程序清单。void keyscan() /矩阵键盘P3=0xfe;temp=P3;temp=tempif(temp!=0xf0)Delay_1ms(10);temp=P3;temp=tempif(temp!=0xf0)temp=P3;switch(temp)case 0xee: key=1; break;case 0xde: key=2; break;case 0xbe: key=3; break;case 0x7e: key=15; break;while(temp!=0xf0)temp=P3;temp=tempif(key=1n+;return n;void show(uint h) /显示得数函数uint n,i,dat;n=length(h);for(i=n;i0;-i) dat=h/(exp(i-1);L1602_char(2,k+,dat + 48);h=h%(exp(i-1);4.3 显示子程序设计从始至终无论是输入的计算数据,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号