基于单片机的计算器_第1页
基于单片机的计算器_第2页
基于单片机的计算器_第3页
基于单片机的计算器_第4页
基于单片机的计算器_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1编号: 电子工艺 实训 (论文)说明书题 目: 计算器计算器 院 (系): 应用科技学院 专 业: 电子信息工程 学生姓名: 学 号: 指导教师: 2012 年 7 月 1 日2摘 要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。本设计是一个实现八位加、减、乘、除的计算器,它的硬件主要由五部分组成,一个 AT89S52 单片机芯片,LCD1602 液晶屏幕,一个 4*4 的键盘,可以加、减、乘、除运算,同时,在

2、P3.2 接入蜂鸣器通过软件设计实现按键蜂鸣器响的功能。关键词:单片机;计算器;加减乘除3AbstractIn recent years, with the rapid development of science and technology, traditional control test technology is also in an increasingly update. In real time detection and automatic control of the single chip microcomputer application system, usually

3、 as a single chip microcomputer core components to use that only single chip microcomputer aspect knowledge is not enough, still need according to the specific hardware structure with hardware and software, to be perfect.This design is a realistic eight of the addition, subtraction, multiplication,

4、and division calculators, it hardware mainly by five parts, a AT89S52 SCM chip, two four of the anode a digital tube, a 4 * 4 keyboard, eight 1 K resistance do pull up resistors of P2 mouth, it can achieve the result of less than 65535 add, subtract, multiply and divide operation, at the same time,

5、in the P3.2 access through software design realize buzzer calculation of 8 bits beyond alarm function.Key words: Single chip microcomputer; Calculator; Eight; Add, subtract, multiply and divide1目 录引言引言.11 1 单片机概述单片机概述.12 2 系统主要硬件介绍系统主要硬件介绍.12.1. T89S52 单片机介绍.12.2 AT89S52 单片机特性.22.3 引脚功能与封装.22.4 存储器组

6、织.52.5 液晶显示.52.6 矩阵按键.72.7 蜂鸣器报警电路.83.3.硬件制作与调试硬件制作与调试.103.1 系统 PCB 板的设计.103.2 系统硬件调试.104.4.软件及联机调试软件及联机调试.114.1 KEIL调试与仿真.114.1.1 keil 的使用方法.114.1.2.调试过程.114.2 PROTEUS仿真软件简要介绍.115 5 实训心得体会实训心得体会.13谢谢 辞辞.15参考文献参考文献.16附附 录录.171.1.电路的电路的 PROTELPCBPROTELPCB 图图.172.2.实现程序实现程序.17桂林电子科技大学实训说明书用纸1引言 说起计算器,

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

8、。在使用电子计算器进行四则运算的时候,一般要用到数字键,四则运算键和清除数据键。除了这些按键,还有一些特殊键,可以使计算更加简便迅速。1 单片机概述单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和 I/O 接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过 1、2、3、3 代的发展,目前单片机正朝着高性能和多品种方向发展,它们的 CPU 功能在增强,内部资源在增多,引角的多功能

9、化,以及低电压底功耗。2 系统主要硬件介绍2.1. AT89S52 单片机介绍AT89S52 单片机是一种低功耗高性能的 CMOS8 位微控制器,内置 8KB 可在线编程闪存。该器件采用 Atmel 公司的高密度非易失性存储技术生产,其指令与工业标准的80C51 指令集兼容。片内程序存储器允许重复在线编程,允许程序存储器在系统内通过SPI 串行口改写或用同用的非易失性存储器改写。通过把通用的 8 位 CPU 与可在线下载的 Flash 集成在一个芯片上,AT89S52 便成为一个高效的微型计算机。它的应用范围广,可用于解决复杂的控制问题,且成本较低。桂林电子科技大学实训说明书用纸22.2 AT

10、89S52 单片机特性AT89S52 的主要特性如下:兼容 MCS51 产品8K 字节可擦写 1000 次的在线可编程 ISP 闪存4.0V 到 5.5V 的工作电源范围全静态工作:0Hz 24MHz3 级程序存储器加密256 字节内部 RAM32 条可编程 I/O 线3 个 16 位定时器/计数器8 个中断源UART 串行通道低功耗空闲方式和掉电方式通过中断终止掉电方式看门狗定时器双数据指针灵活的在线编程(字节和页模式)2.3 引脚功能与封装按照功能,AT89S52 的引脚可分为主电源、外接晶体振荡或振荡器、多功能 I/O 口、控制和复位等。其引脚框图如图 1-1 所示。桂林电子科技大学实训

11、说明书用纸3图 1-1 AT89S52 的引脚图1.多功能 I/O 口AT89S52 共有四个 8 位的并行 I/O 口:P0、P1、P2、P3 端口,对应的引脚分别是P0.0 P0.7,P1.0 P1.7,P2.0 P2.7,P3.0 P3.7,共 32 根 I/O 线。每根线可以单独用作输入或输出。P0 端口,该口是一个 8 位漏极开路的双向 I/O 口。在作为输出口时,每根引脚可以带动 8 个 TTL 输入负载。当把“1”写入 P0 时,则它的引脚可用作高阻抗输入。当对外部程序或数据存储器进行存取时,P0 可用作多路复用的低字节地址/数据总线,在该模式,P0 口拥有内部上拉电阻。在对 F

12、lash 存储器进行编程时,P0 用于接收代码字节;在校验时,则输出代码字节;此时需要外加上拉电阻。P1 端口,该口是带有内部上拉电阻的 8 位双向 I/O 端口,P1 口的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。P1 口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在对 Flash 编程和程序校验时,P1口接收低 8 位地址。另外,P1.0 与 P1.1 可以配置成定时/计数器 2 的外部计数输入端(P1.0/T2)与定时/计数器 2 的触发输入端(P1.0/T2EX)

13、 ,如表 1-1 所示。桂林电子科技大学实训说明书用纸4表 1-1 P1 口管脚复用功能端口引脚复用功能P1.0T2(定时器/计算器 2 的外部输入端)P1.1T2EX(定时器/计算器 2 的外部触发端和双向控制)P1.5MOSI(用于在线编程)P1.6MISO(用于在线编程)P1.7SCK(用于在线编程) P2 端口,该口是带有内部上拉电阻的 8 位双向 I/O 端口,P2 口的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。P2 口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流

14、。在访问外部程序存储器或 16 位的外部数据存储器(如执行 MOVX DPTR 指令)时,P2 口送出高 8 位地址,在访问 8 位地址的外部数据存储器(如执行 MOVX RI 指令)时,P2 口引脚上的内容(就是专用寄存器(SFR)区中 P2 寄存器的内容) ,在整个访问期间不会改变。在对 Flash 编程和程序校验期间,P2 口也接收高位地址或一些控制信号。 P3 端口,该口是带有内部上拉电阻的 8 位双向 I/O 端口,P3 口的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。P3 口作输入口使用时,因为

15、有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在 AT89S52 中,同样 P3 口还用于一些复用功能,如表 1-2 所列。在对 Flash 编程和程序校验期间,P3 口还接收一些控制信号。表 1-2 P3 端口引脚与复用功能表端口引脚复用功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断 0)P3.3INT1(外部中断 1)P3.4T0(定时器 0 的外部输入)P3.5T1(定时器 1 的外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)2 RST: 复位输入端。在振荡器运行时,在此脚上出现两个机器周期的高电平将

16、使其单片机复位。看门狗定时器(Watchdog)溢出后,该引脚会保持 98 个振荡周期的桂林电子科技大学实训说明书用纸5高电平。在 SFR AUXR(地址 8EH)寄存器中的 DISRTO 位可以用于屏蔽这种功能。DISRTO 位的默认状态,是复位高电平输出功能使能。3 ALE/PROG: 地址锁存允许信号。在存取外部存储器时,这个输出信号用于锁存低字节地址。在对 Flash 存储器编程时,这条引脚用于输入编程脉冲 PROG。一般情况下,ALE 是振荡器频率的 6 分频信号,可用于外部定时或时钟。但是,在对外部数据存储器每次存取中,会跳过一个 ALE 脉冲。在需要时,可以把地址 8EH 中的

17、SFR 寄存器的 0 位置为“1” ,从而屏蔽 ALE 的工作;而只有在 MOVX 或 MOVC 指令执行时 ALE 才被激活。在单片机处于外部执行方式时,对 ALE 屏蔽位置“1”并不起作用。4 PSEN: 程序存储器允许信号。它用于读外部程序存储器。当 AT89S52 在执行来自外部存储器的指令时,每一个机器周期 PSEN 被激活 2 次。在对外部数据存储器的每次存取中,PSEN 的 2 次激活会被跳过。5 EA/Vpp:外部存取允许信号。为了确保单片机从地址为 0000HFFFFH 的外部程序存储器中读取代码,故要把 EA 接到 GND 端,即地端。但是,如果锁定位 1 被编程,则 EA

18、 在复位时被锁存。当执行内部程序时,EA 应接到 Vcc。在对 Flash 存储器编程时,这条引脚接收 12V 编程电压 Vpp。6 XTAL1: 振荡器的反相放大器输入,内部时钟工作电路的输入。7 XTAL2: 振荡器的反相放大器输出。2.4 存储器组织包括程序存储器和数据存储器。程序和数据存储器分为不同的逻辑空间,使得可用 8 位地址来访问数据存储器。这样可提高 8 位 CPU 的存储和处理速度。尽管如此,也可通过数据指针(DPTR)寄存器来产生 16 位的数据存储器地址。程序存储器只可读不可写,用于存放编好的程序和表格常数。89 系列单片机可寻址的程序存储器总空间为 64KB。外部程序存

19、储器的读选通脉冲为 PSEN(程序存储允许信号) 。数据存储器在物理上和逻辑上都分为两个地址空间:一个内部和一个外部数据存储器空间。外部数据存储器的寻址空间可达 64KB。访问外部数据存储器时,CPU 发出读和写的信号-RD 和 WR。将 RD 和 PSEN 两个信号加到一个与门的输入端,然后用与门的输出作为外部程序/数据存储器的读选通脉冲。这样就可将外部程序存储器空间和外部数据存储器空间合并在一起。2.5 液晶显示桂林电子科技大学实训说明书用纸6液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。这里介绍的字符型液晶模块是一种用

20、 5x7 点阵图形来显示字符的液晶显示器,根据显示的容量可以分为 1 行 16 个字、2 行 16 个字、2 行 20 个字等等,这里以常用的2 行 16 个字的 1602 液晶模块来介绍它的编程方法。1602 采用标准的 16 脚接口,其中:第 1 脚:VSS 为地电源第 2 脚:VDD 接 5V 正电源第 3 脚:V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影” ,使用时可以通过一个 10K 的电位器调整对比度第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第 5 脚:RW 为读写信号线,高电平时进行读操

21、作,低电平时进行写操作。当 RS 和RW 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 RW 为高电平时可以读忙信号,当 RS 为高电平 RW 为低电平时可以写入数据。第 6 脚:E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。第 714 脚:D0D7 为 8 位双向数据线。第 1516 脚:空脚2.6 矩阵按键键盘是单片机系统中最常用的人机对话输入设备,用户通过键盘向单片机输入数据或指令。键盘控制程序需完成的任务有:监测是否有键按下,有键按下时,在无硬件去抖的动电路时,应用软件延时方法消除按键抖动影响;当有多个键同时按下时,只处理一个按键,不管一次按键持续多

22、长时间,仅执行一次按键功能程序。其电路连接如图 1-3 所示。桂林电子科技大学实训说明书用纸7矩阵按键扫描程序是一种节省 IO 口的方法,按键数目越多节省 IO 口就越可观,思路:先判断某一列(行)是否有按键按下,再判断该行(列)是那一只键按下。但是,在程序的写法上,采用了最简单的方法,使得程序效率最高。本程序中,如果检测到某键按下了,就不再检测其它的按键,这完全能满足绝大多数需要,又能节省大量的CPU 时间。矩阵键盘又称为行列式键盘,它是用 4 条 I/O 线作为行线,4 条 I/O 线作为列线组成的键盘,在行和列线的交叉点上,设置一个按键。这样键盘按键的个数是 4X4 个。这种行列式的键盘

23、有效的提高了 I/O 口的利用率。矩阵键盘的程序编程对我来说比较难,但是先前的课程试验中,老师已经教会了我,首先读取键盘的状态,得到按键的特征编码。先从 P1 口的低四位输出低电平,高四位输出高电平,从 P1 口的高四位读取键盘状态,再从 P1 口的高四位输出低电平 ,低四位输出高电平,从 P1 的低四位读取键盘状态,将两次读取的结果组合起来就可以得到当前按键的特征编码,使用上述方法我们得到 16 个按键的特征编码。假设从 P1 口的低四位输出低电平,即 P1.0-P1.3为输出口。高四位输出高电平,即 P1.4-P1.7 为输入口。读取 P1 口高四位的状态为“1101” ,其值为“0DH”

24、 。再从 P1 口的低四位输出高电平,即 P1.0-P1.3 为输入口。低四位输出低电平,即 P1.0-P1.3 为输出口。读取 P1 口高四位的状态为“1110” ,其值为“0E0H” 。将两次读出的 P0 口的状态值进行逻辑或运算就得到其按键的编码为“EDH” 。以同样的方法得到其他 15 个按键的特征编码。 本键盘扫描程序的优点在于:不用专门的按键延时程序,提高了 CPU 效率,也不用中断来扫描键盘,节省了硬件资源。另外,本键盘扫描程序,每次扫描占用 CPU 时最短,不论有键按下或者无键按下都可以在很短的时间完成一次扫描。键盘扫描子程序流程图如图 1-3-1 所示。图 1-3 矩阵键盘桂

25、林电子科技大学实训说明书用纸82.7 蜂鸣器按键识别电路电路主要是用于按键按下的时候鸣声,具体电路连接如图 1-4 所示。图 1-4 报警电路流程框图3.硬件制作与调试3.1 系统PCB板的桂林电子科技大学实训说明书用纸9设计PCB 即印刷电路板,是电子电路的承载体。在现代电子产品中,几乎都要使用PCB。PCB 板的设计是电路设计的最后一个环节,也是对原理电路的再设计。因此 PCB板的设计是理论设计到实际应用一个十分重要的内容。印制电路板(PCB)是电子产品中电路元件和器件的支撑件它提供电路元件和器件之间的电气连接。PCB 设计的好坏对抗干扰能力影响很大因此,在进行 PCB 设计时必须遵守印制

26、电路板设计原则和抗干扰措施的一般原则,并应符合抗干扰设计的要求。本次设计采用 Altium 公司 PROTEL 系列设计完成 SCH 到 PCB 的设计,并且手工完成电路焊接以及整机的装配。3.2 系统硬件调试本系统的硬件调试分为以下阶段进行调试: (1)电路板线路调试电路板的线路是由于设计错误和加工过程中的工艺性错误所造成的。这类错误包括:错线、开路、短路等几种,其中短路是最常见的故障。检测的方法:用数字电压表,即用二极管档,检测各个线路是否导通良好。(2)器件调试元器件失效的原因有两个方面:一是器件本身已损坏或性能不符合要求;二是由于组装错误造成的元器件失效,如电解电容、二极管的极性错误,

27、集成块安装方向错误等。数码管的检测,用数字电压表的二极管档,用红表笔放在二极管的共阳端,黑表笔一次放在段选端,观察该段是否亮,亮着 OK,依次用此方法检测八位数码管。按键的检测,还是用数字万用表的二极管档,判断出按键没有按下则不导通,按下着导通,就可判断出按键是良好可以使用。 (3)电路安装后可靠性调试电路安装后的调试:1.依然是数码管的调试,还是用数字万用表的二极管档,红表笔放在数码管驱动三极管的集电极端,黑表笔依次放在单片机 P0.0P0.7 观察各个段是否亮,按此方法检测其他数码管安装后与单片机的链接导通情况。2.矩阵键盘安装后的调试:由于矩阵键盘的行与单片机的 P1.0P1.3 口链接

28、,列于单片机的 P1.4P1.7 口链接,还是用数字万用表的二极管档,不分红表笔和黑表笔,一个表笔放在单片机的 P1.0 口,另一只表笔放在 P1.4 口,在第一行第一列第一个按键没有按下时不导通,但按键按下时则导通。依次类推检测其他按键的情况。桂林电子科技大学实训说明书用纸104.软件及联机调试 4.1 Keil 调试与仿真4.1.1 keil 的使用方法KEIL C51 标准 C 编译器是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编、PLM 语言和 C 语言的程序设计。1. 启动 KEIL C51 进入编辑界面 建立一个新工程:单击 Project 菜单,在弹出的

29、下拉菜单中选中 New Project 选项。选择保存路径,输入工程文件名。2. 工程文件保存完毕之后,提示选择单片机的型号。KEIL 支持近乎所有 51 核的单片机。单击 File 菜单,选择 New。3.文件保存:使用汇编编写,文件后缀名为.asm 或 a51。完成后,单击“保存”按钮保存文件。4.在 Source Group 上单击右键,找到刚才保存的源文件 ,然后添加 ADD 5. 在编辑完成之后,需要进行程序的编译。点开 Project 选项,单击 Build target;或是利用快捷键 F7。 6. 在程序调试的时候,点击 Debug 选项,选择 Start/Stop Debug

30、 Session。 7. 以上是使用 KEIL 建立一个完整工程文件的过程。下载到单片机之中,则需要 生 成 HEX 文 件 。 单 击 “Project” 菜 单 , 再 在 下 拉 菜 单 中 单 击出现选项对话框。在选项对话框的“Output”页面对话框中,单击“Create HEX File” 选项,使程序编译后产生 HEX 代码,供下载器软件使用。 4.1.2.调试过程 在 Debug 调试下,如有错误时,下面窗口将有提示说明错误个数和具体哪一行有错,还有对于错误的说明,大多数格式使用不当,此时在那一行前后仔细检查,要考虑格式,语法等基本性错误。 即使调试没错时,程序也不是代表完全正

31、确,需要结合硬件来确定改程序的功能是否完全实现了。 桂林电子科技大学实训说明书用纸115 实训心得体会谢 辞桂林电子科技大学实训说明书用纸12参考文献1 王恩荣,MCS-51 单片机应用技术实训指导 ,化学工业出版社 ,20042 李雅轩, 单片机实训教程 , 北京航空航天大学出版社 ,20063 束慧 陈卫兵,单片机技术与应用基础,人民邮电出版社,20104 李朝青,单片机学习指导,北京航空航天大学出版社,20055 唐俊濯,单机原理与运用,冶金工业出版社,20036 吴国经. 单片机应用技术,中国电力出版社,20047 张毅刚,MCS-51 单片机应用设计,哈工大出版社,20048 马忠梅

32、,单片机 C 语言应用程序设计,北京航空航天大学出版社,2003桂林电子科技大学实训说明书用纸13附 录1.电路的 ProtelPCB 图:2.实现程序:#include#include#include#define uchar unsigned char#define uint unsigned int/*1602 的引脚*sbit lcden=P22;sbit rw=P21;sbit rs=P20;/*蜂鸣器的引脚*sbit fengmingqi=P27;/*定义变量*char KEY; /获取按键值桂林电子科技大学实训说明书用纸14char expression16; /存储表达式float a,b;/计算的两个数uchar dizhi; /

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论