基于89C51的计算器设计_第1页
基于89C51的计算器设计_第2页
基于89C51的计算器设计_第3页
基于89C51的计算器设计_第4页
基于89C51的计算器设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理与接口技术课程设计单片机系统课程设计任务书学生姓名专业班级自动F1205学号题目基于89C51的计算器设计课题性质工程设计课题来源自拟指导教师主要内容(参数)利用89C51单片机设计一个计算器,实现功能如下144按键用于09的数字输入、加减乘除、等于、清零功能;2能实现简单的加减乘除运算;3输入数字及计算结果通过LED显示器显示。任务要求(进度)第12天熟悉课程设计任务及要求,查阅技术资料,确定设计方案。第34天按照确定的方案设计单元电路。要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。第56天软件设计,编写程序。第78天实验室调试。第910天撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。主要参考资料1张迎新单片微型计算机原理、应用及接口技术(第2版)M北京国防工业出版社,20042伟福LAB6000系列单片机仿真实验系统使用说明书3阎石数字电路技术基础(第五版)北京高等教育出版社,2006审查意见单片机原理与接口技术课程设计系(教研室)主任签字年月日单片机原理与接口技术课程设计目录绪论11硬件组成与方案设计111系统框图112硬件设计213功能设计22硬件电路设计221时钟电路222复位电路323显示电路424键盘电路53系统软件设计631主程序632键盘检测程序733读键输入程序834数码管显示程序104仿真与调试114软件调试1142硬件调试1143调试结果11总结13参考文献13附录A整体电路图14附录B程序代码15单片机原理与接口技术课程设计1绪论近十几年来,单片机技术凭借其速度快,体积小,价格低,控制功能强,易于掌握,功能丰富等自身优点迅速发展,在各个领域发挥了重大作用,如今已成为一门成熟的学科。利用单片机可以实现非常丰富的功能,如流水灯,闹钟,秒表,音乐盒等,能够独立完成,实现设计,可以很好的检验自己对硬件以及对软件的理解和掌握水平。本设计采用80C51芯片,实现了利用单片机进行了一个简单计算器设计。允许对输入数据进行加,减,乘,除运算及LED数码管的显示。当然也可以用如LED显示屏显示来显示出更多的字符,实现更多的功能。但设计的关键所在,必须非常熟悉单片机的原理与结构,同时还要对整个设计流程有很好的把握,实现单片机和其他模块的完整的衔接。1硬件组成与方案设计11系统框图硬件组成如图11所示,通过时钟电路来提供时钟脉冲,使单片机有节拍的协同各个部件的同步有序工作,键盘电路来检测各个功能键,通过数码管来显示输出结果,复位电路可以在单片机异常工作或者需要重新计算时进行复位AT89C51键盘电路数码管显示电路时钟电路复位电路图11芯片和键盘实现功能单片机原理与接口技术课程设计212硬件设计根据功能和指标要求,本系统选用89C52单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。按键分布如下表所示表按键分布表硬件设计如下由于要设计的是简单的计算器,可以进行四则运算,对数字的大小范围要求不高故我们采用可以进六位数字的运算,选用6个LED数码管显示数据和结果。另外键盘包括数字键(09)、符号键(、)、清除键和等号键,故只需要16个按键即可。13功能设计功能实现如下初始化上电后,屏幕初始化。计算。按下数字键,屏幕显示要运算的第一个数字,再按下符号键,屏幕不显示,然后再按下数字键,屏幕显示要运算的第二个数字,最后按下“”号键,屏幕上显示出计算结果。如果要再次计算,可以按下“C”键清零,或者按下单片机的复位键,重新初始化。2硬件电路设计21时钟电路时钟电路是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基单片机原理与接口技术课程设计3准,有条不紊地工作。因此时钟频率直接影响单片机的速度,时钟电路的质量也影响单片机系统的稳定性。本文时钟电路采用内部时钟电路,在引脚XTAL1和XTAL2两端跨接石英晶体,通过外接晶振C1,C2形成内部时钟电路,C1,C2一般取30PF图时钟电路22复位电路上电复位电路是一种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。上电复位是指在系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随VCC对电容的充电过程而回落,故RST引脚复位的高电平维持时间取决于电容的充电时间。为保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长时间,电路图如下图图22所示单片机原理与接口技术课程设计4图复位电路23显示电路如下图23所示为一位共阴极数码管的元件图图23数码管它是一种半导体发光器件,其基本单元是发光二极管。表21为常用的字形表,为了显示数字或符号,要为LED显示器提供代码,即字形代码为方便查询数码管共阴极字形段码,通过查询下表可以很方便的找到所需要段码显示字型GFEDCBA段码001111113FH1000011006H210110115BH310011114FH4110011066H511011016DH611111017DH7000011107H811111117FH911011116FH表21常用字形码(低电平有效)数码管是由8段发光二极管显示字段的显示器件,发光二极管简称字段,要显示某字形就应使该字形的相应字段点亮,也就是向数码管送入不同的电平组合,通过不同的组合可以显示09,AF以及小数点“”等字符,而本设计为单片机原理与接口技术课程设计5正整数的运算,并不涉及到小数点的点亮。数码管的显示方法为通过右边的公共端控制数码管的亮灭,通过左边的段选码的电平状态确定每位发光二极管亮灭。本次设计采用的是6位七段共阴极数码管,但是不需要单独使每个数码管送出段选码,而是每3个数码管的段选端通过内部总线相连,再通过动态显示数码管的方式使每个数码管分时轮流选通,因此大大简化了电路,更好的利用了I/O资源。下图24即为所使用的6位数码管的元件图图24数码管显示电路单片机原理与接口技术课程设计624键盘电路考虑到独立式键盘每个按键都要占用一个I/O口,按键较多时需要占用较多的的I/O口线,资源利用率低,并且由于本次采用的单片机开发板本身就是行列式键盘,故最终采用的是4行列式键盘。行列式键盘的四个行线处于输入状态,四个列线处于输出状态,按键设置在行列线的交叉点上,行列线分别连在按键开关的两端。具体键盘电路如图23所示图25键盘电路3系统软件设计31主程序主程序流程图如图31所示,主程序构成循环,首先初始化参数,送LED为高电平,初始状态下没有字形码显示。然后扫描键盘看是否有键输入,若有,读取键码。判断键码是数字键09、清零键,“”还是四则运算符(“”,“”,“”,“/”),如果是数字值,则计数第几个数,第几位数,进行内部运算处理,送入数码管进行显示输出,是清零键则做对数码管进行清零,如果是四则运算,则内部进行运算处理,同时数码管不显示,若为“”号则输出运算结果,显示在数码管上。单片机原理与接口技术课程设计7开始初始化输入处理数码管输出显示结束是否为四则运算符Y是否为等号读键盘数码管输出结果显示YN运算处理清零图31主程序流程图32键盘检测程序此子程序为本设计的核心之一,因为按键是利用机械触点来进行合,断作用的,机械触点在闭合或断开的瞬间由于弹性作用的影响,有抖动现象,从而使电压信号出现抖动,会造成按键读入的不稳定性,产生误读现象,因此为了保证键盘读入的可靠性,必须消除去除抖动影响,抖动时间与按键的机械特性相关,一般为510MS,去除抖动的方法有硬件和软件去抖两种,本实验采用的是软件去抖检测到有键按下时,执行一个20MS的延时程序,再确认该键电平是否保持闭合电平状态,若仍为闭合电平状态,则确认该键处于闭合状态,从而去除抖动影响,子程序流程图如图32所示单片机原理与接口技术课程设计8开始初始化是否有键按下获取键号返回NY确认是否有键按下二次调用延时子程序延时20MSYN图32键盘程序流程图33读键输入程序为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码键码。为了得到被按键的键码,现使用行扫描法单片机原理与接口技术课程设计9识别按键。列扫描信号进行读入行的信号,判断该列是否有列的输出是则进行按照行列计算键盘的值,查表取得键码并返回若否则进行再次扫描。本设计采用矩阵式键盘,行线为P30P33,列线为P34P37,通过读取行线P30P33的状态可以确定有无键按下,当键盘上没有键被按下时,行列线是断开的,P30P33输入全部为高电平,当某个键被按下时,行列线短路,P30P33短路,所有行线输入都是低电平,而列线某一位为低电平,其他位均为高电平。通过结合行线和列线的输入状态可以确定哪个键被按下,从而确定正确的键码值。开始初始化地址参数输出列扫描信号列扫描信号移位读入行信号该列是否有键输入全部列扫描完返回按照行列计算键值查表得键值等待按键释放返回NYNY图33读键输入程序流程图单片机原理与接口技术课程设计1034数码管显示程序数码管显示分为静态显示和动态显示,考虑到静态显示需要显示较多I/O口,占用资源多,并且考虑到本单片机实验板硬件的限制,本数码管的显示采用的动态显示方案,通过分时轮流选通数码管的公共端,使各个数码管轮流选通,再送出段码,显示特定字符。在各个数码管依次显示一遍后,通过循环使显示器分时点亮,由于视觉暂留效用与余晖效应,人眼无法识别数码管的点亮顺序,就好像所有数码管同时点亮,具体流程如下图34开始初始化显示参数读显示数据输出段码数据输出位选通延时位选通信号移位指向下一位数据数据全部显示一遍NY图34数码管显示流程图单片机原理与接口技术课程设计114仿真与调试4软件调试1、打开KEILUVISION2软件后,在PROJECT菜单中选择NEWPROJECT命令,打开一个新项目。保存此项目,输入工程文件名CALCULATOR后,并保存工程文件的目录。2、为项目文件选择一个目标器件,即选择80C51的类型。在DATABASE列表框中选择“ATMEL89C52”,确定。、选择“FILE”目录下的TARGET1,在右键列表中选择“组SOURCEGROUP1属性”,在输出项勾选“E成HEX文件”,HEX格式为“HEX80”。4、上述设置好后,创建源程序文件并输入程序代码。输入好代码后点击“文件/保存”,保存为CALCULATORASM。5、把源文件添加到项目中,用鼠标指在目标工作区的目标1点击右键在弹出的菜单中选择“添加文件到组SOURCEGROUP1”,在弹出的添加文件框中,选择需要添加到项目中的文件。6、开始编译,对项目文件进行编译,对代码进行修改完善,最后编译错误,警告。7、打开STCISP软件,选择单片机型号为STC89C52RC,选择正确的串口号,加载程序文件,给单片机上电后,HEX文件下载编程成功。42硬件调试1依次按下矩阵键盘上定义的数字键“09”,经检测数码管都可以正确显示。2依次进行不同算法“”,“”,“”,“/”,经检测可以正常进行运算。3输入某个数,按下清零键,屏幕无显示,可以实现清零功能。43调试结果(1)编程软件KEIL软件调试结果如图41单片机原理与接口技术课程设计12图41KEIL软件调试结果(2)烧写软件ISPSTC调试结果如图42图42ISPSTC调试结果(3)89C51实验板硬件调试结果单片机原理与接口技术课程设计13总结本次课程设计是理论和实践的结合,首先通过该学期理论课的学习,对单片机的硬件构成有了初步的理解,包括其结构与原理,指令系统,定时计数器和扩展接口的使用,通过这次课程设计,在实践中重复利用所学运用,验证理论知识,从中我很多收获和体会,以及自顶向下,逐步细化的工程设计方法,通过一步步分解任务设计,达到了设计要求。途中当然遇到了很多困难,但也增强了查阅书籍,手册,图表和文献资料的能力,同时通过独立思考,深入研究有关问题,学会自己分析解决问题的方法解决了一些问题。在这次课程设计中我充分感受到理论和实践的差距,一个人光有理论知识是远远不够的,在进行实践,面对硬件完全是一无所措,对硬件的学习完全是不同于理论学习的,其中硬件调试,ISPSTC烧写操作,都是课堂上没有讲过的,需要重新学习。设计过程中也会发现自己对理论知识的某些方面不是那么牢固,暴露了自己的很多不足,锻炼了自己的理论联系实际的能力与实际动手能力,以后应该多进行一些实践来不断提升自己的能力。参考文献1张迎新单片微型计算机原理S、应用及接口技术M北京国防工业出版社2阎石数字电子技术基础M北京高等教育出版社单片机原理与接口技术课程设计14附录A整体电路图单片机原理与接口技术课程设计15附录B程序代码INCLUDEDEFINEUCHARUNSIGNEDCHARUCHARA016,B016,C016,D016,E016,F016,WEI,TEMP,KEY,I,J,KUCHARJIA,JIAN,CHENG,CHU,DENGYU,JIA0,JIAN0,CHENG0,CHU0,QINGLINGUCHARS0,S1,S2,S3,S4,S5/参加运算的各个位UNSIGNEDLONGQIAN,HOU/定义参于运算的第一个数和第二个数。SBITDULAP26SBITWELAP27SBITBEEPP23UNSIGNEDCHARCODETABLE0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71,0X00VOIDDELAYUCHARIFORJIJ0JFORK125K0KVOIDDISPLAYUCHARA,UCHARB,UCHARC,UCHARD,UCHARE,UCHARFDULA0P0TABLEADULA1DULA0WELA0P00XFEWELA1WELA0DELAY5P0TABLEBDULA1DULA0P00XFDWELA1WELA0DELAY5单片机原理与接口技术课程设计16P0TABLECDULA1DULA0P00XFBWELA1WELA0DELAY5P0TABLEDDULA1DULA0P00XF7WELA1WELA0DELAY5P0TABLEEDULA1DULA0P00XEFWELA1WELA0DELAY5P0TABLEFDULA1DULA0P00XDFWELA1WELA0DELAY5VOIDKEYSCANP30XFETEMPP3单片机原理与接口技术课程设计17TEMPTEMPIFTEMP0XF0DELAY10IFTEMP0XF0TEMPP3SWITCHTEMPCASE0XEEKEY0WEIBREAKCASE0XDEKEY1WEIBREAKCASE0XBEKEY2WEIBREAKCASE0X7EKEY3WEIBREAKWHILETEMP0XF0TEMPP3TEMPTEMPBEEP0BEEP1P30XFDTEMPP3TEMPTEMPIFTEMP0XF0单片机原理与接口技术课程设计18DELAY10IFTEMP0XF0TEMPP3SWITCHTEMPCASE0XEDKEY4WEIBREAKCASE0XDDKEY5WEIBREAKCASE0XBDKEY6WEIBREAKCASE0X7DKEY7WEIBREAKWHILETEMP0XF0TEMPP3TEMPTEMPBEEP0BEEP1P30XFBTEMPP3TEMPTEMPIFTEMP0XF0DELAY10IFTEMP0XF0单片机原理与接口技术课程设计19TEMPP3SWITCHTEMPCASE0XEBKEY8WEIBREAKCASE0XDBKEY9WEIBREAKCASE0XBBQINGLING1/KEY10/WEIBREAKCASE0X7BDENGYU1/KEY11/WEIBREAKWHILETEMP0XF0TEMPP3TEMPTEMPBEEP0BEEP1P30XF7TEMPP3TEMPTEMPIFTEMP0XF0DELAY10IFTEMP0XF0TEMPP3单片机原理与接口技术课程设计20SWITCHTEMPCASE0XE7JIA1/KEY12/WEIBREAKCASE0XD7JIAN1BREAKCASE0XB7CHENG1BREAKCASE0X77CHU1BREAKWHILETEMP0XF0TEMPP3TEMPTEMPBEEP0BEEP1VOIDDISPLAY0IFKEY20SWITCHWEICASE1A0KEYB016C016D016E016单片机原理与接口技术课程设计21F016BREAKCASE2B0KEYC016D016E016F016BREAKCASE3C0KEYD016E016F016BREAKCASE4D0KEYE016F016BREAKCASE5E0KEYF016BREAKCASE6F0KEY/WEI0BREAKKEY20DISPLAYA0,B0,C0,D0,E0,F0IFA016S5A0IFB016S4B0IFC016S3C0IFD016S2D0IFE016S1E0IFF016S0F0VOIDMAINUCHARGONGNENG,YUNSUANWHILE1KEYSCANGONGNENGJIA|JIAN|CHENG|CHU|DENGYU|QINGLINGIFGONGNENG0单片机原理与接口技术课程设计22DISPLAY0ELSEYUNSUANJIA|JIAN|CHENG|CHUIFYUNSUANA016B016C016D016E016F016/WEI0IFJIAJIA0JIA01JIAN00CHENG00CHU00IFJIANJIAN0JIA00JIAN01CHENG00CHU00IFCHENGCHENG0JIA00JIAN00CHENG01CHU00IFCHUCHU0JIA00JIAN00CHENG00CHU01SWITCHWEICASE6QIANS5100000S410000S31000S2100S110S0BREAKCASE5QIANS510000S41000S3100S210S1BREAKCASE4QIANS51000S4100S310S2BREAKCASE3QIANS5100S410S3BREAKCASE2QIANS510S4BREAKCASE1QIANS5BREAKWEI0S00S10S20S30S40S50DISPLAYA0,B0,C0,D0,E0,F0/P10X55单片机原理与接口技术课程设计23IFDENGYUDENGYU0/DISPLAY16,1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论