基于单片机的计算器的论文Word文档格式.docx
- 文档编号:21591832
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:44
- 大小:578.80KB
基于单片机的计算器的论文Word文档格式.docx
《基于单片机的计算器的论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的计算器的论文Word文档格式.docx(44页珍藏版)》请在冰豆网上搜索。
(2)、该计算器在不进行计算时能够当时钟用,并且该时钟可显示星期和日历,同时能够修改其值。
(3)、该计算器能够实现加减乘除以外的其他运算。
1.2、总体设计方案
1.2.1、总体设计思路
本设计主要采用以下基本模块来实现,控制器模块,输入模块,输出模块和电源模块。
通过对控制器进行编程。
使其对输入模块的信号进行处理计算,然后通过输出模块反馈给使用者以计算结果。
1.2.2、方案论证与比较
1.2.2.1、控制部分的设计方案论证与选择
根据设计要求,控制器主要用于红外信号的接收和辨认、控制步进电机的动作,控制显示步进电机的转速等。
对于控制器的选择有以下二种方案。
方案一:
采用计算器专用芯片实现。
用计算器专用芯片进行设计并编程实现。
这种设计方案计算效率高、速度快、而且成本也相对较低,是厂家做计算器的最佳方案。
但是本人对计算器专用芯片掌握的不够,还不足以实现设计计算器,所以这个方案不可去。
方案二、用单片机实现。
由于单片机集成了运算器电路、控制电路、存储器、中断系统、定时器/计数器以及输入/输出口电路等,所以用单片机设计控制电路省去了很多分立元器件。
由于单片机是可编程芯片,并且它可以运用C语言编写,对于一些复杂的计算功能,可以调用C语言库函数。
使编写程序变得非常简单。
所以该课题用单片机实现,不仅功能易于实现,而且精确度高,稳定性好,抗干扰能力强。
并且由于其成本低、体积小、技术成熟和功耗小等优点,且技术比较成熟。
性价比也相当高。
更重要的是本人经过几年的学习,对单片机已有深刻的理解,并且可以灵活运用。
综上所述,并通过各个方面综合比较为达到最佳效果。
我们采用方案二利用单片机控制器。
1.2.2.3、显示电路的设计方案论证与选择
数码管显示方案。
数码管显示使用两个四位一体动态数码管显示方案,此设计电路如图1-1所示。
采用动态数码管显示,具有程序简单,对外界环境要求低,易于维护,同时其精度比较高,精确可靠,操作简单。
显示直观的特点。
但只能显示数字和一些代码,不能显示汉字及一些常用的符号,且硬件设计比较复杂。
图1-1、两个四位一体数码电路图
方案二:
采用汉字图形点阵液晶显示器RT12864M显示方案。
RT12864M汉字图形点阵液晶显示模块,可显示汉字及图形。
供电电源为3.3V~+5V(置升压电路,无需负压),能采用并行和串行两种通信方式。
并有光标显示、画面移位、自定义字符、睡眠模式等功能。
综上所叙,12864的显示效果好、功能齐全,所以我们选用12864液晶显示。
其与单片机的接口电路如图1-2所示。
图1-2、12864与单片机的接口电路
1.2.2.4、单片机电源部分的设计方案论证与选择
由于本次设计中单片机工作电源为5V,所以需要稳压,对于5V电源这里有以下两种方案。
用固定式三端稳压器7805。
如图1-5,7805系列稳压器输出固定的正电压5V,输入端接电容C1可以进一步滤除纹波,输出端接电容C2能改变负载的瞬态影响,使电路稳定工作C1、C2最好采用漏电流小的钽电容。
如果采用电解电容,则电容要比图中数值增加10倍。
图1-3、固定式三端稳压器
用7805加一些外围器件。
虽然7805三端集成稳压管部有过流、过热和安全区的保护电路,但其输出仍有可能发生过压的危险。
因此本电路加了过压保护电路,电路如图1-4所示,该电路由稳压管VD3、电阻R3和晶闸管VS组成。
另外由于7805的最大输出电流为1.5A,可以通过在7805的1脚与VT1的基极相连,7805的2脚与VT1的集电极相连,这样就可输出1.6A~2A的电流。
如需更大的电流,可再并联几个大功率三极管。
图1-4、可扩流过压保护5V稳压电源
综上所述,方案一电路简单,而且已符合本次设计的要求,再加上第二种方案所用元件较多,性能价格比不高,所以我们选择方案一。
1.2.2.5、键盘设计方案与选择
独立键盘。
独立键盘为一端接地,另一端接I/O口,并且要接上拉电阻。
这种键盘的硬件都很容易实现,但每一个按键就要用一个I/O口,非常的浪费单片机的I/O口资源,不适合本次设计。
4*4矩阵式键盘。
其电路图如图图1-5所示,这种键盘的硬件简单,使用的I/O口也不多,而且这种键盘的编程方法已很成熟。
所以本次设计采用这种矩阵式键盘。
其电路图如图
图1-5、4*4矩阵式键盘电路图
1.2.3、系统组成
经过方案比较与论证,最终确定的系统组成框图如图1-6所示。
其中单片机作为主控设备对采集输入信号后并进行处理,最后通过输出设备输出给使用者。
,该系统的结构框图如图。
图1-6、系统组成方框图
二、重要器件的知识介绍
2.1、单片机的知识介绍
由于ATMEL公司生产的AT89S52型单片机是即便于下载又好用,而且能够满足本设计的要求。
所以我选择AT89S52型单片机。
2.1.1、单片机的主要性能
2.1.2、单片机的功能特性描叙
2.1.3、单片机的部结构方框图及芯片引脚图
图2-1、单片机的部结构方框图及
2.1.4、单片机各引脚功能说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行
校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89S52的一些特殊功能口,如表3-1所示。
表2.1AT89S52的一些特殊功能口
管脚
备选功能
P3.0RXD
(串行输入口)
P3.1TXD
(串行输出口)
P3.2/INT0
(外部中断0)
P3.3/INT1
(外部中断1)
P3.4T0
(记时器0外部输入)
P3.5T1
(记时器1外部输入)
P3.6/WR
(外部数据存储器写选通)
P3.7/RD
(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。
注意加密方式1时,/EA将部锁定为RESET;
当/EA端保持高电平时,此间部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
2.1.5、单片机时钟电路
时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。
在MCS-51芯片部有一个高增益反相放大器,其输入端为芯片引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。
此电路采用12MHz的石英晶体。
时钟电路如下图2-2:
图2-2时钟电路
2.1.6、单片机复位电路
复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。
RST引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期(即2个机器周期)以上,若使用频率为12MHz的晶振,则复位信号持续时间应超过4
s才能完成复位操作。
复位操作有上电自动复位和按键手动复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的。
按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的。
在本设计中采用了按键电平复位方式,其复位电路如下图2-3。
图2-3、复位电路
2.1.7、单片机下载口电路
下载口电路以一块74HC373芯片为主,电路原理图如图2-4所示。
由于电路中只用了一片74HC373所以完全可以把电路装在DB25插针式并口插头部,这个可以做到很小巧,可以很方便的使用。
为了稳定也可以芯片外围加一些电阻、电容等元件,具体电路网上有提供下载。
光是做好下载线是不行的,S51系统的ISP下载方式还要求要下载程序单片机运行在最小化系统中。
只要把的相应引脚连接起来就可以对S51进行ISP下载了。
要接的引线是S51的6,7,8,9,20,40引脚。
晶振可以在3M-24M间选用,当然是看你的目标板而选择。
为了方便使用我们需要做一个下载头,电路简单接线正确的话一般无需要调整就可以正常使用,如有问题可以用软件中的IspTest.exe(下载线调试程序)
检查你的74HC373芯片是否正常和你的电脑并口是否正常。
图2-4、下载口电路原理图
三、程序流程图
主程序流程图
显示程序流程图
键扫程序流程图
3.1、程序清单
程序清单见附录4。
产品使用说明
该产品16个按键作为输入信号,液晶为显示器,按键功能如下图所示。
0~9为数字键,其中0~3有第二功能,一个小数点键,一个等号键,该键为四功能键,四个运算符号键。
通电后显示器显示万年历、星期和脑钟,此时按0键可进行校时,可看到时钟已停,并且秒在闪烁,此时按1键可使秒加一,按2键可使秒减一,把秒设定好后,再按0键,秒停止闪烁,分开始闪烁,此时按1键和2键同样可对分进行修改,然后依次时、日、月、年、以及闹钟的秒、分、时进行修改,然后再按0键时钟恢复走时,万年历和闹钟的校准就完成啦。
如果要使用计算器功能,则直接按3键即可进入计算器模式,等号键单键为“=”,双键为清除,默认计算类型为加减乘除,若要进行其他类型的计算,则可使用等号键三键,然后选择运算类型进行运算,此时符号键所对应的运算符号也有相应的变化。
该计算器的计算功能可实现加减乘除、正弦余弦正切余切、反正弦反余弦反正切反余切、平方、立方、m的k次方(m和k均由键盘输入)、e为底的m次方、自然对数、常用对数、开平方根。
可谓功能齐全,操作简单,给使用带来极大方便。
设计体会
在这次设计中使我对步进机有了更深的了解,对单片机也有了更高成次的了解,单片机的种类多,而型号杂,也是我们学习中的困难,所以就MCS—51系列的产品来说,就是一个典型的学习方法。
单片机编程是用汇编语言进行编程,也就需要我们对电路的分析,然后总结,查阅相关资料才能变成好的程序,编程讲究的是多动手写,自己写,用自己的思路,不怕写错,写错再改,懂得有新的思想这样才能提高。
在这次单片机应用系统设计中遇到到很大的困难,主要原因是平时的知识掌握的不够,通过查阅很多资料和类似的论文,才做成的。
以前也做过不少单片机设计,但面对这次设计,似乎也有一点束手五册了。
在这次的设计中,让我们发自心的明白了以下这几个道理。
其实,这几个道理以前我们就懂,就知道,甚至每个人都知道,但真正到了关键时间,我们还会不会遵循它来办事就是一个问号啦。
书读百遍,其义自现。
三个臭皮匠胜过一个诸亮。
团结就是力量。
温故而知新。
正因为我开始没有遵循这几个道理所以在设计中走了不少弯路,表现出来了我很多的不足之处,就因为这样我们才会在这次设计中有进步、有发展,同时使自己的能力得到进一步的提升。
我将好好地记录下这次设计的点点滴滴,我想,这不单是我的经历,更是我的一笔财富。
参考文献
(1)广弟《单片机原理及应用》航天航空大学2008.2
(2)新民《微型计算机控制技术》电子工业2008.5
(3)梅丽凤《单片机原理及接口技术》清华大学2004.6
(4)陪金《C语言程序设计案例教程》电子科技大学2008.1
(5)戴佳《51单片机C语言应用程序设计实例精讲》电子工业2006.4
(6)谭浩强《C程序设计》清华大学
附录1、元器件清单
名称
型号
参数
数量
单片机
AT89S52
2
液晶
SBY12864Z-ZK3
一块
双12V变压器
1
发光二极管
LED
3
二极管
IN4001
8
三极管
9013,9014
4,8
稳压管
7805
排阻
10K*8
电阻
若干
晶振
11.0592MHz
下载口
电源接口
电解电容
100μf
470μf
4
电容
104
30
0.1μf
30pf
4
插座
单片机插座
所存器插座
40引脚,
24引脚
开关
按键
普通按键
12
排针排座
附录2、系统原理图
原理图
附录3、程序清单
#include<
reg52.h>
stdio.h>
intrins.h>
math.h>
#defineucharunsignedchar
#defineuintunsignedint
#defineulongunsignedlong
sbitrs=P2^0;
sbitrw=P2^1;
sbiten=P2^2;
sbitpsb=P2^3;
sbitret=P2^5;
sbitrd=P3^7;
sbits=P1^0;
sbits1=P1^4;
sbits2=P1^5;
sbits3=P1^6;
sbits4=P1^7;
ucharcount,s1num;
unsignedintnin,ss;
charyue,re,qi,shi,fen,miao;
uchardshi,dfen,dmiao,ling,aa,t1,p;
ucharcommand,data0,data1,data2,com0,j,l;
unsignedcharcommand,data1,data2,com0,bb,bb0,aa,cc,i,yun;
//
ucharlcdH,lcdL,key;
floatds,m,k;
ulongds0;
bitflag,flag1,flag2,flag3,flag4;
uchardisbuf[9]={0};
//定义显示缓冲区//
ucharcodetable[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2e};
ucharcodetable1[]={0xc8,0xd5,0xd2,0xbb,0xb6,0xfe,0xc8,0xfd,0xcb,0xc4,0xce,0xe5,0xc1,0xf9};
//日~六//
ucharcodetable2[]={0x32,0x30,0x30,0x39,0xc4,0xea,0x30,0x35,0xd4,0xc2,0x30,0x31,0xc8,0xd5};
//年月日//
ucharcodetable4[]={0xd0,0xc7,0xc6,0xda,0xc1,0xf9};
//星期六//
ucharcodetabping[]={32,29,32,31,32,31,32,32,31,32,31,32};
ucharcodetabrun[]={32,30,32,31,32,31,32,32,31,32,31,32};
ucharcodexing1[]={3,6,0,3,5,1,3,6,2,4,0,2};
ucharcodexing2[]={4,0,0,3,5,1,3,6,2,4,0,2};
ucharxing[12]={0};
uchartab[12]={0};
//延时//
voiddelay(uintms)//延时250us
{
uchari;
while(ms--)
{
for(i=0;
i<
125;
i++);
}
}
//LCD初始化//
voidlcd_int()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 计算器 论文