用8051单片机、数码管显示器、控制按键为元件来设计的计算器_第1页
用8051单片机、数码管显示器、控制按键为元件来设计的计算器_第2页
用8051单片机、数码管显示器、控制按键为元件来设计的计算器_第3页
用8051单片机、数码管显示器、控制按键为元件来设计的计算器_第4页
用8051单片机、数码管显示器、控制按键为元件来设计的计算器_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、摘 要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加以完善。计算机在人们的日常生活中是比较常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算机,基于这样的理念,本次设计是用8051单片机、数码管显示器、控制按键为元件来设计的计算器。利用此设计熟悉单片机微控制器及汇编语言编程,对其片资源及各个i/o端口的功能和基本用途的了解。关键字:8051 数码管 控制按键 汇编语言目 录摘 要1第一章 绪论2

2、1.1 课题简介31.2 设计目的31.3 设计任务3第二章 课题背景42.1 单片机发展现状42.2 计算器系统现状52.3 矩阵按键6第三章 硬件系统设置73.1硬件电路原理图73.2 键盘接口电路73.3 数码管显示8第四章 软件设计94.1算术运算流程图设计94.2 源程序设计10第五章 系统调试与存在的问题155.1 硬件调试155.2 软件调试15总 结16参考文献17附 录18附录一:计算器硬件连线图18第一章 绪论1.1 课题简介当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所

3、不能胜任的,而且比较容易出错。计算器作为一种快速通用的计算工具方便了用户的使用。计算器可谓是我们最亲密的电子伙伴之一。本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。在工业生产中。单片微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。本系统就是充分利用了8051芯片的i/o引脚。系统以采用mcs-51系列单片机intel8051为中心器件来设计计算器控制器,实现了能根据实际输入值显示并存储的

4、功能,计算程序则是参照教材。1.2 设计目的通过本次课题设计,应用单片机原理应用技术、计算机应用基础等所学相关知识及查阅资料,完成简易计算器的设计, 以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。通过本次设计的训练,可以使我在基本思路和基本方法上对基于mcs-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。1.3 设计任务 在本次课程设计中,主要完成如下方面的设计任务:1、简要阐述单片机技术发展的国内外现状及数码管、led动态显示和矩阵键盘基本原理;2、掌握mcs-51系列某种产品(例如8051)的最小电路及外围扩展电路的设计方法;3、了解

5、单片机数据转换功能及工作过程;4、完成主要功能模块的硬件电路设计及必要的参数确定;5、用proteus软件完成原理电路图的绘制; 第二章 课题背景2.1 单片机发展现状单片机的发展趋势:低功耗cmos化;微型单片化;主流与多品种共存;单片机从8位、16位到32位,数不胜数,应有尽有,有与主流c51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。纵观单片机的发展历程,可以发现单片机的发展趋势大致有:1、低功耗cmos化mcs-51系列的8051推出时的功耗达630mw,而现在的单片机普遍都在100mw左右,随着对单片机功耗的要求越来越低,现在的各个单片机制造商基

6、本都采用了cmos(互补金属氧化物半导体工艺)。像80c51就采用了hmos(即高密度金属氧化物半导体工艺)和chmos(互补高密度金属氧化物半导体工艺)。cmos虽然功耗较低,但由于其物理特征决定了其工作速度不够高,而chmos则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合。所以这种工艺将是今后一段时期内单片机发展的主要途径。2、微型单片化 现在常规的单片机普遍都是将中央处理器(cpu)、随机存取数据存储(ram)、只读程序存储器(rom)、并行和串行通信接口、中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如a/d转换器、pmw(脉宽

7、调制电路)、wdt(看门狗),有些单片机将lcd(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就更强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中smd(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。 3、主流与多品种共存 现在虽然单片机的品种繁多,各具特色,但仍是以80c51为核心的单片机占主流,兼容其结构和指令系统的有philips公司的产品,atmel公司的产品和中国台湾的w

8、inbond系列单片机。因此以80c51为核心的单片机占据了半壁江山。而microchip公司的pic精简指令集(risc)也有着强劲的发展势头,中国台湾的holtek公司近年的单片机产量与日俱增,以其价低质优的优势,占据一定的市场份额。此外还有motorola公司的产品,日本几大公司的专用单片机。在一定的时期内,这种形势将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。2.2 计算器系统现状计算器一般由运算器、控制器、存储器、键盘、显示器、电源和一些可选外围设备及电子配件通过人工或机器设备组成。低档计算器的运算器、控制器由数字逻辑电路实现简单的串行运

9、算,其随机存储器只有一、二个单元,供累加存储用。高档计算器由微处理器和只读存储器实现各种复杂的运算程序,有较多的随机存储单元以存放输入程序和数据。键盘是计算器的输入部件,一般采用接触式或传感式。为减小计算器的尺寸,一键常常有多种功能。显示器是计算器的输出部件,有发光二极管显示器和液晶显示器等。除显示计算结果外,还常有溢出指示、错误指示等。计算器电源采用交流转换器或电池,电池可用交流转换器或太阳能转换器再充电。为节省电能,计算器都采用cmos工艺制作的大规模集成电路(见互补金属-氧化物-半导体集成电路),并在内部装有定时不操作自动断电电路。计算器可选用的外围设备有微型打印机、盒式磁带机和磁卡机等

10、。本次的设计是利用单片机设计简单的计算器,本设计利用单片机的i/o接口设计24键盘,8个键依次对应03、“+”、“-”、“=”和清除键。通过检测不同数字键、功能键的按下,可以进行小于255的数的加减乘除运算,并可连续运算。当键入值大于255时,将自动清零,可以重新输入。对应每一个数字键按下的同时,led显示按下键的值,并显示最后的运算结果。2.3 矩阵按键键盘是单片机系统中最常用的人机对话输入设备,用户通过键盘向单片机输入数据或指令。键盘控制程序需完成的任务有:监测是否有键按下,有键按下时,若无硬件去抖动电路时,应用软件延时方法消除按键抖动影响;当有多个键同时按下时,只处理一个按键,不管一次按

11、键持续多长时间,仅执行一次按键功能程序。矩阵按键扫描程序是一种节省i/o口的方法,按键数目越多节省i/o口就越可观,思路:先判断某一列(行)是否有按键按下,再判断该行(列)是哪一只键按下。但是,在程序的写法上,采用了最简单的方法,使得程序效率最高。本程序中,如果检测到某键按下了,就不再检测其它的按键,这完全能满足绝大多数需要,又能节省大量的cpu时间。 第三章 硬件系统设置3.1硬件电路原理图 硬件系统是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,

12、必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。本设计选用以at89s51单片机为主控单元。显示部分:采用lcd静态显示。按键部分,采用4*4键盘。 硬件电路原理图如图3.1所示:图3.1 硬件电路原理图3.2 键盘接口电路计算机输入数字和其他功能按键时要用到很多按键,在这种情况下,编程会很简单,但是会占用大量的i/o口资源,因此在很多情况下都不采用这样的方式,而是采用矩阵键盘的方式。矩阵键盘采用四条i/o线作为行线,四条i/o线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的数量就为4*4个。这样行列式键盘结构能有效的提高单片机

13、系统中i/o口的利用率。3.3 数码管显示在本任务中用4位数码管显示当前数值的千,百,十,个,由于数码管个数多,如采用静态显示方式,则占用单片机的i/o口线太多,如果用定时器/计数器的串行移位寄存器工作方式及外接串入并出移位寄存器74ls164的方式,则电路复杂。所以,在数码管个数较多时,常采用动态显示方式。如图所示为单片机应用系统中的一种数码管动态显示电路图,4位数码管的相同段并联在一起,由一个8位i/o(p1口)输出字形码控制显示某一字形,每个数码管的公共端由另外一个i/o口(p0口)输出的字位码控制,即数码管显示的字形是由单片机i/o口输出的字形码确定,而哪个数码管点亮是由单片机i/o口

14、输出的字位码确定的。4个数码管分时轮流循环点亮,在同一时刻只有1个数码管点亮,但由于数码管具有余辉特性及人眼具有视觉暂留特性,所以适当地选取循环扫描频率,看上去所有数码管是同时点亮的,察觉不出闪烁现象。动态显示方式所接数码管不能太多,否则会因每个数码管所分配的实际导通时间太少,使得数码管的亮度不足。在本任务中,为了简便,字形码和字位码都没由加驱动电路,在实际应用中应加驱动电路。数码管有共阴极和共阳极两种,对于共阳数码管,字形驱动输出0有效,字位驱动输出1有效;而对于共阴数码管则相反,即:字形驱动输出1有效,字位驱动输出0有效。3.4 运算模块 mcs-51单片机是在一块芯片中集成了cpu、ra

15、m、rom、定时器/计数器和多功能i/o等计算机所需要的基本功能部件。如果按功能划分,它由以下功能部件组成,即微处理器(cpu),数据存储器(ram),程序存储器(rom/eprom),并行i/o口,串行口,定时器/计数器,中断系统及特殊功能寄存器(sfr)。单片机是靠程序运行的,并且可以修改。第四章 软件设计4.1算术运算流程图设计算术运算程序的过程为:先判断输入的运算符是+、-、*、/ 中的哪一个,若是+或-,则要判断运算结果是否溢出,溢出则显示错误信息,没溢出就显示运算结果,若是/,则要先判断除数是否为零,为零就显示错误信息,不为零则显示运算结果,若是-,则直接显示运算结果。其流程图如图

16、4.1所示。开始运算符是?加乘减除运算结溢出?除数为0?错误信息送显示 缓冲数值送显示缓冲yynn图4.1 算术运算程序设计流程图4.2 源程序设计dispbuf equ 30h ;显示数据存储位置 org 0000h ;主程序的入口地址 start:mov dispbuf,#0c0h ;4个数码管显示0000字形数据 mov dispbuf+1,#0c0h mov dispbuf+2,#0c0h mov dispbuf+3,#0c0h mov 37h,#00h ;数值初始化 mov 27h,#00h mov 26h,#00h mov 25h,#00h mov 24h,#00h mov 23h

17、,#00h mov r3,#00h mov r5,#00h mov r4,#00hloop: lcall key ;调用键盘扫描子程序 mov r6,27h cjne r6,#00h,start ;清除键判断 mov r6,26h cjne r6,#00h,fa ;显示数据转换子程序选择 lcall conv ;调用数码管显示数据转换子程序fa: lcall dispscan ;调用数码管动态显示子程序 sjmp loopkey: mov p2,#0fh ;键盘扫描子程序 ;低4位送1 mov a,p2 ;行输入 anl a,#0fh cjne a,#0fh,k10 ;有按下跳转 retk10

18、: jb p2.0,k20 ;第一列k11: mov p2,#0efh ;一行一列 jb p2.0,k12 cjne r5,#00h,l1 mov r4,#00h inc r5 mov r3,#1hl1: ljmp cendk12: mov p2,#0dfh jb p2.0,k13 cjne r5,#00h,l2 mov r4,#00h inc r5 mov r3,#2hl2: ljmp cendkil: ljmp kendl4: ljmp cendk20: jb p2.1,k30 ;第二列k21: mov p2,#0efhjb p2.1,k22ljmp dyuk22: mov p2,#0df

19、hjb p2.1,k23mov 25h,#3hljmp oprcctv:ljmp kendk30: jb p2.2,k40 ;第三列k31: mov p2,#0efhjb p2.2,k32mov 25h,#0hljmp oprk32: mov p2,#0dfhjb p2.2,k33mov 25h,#2hljmp oprk40: jb p2.3,kend ;第四列k41: mov p2,#0efhjb p2.3,k42inc 27hljmp kendk42: mov p2,#0dfhjb p2.3,k43mov 25h,#1hljmp opropr: inc r4 ;键值存储cjne r5,#0

20、0h,changcjne r4,#2h,kbkzhi: mov a,20hmov b,#0ahmul abmov 20h,25hadd a,20hcjne r5,#00h,czhmov 23h,aljmp kendczh: mov 24h,aljmp kendkend:mov p2,#0fhmov a,p2anl a,#0fhcjne a,#0fh,kendretchang: cjne r4,#2h,hong ajmp zhihong:jnc cendinc r5mov 20h,25hmov 24h,25hljmp cendkbk: jnc cendmov 20h,25hmov 23h,25h

21、ljmp cenddyu: mov r5,#00h ;结果计算mov r4,#00hmov 25h,#00hcjne r3,#1h,smov a,23hadd a,24hmov 23h,asjmp cends: cjne r3,#2h,s1clr cmov a,23hcjne a,#00h,jianfamov 23h,#0ehsjmp cendjianfa:subb a,24hmov 23h,asjmp cends1: cjne r3,#3h,s2mov a,23hmov b,24hmov a,23hmul abmov r6,bcjne r6,#00h,chengmov 23h,asjmp c

22、ends2: cjne r3,#4,cendmov a,24hcjne a,#00h,zymov a,#00hsjmp cendzy: mov a,23hmov b,24hdiv abmov 23h,acend:mov p2,#0fhmov a,p2anl a,#0fhcjne a,#0fh,cendconv: cjne r5,#02h,bei ;数码管显示数据转换子程序 mov a,24hajmp jingbei: mov a,23hjing: mov b,#64hdiv abmov dptr,#tablemovc a,a+dptrmov dispbuf+2,amov a,bmov b,#0

23、ahdiv abmovc a,a+dptrmov dispbuf+1,amov a,bmovc a,a+dptrmov dispbuf,aretdispscan:mov r0,#dispbuf ;数码管动态显示子程序mov r2,#4hmov a,#1hsc: push accmov a,r0mov p1,apop accmov p0,alcall delay1rl ainc r0djnz r2,scmov p0,#1hretdel12: mov r6,#1ehdel2: mov r7,#64hdel1: djnz r7,del1djnz r6,del2retdelay1:mov r6,#70

24、 ;延时程序d2: mov r7,#100djnz r7,$djnz r6,d2rettable:db 0c0h,0f9h,0a4h,0b0h,99h ;-字符表- db 92h,82h,0f8h,80h,90h db 88h,83h,0c6h,0a1h,86h end第五章 系统调试与存在的问题5.1 硬件调试常见故障:1、逻辑错误:它是由设计错误或加工过程中的工艺性错误所造成的。这类错误包括错线、开路、短路等。 2、元器件失效:有两方面的原因:一是器件本身已损坏或性能不符合要求;二是组装错误造成元件失效,如电解电容、集成电路安装方向错误等。 3、可靠性差:因其可靠性差的原因很多,如金属化孔、接插件接触不良会造成系统时好时坏,经不起振动;走线和布局不合理也会引起系统可靠性差。 4、电源故障:若样机由电源故障,则加电后很容易造成器件损坏。电源故障包括电压值不符合设计要求,电源引线和插座不对,功率不足,负载能

温馨提示

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

评论

0/150

提交评论