ImageVerifierCode 换一换
格式:DOC , 页数:21 ,大小:643KB ,
资源ID:3788226      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3788226.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(4位数加法计算器复习课程.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

4位数加法计算器复习课程.doc

1、 4位数加法计算器 精品资料 安庆师范大学 2014级单片机原理与应用 课程设计报告 课题名称 4位数加法计算器的设计 姓 名 吴昊天、伍浩然、王鹏、万吉 学 号 070814018、070814008、070814005、070814001 院、系、部 计算机学院物联网工程 专 业 物联网工程 指导教师 汪文明 2016年 6月 6日 仅供学习与交流,如有侵权请联系网站删除 谢谢18 一、设计任务及要求: 设计任务: 1、通过4*4矩阵键盘输入数字及运算符;

2、 2、可以进行4位十进制数以内的加法预算。如果计算结果超出四位数,则全部显示“E”; 3、可以进行加减乘除所有运算; 4、添加其他功能。 要 求: 首先进行预设计,根据设计的任务要求,先确定设计的硬件电路方案,然后进行硬件电路的初步设计,在计算机上画出硬件电路图,在老师的指导下进行修正硬件电路图,并对所涉及的参数进行计算。 在确定硬件的基础上,要进行软件的总体设计,包括软件主流程的设计以及各子程序的设计,同时,要写出详细的操作说明,如时间的调整方法,显示窗口的时间切换等,以配合软件的设计。 然后进入硬件的调试及编程工作,设计组内的同学可根据任务分工,

3、有调试硬件各功能模块的,如键盘子程序、显示子程序等,有进行整体程序的编制的,各模块的编制过程中要注意资源的衔接。 最后进入联机调试,联机调试的原则也要采用分步走的原则,各个功能模块要逐步套入,通过一个再增加一项功能,从而达到设计的总体要求,不要上来编制个最大的程序,最后无法查找错误。 最后写出设计报告。 指导教师签名: 2016年 6 月 6 日 三、成绩 指导教师签名: 年 月 日

4、 目 录 一、 绪 言…………………………………………………………………………………………1 二、系统设计………………………………………………………………………………………1 2.1设计任务………………………………………………………………………………1 2.2方案比较与论证………………………………………………………………………1 2.2.1系统整体流程图……………………………………………………………………2 2.2.2单片机的选择方案论证………………………………………………………………2 2.2.3键盘选择方案论证…………………………………………………

5、…………2 2.2.4显示模块的选择方案论证…………………………………………………………2 2.2.5蜂鸣器的选择方案论证………………………………………………………………2 三、硬件电路设计………………………………………………………………………………2 3.1计算器的控制电路图……………………………………………………………………2 3.2矩阵键盘的设计……………………………………………………………………3 3.3 LCD1602显示电路的设计………………………………………………………………3 3.4蜂鸣器驱动电路的设计…………………………………………………………………4 3.5

6、主要元器件选择…………………………………………………………………………4 四、程序流程图…………………………………………………………………………………5 五、c语言程序设计………………………………………………………………………………5 六、计算器的仿真………………………………………………………………………………19 6.1 Keil调试………………………………………………………………………………19 6.2 Proteus调试……………………………………………………………………………19 七、 结束语………………………………………………………………………………………20 八、

7、参考文献……………………………………………………………………………………21 一、绪 言 近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。 电子时钟是现代社会中的主要计时工具之一,广泛应用于手机,电脑,汽车等社会生活需要的各个方面,及对时间有要求的场合。本设计采用AT89C52单片机作为主要核心部件,附以上电复位电路,时钟电路及按键调时电路组成。数字钟已成为人们日

8、常生活中: 必不可少的必需品, 广泛用于个人家庭以及车站、 码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。 由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性 能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。 二、系统设计 2.1 设计任务 1、通过4*4矩阵键盘输入数字及运算符; 2、可以进行4位十进制数以内的加法预算。如果计算结果超出四位数,则全部显示“E”; 3、可以进行加减乘除所有运算; 4、添加其他功能。 2.2 方案比较与论证 2.2.1 系统整体流程图

9、 键盘接口 显示电路 软件控制程序 电源电路 单片机控制电路 图1 系统整体流程图 2.2.2 计算器的控制方案论证 用4*4的矩阵键盘组成0-9数字键及加、减、乘、除、等于、清零按键,LCD屏幕实时显示输入的数字和运算符号,每按下一个按键都有蜂鸣器发出的响声。从矩阵键盘输入一个数字,选择运算符,再输入一个数字,然后按下“等于”键,最后的计算结果会呈现在LCD屏幕上。 2.2.3 单片机的选择方案论证 方案一:采用可编程逻辑期间CPLD 作为控制器。CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、I/O资源丰富、易于进

10、行功能扩展。采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高,且从使用及经济的角度考虑我们放弃了此方案 方案二:采用Atmel公司的AT89C52单片机作为控制器。AT89C52是一个低功耗,高性能的51内核的CMOS 8位单片机,片内含8k空间的可反复擦些1000次的Flash只读存储器,具有256 bytes的随机存取数据存储器(RAM),32个双向I/O口,2个16位可编程定时计数器。 综合考虑,选择方案二,采用Atmel公司的AT89C52单片机作为控制器。 2.2.4 键盘选择方案论

11、证 方案一:采用独立式键盘。由于各键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可以很容易的判断哪个按键被按下。此种键盘适用于按键较少或操作速度较高的场合。但本题发挥部分要求16个功能键,按键数目较多,这就需要较多的输入口线,而且电路结构复杂。故此方案不可取。 方案二:采用矩阵键盘。它由行和列组成,按键位于行列的交叉点上,行线信号和列线信号分别通过两个接口和CPU相连,通过行列扫描法判定按键的位置,此方案适用于按键较多的场合。 通过对4位数加法计算器题目的分析,采用4*4行列式键盘。 2.2.5 显示模块的选择方案论证 方案一:采用带字库LCD模块显示。能显示复杂的信息

12、具有质量轻,体积小,功耗低,指令功能强,接口简单,可靠性强等优点,显示内容丰富,图形美观,易于人机交流。但是价格昂贵。 方案二:采用LED数码管显示。数码管能显示数字和符号,但是占用I/O口资源较多,对于简单的电路可以选用此方案。 计算器,需要较为强大的人机交互界面,故选用方案一,显示所需信息。 2.2.6 蜂鸣器的选择方案论证 方案一:采用有源蜂鸣器。有源蜂鸣器内部带震荡源,只要一通电就会发出响声。 方案二:采用无源蜂鸣器。无源蜂鸣器内部不带震荡源,所以用直流信号无法令其鸣叫,必须用2K~5K的方波去驱动它。 综合考虑,为了程序控制的方便,选用了方案一。 三 硬

13、件电路设计 3.1 计算器控制电路图 图2 计算器控制线路图 3.2 矩阵式键盘的设计 键盘电路如图3所示。设计数字键0~9 的键号依次为0~9,运算符号分别为“+”、“-”、“*”、“/”,以及“=”和清零“C”,通过逐行扫描函数来确定按下的键位。 图3 键盘电路 3.3 LCD1602显示电路的设计 LCD1602液晶屏采用LM016L型号元件,其电路如图3所示。 图4 LCD1602显示电路 3.4 蜂鸣器驱动电路的设计 蜂鸣器的驱动采用PNP三极管来驱动,低电平有效。其电路如图5 所示。 图5 蜂鸣器电路图 3.5 主要元器件选择 主要元器件选

14、用型号和数量如表1所示: 序号 材料名称 规格型号 数量 元件代号 1 单片机 AT89C52 1 U1 2 晶振 12MHz 1 X1 3 三级管 MJE350 1 Q1 4 键盘 4*4 16 5 LCD1602 LM016L 1 LCD1602 6 蜂鸣器 1 BEEP 表1 主要元器件清单 7 电阻 1k 1 R1 四、程序流程图 五 C语言程序设计 #include #include #define uch

15、ar unsigned char #define uint unsigned int sbit lcden=P2^1; //定义E口 sbit lcdrs=P2^0; //定义RS口 sbit beep=P2^2; //定义蜂鸣器 uchar code table[]={'0','1','2','3','4','5','6', //创建键位数组,数字,运算符号,等于号,清零(小数点) '7','8','9','+','-','*','/','=','.'}; uchar key,flag1,js,k1,k2

16、 uchar a[20],b[20]; float jieguo=0; void delay(uchar z) //延迟函数 { uchar x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void write_cmd(uchar cmd) //写命令函数 { lcdrs=0; P1=cmd; delay(5); lcden=1; delay(4); lcden=0; } void write_data(uchar date) //写数据函数 { lcdrs=1; P1=date;

17、delay(5); lcden=1; delay(5); lcden=0; } void init() //LCD初始化函数 { lcden=0; write_cmd(0x38); //设置16x2显示,8位数据接口 write_cmd(0x0c); //设置开显示,不显示光标(关显示是0x08) write_cmd(0x06); //写一个字符后地址指针加1 write_cmd(0x01); //清屏 } void keyscan() { uchar temp,uu=0xf7; uint i; for(i=0;i<4;i++) {

18、 uu=_crol_(uu,1); //左移 P3=uu; temp=P3; temp=temp&0x0f; if(temp!=0x0f) { delay(10); temp=P3; temp=temp&0x0f; if(temp!=0x0f) { temp=P3; switch(temp) { case 0xee:key=1;beep=0;delay(200);beep=1;break; //延迟200响声 case 0xde:key=2;beep=0;d

19、elay(200);beep=1;break; case 0xbe:key=3;beep=0;delay(200);beep=1;break; case 0x7e:key=10;beep=0;delay(200);beep=1;break; case 0xed:key=4;beep=0;delay(200);beep=1;break; case 0xdd:key=5;beep=0;delay(200);beep=1;break; case 0xbd:key=6;beep=0;delay(200);beep=1;break;

20、 case 0x7d:key=11;beep=0;delay(200);beep=1;break; case 0xeb:key=7;beep=0;delay(200);beep=1;break; case 0xdb:key=8;beep=0;delay(200);beep=1;break; case 0xbb:key=9;beep=0;delay(200);beep=1;break; case 0x7b:key=12;beep=0;delay(200);beep=1;break; case 0xe7:key=0;beep=0;dela

21、y(200);beep=1;break; case 0xd7:key=15;beep=0;delay(200);beep=1; beep=0;delay(200);beep=1;beep=0;delay(200);beep=1;break; //清零长响声 case 0xb7:key=13;beep=0;delay(200);beep=1;break; case 0x77:key=14;beep=0;delay(180);beep=1;delay(100);

22、 beep=0;delay(180);beep=1;break; //等于按键两声短响,中间较短间隔 } while(temp!=0x0f) { temp=P3; temp=temp&0x0f; } flag1=1; } } } } void jscl() //计算显示函数 { uchar i,j,n; float s,temp2; long int s1,s2,a1,b1,c1,temp1; a1=1; b1=1; s1=0; s2=0; s

23、0; if(k2!=0) { for(j=0;j

24、s==11) { s=s1-s2; } if(js==12) { s=s1*s2; } if(js==13) { s=(s1*0.1)/(s2*0.1); } jieguo=s; } else s=jieguo; if(jieguo>9999||s>=9999) { write_data('E'); } else //运算结果小数的处理 { c1=(long int)(s*1000)%10; if(c1>=5) s=s+0.01;

25、temp1=(long int)(s); temp2=s-temp1; n=0; while(temp1) { b[n]=temp1%10; temp1=temp1/10; n++; } b[n]=temp2*10; b[n+1]=(uchar)(temp2*100)%10; for(i=n;i>0;i--) { write_data(table[b[i-1]]); } if(jieguo<1) { write_data(table[0]); write_data(table

26、[15]); write_data(table[b[n]]); write_data(table[b[n+1]]); } else { write_data(table[15]); write_data(table[b[n]]); write_data(table[b[n+1]]); } } } void main() { uchar i,j; init(); write_cmd(0x80); //将液晶指针定位在第一行第一个单元 key=15; i=0; flag1=0; while(

27、1) { keyscan(); if(flag1==1) { if(key==15) //判断为清零操作 { write_cmd(0x01); i=0; for(j=0;j<20;j++) { a[j]=0; b[j]=0; } k1=0; k2=0; } else if(key<10) //判断为数字 { write_data(table[key]); a[i]=key; i++; }

28、 else if(key<14) //判断为运算符号 { write_data(table[key]); k1=i-1; js=key; } else //判断为等于操作 { write_data(table[key]); if(i==0) k2=0; else k2=i-1; write_cmd(0x80+0x40); jscl(); } flag1=0; } } } 6.计算器仿真 在完成了计算器硬件设计和

29、软件设计以后,便进入系统的调试阶段。系统的调试步骤和方法基本上是相同的,但具体细节和所采用的开发系统以及用户系统选用的单片机型号有关,如可选用Keil软件进行软件调试,用Proteus软件完成硬件调试。 6.1 Keil调试 6.2 Proteus调试 7 结束语 通过这次课程设计,使我们得到了一次用专业知识和专业技能去分析问题、解决问题全面系统的锻炼。使我们在单片机的基本原理、单片机应用系统开发过程,以及用C语言设计程序的思路技巧等方面都能向前迈了一大步,为我们日后成为合格的应用型人才打下良好的基础。 8 参考文献 1.期刊类

30、 【格式】[序号]作者.篇名[J].刊名,出版年份,卷号(期号):起止页码. 【举例】 [1] 王海粟.浅议会计信息披露模式[J].财政研究,2004,21(1):56-58. [2] 夏鲁惠.高等学校毕业论文教学情况调研报告[J].高等理科教育,2004(1):46-52. [3] Heider, E.R.& D.C.Oliver. The structure of color space in naming and memory of two languages [J]. Foreign Language Teaching and Research, 1999, (3): 62

31、– 67. 2.专著类 【格式】[序号]作者.书名[M].出版地:出版社,出版年份:起止页码. 【举例】[4] 葛家澍,林志军.现代西方财务会计理论[M].厦门:厦门大学出版社,2001:42. [5] Gill, R. Mastering English Literature [M]. London: Macmillan, 1985: 42-45. 3.报纸类 【格式】[序号]作者.篇名[N].报纸名,出版日期(版次). 【举例】 [6] 李大伦.经济全球化的重要性[N]. 光明日报,1998-12-27(3). [7] French, W. Between Silence

32、s: A Voice from China[N]. Atlantic Weekly, 1987-8-15(33). 4.论文集 【格式】[序号]作者.篇名[C].出版地:出版者,出版年份:起始页码. 【举例】 [8] 伍蠡甫.西方文论选[C]. 上海:上海译文出版社,1979:12-17. [9] Spivak,G. “Can the Subaltern Speak?”[A]. In C.Nelson & L. Grossberg(eds.). Victory in Limbo: Imigism [C]. Urbana: University of Illinois Press, 1

33、988, pp.271-313. [10] Almarza, G.G. Student foreign language teacher’s knowledge growth [A]. In D.Freeman and J.C.Richards (eds.). Teacher Learning in Language Teaching [C]. New York: Cambridge University Press. 1996. pp.50-78. 5.学位论文 【格式】[序号]作者.篇名[D].出版地:保存者,出版年份:起始页码. 【举例】 [11] 张筑生.微分半动力系统的不变

34、集[D].北京:北京大学数学系数学研究所, 1983:1-7. 6.研究报告 【格式】[序号]作者.篇名[R].出版地:出版者,出版年份:起始页码. 【举例】 [12] 冯西桥.核反应堆压力管道与压力容器的LBB分析[R].北京:清华大学核能技术设计研究院, 1997:9-10. 7.条例 【格式】[序号]颁布单位.条例名称.发布日期 【举例】[15] 中华人民共和国科学技术委员会.科学技术期刊管理办法[Z].1991—06—05 8.译著 【格式】[序号]原著作者. 书名[M].译者,译.出版地:出版社,出版年份:起止页码. 说明: 1 正文部分采用宋体小四,1.5倍行距。 2 一级标题黑体小三号加黑,二级标题黑体四号加黑,三级标题黑体小四号加黑。全部标题均不居中,段前段后都为0行,行间距为1.5倍。 3 参考文献不少于10个。 4 图和表分别采用通篇编号方式,必须有标题。图的标题在图下方,表的标题在表上方。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服