基于单片机计算器系统设计报告.docx

上传人:b****5 文档编号:6441536 上传时间:2023-01-06 格式:DOCX 页数:34 大小:269.36KB
下载 相关 举报
基于单片机计算器系统设计报告.docx_第1页
第1页 / 共34页
基于单片机计算器系统设计报告.docx_第2页
第2页 / 共34页
基于单片机计算器系统设计报告.docx_第3页
第3页 / 共34页
基于单片机计算器系统设计报告.docx_第4页
第4页 / 共34页
基于单片机计算器系统设计报告.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

基于单片机计算器系统设计报告.docx

《基于单片机计算器系统设计报告.docx》由会员分享,可在线阅读,更多相关《基于单片机计算器系统设计报告.docx(34页珍藏版)》请在冰豆网上搜索。

基于单片机计算器系统设计报告.docx

基于单片机计算器系统设计报告

单片机原理及应用设计

 

题目:

基于单片机的计算器设计

学院:

信息工程学院

专业:

计算机科学与技术

班级:

中软3班

姓名:

聂丽霞

学号:

2011051339

指导老师:

杜俊

 

基于单片机的计算器设计

摘要:

近几年单片机技术的发展很快,其中电子产品的更新速度迅猛。

计算器是日常生活中比较的常见的电子产品之一。

如何才能使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器呢。

本设计是以AT89C51单片机为核心的计算器模拟系统设计,可以进行加、减、乘、除9位带符号数字运算,并在7SEG-MPX6-CA-BLUE上显示操作过程,但是计算的结果只能在六位数允许的范围内。

本设计采用单片机作为控制芯片,用C语言对其进行编程实现,输出采用人性化的7SEG-MPX6-CA-BLUE显示实现。

对于计算这个部分我采用的是键盘,10个数字键,一个小数点键,四个符号键,一个多功能键,通过判别该多功能键连续按的次数来决定该键此时的命令。

由于C语言库函数繁多,所以我采用调用C语言库函数来解决多种运算类型,这样编程更简单,运行起来也更可靠。

关键字:

单片机,AT89C51,C语言函数。

引言说起计算器,最早的计算工具诞生在中国。

中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。

这种算筹多用竹子制成,也有用木头,兽骨充当材料的。

约二百七十枚一束,放在布袋里可随身携带。

直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。

17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的"纳皮尔算筹",英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。

1系统设计

1.1功能介绍

1.1.1基本功能

根据所学知识,自行设计一个计算器,要求自行设计供电电源,该计算器能够实现加减乘除四则混合运算,能够实现连续计算。

1.1.2功能介绍

(1)该计算器能够实现6位数以内的运算(其最大值为99999)。

(2)该计算器不能加减乘除以外的其他运算。

(3)该计算器只能进行自然数的运算。

1.2总体设计方案

1.2.1总体设计思路

本设计主要采用以下基本模块来实现,控制器模块,输入模块,输出模块和电源模块。

通过对控制器进行编程。

使其对输入模块的信号进行处理计算,然后通过输出模块反馈给使用者以计算结果。

1.2.2方案论证与比较

(1)控制部分的设计方案论证与选择

根据设计要求,控制器主要用于红外信号的接收和辨认、控制步进电机的动作,控制显示步进电机的转速等。

对于控制器的选择有以下二种方案。

方案一:

采用计算器专用芯片实现。

用计算器专用芯片进行设计并编程实现。

这种设计方案计算效率高、速度快、而且成本也相对较低,是厂家做计算器的最佳方案。

但是本人对计算器专用芯片掌握的不够,还不足以实现设计计算器,所以这个方案不可去。

方案二、用单片机实现。

由于单片机集成了运算器电路、控制电路、存储器、中断系统、定时器/计数器以及输入/输出口电路等,所以用单片机设计控制电路省去了很多分立元器件。

由于单片机是可编程芯片,并且它可以运用C语言编写,对于一些复杂的计算功能,可以调用C语言库函数。

使编写程序变得非常简单。

所以该课题用单片机实现,不仅功能易于实现,而且精确度高,稳定性好,抗干扰能力强。

并且由于其成本低、体积小、技术成熟和功耗小等优点,且技术比较成熟。

性价比也相当高。

更重要的是本人经过几年的学习,对单片机已有深刻的理解,并且可以灵活运用。

综上所述,并通过各个方面综合比较为达到最佳效果。

我们采用方案二利用

单片机控制器。

(2)显示电路的设计方案论证与选择

方案一:

数码管显示方案。

数码管显示使用两个四位一体动态数码管显示方案,此设计电路如图1-1所示。

采用动态数码管显示,具有程序简单,对外界环境要求低,易于维护,同时其精度比较高,精确可靠,操作简单。

显示直观的特点。

但只能显示数字和一些代码,不能显示汉字及一些常用的符号,且硬件设计比较复杂。

图1-1两个四位一体数码电路图

方案二:

采用7SEG-MPX6-CA-BLUE显示方案。

7SEG-MPX6-CA-BLUE显示模块,可显示输入的数字并对其进行计算。

供电电源为3.3V~+5V(内置升压电路,无需负压),能采用并行和串行两种通信方式。

综上所叙,7SEG-MPX6-CA-BLUE的显示效果好、功能齐全,所以我们选用7SEG-MPX6-CA-BLUE显示。

其与单片机的接口电路如图1-2所示。

图1-27SEG-MPX6-CA-BLUE与单片机的接口电路

(3)单片机电源部分的设计方案论证与选择

由于本次设计中单片机工作电源为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稳压电源

综上所述,方案一电路简单,而且已符合本次设计的要求,再加上第二种方案所用元件较多,性能价格比不高,所以我们选择方案一。

(4)键盘设计方案与选择

方案一:

独立键盘。

独立键盘为一端接地,另一端接I/O口,并且要接上拉电阻。

这种键盘的硬件都很容易实现,但每一个按键就要用一个I/O口,但是寻求设计方便,适合本次设计,其电路图如下所示。

图1-5独立键盘电路图

方案二:

4*4矩阵式键盘。

其电路图如图图1-5所示,这种键盘的硬件简单,使用的I/O口也不多。

其电路图如图

图1-64*4矩阵式键盘电路图

1.2.3系统组成

经过方案比较与论证,最终确定的系统组成框图如图1-7所示。

其中单片机作为主控设备对采集输入信号后并进行处理,最后通过输出设备输出给使用者,该系统的结构框图如图。

图1-7系统组成方框图

2重要器件的知识介绍

2.1单片机的知识介绍

由于ATMEL公司生产的AT89C51型单片机是即便于下载又好用,而且能够满足本设计的要求。

所以我选择AT89C51型单片机。

2.1.1单片机的主要性能

(1)与MCS-51单片机产品兼容

(2)8K节在系统可编程Flash存储器

(3)1000次擦写周期

(4)全静态操作:

0Hz-33Hz

(5)三级加密程序存储器

(6)32个可编程I\O口线

(7)三个16位定时器\计数器

(8)八个中断源

(9)全双工UART串行通道

(10)低功耗空闲和掉电模式

(11)掉电后中断可唤醒

(12)看门狗定时器

(13)双数据指针

(14)掉电标识符

2.1.2单片机的功能特性描叙

AT89C51是一种低功耗,高性能CMO58位微控制器,具有8K在系统可编程Flash存储器。

使用ATMEL公司高密度非易使性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,迹适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89C51具有以下标准功能:

8K字节Flash、256字节RAM、32位I\O口线、看门狗定时器、2个数据指针、三个16位定时器\计数器、一个6向量2级中断结构、全双工串行口、片内晶振及时钟电路。

另外,AT89C51可降至0Hz静态逻辑操作,支持2钟软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM定时器\计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

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口也可作为AT89C51的一些特殊功能口,如图表2.1。

表2.1AT89C51的一些特殊功能口

管脚

备选功能

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.1.6单片机复位电路

复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。

除了进入系统的正常初始化之外,当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。

RST引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期(即2个机器周期)以上,若使用频率为12MHz的晶振,则复位信号持续时间应超过4

s才能完成复位操作。

复位操作有上电自动复位和按键手动复位两种方式。

上电自动复位是通过外部复位电路的电容充电来实现的。

按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的。

在本设计中采用了按键电平复位方式,其复位电路如下图2-3。

图2-3复位电路

2.1.7计算器的使用说明

单片机下载口电路本程序有LCD动态显示,键盘输入显示功能,以及1s计数功能。

共有2种工作状态。

程序启动时默认为计算器状态。

(1)计算器状态下:

A:

按“0”~“9”,显示相应数字;

B:

按“ON/C”,切换到计时模式;

C:

按其他键,显示两位数,高位是行号,低位是列号。

(2)在计时器模式下:

A:

在停止状态按“=”则切换到计算器模式,按“ON/C”则开始计时;

B:

在暂停状态,按“=”或“ON/C”则恢复计时;

C:

在即计时状态,按“=”则暂停计时,按“ON/C”则停止计时,恢复到初始状态,计数为0.

 

相关显示代码:

报告代号显示含义

1:

-EOR-1被除数等于0;

2:

-EOR-2被减数小于减数;

3:

CHAG-1表明从计算器模式切换到计时模式;

4:

CHAG-0表明从计时器模式切换到计算器模式;

5:

-PAUSE暂停;

7:

-StoP-停止;

8:

OPPOSE切换到倒计时模式;

9:

-EOR-9超出可显示的最大值。

消息代码使用方法:

先给uc_ReportSymbol赋报告代号,再把b_LCDClean置1.

3程序流程图

主程序流程图

 

显示程序流程图

 

 

键扫程序流程图

 

致谢

该论文是对我这一学期单片机的综合考核。

在此论文设计过程中,我不仅较为系统的复习了以前学过的知识,而且又学习了许多新知识,使我的只是结构更加系统化,也更加完善。

同时,也提高了我独立分析问题、解决问题的能力。

在本文的选题、构思、写作和修改直至最终定稿的过程中,更是浸透了老师大量的心血,感激之情难以言表。

而且,在和老师的交流过程中,还学到了有用的知识,使我终身受益。

在此我谨向杜老师致以最诚挚的谢意。

参考文献

(1)李广弟《单片机原理及应用》北京航天航空大学出版社

(2)潘新民《微型计算机控制技术》电子工业出版社

(3)梅丽凤《单片机原理及接口技术》清华大学出版社

(4)李陪金《C语言程序设计案例教程》西安电子科技大学出版社

(5)戴佳《51单片机C语言应用程序设计实例精讲》电子工业出版社

(6)谭浩强《C程序设计》清华大学出版社

 

附录1系统原理图

 

附录2程序清单

/*--------------------------------------------------------------------------

AT89X51.H

HeaderfileforthelowvoltageFlashAtmelAT89C51andAT89LV51.

Copyright(c)1988-2002KeilElektronikGmbHandKeilSoftware,Inc.

Allrightsreserved.

--------------------------------------------------------------------------*/

#ifndef__AT89X51_H__

#define__AT89X51_H__

/*------------------------------------------------

ByteRegisters

------------------------------------------------*/

sfrP0=0x80;

sfrSP=0x81;

sfrDPL=0x82;

sfrDPH=0x83;

sfrPCON=0x87;

sfrTCON=0x88;

sfrTMOD=0x89;

sfrTL0=0x8A;

sfrTL1=0x8B;

sfrTH0=0x8C;

sfrTH1=0x8D;

sfrP1=0x90;

sfrSCON=0x98;

sfrSBUF=0x99;

sfrP2=0xA0;

sfrIE=0xA8;

sfrP3=0xB0;

sfrIP=0xB8;

sfrPSW=0xD0;

sfrACC=0xE0;

sfrB=0xF0;

/*------------------------------------------------

P0BitRegisters

------------------------------------------------*/

sbitP0_0=0x80;

sbitP0_1=0x81;

sbitP0_2=0x82;

sbitP0_3=0x83;

sbitP0_4=0x84;

sbitP0_5=0x85;

sbitP0_6=0x86;

sbitP0_7=0x87;

/*------------------------------------------------

PCONBitValues

------------------------------------------------*/

#defineIDL_0x01

#defineSTOP_0x02

#definePD_0x02/*Alternatedefinition*/

#defineGF0_0x04

#defineGF1_0x08

#defineSMOD_0x80

/*------------------------------------------------

TCONBitRegisters

------------------------------------------------*/

sbitIT0=0x88;

sbitIE0=0x89;

sbitIT1=0x8A;

sbitIE1=0x8B;

sbitTR0=0x8C;

sbitTF0=0x8D;

sbitTR1=0x8E;

sbitTF1=0x8F;

/*------------------------------------------------

TMODBitValues

------------------------------------------------*/

#defineT0_M0_0x01

#defineT0_M1_0x02

#defineT0_CT_0x04

#defineT0_GATE_0x08

#defineT1_M0_0x10

#defineT1_M1_0x20

#defineT1_CT_0x40

#defineT1_GATE_0x80

#defineT1_MASK_0xF0

#defineT0_MASK_0x0F

/*------------------------------------------------

P1BitRegisters

------------------------------------------------*/

sbitP1_0=0x90;

sbitP1_1=0x91;

sbitP1_2=0x92;

sbitP1_3=0x93;

sbitP1_4=0x94;

sbitP1_5=0x95;

sbitP1_6=0x96;

sbitP1_7=0x97;

/*------------------------------------------------

SCONBitRegisters

------------------------------------------------*/

sbitRI=0x98;

sbitTI=0x99;

sbitRB8=0x9A;

sbitTB8=0x9B;

sbitREN=0x9C;

sbitSM2=0x9D;

sbitSM1=0x9E;

sbitSM0=0x9F;

/*------------------------------------------------

P2BitRegisters

------------------------------------------------*/

sbitP2_0=0xA0;

sbitP2_1=0xA1;

sbitP2_2=0xA2;

sbitP2_3=0xA3;

sbitP2_4=0xA4;

sbitP2_5=0xA5;

sbitP2_6=0xA6;

sbitP2_7=0xA7;

/*------------------------------------------------

IEBitRegisters

------------------------------------------------*/

sbitEX0=0xA8;/*1=EnableExternalinterrupt0*/

sbitET0=0xA9;/*1=EnableTimer0interrupt*/

sbitEX1=0xAA;/*1=EnableExternalinterrupt1*/

sbitET1=0xAB;/*1=EnableTimer1interrupt*/

sbitES=0

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1