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

上传人:b****5 文档编号:14902426 上传时间:2023-06-28 格式:DOCX 页数:11 大小:127.46KB
下载 相关 举报
单片机简易计算器课程设计报告.docx_第1页
第1页 / 共11页
单片机简易计算器课程设计报告.docx_第2页
第2页 / 共11页
单片机简易计算器课程设计报告.docx_第3页
第3页 / 共11页
单片机简易计算器课程设计报告.docx_第4页
第4页 / 共11页
单片机简易计算器课程设计报告.docx_第5页
第5页 / 共11页
单片机简易计算器课程设计报告.docx_第6页
第6页 / 共11页
单片机简易计算器课程设计报告.docx_第7页
第7页 / 共11页
单片机简易计算器课程设计报告.docx_第8页
第8页 / 共11页
单片机简易计算器课程设计报告.docx_第9页
第9页 / 共11页
单片机简易计算器课程设计报告.docx_第10页
第10页 / 共11页
单片机简易计算器课程设计报告.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

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

 

课程设计成果说明书

 

题目:

简易计算器的设计

学生:

向得智

学号:

130407132

学院:

船舶与海洋工程学院

班级:

A13船舶电子电气

指导教师:

 

一、课程设计目的……………………………………………………………

二、硬件电路设计……………………………………………………………

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程序主流程图………………………………………………………………

四、结论……………………………………………………………………………

五、体会与收获……………………………………………………………………

参考文献……………………………………………………………………………

 

一.课程设计的目的 

 单片机的出现是计算机制造技术高速开展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。

本次设计是设计一个简易计算器,能够进展多位简单的加减运算,同时它能支持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字节可编程闪烁存储器。

(2)32个双向I/O口128×8位部RAM。

(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负载。

(9)Pin21-Pin28为P2.0-P2.7输入输出脚称为P2口。

P2口是一个带部上拉电阻的8位双向I/O口P2口能驱动4个LSTTL负载。

端口置1时部上拉电阻将端口拉到高电平作输入用。

对部Flash程序存储器编程时接收高8位地址和控制信息。

在访问外部程序和16位外部数据存储器时P2口送出高8位地址。

而在访问8位地址的外部数据存储器时其引脚上的容在此期间不会改变。

(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)端下降沿使能。

 

2.2.3LM016L的电路接线图

2.3振荡电路设计

单片机部有一个高增益、反相放大器其输入端为芯片引脚XTAL1其输出端为引脚XTAL2。

通过这两个引脚在芯片外并接石英晶体振荡器。

大小为1MHZ和两只电容电容和一般取30pF。

这样就构成一个稳定的自激振荡器。

振荡电路脉冲经过二分频后作为系统的时钟信号再在二分频的根底上三分频产生ALE信号此时得到的信号时机器周期信号。

 

2.4键盘电路设计

计算器所需按键有:

 

数字键:

’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’0’,’.’     

功能键:

‘+’,‘-’,‘*’‘/’‘=’   

共计16个按键,采用4*4矩阵键盘,键盘的行和列之间都有公共端相连,四行和四列的8个公共端分别接P3.0~P3.7,这样扫描P3口就可以完成对矩阵键盘的扫描,通过对16个按键进展编码,从而得到键盘的口地址,比照P3口的扫描结果和各按键的地址,我们就可以得到是哪个键按下,从而完成键盘扫描的功能。

2.5键盘扫描子程序设计

要进展数据的计算就必须先进展数据的输入,也就必须确定按键输入的数值是什么,这就需要对键盘进展扫描,从而确定终究是哪个键按下。

 

对于键盘的扫描,这里采用行列扫描的方法来完成对键盘的扫描。

原理就是先确定按键在哪一行,接着再确定是哪一列,这样就可以知道是哪个按键被按下了。

我是将P3口作为按键扫描口的,比方,先使行线输出全“0〞,读列线,再使列线输出全为“0〞,读行线。

两次结果再相与,那么得到一个值为键值。

同理,每个按键都会有一个对应的十六进制值,我把它们列出来进展一一对应就行了,下面是扫描按键图。

 

 

2.6总电路

 

三、程序设计与说明

3.1程序主流程图

程序主流程图

 

四、结论

完成硬件和软件的设计和制作后,进展系统的调试,并处理不断出现的问题。

对于计算器的性能,主要的衡量指标就在于计算的精度,本次制作的计算器性能情况如下:

加法运算:

四位整数加法运算,和值不超过999999,假设超过上限,那么显示错误提示。

减法运算:

四位正整数减法运算。

乘法运算:

积不超过999999的整数乘法运算,假设超出上限,显示错误提示。

除法运算:

整数除法,既计算结果为可显示小数。

 

五、体会与收获

通过这次课程设计,最大的一点体会是单片机学的不够扎实,不会的很多啊,当然这次的课程设计做计算器程序用的是c语言,不是课上初学的汇编,所以很难适应,尽管大家都知道汇编编这个程序也很困难,但还是互相学习,到处找资料看,问同学,所以我的软件主程序才能编译成功,系统才能调试出结果。

很感那些热心教诲我的同学和指导我的教师。

首先在硬件电路的制作中,也就是焊板子,由于我的粗心,我芯片插槽的一个管脚没焊进去,别的都好了,就这个脚没有用了,后来在教师的帮助下,我将插槽里德那个管脚拔出来,换了个脚在插进去,然后用万用表测试后证明是有效的,心里还是很快乐的。

整个硬件电路还是做得令自己比拟满意的。

在软件方面,感觉困难更多一些,一开场真的很着急,毫无头绪啊,一时间,XX,论坛,贴吧逛了个遍,找了很多资料,也参考了同学的程序,其中每一个子程序模块都认真去读,去分析,化为己用,最重要的按键扫描和显示程序,还有包括加减乘除的运算程序,还了解了c语言在单片机编程中的一些特点,包括函数的声明和调用等等。

而且在用uvison编译的时候出了很多问题,其中一个就是关于头文件的,要加上“#include〞,不仅如此,还要将有关STC12C5410AD的文件覆盖在uvison安装路径下,这样头文件才有效啊,所以,一开场找不出问题所在,极其郁闷。

但是总的来说,软件设计能够把结果调出来还是很冲动的,尽管还有很多未知的问题没有出现。

 

七、参考文献:

[1].?

单片机原理及及应用?

王迎旭编机械工业.

[2].?

微型计算机原理与接口技术?

吴秀清编中国科学技术.

[3].?

51系列单片机原理及设计实例?

楼然苗,良儿等编航空航天大学.

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2