简易计算器系统设计.docx
《简易计算器系统设计.docx》由会员分享,可在线阅读,更多相关《简易计算器系统设计.docx(38页珍藏版)》请在冰豆网上搜索。
![简易计算器系统设计.docx](https://file1.bdocx.com/fileroot1/2022-11/20/dc525d24-d2b8-4779-95e8-49a8b1154285/dc525d24-d2b8-4779-95e8-49a8b11542851.gif)
简易计算器系统设计
郑州航空工业管理学院
微机原理课程设计说明书
2015级电气工程及其自动化S专业班级
题目
姓名学号
指导教师
2015年12月日
摘要
随着经济的发展,不断推动着科技的发展,而科技的发展又带动了电子行业,各种各样的电子产品纷纷涌出。
计算器作为日常生活中常使用的电子产品之一,它的功能化、小型化、轻便化已成为未来智能化计算器的发展方向。
本设计是基于AT89S52单片机进行的简易计算器系统设计,P1口作为输入端,外接4*4矩阵式键盘,通过在4*4矩阵式键盘输入,进行加、减、乘、除简单运算,实现-2147483647到+2147483647的结果运算,并且在P0口上的LCD1602液晶显示器显示相应的计算结果。
【关键词】AT89S52、4*4矩阵式键盘、LCD1602 、计算器
2系统分析
2.1硬件部分
单片机工作在单任务状态,时间充裕,速度不是主要矛盾,所以用软件实现数字和符号的输入以及计算功能,以减少硬件开销。
接口用硬件实现。
具体器件的名称和特点如下表所示:
表2-1硬件选择比较
LED
LCD
LED显示器与LCD显示器相比,LED在亮度、功耗、可视角度和刷新速率等方面,都更具优势。
LED与LCD的功耗比大约为10:
1,LED的最显著特点是使用寿命长,光电转换效能高,绿色环保
LCD占用空间小,低功耗,低辐射,能降低视觉疲劳,但是会出现闪烁问题
8279芯片
8255A芯片
8279芯片可以实现对键盘/显示器的自动扫描,以减轻CPU负担,具有显示稳定,程序简单,不会出现误动作等
8255芯片是可编程的并行接口芯片,不需要附加外部电路便可和大多数并行传输数据的外部设备相连,数据的各位同时传送,使用十分方便
十六进制小键盘
二进制开关
键盘(Keyboard)是常用的输入设备,它是由一组开关矩阵组成,结构相对复杂,与8279A配套使用
二进制逻辑开关一位表示一个二进制数,对于本实验每一位数需要多次拨动八位开关,使实验复杂了许多
通过以上分析,本次设计所选用的芯片为:
8279A芯片、LED发光二极管、十六进制小键盘。
由于8279A的输出电流与LED不匹配的问题,需要驱动电流,本实验中选择74LS240。
2.1.18279A
2.1.1.18279A在本设计中的作用
在本设计中用8279A芯片控制键盘输入和LED显示。
2.1.1.28279A的功能分析
1、8279A主要特性
8279A芯片是一种通用的可编程序的键盘/显示接口器件,单个芯片就能完成键盘输入和LED显示控制两种功能。
可与任何8位机接口。
8279A芯片包括键盘输入和显示输出两个部分。
若采用8279作为键盘/显示器接口,则可以实现对键盘、显示器自动扫描,8279主要是管理键盘输入和显示器输出的。
8279可编程键盘显示器接口芯片具有动态显示驱动电路简单、不占用CPU的时间、可自动进行键盘扫描、与计算机接口方便、编程容易、系统灵活等特点.当今已成为设计计算机应用系统,特别是实时性较高的测控系统的首选器件之一。
2、8279A的内部结构
图2-18279A的内部结构
图中,IRQ:
中断请求输出线,DB0~DB7:
双向数据总路线(传送命令、数据、状态),
、
:
读写控制输入端,RESET:
复位输入端,CLK:
时钟输入端,
:
片选,C和/D(A0):
片内寄存器选址,OUTA0~A1、OUTB0~B3:
8位显示输出端,
:
熄灭显示输出端,SL0~SL3:
公用扫描输出线,RL0~RL7:
键盘回馈输入线,SHIFT:
抵挡键输入线,CNTL/STB:
控制/选通输入线。
另外,8279的键盘接口部分内部有一个8×8位先进先出的堆栈(FIFO),用来存放键盘输入代码,显示器接口部分内部有一个16×8位显示RAM,用来显示段数据,能为16位LED显示器(或其它显示器)提供多路扫描接口。
3、8279A的引脚信号和功能
8279可编程键盘显示器接口芯片具有动态显示驱动电路,不占用CPU的时间、可自动进行键盘扫描、与计算机接口方便、编程容易、系统灵活等特点。
8279是可编程的键盘/显示接口芯片。
它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。
8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8×8=64BRAM,键盘控制部分可控制8×8=64个按键或8×8阵列方式的传感器。
该芯片能自动消抖并具有双键锁定保护功能。
显示RAM容量为16×8,即显示器最大配置可达16位LED数码显示。
4、8279的命令字及其格式
8279有三种工作方式:
键盘工作方式、显示工作方式和传感器工作方式。
键盘工作方式:
双键互锁和N键轮回。
双键互锁是指当有两个以上按键同时按下时,只能识别最后一个被释放的按键,并把其键值送入内部FIFORAM中。
N键轮回是指当有多个按键同时按下时,所有按键的键值均可按扫描顺序依次存入FIFORAM中。
显示工作方式:
是指CPU输入至8279内部FIFORAM的数据的输出格式,有8个字符左端入口显示、16个字符左端入口显示、8个字符右端入口显示、16个字符右端入口显示四种方式。
传感器方式:
是指扫描传感器阵列时,一旦发现传感器的状态发生变化就置位INT向CPU申请中断。
选择不同的工作方式均是通过CPU对8279送入命令来进行控制。
8279共有8种命令,命令寄存器为8位,其中D7~D5为命令特征位,D4~D0为命令的控制位。
CPU对8279写入的命令数据为命令字,读出的数据为状态字。
8279共有八条命令,其功能及命令字格式分述如下。
(1)键盘/显示方式设置命令字
命令格式:
D7D6D5D4D3D2D1D0
000DDKKK
其中:
D7、D6、D5=000为方式设置命令特征位。
DD(D4、D3):
用来设定显示方式,如表2-2所示。
表2-2显示方式选择
D4
D3
显示方式
0
0
8个字符显示,左端入口
0
1
16个字符显示,左端入口
1
0
8个字符显示,右端入口
1
0
16个字符显示,右入口
所谓左入口,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列;所谓右入口,则是显示位置从最右一位(最低位)开始,以后逐次输入显示字符时,已有的显示字符依次向左移动。
KKK(D2、D1、D0):
用来设定七种键盘/显示扫描方式,如表2-3所示。
表2-3键盘/显示扫描方式
D2
D1
D0
键盘/显示扫描方式
0
0
0
编码扫描键盘,双键锁定
0
0
1
译码扫描键盘,双键锁定
0
1
0
编码扫描键盘,N键轮回
0
1
1
译码扫描键盘,N键轮回
1
0
0
编码扫描传感器矩阵
1
0
1
译码扫描传感器矩阵
1
1
0
选通输入,编码显示扫描
1
1
1
选通输入,译码显示扫描
(2)时钟编程命令
命令格式:
D7D6D5D4D3D2D1D0
001PPPPP
其中:
D7、D6、D5=001为时钟命令特征位。
PPPPP(D4、D3、D2、D1、D0)用来设定外部输入CLK时钟脉冲的分频系数N。
N取值范围为2~31。
如CLK输入时钟频率为2MHZ,PPPPP应被置为10100(N=20),才可获得8279内部要求的100KHZ的时钟频率。
(3)读FIFO/传感器RAM命令
命令格式:
D7D6D5D4D3D2D1D0
010AIXAAA
其中:
D7、D6、D5=010为读FIFO/传感器RAM命令特征位。
该命令字只在传感器方式时使用。
在CPU读传感器RAM之前,必须用这条命令来设定所读传感器RAM中的地址。
AAA(D2、D1、D0)为传感器RAM中的八个字节地址。
AI(D4)为自动增量特征位。
当AI=1时,每次读出传感器RAM后地址自动加1使地址指向下一个存储单元。
这样,下一个数据便从下一个地址读出,而不必重新设置读FIFO/传感器RAM命令。
在键盘工作方式中,由于读出操作严格按照先入先出顺序,因此,不需使用这条命令。
(4)读显示RAM命令
命令格式:
D7D6D5D4D3D2D1D0
011AIAAAA
其中:
D7、D6、D5=011为读显示RAM命令字的特征位。
该命令字用来设定将要读出的显示RAM地址。
AAAA(D3、D2、D1、D0)用来寻址显示RAM中的存储单元。
由于位显示RAM中有16个字节单元,故需要4位寻址。
AI(D4)为自动增量特征位。
AI=1时,每次读出后地址自动加1,指向下一地址。
(5)写显示RAM命令
命令格式:
D7D6D5D4D3D2D1D0
100AIAAAA
其中:
D7、D6、D5=100为写显示RAM命令字的特征位。
在写显示RAM之前用这个命令字来设定将要写入的显示RAM地址。
AAAA(D3、D2、D1、D0)为将要写入的显示RAM中的存储单元地址。
AI(D4)为自动增量特征位。
AI=1时,每次写入后地址自动加1,指向下一次写入地址。
(6)显示禁止写入/消隐命令
命令格式:
D7D6D5D4D3D2D1D0
101XIW/AIW/BBL/ABL/B
其中:
D7、D6、D5=101为显示禁止写入/消隐命令特征位。
IW/A、IW/B(D3、D2)为A、B组显示RAM写入屏蔽位。
当A组的屏蔽位D3=1时,A组的显示RAM禁止写入。
因此,从CPU写入显示器RAM数据时,不会影响A的显示。
这种情况通常在采用双4位显示器时使用。
因为两个四位显示器是相互独立的。
为了给其中一个四位显示器输入数据而又不影响另一个四位显示器,因此必须对另一组的输入实行屏蔽。
BL/A、BL/B(D1、D0)为消隐设置位。
用于对两组显示输出消隐。
若BL=1,对应组的显示输出被消隐。
当BL=0,则恢复显示。
(7)清除命令
命令格式:
D7D6D5D4D3D2D1D0
110CDCDCDCFCA
其中:
D7、D6、D5=110为清除命令特征位。
清除显示RAM方式如表2-4所示。
表2-4显示RAM清除方式
D4
D3
D2
清除方式
1
0
×
将全部显示RAM清为00H
1
1
0
将全部显示RAM置为20H,A组输出0010,B组输出0000
1
1
1
将全部显示RAM置为FFH
0
×
×
D0=0不清除,D0=1按上述方法清除
CF(D1)用来置空FIFO存储器,当CF=1时,执行清除命令后,FIFORAM被置空,使INT输出线复位。
同时,传感器RAM的读出地址也被置为0。
CA(D0)为总清的特征位。
它兼有CD和CF的联合效能。
在CF=1时,对显示的清除方式由D3、D2的编码决定。
显示RAM清除时间约需160us。
在此期间状态字的最高位Du=1,表示显示无效。
CPU不能向显示RAM写入数据。
(8)结束中断/错误方式设置命令
命令格式:
D7D6D5D4D3D2D1D0
111EXXXX
其中:
D7、D6、D5=111为该命令的特征位。
此命令有两种不同的作用。
①作为结束中断命令。
在传感器工作方式中使用。
每当传感器状态出现变化时,扫描检测电路就将其状态写入传感器RAM,并启动中断逻