




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录一、设计总绪 11.1 设计思想 11.2 设计说明 11.3 关键词:矩阵键盘,单片机,数码管显示,汇编语言 11.4 设计目的 11.5 设计要求 1二、设计方案 22.1 硬件电路设计方案 22.1.1 基本结构 22.1.2 系统框架图 22.1.3 工作流程图 32.1.4 单片机主控制模块 42.2 系统功能描述 5三、各模块功能介绍 63.1 键盘输入模块 63.1.1 键盘分布图 63.1.2 工作原理 63.2 运算控制模块 73.3 显示模块 73.4 振荡电路模块 8四、仿真电路 9仿真运行结果 9五、调试过程总结 11附录: 12参考文献: 12源程序代码 12A设
2、计总绪1.1 设计思想近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技 术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加以完善。 计算机在人们的日常生活中是比较常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算机,基于这样的理念,本次设计是用AT89c51单片机、LCD显示器、控制按键为元件来设计的计算器。利用此设计熟悉单片机微控制器及汇编语言编程,对其片资源及各个I/O端口的功能和基本用途的了解。掌握应用程序开发环境, 常用的LCD显示器的使
3、用方法和一般键盘的使用方法此设计是基于单片机技术的简易计算器的方案,本次设计所提出的一种基于单片机技术的简易计算器的方案,采用具有数据处理能力的中央处理器CPU随机存储器ROM多种I/O 口和中断系统、定时器/计时器等功能集成到一块硅片 上构成的一个小而完善的计算机系统一一单片机,配以汇编语言编写的执行程 序,能更好的解决计算机计算的问题, 随着数字生活的到来,单片机在生活中越 来越重要,它能将大量的逻辑功能集成与一个集成电路中,使用起来十分方便。1.2 设计说明本次课程设计讨论了单片机技术的计算器构思,设计方案,工作原理,主要系统包括单片机80C51,排阻RESPACK8,开关,六位数码管显
4、示器等,主要组 成部分包括:键盘输入模块,运算模块,控制模块,显示模块。通过键盘输入数 值,单片机进行运算后在数码管显示出结果。1.3 关键词:矩阵键盘,单片机,数码管显示,汇编语言1.4 设计目的通过本次课程设计,运用单片机微型计算机原理及应用所学到的知识 及查询相关资料,完成简易计算器的设计,进一步提高单片机的系统设计和开发 能力,达到理论知识与实践更好的结合,提高综合运用所学知识和设计能力的目 的。1.5 设计要求要求设计一个单片机应用系统,利用 keil和proteus软件完成系统软硬件 的设计及模拟调试。实现五位数(可为带小数点)的加减乘除运算,通过按键输 入十进制数据。利用六位数码
5、管显示运算结果。 并实现复位操作。由于要设计的 是简单的计算器,可以进行四则运算,为了得到教好的显示效果,采用LCD显示 数据和结果。、另外键盘包括数字键(0-9)、符号键(+、-、*、/)、清除键和等 号键,故只需要16个按键即可,设计中采用集成的计算机键盘来,当键入 +、-、*、/运算符,计算器在内部执行数值转换和存储, 并等待再次键入数值后将显示 键入的数值,按等号就会在LCD上输出运算结果,执行程序:开机显示零,等待 键入数值,当键入数字,通过 LCD显示出二、设计方案2.1 硬件电路设计方案2.1.1 基本结构计算器一般由运算器、控制器、键盘、显示器、电源和一些可选外围设备及 电子配
6、件通过人工或机器设备组成。 键盘是计算器的输入部件,一般采用接触式 或传感式。显示器是计算器的输出部件,有发光二极管显示器或液晶显示器等。 除显示计算结果外,还常有溢出指示、错误指示等。计算器电源采用交流转换器 或电池。计算器都采用CMOS:艺制作的大规模集成电路。本次课程设计中我是采用了以 MCS-51系列的单片机AT89C511片机为核 心构成的简易计算器。该系统通过单片机控制,实现对4*4键盘进行实时扫描的 按键检测,并把检测数据存储下来。整个计算器系统的工作过程为:首先存储单元初始化,显示初始值和键盘扫描,判断按键位置,查表得出按键值, 单片机则对数据进行储存 与相应处理转换,之后送入
7、数码管动态显示。整个系统可分为三个主要功能模块:功能模块一,实时键盘扫描;功能模块二,数据转换成显示器显示;功能模块三,计算控制模块。功 能模块四:显示模块。2.1.2 系统框架图图2.1系统总体框架图2.1.3工作流程图图2.2系统工作流程图开始2.1.4单片机主控制模块AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS粒微 处理器,俗称单片机。该器件采用ATMEH密度非易失存储器制造技术制造,与 工业标准的MCS-51指令集和输出管脚相兼容。由于将
8、多功能 8位CPLW闪烁存 储器组合在单个芯片中,ATMEL勺AT89C51是一种高效微控制器,为很多嵌入式 控制系统提供了一种灵活性高且价廉的方案。主要特性:与 MCS-51兼容;4K 字节可编程闪烁存储器;1000写/擦循;数据保留时间:10年;全静态工作: 0Hz-24Hz;三级程序存储器锁定;128*8位内部RAM;32可编程I/O 线;两个16位 定时器/计数器;5个中断源;可编程串行通道;低功耗的闲置和掉电模式;片内 振荡器和时钟电路Pl. A PL 5 Pl.t PI. 7RST (RM3,Q EDI PL 1 ITO心 2 (TniDfu(T0?3. 4 )P工5 丽P&6 而
9、 P;, 7XTAL2 XTAL1153ATg9csiP氏 0/(ADO) phadh P0. 2/ (ADJ) PO. 3/(ADJ) P0.4/1MM) PO. 5/ADS) P0.6W) Pk7,即) EI/vpp AlE/PRSC ?sEnP2.P2.6/(A14 P2. 5/(A13rP2.41A12) ?2. 3/(All) P2,2/(A10) P2.1/(A9) P2, O,(A即图I AT89c51的引脚排列74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相 三态双向总线收发器,可双向传输数据。74LS245还具有双向三态功能,既可以输出,也可以输入数
10、据。当8051单片机的P0 口总线负载达到或超过 P0最大负载能力时,必须接入 74LS245等总线驱动器。当片选端/CE低电平有效时,DIR= 0,信号由B向A传输;(接收)DIR= 1,信号由A向B传输;(发送)当CE为高电平时,A、B均为 高阻态。由于P2口始终输出地址的高8位,接口时74LS245的三态控制端1G和2G接 地,P2 口与驱动器输入线对应相连。P0 口与74LS245输入端相连,E端接地,保 证数据线畅通。8051的/RD和/PSEN相与后接DIR,使得RD且PSEN有效时, 74LS245输入(P0.1D1),其它时间处于输出(P0.1 -D1)。23456A0A1A2
11、A3A4A5A6A7B0B1B2B3B4B5B6B71317五1413-74LS245D1R11E是H时,A, B为高阻E为L, DIR为L时,B-*A 百为L, DIR是H时,图2 74LS245 引脚图2.2系统功能描述本程序有LC侬态显示,键盘输入显示功能,程序启动时默认为计算器状态(1)计算器状态下:按“0”“9”,显示相应数字;按“复位”,恢复初始化模式;按“加减乘除”可实现加减乘除的运算功能三、各模块功能介绍3.1 键盘输入模块3.1.1 键盘分布图3.1.2 工作原理本设计采用P3 口作为矩阵键盘输入口,开始工作后,单片机先对矩阵键盘 的行进行扫描。若无键按下,先使 P3为111
12、10000,然后检测外来输入,若有输 入,则可使四位的0其中一位置1,即完成了按行号的输入。列扫描远离同行扫 描相同,不过P3初始为00001111.检测完行号与列号后,产生一个 8位二进制 码,即可对键盘值进行输入。3.2 运算控制模块伯T 力 I 11,11111 11+30XTAL1PO.O/AOOP0VAD1P0.2/AD2XTAiaP0.9/AD3P0A/AD4P0.5AD5P0.87AD6RSTP0.7/AD7P2QXA0P2.1ZP6P2 2/A1013333735Q髓g_32.32292d222324FSENP2.3/A11ALEP2.4/A12EAP2 5/A13P2.G/A
13、14P2.7/A15P1.0P30/RXDP1.1P3.VTXDP1.2P3.2/INTOP1.3P3,3/INTIP1.4P34ToP1 5P3.5/T1IP1 0P3J9/WRP17P9.7/RD30253128272SID2113124135伸6157IB617AT8SC51图3.2计算器运算控制模块控制模块控制着数字录入,数字录入是进行计算的前提,它是将从矩阵键盘 上输入的数值、运算符等录入单片机处理器进行处理,从而得出运算结果。计算模块作为计算器的核心模块共有加、减、乘、除四个部分。其设计原理 是先将键盘输入的BCM数字转换为十进制数字,然后再对其进行运算。由于最 后需要进行输出显示
14、,所以我们的最终结果以十进制的形式显示在六位的数码显 示管上。3.3 显示模块图3.3 数码管显示屏本设计采用了六位数码管,可以显示 0999999之间的任意整数,由于LED 数码管有6个,若采用静态显示,则最少需要 48根数据线与6根地址线,这对 只有40个引脚的单片机来说是不可能实现的。所以我采用了动态扫描的显示方 法。其原理是不同时刻对不同位上的数码管进行选通,同时对其进行数码输出。 当扫描频率很高时,将不会看到数码管的闪烁。本设计应用了定时器中断来实现 问时显示。3.4 振荡电路模块图3,.4 振荡电路振荡电路如图所示。图中晶振的两端分别接单片机的19和18脚。时钟有内部电路产生, 定
15、时器件为石英晶体和电容组成的并联谐振回路。3.5 起保护作用模块图3.5 限流电阻这一排限流电阻,它们的作用是起保护作用,防止数码管的段位被烧坏四、仿真电路H1VAD1 ra2TAD(2 F二工从四 NLfh RD*真的 Ml甘人隹IsU2吟 TAL1如随田me4 Faann PllSTTF3LtHD PJST1 PJj&TO 川而用口阉 F帼 fzzh.i FZ3w11 ,士 村风 C2 2*风口 RZ*A1+a:F匚F F irHH目口H图4.1系统电路仿真图仿真运行结果例如:运行23*2时,一次在键盘上输入数据和功能键,功能键不会再数码管 上显示出来,只会显示出输入的数据和运行结果co国
16、EF 生EH Em, Ess ULML叫足 咨足 ga足叵口网血匚回回回臼ESSEZI* ” awp-H JSN ss 口学N FMrth SHE 岂s ekrthd. 矍g 曾东 m-D OWEI45-9- 卓 色 曲J.、huJ.、 工 5RIITr-口 Mq 金 ? E.JTrlli EEaUXLAEd E5ERL2赤里 O专NII-二再M H5nnL K-MK Qes-ML-lowzLHdRYQ 口 d口 d-as aa 旦葡Dd 星商nQ., ss SSDL:,163H6RBCDEFS OF1340白P3CF5 pjiFeFZ* P3W11 FZWAG 程方相FZWMS回1 回口0S
17、H臼A B &图4.4 计算23*2的运行结果五、调试过程总结开始在做这个单片机课设的时候,感觉无从下手,一点头绪都没有。后来上 网查了好多资料,向学长请教。终于功夫不负有心人,做出了这个单片机的课设。 调试过程中也遇到了 一些问题,先是数码管显示数据不完整,经过仔细检查发现 是线路连接的错误;后来又遇到计算时会出现运算错误, 经过查找发现原来是编 程的问题。在利用keil软件编程的过程中,会出现各种各样的问题,有的是由 于粗心而引起的,有的是因为概念模糊而导致的。 再用proteus进行仿真时,会 出现的问题主要是线路连接问题,可能会不小心把线连错,其他的我觉得只要元 器件选择好,各引脚的功
18、能清楚的话一般不会有太大的问题。在这次做课程设计的过程中我深深体会到了要独立完成一个作品的设计是 多么不容易。虽然我做的只是最基础的,但是从这个最小的系统中却是利用了单 片机的最基础的功能。在这个过程中,我们不仅仅是编程仿真那么简单,还需要 有极大的耐心与毅力。设计的过程中会遇到各种各样的问题,我们应该静下心来 好好研究,这对于我们以后的工作也是非常重要的。总的来说,这次课程设计,一个礼拜的紧张忙碌终于完成了。 感觉自己的收 获还是很多的,无论是对专业知识的了解还是对硬件的设计,都是需要我们下很大的功夫去研究的。通过这次课程设计,最大的一点体会是单片机学的不够扎实, 不会的很多啊,当然这次的课
19、程设计做计算器程序用的是汇编语言,尽管大家都知道汇编编这个程序很困难,但还是互相学习,到处找资料看,问同学,所以我的软件主程序才能编译成功,系统才能调试出结果。很感谢那些热心教导我的同 学和指导我的老师。附录:参考文献:11姜志海、刘连鑫等,单片机微型计算机原理及应用M。北京:业出版社,201121周润景,张丽娜。基于PROTEUS电路及单片机系统设计与仿真电子工M 0北京:北京航空航天大学出版社,2006源程序代码YJ EQU50H;结果存放YJ1 EQU51H;中间结果存放GONG EQU52 H;功能键存放ORG00H;程序存放的首地址START: MOVR3,#0;初始化显示为空MOV
20、GONG,#0;功能键清零MOV32H,#00H;(32H)=00H,存放输入的数据MOV33H,#00H;(33H)=00HMOV34H,#00H;(34H)=00HMLOOP: CALLDISP;调显示子程序,call通过入口地址跳转有返回,返回地址压入堆栈。WAIT: CALL TESTKEYNEXT1: CJNE A,#1,NEXT2LJMP E1NEXT2: CJNE A,#2,NEXT3LJMP E1NEXT3: CJNE A,#3,NEXT4LJMP E1NEXT4: CJNE A,#4,NEXT5LJMP E1NEXT5: CJNE A,#5,NEXT6LJMP E1NEXT6
21、: CJNE A,#6,NEXT7LJMP E1NEXT7: CJNE A,#7,NEXT8LJMP E1NEXT8: CJNE A,#8,NEXT9LJMPE1NEXT9:CJNEA,#9,NEXT10LJMPE1NEXT10:CJNEA,#10,NEXT11;判断是否功能键LJMPE2;转功能键处理NEXT11:CJNEA,#11,NEXT12LJMPE2NEXT12:CJNEA,#12, NEXT13LJMPE2NEXT13:CJNEA,#13,NEXT14LJMPE2NEXT14:CJNEA,#14,NEXT15LJMPE2NEXT15:LJMPE3;判断是否清除键E1:CJNER3,
22、#1,N1;判断第几次按键,若(R3)不等于(1),则跳转到N1处执行LJMPE11;为A个数字N1:CJNER3,#2,N2LJMPE12;为第二个数字N2:CJNER3,#3,N3LJMPE13;为第三个数字N3:LJMPE3;第四个数字转溢出E11:MOVR4,A;输入值暂存R4MOV34H,A;输入值送显示缓存MOV33H,#00HMOV32H,#00HLJMPMLOOP;等待再次输入E12:MOVR7,A;个位数暂存R7MOVB,#10MOVA,R4MULAB;十位数,输入的值乘10,即为十位数ADDA,R7MOVR4,A;输入值存R4MOV32H,#00H;输入值送显示缓存MOV3
23、3H,34HMOV34H,R7LJMPMLOOPE13:MOVR7,AMOVB,#10MOVA,R4MULABJBOV,E3;输入溢出ADDA,R7JBCY,E3;输入溢出MOVR4,AMOV32H,33H;输入值送显示缓存MOV33H,34HMOV34H,R7LJMPMLOOPE3:MOVR3,#0;按键次数清零MOVR4,#0;输入值清零MOVYJ,#0;计算结果清零MOVGONG,#0;功能键设为零MOV32H,#00H;显示清空MOV33H,#00HMOV34H,#00HLJMPMLOOPE2:MOV34H,#00HMOV33H,#00HMOV32H,#00HMOVR0,GONG;与上
24、次功能键交换MOVGONG,AMOVA,R0CJNEA,#10,N21;判断功能键LJMPJIA;十N21:CJNEA,#11,N22LJMPJIAN;N22:CJNEA,#12,N23LJMPCHENG;* ;N23:CJNEA,#13,N24LJMPCHU;/N24:CJNEA,#0,N25LJMPFIRST;首次按功能键N25:LJMPDEN;= ;N4:LJMPE3FIRST:MOVYJ,R4;输入值送结果MOVR3,#0;按键次数清零LJMPDISP1;结果处理/加法JIA:MOVA,YJ;上次结果送累加器ADDA,R4;上次结果加输入值JBCY,N4;溢出MOVYJ,A;存本次结果
25、MOVR3,#0;按键次数清零LJMPDISP1/减法JIAN:MOVA,YJSUBB A,R4;上次结果减输入值JB CY,N4;负数溢出,JB位变量条件转移指令,若直接寻址位的值为1,则执行转移MOVYJ,AMOVR3,#0LJMPDISP1/乘法CHENG: MOVA,YJMOVB,AMOVA,R4MULAB;上次结果乘输入值JBOV,N4;溢出MOVYJ,ALJMPDISP1/除法CHU:MOVA,R4MOVB,AMOVA,YJDIVAB;上次结果除输入值MOVYJ,AMOVR3,#0LJMPDISP1/DEN:MOVR3,#0LJMPDISP1DISP1: MOVB,#10MOVA,
26、YJMOVB,#10MOVA,YJ1DIVABMOVYJ1,AMOVA,BMOV33H,A;十位送显示缓存MOVA,YJ1JZDISP11;结果是否为二位数MOV32H,A;百位数送显示缓存DISP11: LJMPMLOOP;长跳转指令DISP: MOV R0,#34HDIR1: MOV DPTR,#SEGTAB;基寄存器DPIR存入输入的数据值MOV A,R0;寄存器间接寻址MOVC A,A+DPTR;基寄存器加艾址寄存器间接寻址MOV P0,ACJNE R0,#34H,DIR2SETB P2.0DIR2: CJNE R0,#33H,DIR3SETB P2.1CALL DIMS CLR P2.1 DEC R0SJMP DIR1DIR3: SETB P2.2 CALL DIMS CLR P2.2 RETDIMS: MOV R7,#02HDMS: MOV R6,#0F0HDJNZ R6,$;DJNZ R7,DMS RETSEGTAB: DB 0C0H, 0F9H, 0A4H, DB 99H, 92H, 82H, 0F8H DB 80H, 90H, 88H, 83H DB 0C6H, 0A1H, 86H, 8EH;P2.1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年福建省龙岩市新罗区苏坂中心幼儿园招聘1人考前自测高频考点模拟试题有完整答案详解
- 2025贵州黔南州瓮安县卫生健康局招聘公益性岗位人员2人考前自测高频考点模拟试题及答案详解(考点梳理)
- 英语四六级考试听力专项训练模拟试卷 2025年全新版
- 2025年交通银行春季招聘模拟试卷及一套答案详解
- 2025海南定安县建设工程质量安全监督站就业见习基地见习生招录5人模拟试卷附答案详解(黄金题型)
- 2025年日照市财金控股集团有限公司公开招聘工作人员(4人)模拟试卷带答案详解
- 2025广东省生物制品与药物研究所招聘12人模拟试卷参考答案详解
- 2025航空工业沈阳兴华航空电器有限责任公司招聘9人(辽宁)考前自测高频考点模拟试题及答案详解(各地真题)
- 2025安徽六安市霍邱县夏店镇选聘见习村干部20人模拟试卷及参考答案详解1套
- 2025年乐山高新区管委会直属事业单位公开考核招聘工作人员的模拟试卷及答案详解(新)
- 新版人教版 小学英语五年级上册第二单元课件
- 孕期三病筛查
- 墙体砌筑技术培训课件
- 新人教版九年级化学上册1-3单元检测试题
- 水库巡查维护保洁人员配备及培训
- 酸枣树栽培方法
- 进行性球麻痹的护理查房
- 抖音汽车直播培训方案
- 生物技术与医药研发的前沿与应用
- 《建筑基坑工程监测技术标准》(50497-2019)
- 高新技术企业、研发费用加计扣除
评论
0/150
提交评论