- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机课程设计实验报告
简易计算器
学院:信息工程学院
班级:自动化三班
姓名:
学号:2009550335
日期:9月28日
目 录
一、设计任务和性能指标
1.1设计任务
1.2性能指标
二、设计方案
三、系统硬件设计
3.1单片机最小系统
3.2键盘接口电路
3.3数码管显示电路
3.5按键监视电路…………………………………………………6
四、系统软件设计
4.1键盘扫描子程序设计
4.2移位子程序及结果计算子程序设计
4.3显示子程序设计
4.4主程序设计
五、调试及性能分析
5.1调试步骤
5.2性能分析
六、心得体会
参考文献
附录1系统硬件电路图
附录2
附录
一、设计任务和性能指标
1.1设计任务
自制一个单片机最小系统,包括复位电路,采用外部小键盘输入数据,能够实现加法、乘法及一个科学计算,计算结果显示在四位一体的数码管上。
1.2性能指标
加法:四位加法,计算结果若超过四位则显示计算错误;
减法:四位减法,计算结果若小于零则显示计算错误;
乘法:个位数乘法;
除法:整数除法;
取对数;
开平方;
指数运算;
有清零功能
二.设计方案
按照系统设计的功能的要求,初步确定设计系统由主控模块、监测模块、显示模块、键扫描接口电路共四个模块组成,电路系统构成框图如图1.1所示。主控芯片使用51系列AT89C52单片机,采用高性能的静态80C51设计,由先进工艺制造,并带有非易失性Flash程序存储器。它是一种高性能、低功耗的8位COMS微处理芯片,市场应用最多。
监测模块采用二极管和扬声器(实验室用二极管代替)组成电路。
键盘电路采用4*4矩阵键盘电路。
显示模块采用4枚共阳极数码管和74ls273锁存芯片构成等器件构成。
整个单片机的接口电路:
P0用于显示输出;
P1用于键扫描输入;
P2用于数码管位选控制;
P3用于键盘扩展(部分运算符输入);
三.系统硬件设计
3.1单片机最小系统
单片机最小系统就是支持主芯片正常工作的最小电路部分,包括主控芯片、复位电路和晶振电路。
主控芯片选取STC89C52RC芯片,因其具有良好的性能及稳定性,价格便宜应用方便。
晶振选取11.0592MHz,晶振旁电容选取20pF。
采用按键复位电路,电阻分别选取100Ω和10K,电容选取10μF。
以下为单片机最小系统硬件电路图。
单片机最小系统硬件电路
3.2键盘接口电路
计算器所需按键有:
数字键:’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’0’
功能键:’+’, ’-‘ , ’*’, ’/ ’ , ’ = ’, ’ C( 清零)’
扩展键:“log”,“ln”,“x^2”“小数点”,“开方”
共计25个按键,采用4*4矩阵键盘,键盘的行和列之间都有公共端相连,四行和四列的8个公共端分别接P1.0~P1.7,这样扫描P1口就可以完成对矩阵键盘的扫描,通过对16个按键进行编码,从而得到键盘的口地址,对比P1口德扫描结果和各按键的地址,我们就可以得到是哪个键按下,从而完成键盘的功能。
以下为键盘接口电路的硬件电路图
键盘接口电路
实物图:
扩展键接口电路:
3.3数码管显示电路
采用8位数码管对计算数据和结果的显示(实验时只用到了4位),这里选取共阴数码管,利用74LS244N对数码管进行驱动,为了节省I/O资源,采取动态显示的方法来显示计算数据及结果。
P0口输出显示值,
P2.0~P2.7(实际操作用到P2.0-P2.3)用来作为位选端,控制哪几位数码管进行显示。
以下为数码显示电路的硬件电路图
3.4按键监视电路
按键监视电路就是在按键时,发出声音提醒,以确保输入数字有效。这里就采用5V蜂鸣器作为示音设备(实际操作用发光二极管代替)。用p3.7口输出信号。
以下为报警电路硬件电路图
按键监视电路图
系统整体硬件电路图见附录一
四、系统软件设计
4.1键盘扫描子程序设计
要进行数据的计算就必须先进行数据的输入,也就必须确定按键输入的数值是什么,这就需要对键盘进行扫描,从而确定究竟是哪个键按下。
以下为键盘扫描子程序的程序清单。
uchar Keyscan(void)
{
uchar i,j, temp, Buffer[4] = {0xef, 0xdf, 0xbf, 0x7f};
for(j=0; j4; j++)
{
P1 = Buffer[j]
您可能关注的文档
- JBT4709-2007钢制压力容器焊接规程.pdf
- JGJ88-2010龙门架及井架物料提升机技术规范.ppt
- JSP技术概述与应用框架外文翻译毕业设计.doc
- KDW660-9B矿用隔爆兼本安型直流稳压电源企标.doc
- MATLAB编程仿真语言及应用.pdf
- PE_工程师培训教材.ppt
- PLC在霓虹灯控制系统中的应用研究.doc
- 阿克苏档案局监控技术方案最终版(二).doc
- 奥迪2010年第一次市场总监会议资料.pdf
- 板坯连铸推钢机设计毕业设计.doc
- 区招商局执法情况自查自纠报告与区政府2024年政府工作报告汇编.docx
- 2024年中国MCN行业市场集中度、投融资动态及未来趋势预测报告(智研咨询.docx
- 前列腺电液通输治疗仪项目可行性研究报告评审方案设计(2013年发改委.docx
- 汽珠复铝膜项目可行性研究报告评审方案设计 发改委标准案例范文.docx
- 2024年中国嵌入式软件行业市场现状、发展概况、未来前景分析报告.docx
- 济南核化防御装备核心部件项目申请报告.docx
- 关于电商的调研报告.docx
- 可行性研究报告编制目录大纲(2012 年国家发改委标准版).docx
- (立项备案申请模板)海砂淡化及机制砂项目可行性研究报告参考范文.docx
- 第三方B2B电子商务平台行业分析报告.docx
文档评论(0)