单片机简易计算器课程设计报告

上传人:公**** 文档编号:472154744 上传时间:2022-07-28 格式:DOCX 页数:16 大小:353.56KB
返回 下载 相关 举报
单片机简易计算器课程设计报告_第1页
第1页 / 共16页
单片机简易计算器课程设计报告_第2页
第2页 / 共16页
单片机简易计算器课程设计报告_第3页
第3页 / 共16页
单片机简易计算器课程设计报告_第4页
第4页 / 共16页
单片机简易计算器课程设计报告_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《单片机简易计算器课程设计报告》由会员分享,可在线阅读,更多相关《单片机简易计算器课程设计报告(16页珍藏版)》请在金锄头文库上搜索。

1、并4#耳摩既课程设计成果说明书思i曰-学生姓名:简易计算器的设计向得智学 号:130407132学 院:船舶与海洋工程学院班 级:A13船舶电子电气指导教师:、课程设计目的目录硬件电路设计2.1 AT89C51的功能介绍1.1 .1简单概述1.2 .2主要功能特性1.3 .3 AT89C51的引脚介绍2.2 显示电路2.2.1 LM016L的结构及功能2.2.2 LM016L的引脚功能介绍2.2.3 LM016L的电路接线图2.3 振荡电路设计2.4 键盘电路设计2.5 键盘扫描子程序设计2.6 总电路三、程序设计与说明3.1 程序主流程图结论五、体会与收获参考文献一.课程设计的目的单片机的出

2、现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。本次设计是设计一个简易计算器,能够进行多位简单的加减运算,同时它能支持2位整数运算。它主要由STC89C52单片机、数码管,键盘等模块组成。本计算器是将键盘输入信息经处理通过缓存,送入数码管显示,键盘采用行列式,数码管采用动态扫描方式,计算功能通过软件实现,用汇编语言对单片机可编芯片进行编程,实现对计算器的设计。、硬件电路设计2.1 AT89C51的功能介绍2.1.1简单概述AT89C51是一种带4K字节闪存可编程可擦除只读存储器FPEROFlash Progr

3、ammableand Erasable Read Only Memory的低电压、高性能CMOS位微处理器俗称单片机。AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000MCS-51次。该器件采用ATMEL高密度非易失存储器制造技术制造与工业标准指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中ATMEL的AT89C51是一种高效微控制器AT89C2051是它的一种精简版本AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图 C1APO.O/ADOX7AL1PO.1/AD1P

4、0.2/AD2XTAL2P0.3/AD3P0.4WD &PO.5/AD5RSTPO.7/AD7P2O/A8 P2-1 般3S:37 !36 ;113235.嘉UI .33T32i2i cn22: DI23 : bJPSEN ALEF2.4/A12EAP2.5/A13P2.7/A1SPI .0Pl.lPSdiTXDPl 2P3 2INTQP13P3.3HNT1 PS4H0P1 dP1 0PZS7T1Pl.6Pl.7P37 八 D25 : D4:Df41 工&27: D6:D7.LI tn as 14!iK :17:图2.1 AT89C51芯片模型2.1.2主要功能特性(1) 4K字节可编程闪烁存

5、储器。(2) 32个双向I/O 128X 8位内部RAMO2个16位可编程定时/计数器中断时钟频率0-24MHZ。(4)可编程串行通道。(5) 5个中断源。(6) 2个读写中断口线。(7)低功耗的闲置和掉电模式。(8)片内振荡器和时钟电路。2.1.3 AT89c51的弓|脚介绍(1)电源引脚。电源引脚接入单片机的工作电源。VCC(40弓|脚)电源。GND(20引脚)接地。 时钟弓I脚。XTAL1( 19弓脚)反柜放大器和时钟发生器电路的输入端。XTAL2 (20引脚)广I人扳荡 屋应珈戊昆irim吕沈。(3)复位RST(9引脚)。在振荡器运行时有两个机器周期24个振荡周期以上的高电平出现在此引

6、脚时将使单片机复位只要这个脚保持高电平,51芯片便循环复位。(4) EA/Vpp(31引脚)。EA为外部程序存储器访问允许控制端。当它为高电平时单片机读片内程序存储器在PC值超过OFFFH后将自动转向外部程序存储器。当它为低电平时只限定在外部程序存储 器地址为OOOOH-FFFFH Vpp为该引脚的第二功能为编程电压输入端。ALE/PROG(30引脚)。ALE为低八位地址锁存允许信号。在系统扩展时ALE的负跳沿将发出的第八伐地址倭存日我的地址锁存器然j币作为数据端乂 PROG为该引脚的第一功能生对片外存储器 编程时此引脚为编程脉冲输入端.(6) PSEN(29弓|脚)。片外程序存储器的读选通信

7、号。在单片机读片外程序存储器时此引脚输出脉冲的负 跳沿作为读片外程序存储器的选通信号。(7) pin39-pin32 为P0.0-P0.7输入输出脚称为P0 口。P0是一个8位漏极开路型双向I/O 口。内部不带上拉电阻,当外接上拉电阻时P0 能以吸收电流的方式驱动八个LSTTL负载电路。通常在使用时外接上拉电阻用来驱动多个数码管。在访问外部程序和外部数据存储器时P0 口是分时转换的地址(低8位)/数据总线不需要外接上拉电阻。(8) Pinl-Pin8为P1GP1.7输入输出脚称为Pl 口。P1 口是一个带内部上拉电阻的8 位双向I/O 口。P1 能驱动4个LSTTL负载。(9) Pin21-P

8、in28为P2.0-P2.7输入输出脚称为P2 口。P2 口是一个带内部上拉电阻的8位双向I/O 口 P2 能驱动4个LSTTL负载。端口置1时内部上拉电阻将端口拉到高电平作输入用。对内部Flash程序存储器编程时接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时P2 口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改 变。(10 ) Pinl0-Pinl7为P3.0-P3.7输入输出脚称为P3 口。P3 口是一个带内部上拉电阻的8位双向I/O P2 口能驱动4个LSTTL负载这8个引脚还用于专门的第二功能。端口置1时内部上拉电阻将 端口拉到高电平作

9、输入用。对内部Flash程序存储器编程时接控制信息。22显示电路2.2.1 LM016L的结构及功能LM016L液晶模块采用HD44780控制器,HD44780具有简单而功能较强的指令集, 可以实现字符移动闪烁等功能,LM016L与单片机MCU!讯可采用8位或4位并行传输两种方式,HD44780控制器由两个8位寄存器,指令寄存器IR和数据寄存器DR IR用于寄存指令码只能写入不能读出 DR用于寄存数据,数据由内部操作自动写入DDRAM CGRAM或者暂存从DDRAI和CGRA读出的数据,BF为1时液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM用来存储显示的字符能存储80个字符码

10、,CGROM由8位字符码生成5*7点阵字符160中和5*10点阵字符32种。CGRA是为用户编写特殊字符留用的,它的容量仅64字节,可以自定义8个5*7点阵字符或者4个5*10点阵字符,AC可以存储DDRAF和CGRA 0的地址。如果地 址码随指令写入IR则IR自动把地址码装入AC同时选择DDRAMCGRA单元。2.2.2 LM016L的弓用却功能介绍1602字符型LCD通常有14条引脚线或16条引脚线的LCD多出来的2条线是背光电源线。VCC ( 15 脚)和地线GND ( 16脚)其控制原理与14脚的LCD 个一邱川。(1) VSS 一股或地:(2 ) VDD 核址派 +5V ;(3) V

11、0如界小备九U厅词特话横匚七源时对此茂皿弱掬士时即寸.讨比烹加乌对比度过高时会产生 鬼影使用时可以通过一个10K的电位器调整对比度。(4) RSRS为寄存器选择高电平1时选择数据寄存器、低电平。时选择指令寄存器。(5R/W R/W为读写信号线高电平(1)时进行读操作低电平(0 )时进行写操作。当RS和R/W共 同为低电平时可以写入指令或者显示地址。当RS为低电平R/W为高电平时可以读忙信号。当RS为高电平R/W为低电平时可以写入数据。(6 E E (或EN )端为使能(enable )端下降沿使能。223 LM016L的电路接线图2.3 振荡电路设计单片机内部有一个高增益、反相放大器具输入端为

12、芯片引脚XTAL1其输出端为引脚XTAL2通过这两个引脚在芯片外并接石英晶体振荡器。大小为IMHZ和两只电容:谅电容和一般取30pFo这样就构成一个稳定的自激振荡器。振荡电路脉冲经过二分频后作为系统的时钟信号再在二分频的基础上三分频产生ALE信号此时得到的信号时机器周期信号。2.4 键盘电路设计计算器所需按键有:数字键:一,2, 37 45, 6, 7, 87 97 0;.,功能键:共计16个按键,采用4*4矩阵键盘,键盘的行和列之间都有公共端柜连,四行和四列的8个公共端分别接P3.0P3.7 ,这样扫描P3 口就可以完成对矩阵键盘的扫描,通过对16个按键进行编码, 从而得到键盘的口地址,对比

13、P3 口的扫描结果和各按键的地址,我们就可以得到是哪个键按下,从而完成键盘扫描的功能。id 七P2 7JAI5%1JXD=3IAVH1心4m)P3 5JT1 P3IV r P37iPU2.5 键盘扫描子程序设计要进行数据的计算就必须先进行数据的输入,也就必须确定按键输入的数值是什么,这就需要对键盘进行扫描,从而确定究竟是哪个键按下。 对于键盘的扫描,这里采用行列扫描的方法来完成对键盘的扫描。原理就是先确定按键在哪一行,接着再确定是哪一列,这样就可以知道是哪个按键被按下了。我是将P3 口作为按键扫描口的,比如,先使行线输出全 0 ,读列线,再使列线输出全为0 ,读行线。两次结果再相与,则得到一个值为键值。同理,每个按键都会有一个对应的十六进制值,我把它们列出来进行对应就行了,下面是扫描按键图。0 12 3 * b ICLRP3.4P3.5P3.6P3.72.6 总电路fUSDC ra.t/A&t raj/AKa rafAoa ra VADa K1AM raAM P,AD7PiD Pity eGlla。:norR F3 VT pi 3fme piyirn” 4HD pjim omr ,:173三、程序设计与说明3程序主流程图开始初始化硬件设备显示信息检测按键状态】键值? 数字键加载键值到缓存运算键运算标志?运算逻辑处理程序主流程图逻辑运输

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号