电子设计基于STC89C52RC单片机的简易计算器设计docx.docx
- 文档编号:18377723
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:43
- 大小:1,015.05KB
电子设计基于STC89C52RC单片机的简易计算器设计docx.docx
《电子设计基于STC89C52RC单片机的简易计算器设计docx.docx》由会员分享,可在线阅读,更多相关《电子设计基于STC89C52RC单片机的简易计算器设计docx.docx(43页珍藏版)》请在冰点文库上搜索。
电子设计基于STC89C52RC单片机的简易计算器设计docx
电子设计
实验名称:
基于STC89C52RC单片
机的简易计算器设计
姓名:
学号:
■■■..3
………4
4
指导老师:
一、可行性研究■-
二、方案述
2.1、功能介
、设可彳亍性分析:
1.2.1经济可行性
由于只是实验性质的编程,所以在设计和开发都不需要过多的经费,但是系
统投入运行以后,硕件维护和损耗所造成的耗费是必须的,但是数目也不会很大。
所以经过初步分析,经济上基本上是可行的
1.2.2技术可行性
在技术方面,因为都学习了C语言,硕件课程设计等课程,对于开发语言C语言
也有一定的掌控能力,应该能够完成相应的任务。
1.2.3运行可行性
该成果简单易操作,非常容易使用。
1.2.4法律可行性
由于我们需要完成的功能相对简单,没有太多涉及到很专业方面的内容,更
没有计划将系统利用到商业用途,所以不存在侵权或者版权纠纷方面的问题。
125结论
该系统的软硬件都比较容易理解和实现,所以,具有实现一计算器的可
行性。
二、设计方案简述
2.1功能概述
系统基本功能:
(1)由于设计的计算器要进行四则运算,为了得到较好的显示效果,经综合分析后,最后采用LCD显示数据和结果。
(2)采用键盘输入方式,键盘包括数字键(0〜9)、符号键(+、-、X、
清除键(onV)和等号键(=),故只需要16个按键即口J,设计中采用集成的计算键盘。
(3)在执行过程中,开机显示零,等待键入数值,当键入数字,通过LCD显示出
来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次
键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD±输出运算结
(4)错误提示:
当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:
error。
当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示overflow;当除数为0时,计算器会在LCD上提示
扩展功能:
加上括号的混合运算
2.2总体设计思路
本设计主要采用以下基本模块来实现:
控制器模块,输入模块,输出模块和电源模块。
通过对控制器进行编程。
使其对输入模块的信号进行处理计算,然后通过输出模块反馈给使用者以计算结果。
线路原理框图
方案论证与比较
控制部分的设计方案论证与选择
根据设计要求,控制器主要用于红外信号的接收和辨认、控制步进电机的动作,控制显示步进电机的转速等。
对于控制器的选择有以卞三种方案。
方案一:
采用计算器专用芯片实现。
用计算器专用芯片进行设计并编程实现。
这种设计方案计算效率高、速度快、而且成本也相对较低,是厂家做计算器的最佳方案。
但是本人对计算器专用芯片掌握的不够,还不足以实现设计计算器,所以这个方案不可去。
方案二:
采用FPGA(现场可编程门阵列)作为系统的控制器。
FPGA将所有器件集成到一块芯片上,体积小,节省空间,提高了稳定性;直接面向用户,具有极大的灵活性和通用性,使用方便,硬件测试和实现快捷,开发效率高,工作可靠性好。
可以实现各种复杂的逻辑功能,规模大,密度高,采用并行的输入输出方式,系统处理速度高,适合作为大规模实时系统的控制核心。
由FPGA内部编程实现计算器功能,本设计对数据处理速度的要求不是很高,FPGA的高速处理的优势得不到充分的体现,由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物电路板布线复杂,加重了电路设计和实际焊接的工作。
并且FPGA的价格相对较高,性价比太低。
方案三、用单片机实现。
由于单片机集成了运算器电路、控制电路、存储器、中断系统、定时器/计数器以及输入/输出口电路等,所以用单片机设计控制电路省去了很多分立元器件。
由于单片机是可编程芯片,并且它可以运用C语言编写,对于一些复杂的计算功能,可以调用C语言库函数。
使编写程序变得非常简单。
所以该课题用单片机实现,不仅功能易于实现,而且精确度高,稳定性好,抗干扰能力强。
并且由于其成本低、体积小、技术成熟和功耗小等优点,且技术比较成熟。
性价比也相当高。
更重要的是本人经过几年的学习,对单片机已有深刻的理解,并且可以灵活运用。
综上所述,并通过各个方面综合比较为达到最佳效果。
我们采用方案三利用单片机控制器。
显示电路的设计方案论证与选择
方案一:
数码管显示方案。
数码管显示使用两个四位一体动态数码管显示方案,此设计电路如图所示。
采用动态数码管显示,具有程序简单,对外界环境要求低,易于维护,同时其精度比较高,精确可靠,操作简单。
显示直观的特点。
但只能显示数字和一些代码,不能显示汉字及一些常用的符号,且硬件设计比较复杂。
LCD1602显示器
所谓1602是指显示的内容为即可以显示两行,每行16个字符。
目前字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于大部分的字符型液晶。
字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,引脚定义如下表所示:
nifw-a
电平
输入出
作用
U&£
7
Ucc
3
Uvv
■此电隹
4
B-S
•/I
£
MZU
•Z1
6
L
1^1—^0
If矶下Wf&H吋訂&今
r
DB«I
■/I
WA/asrtht
;^11£总绞矶最低悝S
»
mil
■/"I
««总线儿""
9
DO?
WX/«(±
«3S&^l*nr5?
XA
•八
W/n
洽入/«出
总虑監“g*
PBS
■Zi
濡入/輪向
航«总鴉*5“
ta
DHA
•/I
額入,精114
鹤«总钱Un”
14
DO7
•Z1
桶入丿筍岀
救SB总歿・"2<最《6位,
15
A
•MCC
ICDTf^F光电苏正賀
1A
V
W萸記血沖負:
Bt
HD44780内置了DDRAM、CGROM和CGRAM。
DDRAM就是显示数据RAM,用来寄存待显示的字符代码。
共80个字节,其地址和屏幕的对应关系如下表:
显示位fi
1
2
1
4
5
6
7
••»■•■
uo
第一行
.-
em
I
01H
1
Q3H
汕H
(KH
27H
地址
第二行
fI
>|QH
41H
42H
67H
HD44780的指令集
1•清屏指令
[
捋今功能
貓!
RS
R/U
11T1
DB71DB61DB务IDGIiIDB3
DB2
Di1
DBQ
可冋I
1清屛
e
Q
Illi
«1«10101«
0
0
1
1,64
功能:
〈1>清除液晶显示器,即将DDRAM的内容全部填入〃空白〃的ASCH码20H;
<2>光标归位,即将光标撤回液晶显示屏的左上方;<3>
将地址计数器(AC)的值设为0。
2•光标归位指令
挹令功能
指令编码
驕/ns
RS
R/V
DB7
DB6
1
DB51DKh
DB3
DB7
DB1
DBS
光标归位
0
•
1
010
0
0
1
K
1.64
功能:
<1>把光标撤回到显示器的左上方;
<2>把地址计数器(AC)的值设置为0;
<3>保持DDRAM的内容不变
3•进入模式设置指令
I
指令功靛
抬令编码
/us
RS
ft"
DB7
DB6
1
&B91D&H
0B3
OB?
Dei
DBd
遊入模式设置
B
a
II
B
1
019
0
1
r/D
s
UB
参数设定的情况如下所示:
功能:
设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。
位名
M)
设置
0=写入新数据后光标左移
1二写入新数据后光标右移
0二写入新数据后显示屏不移动
1二写入新数据后显示屏整体右移1个字
4•显示开关控制指令
拒令功能
拒令编码
/US
R/Vi
DBA
08S
1
11
OS?
1OBI
D9a
显示开关控制
0
0
0
0
0
1
D1C
却9
功能:
控制显示器开朕、光标显示朕闭以及光标是否闪烁。
参数设定的情况如下:
位名
D
0=显示功能关
1-显不功能开
C
0二无光标
1=有光标
B
0二光标闪烁
1二光标不闪烁
指令功能
指令編码
Zus
RS
RAI
DB7
066
DB5眄
DB3
DB2
DB1
1瞬芻
9
0
1
10
1
0
011
1
S/C
1
«7L
X
4B
5•设定显示屏或光标移动方向指令
S/C
0
0
1
1
功能:
使光标移位或使整个显示屏幕移位。
参数设定的情况如下:
设定情况
光标左移1格,且AC值减1
光标右移1格,且AC值加1
显示器上字符全部左移一格,但光标不动
显示器上字符全部右移一格,但光标不动
R/L
0
1
0
1
6•功能设定指令
I指今功能
I
扌旨令褊码
/US
RS
I
HZW
r
DB7
W5
DM
D63
DO?
081
DBS
j功能设定
0
1
49
设定数据总线位数、显示的行数及字型。
参数设定的情况如下:
功能:
位名
DL
0二数据总线为4位
1=数据总线为8位
0=显示1行
1-显示2行
0二5
7点阵海字符X
1=510点阵海X字符
7•设定CGRAM地址指令
!
指令功能
捲令编码
时冋
/U5
RS
R/W
1
067
DB6
111
9051DBm1DD3|DB2
11
DB11DiJO
1itJgCGRAM
1tim
9
0
1
的地址沁)
<10
功能:
设定下一个要存入数据的CGRAM的地址。
8•设定DDRAM地址指令
指令功能
指令编码
执行
/US
RS
R/M
PG7
DB4
I
IkBSDB毎
PB3
PB2
DB1
DS0
设定DDRAM
B
1
CCRA啲地址
40
功能:
设定下一个要存入数据的CGRAM的地址。
©主意这里我们送地址的时候应该是0x80+Addwss,这也是前面说到写地址命令的时候要加上0x80的原因)
9•读取忙信号或AC地址指令
指今功能
指今编码
/US
R$
R/W
如pee
00S
I1
DB®pea帕2
1
061
槪蠶号
9
1
施内容(7位>
40
功能:
〈1>读取忙碌信号BF的内容,BF=1表示液晶显示器忙,暂时无法接收单片机送来的数据或指令;
XBF=0时,液晶显示器可以接收单片机送来的数据或指令:
<2>读取地址计数器(AC)的内容。
10•数据写入DDRAM或CGRAM指令一览
指令功能
指令编码
Zus
RS
R/tf
DB7
DB杓
DB5DB4DB3
11
DB2DIMjDBB
数据写入到DD和谨CCRAH
*1
笑与入的数齬D—
DO
功能:
<1>将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符;〈2>将使用者自己设计的图形存入CGRAMO
11•从CGRAM或DDRAM读出数据的指令一览
抱今功能
指令鋼韬
/US
Dfi7VB5DSM
DB3DB2PB1PBS
从CCRAH^
数据
1
1
娶诙出的數舟
功能:
读取DDRAM或CGRAM中的内容。
基本操作时序:
读状态
方案二:
通过PS2协义,用键盘同单片机相接,从而实现单片机与键盘通信。
其电路如图所示。
现在PC机广泛采用的PSe接口为引脚的连接器。
1—数据线(DATA);—未用;3—电源地(GND);4—电源(+5V);5—吋钟
(CLK);6—未用。
由此图可知,使用键盘硬件结构比较简单,但键盘的体积太大,所以此系统不采用此方案。
方案三:
自制编码键盘。
编码键盘的电路如图所示,这种键盘有编程简单,占用资源少,但其硬件比较复杂,要用很多的二极管,不是很理想O
方案四:
4粋矩阵式键盘。
其电路图如图所示,这种键盘的硬件简单,使用的]X)口也不多,而且这种键盘的编程方法已很成熟。
本次设计也可以采用这种矩阵式键盘。
其电路图如图
丄」
■T■'-■:
-■—I-t7b-I■■-Y△・1■■I二r-—4—「;」—匸丄I:
A*rr-•
11-JII■1-i—.
二1-1Vf*'•.•!
<>hf^^i_f^tl[4tll^n^i4f•ITf^ntfTltlT----T-It111-:
«_j5mX・」「•〉」■2:
-,jl^」_z:
©琴i話・「「0膏r,唱:
na^^Hsun.;--—i:
■■■■/.■:
丄-11■In-■rI»11■:
■-'<<:
«:
•••「•••■■==■J二・■-一-・一'-
H—lx■
Lt±o
w;
FWPB
*0:
—
ILEZO
h:
_tn-
2_._J.
主体设计部分:
(1)、系统模块图:
(2)、算术运算程序流程图:
(3)、系统总流程图:
:
厂开始
LI
、/
2、内部时钟模式电路:
C2
-U
C-I
HI
GZD
选择有一定的要求:
3、STC89C52介绍:
STC89C52是一种低功耗、高性能CM0S8位微控制器,
和在系统可编程
具有8K在系统可编程Fhsh存储器。
在单芯片上,拥有灵巧的8位CPU
Fhsh,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Fhsh,512字节RAM,32位W口线,看门狗电路,内置4KBEEPROM,
MAX810复位电路,
三个16位定时器龙十数器,一个6向量2级屮断结构,全双工串行口。
另外STC89X52可降至OHz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器龙十数器、串口、屮断继续工作。
掉电保护方式下,RAM
最高
内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
运作频率35Mhz,6T/12T可选。
和atnel的对比STC89C52RC单片机:
8K字节程序存储空间;
512字节数据存储空间;
内带4K字节EEPROM存储空间;
可直接使用串口下载;
AT89S52单片机:
8K字节程序存储空间;
256字节数据存储空间;
TOPIO匚
1
40
(72EX)PitC
2
33
P12匚
3
39
P第・3匚
4
37
P1,4匚
5
36
iMOSIJPlSC
35
(WisorPie匚
7
34
(scKrPUc
5
33
RST匚
G
32
10 31 (TXD|P3.1匚 11 3a (PTTC)P12匚 12 29 irrr^ps.s匚 13 23 (TD)P3.4C 14 27 (TT)P3,5C 15 26 两冋6匚 牌 re 玄7匚 17 24 XTAUiC 19 23 XTAU匚 IS 22 GND匚 20 21 没有内带EEPROM存储空间; □VCC □PC0(ADO) □PCKADI) □PC2(ADZ) □PG3(AD3) □PG4(AD4) □PC5(ADS) □PCe(ADO) □卓VPP □ALE^ROG □P27(A15} □P2e(A14) □P24(A12) □P23(A11) □P21(A9) □P20(A3) 4、LCD1602介绍: 1602采用标准的16脚接口,其中: 第1脚: VSS为电源地 第2脚: VDD接5V电源正极第3脚: V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4脚: RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚: RW为读写信号线,高电平 (1)时进行读操作,低电平(0)时进行写操作。 第6脚: E或EN)端为使能(enabfe)端。 第7〜14脚: D0〜D7为8位双向数据端。 602LCD的特性 n提供各种控制命令,如: n有80字节显示数据存储n内建有192个5X7点阵的字型的字符发生器CGROM n+5V电压,对比度可调n内含复位电路 n8个再读上(前面加 Ox 清屏、字符闪烁、光标闪烁、显示移位等多种功能器DDRAM可由用户自定义的5X7的字符发生器CGRAM读的时候,先读左边那列, 为0x42 面那行,如: 感叹号! 的ASCH为0x21,字母B的ASCH表示十六进制) (初始化) 1602通过D0~D7的8位数据端传输数据和指令。 显示模式设置: 00110000K)x38]设置16X2显示,5X7点阵,8位数据接 口;显示开关及光 标设置: (初始化)00001DCBD显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)000001NSN=l(读或写一个字符后地址指针加1&光标加1), N二0(读或写一个字符后地址指针减1&光标减1),S=1且N=1(当写一个字 符后,整屏显示左移)s=0当写一个字符后,整屏显示不移动数据指针 设置: 数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H) 其他设置: 01H(显示清屏,数据指针二0,所有显示=0);02H(显示回车,数 据指针二0)。 (三)、键盘接口电路: 计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方 式,在这种情况下,编程会很简单,但是会占用大量的]X)口资源,因此在很多情况 下都不采用这种方式,而是采用矩阵键盘的方案。 矩阵键盘采用四条]X)线作为行线,四条]X)线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。 这样键盘上按键的个数就为4X4个。 这种行列式键盘结构能有效地提高单片机系统中U)口的利用率。 矩阵键盘的工作原理: 计算器的键盘布局如图1所示: 一般有16个键组成,在单片机中正好可以用一个P口实现16个按键功能,这种形式在单片机系统中也最常用。 图1矩阵键盘布局图 矩阵键盘内部电路图如图2所示: (四)、LCD显示模块: 本设计采用LCD液晶显示器来显示输出数据。 通过D(H)7引脚向LCD写指令字或写数据以使LCD实现不同的功能或显示相应数据。 …LCDL…LJd)44L■ ••■I_J_••• 益TEfC UI ♦ 尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高 效率,以及高可靠性! 因此我们采用单片机作为计算器的主要功能部件,可以很快地实现运算功能。 PCB设计: 1、实验现象、数据记录数码显示及运算 最多九位显示及运算 当超出时溢出显示 ■ 五、总结 在实验中遇到了这样那样的问题,软件的编辑中使得C语言的应用更加熟练;在硬件的实现中又出现了软件和硬件不统一的问题,本实验我做了两次,第一次的时候STC89C52单片机的P2口的P2・0~~P2・7分别对应连接到LCD1602的D7~~D0口,这就使得在写程序的时候需要把所有读写的数据以及地址都按位取反,改写程序比较复杂,最终调试失败,又改变了硕件电路。 最终成功; 本次设计不管在软件,或是在硬件方面都让我受益匪浅,让我所学的知识得以应用到实践,经过这次创新性实验,也令我看到了很多的不足,在实验中的一些程序不能够及时编辑正确,需要很长时间的设计。 硕件中我对单片机实验板上的很多硕件不是很清楚,使得在下载程序后,又进行了很长时间的调整。 六、主要程序代码 Key.C #iichde uchardis_buff; voidDehyl(uintx) untilfor乍0;Kx;廿+)for(fO;jC112;t+)ucharKeyScan(void){ucharternp=0; key=0; KEYDATA=Oxffi; DehyKl); temp二KEYDATA; ternp=temp&OxfO; ternp=~((ternp>>4)OxfD); iffemp==l)key=0; elseiffemp==2)key=l; elseiffemp==4)key=2; elseiftemp==8)key=3; elsekey=16; KEYDATA=0x0f; DehyKl); temp二KEYDATA; ternp=temp&OxOf; ternp=c(templOxffl); if(ternp==l)key+=12; elseif(ternp==2)key+=8; elseiffemp==4)key+=4; elseiffemp==8)key+=0; elsekey=16; if(key<16)dis_bu年key; letLixndis_buff; ucha
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子设计 基于 STC89C52RC 单片机 简易 计算器 设计 docx