(完整版)基于单片机的毕业论文1

更新时间:2024-04-06 21:57:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目录

摘要 .............................................................. 1 关键字 ............................................................ 1 Abstract .......................................................... 1 Keywords .......................................................... 1 引言 .............................................................. 1 1 系统设计 ....................................................... 2 1.1 功能介绍 ..................................................... 2 1.1.1 基本功能 ................................................... 2 1.1.2 扩展功能 ................................................... 2 1.2 总体设计方案 ................................................. 2 1.2.1 总体设计思路 ............................................... 2 1.2.2 方案论证与比较 ............................................. 2 1.2.3 系统组成 ................................................... 5 2 重要器件的知识介绍 ............................................. 5 2.1 单片机的知识介绍 ............................................. 5 2.1.1 单片机的主要性能 ........................................... 5 2.1.2 单片机的功能特性描叙 ....................................... 6 2.1.3 单片机的内部结构方框图及芯片引脚图 .......................... 6 2.1.4 单片机各引脚功能说明 ....................................... 7 2.1.5 单片机时钟电路 ............................................. 8 2.1.6 单片机复位电路 ............................................. 9

2.1.7 单片机下载口电路 ........................................... 9 3 程序流程图 .................................................... 11 致 谢 ............................................................ 14 参考文献 ......................................................... 15 附录1 系统原理图 ................................................ 16 附录2 程序清单 .................................................. 17

基于单片机的计算器设计

电子工程专业学生 勾艳玲

指导教师 曾实现

摘要:本设计采用单片机作为控制芯片,用C语言对其进行编程实现,输入由4*4矩阵式键盘控制,输出采用人性化的SBY12864K-ZK型液晶实现。该计算器为多功能计算器,在未进行计算时,它是一个万年历时钟,并且带脑钟和星期显示,所以数据均可随时进行校准,校准数据采用的是独立式键盘,是将4*4矩阵式键盘

的一根线拉低,然后读取与这根线交叉的4根线的所处状态来判断按键是否被按下,而这4个按键中只有3个按键用于万年历的校准和对脑钟的控制,另一个按键则用来切换进入计算模式。

对于计算这个部分我采用的是矩阵键盘,10个数字键,一个小数点键,四个符号键,一个多功能键,通过判别该多功能键连续按的次数来决定该键此时的命令。由于C语言库函数繁多,所以我采用调用C语言库函数来解决多种运算类型,这样编程更简单,运行起来也更可靠。

关键字:单片机,点阵图形液晶,矩阵键盘,C语言库函数。

Based on single-chip computer design

Student majoring in Electronic engineering GouYanling

Tutor ZengShixian

Abstract: The design uses a single-chip microcomputer as the control chip, using C programming language of its input from 4 * 4 matrix keyboard control, the output of the use of SBY12864K-ZK-type liquid crystal to achieve. Multi-function calculator for the calculator, before the calculation, it is a calendar clock and bell and weeks with the brain showed that there may at any time calibration data, calibration data is used in stand-alone keyboard, is a 4 * 4 matrix keyboard down one line, and then read with the root of the cross-line 4-line state to determine which button pressed, which is only four keys for the three calendar

button calibration and the control of the brain clock, and the other button is used to switch into the mode of calculation.

For this part of the calculation I used the keyboard matrix, 10 numeric keys, a decimal point key, four symbol keys, a multi-function keys, multi-function through the identification of the row by the number of keys to determine the order of the key at this time. C language library function as a result of many, so I used to call C language library function to solve a wide range of operator types, such programming is much simpler it is also more reliable.

Keywords: Single-chip, dot-matrix graphic LCD, matrix keyboard, C language library function.

引言 说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国。中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的\纳皮尔算筹\,英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。

1 系统设计

1.1 功能介绍 1.1.1 基本功能

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

(1)该计算器能够实现浮点数的运算。

(2)该计算器在不进行计算时能够当时钟用,并且该时钟可显示星期和日历,同时能够修改其值。

(3)该计算器能够实现加减乘除以外的其他运算。 1.2 总体设计方案 1.2.1 总体设计思路

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

通过对控制器进行编程。使其对输入模块的信号进行处理计算,然后通过输出模块反馈给使用者以计算结果。 1.2.2 方案论证与比较

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

根据设计要求,控制器主要用于红外信号的接收和辨认、控制步进电机的动作,控制显示步进电机的转速等。对于控制器的选择有以下二种方案。

方案一:采用计算器专用芯片实现。用计算器专用芯片进行设计并编程实现。这种设计方案计算效率高、速度快、而且成本也相对较低,是厂家做计算器的最佳方案。但是本人对计算器专用芯片掌握的不够,还不足以实现设计计算器,所以这个方案不可去。

方案二、用单片机实现。由于单片机集成了运算器电路、控制电路、存储器、中断系统、定时器计数器以及输入输出口电路等,所以用单片

机设计控制电路省去了很多分立元器件。由于单片机是可编程芯片,并且它可以运用C语言编写,对于一些复杂的计算功能,可以调用C语言库函数。使编写程序变得非常简单。所以该课题用单片机实现,不仅功能易于实现,而且精确度高,稳定性好,抗干扰能力强。并且由于其成本低、体积小、技术成熟和功耗小等优点,且技术比较成熟。性价比也相当高。更重要的是本人经过几年的学习,对单片机已有深刻的理解,并且可以灵活运用。

综上所述,并通过各个方面综合比较为达到最佳效果。我们采用方案二利用单片机控制器。

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

方案一:数码管显示方案。数码管显示使用两个四位一体动态数码管显示方案,此设计电路如图1-1所示。采用动态数码管显示,具有程序简单, 对外界环境要求低,易于维护,同时其精度比较高,精确可靠,操作简单。显示直观的特点。但只能显示数字和一些代码,不能显示汉字及一些常用的符号,且硬件设计比较复杂。

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

方案二:采用汉字图形点阵液晶显示器RT12864M显示方案。RT12864M汉字图形点阵液晶显示模块,可显示汉字及图形。供电电源为3.3V~+5V(内置升压电路,无需负压),能采用并行和串行两种通信方式。并有光标显示、画面移位、自定义字符、睡眠模式等功能。

综上所叙,12864的显示效果好、功能齐全,所以我们选用12864液晶显示。其与单片机的接口电路如图1-2所示。

图1-2 12864与单片机的接口电路

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

由于本次设计中单片机工作电源为5V,所以需要稳压,对于5V电源这里有以下两种方案。

方案一:用固定式三端稳压器7805。如图1-5,7805系列稳压器输出固定的正电压5V,输入端接电容C1可以进一步滤除纹波,输出端接电容C2能改变负载的瞬态影响,使电路稳定工作C1、C2最好采用漏电流小的钽电容。如果采用电解电容,则电容要比图中数值增加10倍。

12 +1VinU17805+5V3++9VD-GNDC10.1uFC20.1uF+5V-2GND图4 固定式三端稳压器图1-3 固定式三端稳压器 方案二:用7805加一些外围器件。虽然7805三端集成稳压管内部有过流、过热和安全区的保护电路,但其输出仍有可能发生过压的危险。因此本电路加了过压保护电路,电路如图1-4所示,该电路由稳压管VD3、电阻R3和晶闸管VS组成。 另外由于7805的最大输出电流为1.5A,可以通过在7805的1脚与VT1的基极相连,7805的2脚与VT1的集电极相连,这样就可输出1.6A~2A的电流。如需更大的电流,可再并联几个大功率三极管。 CVD1+1S1885+2SB683VT1VD2C4220u/25V+5V3C3VD32346800uF/35VC5R1470R210K9V1S1885C110.022uFVinGNDVSU178055V/1.6AR34.7KC20.022uFC6-0.1uF20.022uF-BGND图1-4 可扩流过压保护5V稳压电源 图5 扩流过压的5V稳压电源 综上所述,方案一电路简单,而且已符合本次设计的要求,再加上第二种方案所用元件较多,性能价格比不高,所以我们选择方案一。 (4)键盘设计方案与选择

方案一:独立键盘。独立键盘为一端接地,另一端接IO口,并且要接上拉电阻。这种键盘的硬件都很容易实现,但每一个按键就要用一个IO口,非常的浪费单片机的IO口资源,不适合本次设计。

方案二:4*4矩阵式键盘。其电路图如图图1-5所示,这种键盘的硬件简单,使用的IO口也不多,而且这种键盘的编程方法已很成熟。所以本次设计采用这种矩阵式键盘。其电路图如图

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

1.2.3 系统组成

经过方案比较与论证,最终确定的系统组成框图如图1-6所示。其中单片机作为主控设备对采集输入信号后并进行处理,最后通过输出设备输出给使用者,该系统的结构框图如图。

显示电路电源单片机键盘

图1-6 系统组成方框图

2 重要器件的知识介绍

2.1 单片机的知识介绍

由于ATMEL公司生产的AT89S52型单片机是即便于下载又好用,而且能够满足本设计的要求。所以我选择AT89S52型单片机。 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 单片机的功能特性描叙

AT89S52是一种低功耗,高性能CMO58位微控制器,具有8K在系统可编程Flash存储器。使用ATMEL公司高密度非易使性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,迹适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能:8K字节Flash、256字节RAM、32位I\\O口线、看门狗定时器、2个数据指针、三个16位定时器\\计数器、一个6向量2级中断结构、全双工串行口、片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2钟软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM定时器\\计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 2.1.3 单片机的内部结构方框图及芯片引脚图

图2-1 单片机的内部结构方框图

2.1.4 单片机各引脚功能说明

VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向IO口,每脚可吸收8TTL门

流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行

校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向IO口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向IO口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向IO口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89S52的一些特殊功能口,如图表2.1。

表2.1 AT89S52的一些特殊功能口

管脚 P3.0 RXD P3.1 TXD 备选功能 (串行输入口) (串行输出口)

P3.2 INT0 P3.3 INT1 P3.4 T0 P3.5 T1 P3.6 WR P3.7 RD

(外部中断0) (外部中断1) (记时器0外部输入) (记时器1外部输入) (外部数据存储器写选通) (外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALEPROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的16。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。

EAVPP:当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的晶振,则复位信号持续时间应超过4s才能完成复位操作。复位操作有上电自动复位和按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的。按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的。在本设计中采用了按键电平复位方式,其复位电路如下图2-3。

图2-3 复位电路

2.1.7 单片机下载口电路

下载口电路以一块74HC373芯片为主,电路原理图如图2-4所示。由于电路中只用了一片74HC373所以完全可以把电路装在DB25插针式并口插头内部,这个可以做到很小巧,可以很方便的使用。为了稳定也可以芯片外围加一些电阻、电容等元件,具体电路网上有提供下载。

光是做好下载线是不行的,S51系统的ISP下载方式还要求要下载程序单片机运行在最小化系统中。只要把的相应引脚连接起来就可以对S51进行ISP下载了。要接的引线是S51的0引脚。晶振可以在3M-24M间选用,当然是看你的目标板而选择。

为了方便使用我们需要做一个下载头,电路简单接线正确的话一般无需要调整就可以正常使用,如有问题可以用软件中的IspTest.exe(下载线调试程序)

检查你的74HC373芯片是否正常和你的电脑并口是否正常。

图2-4 下载口电路原理图

3 程序流程图

开始液晶初始化,闹钟初始化,定时器初始化开定时器1键按下?是关闹钟否否否0键按下?是调闹钟键扫键处理程序3键按下?是计算器工作模式初始化调计算器键扫键处理程序否“=”连续按下四次?返回主程序流程图

显示开始LCD初始化显示汉字或ACS II码是相应功能设置否显示图形是相应功能设置送地址送行地址和列地址否送数据否送数据是否显示完是返回是是否显示完否

显示程序流程图

键扫程序流程图

致 谢

毕业设计是我大学学习生活的最后一项学习任务,是对我大学学习的综合考核。在为期两个多月的毕业设计过程中,我不仅较为系统的复习了以前学过的知识,而且又学习了许多新知识,使我的只是结构更加系统化,也更加完善。同时,也提高了我独立分析问题、解决

本文来源:https://www.bwwdw.com/article/robr.html

Top