单片机简易计算器课程设计报告_第1页
单片机简易计算器课程设计报告_第2页
单片机简易计算器课程设计报告_第3页
单片机简易计算器课程设计报告_第4页
单片机简易计算器课程设计报告_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

单片机简易计算器课程设计报告目录课程设计目的……………硬件电路设计……………2.1AT89C51的功能介绍……………2.1.1简单概述…………2.1.2主要功能特性·……………………2.1.3AT89C51的引脚介绍………………2.2显示电路·………………2.2.1LM016L的结构及功能……………2.2.2LM016L的引脚功能介绍…………2.2.3LM016L的电路接线图……………2.3振荡电路设计………………………2.4键盘电路设计………………2.5键盘扫描子程序设计…………………2.6总电路……………程序设计与说明…………3.1程序主流程图………………结论……………体会与收获……………………参考文献……………单片机简易计算器课程设计报告全文共11页,当前为第1页。单片机简易计算器课程设计报告全文共11页,当前为第1页。一.课程设计的目的

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

芯片进行编程,实现对计算器的设计。二、硬件电路设计2.1AT89C51的功能介绍2.1.1简单概述AT89C51是一种带4K字节闪存可编程可擦除只读存储器FPEROM—FlashProgrammableandErasableReadOnlyMemory的低电压、高性能CMOS8位微处理器俗称单片机。AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造与工业标准MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中ATMEL的AT89C51是一种高效微控制器AT89C2051是它的一种精简版本AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图2.1所示。图2.1AT89C51芯片模型2.1.2主要功能特性(1)4K字节可编程闪烁存储器。单片机简易计算器课程设计报告全文共11页,当前为第2页。(2)32个双向I/O口128×8位内部RAM。单片机简易计算器课程设计报告全文共11页,当前为第2页。(3)2个16位可编程定时/计数器中断时钟频率0-24MHz。(4)可编程串行通道。(5)5个中断源。(6)2个读写中断口线。(7)低功耗的闲置和掉电模式。(8)片内振荡器和时钟电路。2.1.3AT89C51的引脚介绍(1)电源引脚。电源引脚接入单片机的工作电源。VCC(40引脚)电源。GND(20引脚)接地。(2)时钟引脚。XTAL1(19引脚)反相放大器和时钟发生器电路的输入端。XTAL2(20引脚)片内振荡器反相放大器的输出端。(3)复位RST(9引脚)。在振荡器运行时有两个机器周期24个振荡周期以上的高电平出现在此引脚时将使单片机复位只要这个脚保持高电平,51芯片便循环复位。(4)EA/Vpp(31引脚)。EA为外部程序存储器访问允许控制端。当它为高电平时单片机读片内程序存储器在PC值超过0FFFH后将自动转向外部程序存储器。当它为低电平时只限定在外部程序存储器地址为0000H~FFFFH。Vpp为该引脚的第二功能为编程电压输入端。(5)ALE/PROG(30引脚)。ALE为低八位地址锁存允许信号。在系统扩展时ALE的负跳沿将发出的第八位地址锁存在外接的地址锁存器然后再作为数据端口。PROG为该引脚的第二功能在对片外存储器编程时此引脚为编程脉冲输入端。(6)PSEN(29引脚)。片外程序存储器的读选通信号。在单片机读片外程序存储器时此引脚输出脉冲的负跳沿作为读片外程序存储器的选通信号。(7)pin39-pin32为P0.0-P0.7输入输出脚称为P0口。P0是一个8位漏极开路型双向I/O口。内部不带上拉电阻,当外接上拉电阻时P0口能以吸收电流的方式驱动八个LSTTL负载电路。通常在使用时外接上拉电阻用来驱动多个数码管。在访问外部程序和外部数据存储器时P0口是分时转换的地址(低8位)/数据总线不需要外接上拉电阻。(8)Pin1-Pin8为P1.0-P1.7输入输出脚称为P1口。P1口是一个带内部上拉电阻的8位双向I/0口。P1口能驱动4个LSTTL负载。单片机简易计算器课程设计报告全文共11页,当前为第3页。(9)Pin21-Pin28为P2.0-P2.7输入输出脚称为P2口。P2口是一个带内部上拉电阻的8位双向I/O口P2口能驱动4个LSTTL负载。端口置1时内部上拉电阻将端口拉到高电平作输入用。对内部Flash程序存储器编程时接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时P2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。单片机简易计算器课程设计报告全文共11页,当前为第3页。(10)Pin10-Pin17为P3.0-P3.7输入输出脚称为P3口。P3口是一个带内部上拉电阻的8位双向I/O口P2口能驱动4个LSTTL负载这8个引脚还用于专门的第二功能。端口置1时内部上拉电阻将端口拉到高电平作输入用。对内部Flash程序存储器编程时接控制信息。2.2显示电路2.2.1LM016L的结构及功能LM016L液晶模块采用HD44780控制器,HD44780具有简单而功能较强的指令集,可以实现字符移动闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,HD44780控制器由两个8位寄存器,指令寄存器IR和数据寄存器DR。IR用于寄存指令码只能写入不能读出DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM用来存储显示的字符能存储80个字符码,CGROM由8位字符码生成5*7点阵字符160中和5*10点阵字符32种。CGRAM是为用户编写特殊字符留用的,它的容量仅64字节,可以自定义8个5*7点阵字符或者4个5*10点阵字符,AC可以存储DDRAM和CGRAM的地址。如果地址码随指令写入IR,则IR自动把地址码装入AC同时选择DDRAMCGRAM单元。2.2.2LM016L的引脚功能介绍1602字符型LCD通常有14条引脚线或16条引脚线的LCD多出来的2条线是背光电源线。VCC(15脚)和地线GND(16脚)其控制原理与14脚的LCD完全一样其中。(1)VSS一般接地。(2)VDD接电源+5V。(3)V0液晶显示器对比度调整端接正电源时对比度最弱接地电源时对比度最高对比度过高时会产生“鬼影”使用时可以通过一个10K的电位器调整对比度。(4)RSRS为寄存器选择高电平1时选择数据寄存器、低电平0时选择指令寄存器。(5)R/WR/W为读写信号线高电平(1)时进行读操作低电平(0)时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址。当RS为低电平R/W为高电平时可以读忙信号。当RS为高电平R/W为低电平时可以写入数据。(6)EE(或EN)端为使能(enable)端下降沿使能。单片机简易计算器课程设计报告全文共11页,当前为第4页。单片机简易计算器课程设计报告全文共11页,当前为第4页。2.2.3LM016L的电路接线图2.3振荡电路设计单片机内部有一个高增益、反相放大器其输入端为芯片引脚XTAL1其输出端为引脚XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器。大小为1MHZ和两只电容电容和一般取30pF。这样就构成一个稳定的自激振荡器。振荡电路脉冲经过二分频后作为系统的时钟信号再在二分频的基础上三分频产生ALE信号此时得到的信号时机器周期信号。2.4键盘电路设计计算器所需按键有:

数字键:’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’0’,’.’

功能键:‘+’,‘-’,‘*’‘/’‘=’

单片机简易计算器课程设计报告全文共11页,当前为第5页。共计16个按键,采用4*4矩阵键盘,键盘的行和列之间都有公共端相连,四行和四列的8个公共端分别接P3.0~P3.7,这样扫描P3口就可以完成对矩阵键盘的扫描,通过对16个按键进行编码,从而得到键盘的口地址,对比P3口的扫描结果和各按键的地址,我们就可以得到是哪个键按下,从而完成键盘扫描的功能。单片机简易计算器课程设计报告全文共11页,当前为第5页。2.5键盘扫描子程序设计要进行数据的计算就必须先进行数据的输入,也就必须确定按键输入的数值是什么,这就需要对键盘进行扫描,从而确定究竟是哪个键按下。

对于键盘的扫描,这里采用行列扫描的方法来完成对键盘的扫描。原理就是先确定按键在哪一行,接着再确定是哪一列,这样就可以知道是哪个按键被按下了。我是将P3口作为按键扫描口的,比如,先使行线输出全“0”,读列线,再使列线输出全为“0”,读行线。两次结果再相与,则得到一个值为键值。同理,每个按键都会有一个对应的十六进制值,我把它们列出来进行一一对应就行了,下面是扫描按键图。

单片机简易计算器课程设计报告全文共11页,当前为第6页。2.6总电路单片机简易计算器课程设计报告全文共11页,当前为第6页。三、程序设计与说明单片机简易计算器课程设计报告全文共11页,当前为第7页。3.1程序主流程图单片机简易计算器课程设计报告全文共11页,当前为第7页。单片机简易计算器课程设计报告全文共11页,当前为第8页。程序主流程图单片机简易计算器课程设计报告全文共11页,当前为第8页。四、结论完成硬件和软件的设计和制作后,进行系统的调试,并处理不断出现的问题。对于计算器的性能,主要的衡量指标就在于计算的精度,本次制作的计算器性能情况如下:加法运算:四位整数加法运算,和值不超过999999,若超过上限,则显示错误提示。单片机简易计算器课程设计报告全文共11页,当前为第9页。减法运算:四位正整数减法运算。单片机简易计算器课程设计报告全文共11页,当前为第9页。乘法运算:积不超过999999的整数乘法运算,若超出上限,显示错误提示。除法运算:整数除法,既计算结果为可显示小数。五、体会与收获通过这次课程设计,最大的一点体会是单片机学的不够扎实,不会的很多啊,当然这次的课程设计做计算器程序用的是c语言,不是课上初学的汇编,所以很难适应,尽管大家都知道汇编编这个程序也很困难,但还是互相学习,到处找资料看,问同学,所以我的软件主程序才能编译成功,系统才能调试出结果。很感谢那些热心教导我的同学和指导我的老师。首先在硬件电路的制作中,也就是焊板子,由于我的粗心,我芯片插槽的一个管脚没焊进去,别的都好了,就这个脚没有用了,后来在老师的帮助下,我将插槽里德那个管脚拔出来,换了个脚在插进去,然后用万用表测试后证明是有效的,心里还是很高兴的。整个硬件电路还是做得令自己比较满意的。单片机简易计算器课程设计报告全文共11页,当前为第10页。在软件方面,感觉困难更多一些,一开始真的很着急,毫无头绪啊,一时间,百度,论坛,贴吧逛了个遍,找了很多资料,也参考了同学的程序,其中每一个子程序模块都认真去读,去分析,化为己用,最重要的按键扫描和显示程序,还有包括加减乘除的运算程序,还了解了c语言在单片机编程中的一些特点,包括函数的声明和调用等等。而且在用uvison编译的时候出了很多问题,其中一个就是关于头文件的,要加上“#include<STC12C5410AD.H>”,不仅如此,还要将有关STC12C5410AD的文件覆盖在

温馨提示

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

评论

0/150

提交评论