AT89C51单片机简易计算器的设计
基于单片机的科学计算器设计
摘要在现代科技迅猛发展的当今,计算器依然是人们日常生活中不可或缺的电子产品之一。
计算器始终在不断发展及完善之中,功能必将更加强大。
基于这样的理念,本设计采用AT89C51单片机作为主控芯片,使用C语言为系统进行编程,采用4*4矩阵键盘作为输入模块,输出模块采用LCD1602液晶显示,从而实现基于单片机的基本功能。
本设计重点说明以下几个方面内容:1.基于单片机的计算器所具备哪些基本功能,对矩阵键盘输入原理及液晶显示原理进行简单的阐述。
2.介绍系统的整体设计理念,展示系统设计的流程框图,并对功能模块的划分,及所选用的元器件性能参数进行详细说明。
3.对系统的每个功能模块的软硬件设计,进行详细说明。
关键词单片机,AT89C52,LCD1602液晶,矩阵键盘,C语言ABSTRACTIn the rapid development of modern science and technology today, the calculator is still one of the electronic products is an integral part of people's daily life. The calculator always among the continuous development and improvement, the function will certainly be more powerful. Based on this concept, the design uses AT89C51 microcontroller as the master chip, using the C programming language for the system, with 4 * 4 matrix keyboard as an input module, output module LCD1602 LCD display, in order to achieve the basic functions of the MCU.This design highlights the following aspects:1.microcontroller-based calculator with basic functions, the principle of a simple exposition of principle and LCD matrix keyboard input.2.describes the system's overall design concept, showing the flow diagram of the system design, the and function module framing, and optional Component performance parameters described in detail.3.of each functional module of the system hardware and software design in detail.Key words microcontroller AT89C52,LCD1602 LCD,matrix keyboard,C language目录摘要 (I)ABSTRACT .................................................................................................................................... I I 1 绪论 .. (1)1.1课题的研究背景及意义 (1)1.2本课题研究的主要内容 (2)2 设计任务及方案 (3)2.1设计任务 (3)2.2设计方案 (3)3 系统硬件设计 (4)3.1单片机最小硬件系统 (4)3.1.1主控芯片AT89C52单片机简介 (4)3.1.2复位电路 (9)3.1.3时钟电路 (10)3.2键盘接口电路 (10)3.3液晶显示电路 (11)4 系统软件设计 (15)4.1键盘扫描部分程序设计 (15)4.2运算部分程序设计 (15)4.3显示部分程序设计 (16)4.4主函数程序设计 (17)5仿真和调试 (19)5.1 KEIL系统概述 (19)5.2K EIL使用步骤 (19)5.3PROTEUS 7.1介绍 (20)5.4P ROTEUS 对于本设计的仿真步骤 (20)5.5仿真结果 (21)6 结论 (22)参考文献 (23)附录A:源程序 (24)附录B:系统总图 (34)致谢 (35)1 绪论1.1课题的研究背景及意义计算器一般由运算器,存储器,控制器,键盘,显示器,电源和一些外围设备及电子配件组成。
基于AT89C51的频率计设计
基于AT89C51的频率计设计第一章绪论;随着微电子技术和计算机技术的迅速发展,特别是单片;采用不同的测量原理,可以设计出不同结构的频率测量;通常能对频率和时间两种以上功能测量的数字化测量仪;1.1频率计的概述;数字频率计是计算机、通讯设备、音频视频等科研生产;本数字频率计将采用定时、计数的方法测量频率,采用;1.2频率计的主要性能;1.2.1.测试功能;它表明数字频率计所具备的全部测试第一章绪论随着微电子技术和计算机技术的迅速发展,特别是单片微机的出现和发展,使传统的电子测量仪器在原理、功能、精度及自动化水平等方面都发生了巨大的变化,形成一种完全突破传统概念的新一代测量仪器。
频率计广泛采用了高速集成电路和大规模集成电路,使仪器在小型化、耗电、可靠性等方面都发生了重大的变化。
对石英晶体振荡器,各种信号发生器,各种倍频和分频电路输出信号的频率需要测量;广播,电视,电讯,微电子技术等现代化的科学领域,更需要进行频率测量。
采用不同的测量原理,可以设计出不同结构的频率测量仪器,所以按测量原理来分,数字频率计可分为谐振式,比较式和计数式三类;按选用电路形式来分,它又可以分为模拟式和数字式两类。
通常能对频率和时间两种以上功能测量的数字化测量仪器,称为数字频率计,有时也称为通用计数器或电子计数器。
当前较多采用的是数字频率计。
计数式频率计是基于时间或频率的A/D转换原理,并依赖于数字计数技术发展起来的一类新型数字仪器。
与其他电子仪器一样,数字频率计也经历了电子管,晶体管和集成电路等几个阶段,其性能日臻完善,功能不断扩大,若配以适当的插件或传感器,还可以对多种电量和非电量进行测量。
1.1 频率计的概述数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。
它是一种用十进制数字显示被测信号频率的数字测量仪器。
它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。
在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。
简易计算器设计说明书
摘要单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心。
如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。
计算器的出现给我们的生活带来了巨大的便利,计算器在我们的生活中随处可见,也是我们日常生活中不可缺少的工具。
本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除简单的基本四则运算,并在LCD上显示相应的结果。
设计电路采用AT89C51单片机为主要控制电路,利用按键作为计算器的键盘的输入。
显示采用字符LCD 静态显示。
软件方面使用C语言编程,并用PROTUES仿真。
单片微型计算机简称单片机。
它是在一块芯片上集成中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口电路等部件,构成一个完整的微型计算机。
它的特点是:高性能,高速度,体积小,价格低廉,稳定可靠,应用广泛。
单片机比专用处理器最适合应用于嵌入式系统,因此它得到了最多的应用。
本文介绍了单片机的产生发展、功能特点、应用开发等内容。
【关键词】简单计算器单片机 LCD 应用发展背景近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。
与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。
影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。
其中系统的抗干扰性能是系统可靠性的重要指标。
本设计采用80c51 芯片,实现了利用单片机进行了一个简单计算器设计。
允许对输入数据进行加减乘除运算及LCD 显示.如果设计对象是更为复杂的计算器系统,其实际原理与方法与本设计基本相同。
LCD液晶显示器是Liquid Crystal Display 的简称,LCD 的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的。
基于AT89C51单片机的计数器设计
基于AT89C51单片机的计数器设计单片机(Microcontroller)是一种集成了微处理器、存储器和各种输入输出功能的芯片,广泛应用于嵌入式系统中。
AT89C51单片机是英特尔公司生产的一款典型的8位微控制器,其具有强大的功能和灵活的设计特性,被广泛应用于工业控制、汽车电子、消费类电子产品等领域。
在众多应用中,计数器是一种常见的电子器件,被广泛应用于各种领域,比如工业控制、实验测量、智能家居等。
基于AT89C51单片机的计数器设计,可以实现对信号的计数和显示,具有较高的稳定性和可靠性。
本文将介绍基于AT89C51单片机的计数器设计。
首先介绍AT89C51单片机的基本特性和引脚布局,然后讨论计数器的原理和设计思路,最后给出具体的设计方案和实现步骤。
一、AT89C51单片机的基本特性和引脚布局AT89C51是一款高性能、低功耗的8位CMOS微控制器,其主要特性包括:1. 内置4KB闪存程序存储器,用于存储用户程序;2. 128字节RAM,用于存储临时数据和寄存器;3. 32个通用I/O引脚,用于连接外部器件和传感器;4. 完整的串行通信接口(UART),用于与外部设备进行通信;5. 定时器/计数器和PWM输出,用于实现各种定时和计数功能;6. 多种工作模式选择,包括被动低功耗模式和中断工作模式。
AT89C51单片机的引脚布局如下图所示:(图片)P0、P1、P2和P3是AT89C51单片机的四个通用I/O端口,分别具有8个引脚,用于连接外部设备和传感器。
X1和X2是晶体振荡器的输入和输出端,用于提供时钟信号。
RESET 是复位端,用于复位单片机。
EA和PSEN是扩展ROM控制端和程序存储器的读取端,用于外接ROM和实现程序存储。
ALE/PROG是地址锁存器的输入,用于地址总线的多路选择。
RXD 和TXD是串行通信接口的接收和发送端口,用于与外部设备进行通信。
二、计数器的原理和设计思路计数器是一种常用的数字电路,用于对输入信号进行计数和显示。
单片机课程设计报告(简易计算器).
简易计算器摘要:计算器是人们的日常生活中是最常见的电子产品之一,它应用极广、发展迅猛,并且不断出现着拥有更加强大功能的计算器。
为了解和研究计算器,本次课设设计制作了一个简易计算器,能够在十四位的计算范围内进行“+”、“-”、“*”、“/”的基本运算,能进行负数以及小数点后两位的精确结果显示。
该计算器以AT89C51单片机芯片作为核心。
采用LCD1602工业字符液晶进行显示。
完成的计算器经过检验能够完整的实现预设功能,各种细节完善,具有很高的使用价值。
关键词:单片机;简易计算器;AT89C51;LCD1602Simple CalculatorAbstract:Calculator is People's Daily life is one of the most common electronic products, used very wide, developing rapidly, and constantly appear more powerful function with have calculators. In order to understand and study calculator, this class set design made a simple calculator, can the calculation in within 14 "+" and "-" and "*", "/" the basic computing, can carry out negative and two decimal places accurate results are shown. This calculator with AT89C51 chips as the core. Using liquid LCD1602 industrial characters displayed. Complete calculator after inspection can complete realization, various details preset functions to perfect, have high use value.Keywords:MCU; Simple calculator;AT89C51;LCD1602目录中文摘要............................................................1英文摘要............................................................2单片机课程设计......................................................4 1 课程设计任务.....................................................41.1 主要功能设计................................................41.2 任务目的....................................................42 整体设计方案......................................................42.1 方案论证....................................................42.2 系统框图....................................................53 硬件电路的设计...................................................63.1 计算机Protel总图............................................63.2 显示电路设计方案............................................93.3 键盘设计方案................................................93.4 复位电路设计...............................................103.5 晶振电路设计...............................................104 控制软件设计....................................................114.1 程序时序总图...............................................114.2 液晶显示软件设计...........................................124.3 键盘输入软件设计...........................................134.4 计算函数设置...............................................155 系统调试........................................................185.1 硬件调试...................................................185.2 软件调试...................................................18 参考文献...........................................................20 个人小结...........................................................21 附录...............................................................24 附录1..........................................................24 附录2..........................................................251课程设计任务1.1 主要功能设计以AT89C51单片机芯片为核心来制作一个简易计算器,外部由4*4矩阵键盘和一个LCD1602工业字符型液晶显示屏构成,内部由一块AT89C51单片机构成,通过软件编程可实现简单加减乘除。
简易计算器课程设计
山东大学控制科学与工程学院课程设计报告书课程设计名称:简易计算器班级:测控一班学号:201000171202姓名:魏凯峰一、电路工作原理该电路主要由以下几部分组成,1、51系列单片机最小系统板,由AT89C51单片机,复位电路,晶振电路(晶振频率是11.0592MHZ),这部分是控制中心,晶振电路可产生程序运行所需要的时钟频率。
2、显示部分,由8位共阴数码管和两个74HC573锁存器、排阻(1K)组成,74HC573锁存器用于动态显示数据,也有驱动显示作用,排阻是限流作用。
3、按键部分,由20位独立键盘组成,按矩阵形式连接,用到9个IO口。
原理:键盘作为数字输入,矩阵键盘的工作原理是当某个键按下时,其两端的IO口电平变化,程序中通过相应位的与或运算,就可以判断出是哪个按键被按下,单片机中的程序不断读取键盘的输入并实时显示在数码管上,数码管用段位选不断切换显示,如当位选为高电平时即为点亮,然后再输入相应的数字段码(该电路中用的是共阴极数码管的字码),这样数码管上便可以显示相应数字。
锁存器中的LE口就是段位选口,高电平有效,数码管中的A、B......G、DP是数码管中的每一段,只要某个字母为高电平,则该段二极管就会被点亮(共阴极)。
在同时显示多个数字时要利用到动态显示,视觉动态显示主要就是利用人眼的视觉感来设计的,一般来说如果显示的频率过慢,则会有断断续续的显示;如果显示的频率加快,则人眼就分辨不出这种视觉残余!二、程序简要说明从主函数开始,先是定义一些变量,然后是调用显示函数displaypro(0),先显示0,然后进入一个大循环while(1),在循环里面先检测键盘keyscan(),并把检测值赋给K,然后是段位选循环8次检测,然后用switch(k)函数来执行键盘操作,k的值从0到9表示输入数字0到9,10到13表示加减乘除,17、15分别表示十六进制和二进制,16表示小数点,14表示正负号,18表示清除,19是等于号。
基于单片机的多功能计算器设计
电子信息工程专业综合课程设计任务书摘要:单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活中的各个领域,电子、科技、通信、汽车、工业等。
我们这次设计的多功能科学计算器也是利用AT89C51单片机制作而成。
该计算器设计是采用C语言编写,实现了六位数范围内的加、减、乘、除基本的四则运算,此外该计算器除了具备基本的计算功能以外还具有计时和倒计时的功能,也就是说该计算器具有两个工作模式,计算模式和计时模式,而计时模式里又包含正计时和倒计时的功能,这样一个简易的计算器实现了多功能,比较实用和方便。
该设计电路是采用AT89C51单片机为主要控制电路,然后使用74LS245缓冲驱动电路驱动六位LED数码管显示数据,利用加上4×4矩阵键盘完成电路的实际操作。
电路比较简单,但是很实用方便。
关键字:AT89C51 多功能74LS245 LED 矩阵键盘目录1.方案论证与选择 (4)1.1输入模块 (4)1.2显示模块: (5)2.其他硬件电路模块功能介绍: (6)2.1驱动模块 (6)2.2主控制模块 (7)2.3操作模块 (8)3.软件设计 (9)3.1主功能计算器部分 (9)3.2计时和倒计时部分 (9)3.3功能按键 (9)3.4软件流程图 (9)4硬件设计 (11)4.1电路工作框图 (11)4.2 硬件电路图 (12)4.3引脚锁定 (12)5.电路测试结果 (12)5.1代码提示信息 (12)5.2模式转换电路图 (13)5.3错误提示电路图 (14)5.4正常计算结果显示图 (14)6.该设计电路的改进思想 (15)7.小结 (15)8.参考文献 (16)附录(程序清单) (16)基于单片机的多功能计算器设计1.方案论证与选择1.1输入模块方案一:采用独立式按键作为输入模块,其特点:直接用I/O口构成单个按键电路,接口电路配置灵活、按键识别和软件结构简单,但是当键数较多时,占用I/O口较多,比较浪费资源;其原理图如图1所示:图1 独立的功能按键方案二:采用矩阵式键盘作为输入电路,其特点:电路和软件稍复杂,但相比之下,当键数越多时越节约I/O口,比较节省资源。
基于AT89c51单片机的出租车计费器设计
嘉 兴 学 院学 报 J o u r n a l o f J i a x i n g U n i v e r s i t y
第2 5 卷第3 期2 0 1 3 年5 月 V o 1 . 2 5 N o . 3 2 0 1 3 . 5
基于 A T 8 9 c 5 1 单片机的出租车计费器设计
功 能.
关键 词 :AT 8 9 c 5 1单 片机 ;I S D 2 5 6 0 ;L E D数 码 管 ; 出租 车 ;计 费
中 图分 类 号 :TN7 9 文 献 标 识 码 :A . 文 章 编 号 :1 0 0 8 —6 7 8 1 ( 2 0 1 3 ) 0 3 —0 1 1 0 —0 4
宝清人, 嘉兴 学 院机 电工 程 学 院 讲 师 , 研 究 方 向 为 电 气 工程 及 其 自动 化. 网络 出 版时 间 : 2 0 1 3 —0 4 —1 0 1 7 : 0 8 网络 出 版地 址 : h t t p : / / www. c n k i . n e t / k c ms / d e t a i l / 3 3 . 1 2 7 3 . Z . 2 0 1 3 0 4 1 0 . 1 7 0 8 . 0 1 4 . h t ml
出租 车计 费器发 展 已经历 了 4个 阶段 ,从传 统 的机械 式到 半 电子式 、再从 集 成 电路式 到 目前 的单 片机 系统 设计 的 出租车计 费器 . 1 3
单 片机是一 种可 通过 编程 控制 的微 处理 器 ,基 于单 片机设 计 的 出租车计 费器 不仅 可方 便地 用 软件 代替 硬件 ,降 低成本 ,具 备一 般计 费器 的计 算里 程 和显 示 总 金 额 的功 能 ,还 具 备 了掉 电保 持 , 白天 、
基于单片机简易频率计设计
基于单片机简易频率计设计一、前言频率计是一种测量电信号频率的仪器,其应用广泛。
本文将介绍如何基于单片机设计一个简易的频率计。
二、设计思路本次设计采用单片机作为核心控制芯片,通过捕获输入信号的上升沿和下降沿来计算出信号的周期,从而得到信号的频率。
具体实现过程如下:1. 选择合适的单片机选择一款适合本次设计要求的单片机,需要考虑其性能、价格、易用性等因素。
常见的单片机有STC89C52、AT89C51等。
2. 硬件电路设计硬件电路主要包括输入端口、捕获定时器模块、显示模块等。
其中输入端口需要接收待测信号,捕获定时器模块用于捕获信号上升沿和下降沿的时间,显示模块则用于显示测得的频率值。
3. 软件程序设计软件程序主要包括初始化程序、捕获中断服务函数和主函数等。
其中初始化程序用于设置捕获定时器模块和显示模块参数,捕获中断服务函数则是实现对输入信号上升沿和下降沿时间的捕获与计算,主函数则用于控制程序流程和显示结果。
三、硬件设计1. 输入端口设计输入端口需要接收待测信号,一般采用BNC接头。
由于输入信号可能存在较高的电压和噪声,因此需要加入滤波电路以保证输入信号的稳定性。
2. 捕获定时器模块设计捕获定时器模块是本次设计的核心部分,其主要功能是捕获输入信号的上升沿和下降沿时间,并通过计算得到信号周期和频率值。
常见的捕获定时器模块有16位定时器/计数器、32位定时器/计数器等。
在本次设计中,我们选择了16位定时器/计数器。
3. 显示模块设计显示模块主要用于显示测得的频率值。
常见的显示模块有LED数码管、LCD液晶屏等。
在本次设计中,我们选择了LCD液晶屏。
四、软件程序设计1. 初始化程序初始化程序主要包括设置捕获定时器模块参数、设置LCD液晶屏参数等。
2. 捕获中断服务函数捕获中断服务函数是实现对输入信号上升沿和下降沿时间的捕获与计算,其具体实现过程如下:(1)当捕获定时器模块捕获到输入信号上升沿时,记录当前时间值。
基于51单片机简易计算器的设计
No:毕业设计说明书题目:基于51单片机简易计算器的设计系别:自动化工程系专业:机电一体化技术*名:***学号: ************指导老师:***职称:副教授2013年6月简易计算器是一种非常广泛日常工具,对现代社会越来越流行。
它可以进行一些简易的计算。
本系统提供详细的时、分、秒、年、月、日的时间信息,同时还可进行简易的计算信息,还具有时间校准等功能。
该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。
本系统硬件部分由AT89S52单片机、LCD1602液晶屏、键盘、指示灯系统等部分构成。
软件部分在keil环境下用C51语言编写,包括时间设置、时间显示、简易计算显示等。
关键字:AT89S52;液晶屏LCD1602;键盘Simple calculator is a very broad everyday tool for modern society is more and more popular. It can carry on some simple calculation. This system provides detailed, minutes and seconds, year, month, day time information, and at the same time but also for simple calculation information, but also has time calibration etc. Function. This circuit AT89S52 SCM as the core, power consumption is small, can be in 3 V of low-pressure work, voltage can choose 3 ~ 5 V voltage power supply. This system hardware part AT89S52 SCM by LCD1602 LCD screen, keyboard, indicator system, part. Software in under the environment of keil with C51 language, including time set, time display, simple calculation shows, etc. In the programming process found on existing knowledge to finish writing task difficult, the teachers and students of help to finish the program part of the code.Keyword:AT89S52;AT89S52 devices; LCD1602 LCD screen; keyboard引言众所周知单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
基于AT89C51单片机频率计的设计(含程序)
AT89C51单片机频率计的设计摘要基于在电子领域内,频率是一种最基本的参数,并与其他许多电参量的测量方案和测量结果都有着十分密切的关系。
由于频率信号抗干扰能力强、易于传输,可以获得较高的测量精度。
因此,频率的测量就显得尤为重要,测频方法的研究越来越受到重视。
频率计作为测量仪器的一种,常称为电子计数器,它的基本功能是测量信号的频率和周期频率计的应用范围很广,它不仅应用于一般的简单仪器测量,而且还广泛应用于教学、科研、高精度仪器测量、工业控制等其它领域。
随着微电子技术和计算机技术的迅速发展,特别是单片机的出现和发展,使传统的电子侧量仪器在原理、功能、精度及自动化水平等方面都发生了巨大的变化,形成一种完全突破传统概念的新一代侧量仪器。
频率计广泛采用了高速集成电路和大规模集成电路,使仪器在小型化、耗电、可靠性等方面都发生了重大的变化。
目前,市场上有各种多功能、高精度、高频率的数字频率计,但价格不菲。
为适应实际工作的需要,本次设计给出了一种较小规模和单片机(AT89C51)相结合的频率计的设计方案,不但切实可行,而且体积小、设计简单、成本低、精度高、可测频带宽,大大降低了设计成本和实现复杂度。
频率计的硬件电路是用Ptotues绘图软件绘制而成,软件部分的单片机控制程序,是以KeilC做为开发工具用汇编语言编写而成,而频率计的实现则是选用Ptotues仿真软件来进行模拟和测试。
关键词:单片机;AT89C51;频率计;汇编语言选题的目的意义数字频率计的主要功能是测量周期信号的频率。
其基本原理就是用闸门计数的方式测量脉冲个数。
频率是单位时间( 1s )内信号发生周期变化的次数。
如果我们能在给定的 1s 时间内对信号波形计数,并将计数结果显示出来,就能读取被测信号的频率。
数字频率计首先必须获得相对稳定与准确的时间,同时将被测信号转换成幅度与波形均能被数字电路识别的脉冲信号,然后通过计数器计算这一段时间间隔内的脉冲个数,将其换算后显示出来。
at89c51最简单的应用电路及其程序编写
at89c51最简单的应用电路及其程序编写文章标题:AT89C51最简单的应用电路及其程序编写主题词:AT89C51、应用电路、程序编写导语:AT89C51是一款经典的单片机芯片,具有广泛的应用领域。
本文将深入探讨AT89C51的最简单应用电路及其程序编写,旨在帮助读者全面、深入地理解这一主题。
一、AT89C51概述AT89C51是一款8位微控制器,由恩智浦(NXP)公司生产。
它采用MCS-51指令集架构,具有4KB的闪存和128字节的RAM,以及 32 个I/O 引脚,适用于各种嵌入式系统设计。
作为一款经典产品,AT89C51在工业控制、汽车电子、家用电器等领域都有着重要的应用。
二、AT89C51的最简单应用电路针对AT89C51的最简单应用电路,我们选取了典型的晶振外部工作方式,以便展示AT89C51的基本工作原理。
该电路包括AT89C51芯片、12MHz晶振、液晶显示模块、热敏电阻和数码管等元件。
通过连接这些元件,我们可以实现一个简单的温度检测系统,并通过数码管显示温度数值。
三、程序编写在进行AT89C51程序编写时,我们需要首先了解MCS-51指令集的基本结构和指令格式。
根据我们设计的应用功能,编写相应的C语言程序,并通过Keil C51等IDE软件进行编译和下载。
在程序编写的过程中,我们需要充分考虑AT89C51的资源限制和时钟频率,以确保程序的稳定性和高效性。
四、个人观点和理解作为一款经典的单片机芯片,AT89C51在嵌入式系统设计中具有重要的地位。
通过设计简单的应用电路和进行程序编写,我们可以更好地认识和理解AT89C51的工作原理和应用特点。
AT89C51也可以作为学习嵌入式系统的良好教学工具,帮助学习者快速掌握单片机的设计和编程技能。
总结通过本文的探讨,我们详细介绍了AT89C51的最简单应用电路及其程序编写。
通过这一过程,我们对AT89C51的工作原理和应用有了更深入的了解,也为后续的单片机设计和编程打下了坚实的基础。
基于51单片机简易计算器课程设计
电气与电子信息工程学院单片机课程设计设计题目:简易电子计算器专业班级: 12级电信(1)班学号: *************名:**指导教师:章磊艾青设计时间:2014/06/03~2014/06/13 设计地点:K2—407课程设计任务书2013 ~2014 学年第2学期学生姓名:杨峥专业班级:电子信息工程技术(专)2012(1)班指导教师:艾青、章磊工作部门:电气学院电信教研室一、课程设计题目:单片机课程设计1. 出租车计价器系统设计2. 医院住院病人呼叫器的设计3. 作息时间控制器4. 数字温度计的设计5. 火灾报警器的设计6. 电子密码锁7. 电子计算器8.学生自选二、课程设计内容1. 以单片机为核心器件,构造系统;2. 熟悉、掌握各种外围接口电路芯片的工作原理和控制方法;3. 熟悉、掌握单片机汇编语言的软件设计方法;4. 熟悉、掌握印刷电路板的设计方法;5. 根据具体设计课题的技术指标和给定条件,能独立而正确地进行方案论证和电路设计,要求概念清楚、方案合理、方法正确、步骤完整;6. 学会查阅有关参考资料和手册,并能正确选择有关元器件和参数;7. 编写设计说明书,参考毕业设计论文格式撰写设计报告(5000字以上)。
三、进度安排2.执行要求智能电子产品设计制作共8个选题,每组不超过7人,为避免雷同,在设计中每个同学所采用的方案不能一样。
四、基本要求(1)进行方案论证并根据要求确定系统设计方案;(2)绘制系统框图和电气原理草图,程序流程图;(3)对相关电路进行电路参数计算和元器件选择;(4)进行软件汇编并调试;(5)利用Proteus和Keil uVision2对系统进行联调;(6)绘制系统原理总图,列出原器件明细表;(7)画出软件框图,列出程序清单;(8)写出使用说明书;(9)对设计进行全面总结,写出课程设计报告。
五、课程设计考核办法与成绩评定第1章方案的选择与概述1. 单片机概述当今时代,是一个新技术层出不穷的时代。
基于51单片机简易计算器的设计毕业论文
本科毕业论文题目:基于51单片机简易计算器的设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
基于AT89C51单片机的计数器设计
基于AT89C51单片机的计数器设计一、引言计数器是数字电路中常用的一种电子仪器,用于计算和记录某一事件的频率、周期和脉冲等。
在数字系统中,计数器可以用来实现频率测量、计时器、分频器和脉冲发生器等功能。
本文将基于AT89C51单片机设计一款简单的计数器,用于演示单片机的基本应用和原理。
二、AT89C51单片机简介AT89C51是由Atmel公司生产的一款8位单片机,采用CMOS工艺制造,具有4KB Flash 存储器、128B RAM和32个I/O端口。
其主要特点包括:8位CPU,时钟经过12个时钟脉冲产生1个机器周期,最大工作频率为24MHz,具有2个16位定时/计数器。
三、设计方案基于AT89C51单片机的计数器设计,我们选用其中的一个16位定时/计数器,并通过编程实现计数功能。
设计方案如下:1.使用定时/计数器模块,设置计数器的初始值为0;2.定时/计数器开始计数,每经过一个时钟周期,计数值加1;3.设计好显示模块,将计数器的值通过数码管或LCD显示出来。
四、硬件设计1.单片机选用AT89C51;2.外部晶振选用11.0592MHz,供单片机工作使用;3.数码管模块,用于显示计数器的值;4.按键模块,用于控制计数器的启停及清零操作。
1.初始化程序,设置好定时/计数器和I/O口的工作状态;2.编写中断服务程序,用于定时/计数器溢出时的处理;3.编写计数器启动、停止及清零的控制程序;4.编写主循环程序,实现计数器的实时显示。
六、程序框图七、程序设计八、实验结果经过硬件和软件的设计与开发,成功实现了基于AT89C51单片机的计数器。
在实验中,通过外部晶振驱动单片机,定时/计数器得到了准确的计数值,并通过数码管显示模块实时显示出来。
按键模块可以实现计数器的启停及清零操作。
实验结果符合设计要求,可以满足基本的计数功能。
九、总结本文基于AT89C51单片机设计了一款简单的计数器,通过硬件和软件的设计和开发,实现了对定时/计数器的使用及控制。
基于-AT89C51单片机简易计算器的设计
《微机原理与单片机课程设计》课程设计报告基于51单片机的简易计算器设计一、设计目的单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。
本设计是基于51系列单片机来进行的简单数字计算器设计,可以完成计算器的键盘输入,进行加、减、乘、除六位整数数范围内的基本四则运算,并在LED上显示相应的结果。
软件方面使用C语言编程,并用PROTUES仿真。
二、总体设计及功能介绍根据功能和指标要求,本系统选用MCS-51系列单片机为主控机,实现对计算器的设计。
具体设计及功能如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LED 显示数据和结果。
(2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可,设计中采用集成的计算键盘。
(3)执行过程:开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。
(4)错误提示:当计算器执行过程中有错误时,会在LED上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LED上显示“CUO”,提示溢出。
三、系统模块组成框图:二、硬件设计(一)、总体硬件设计本设计选用AT89C51单片机为主控单元。
显示部分:采用LED动态显示。
按键部分:采用4*4集成计算键盘;总电路图:(1)4×4集成计算键盘集成计算键盘本质上是4×4矩阵键盘,矩阵键盘采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。
这样键盘上按键的个数就为4×4个。
这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。
单片机AT89C51的设计与开发
.
矗煳
辱
i I DI SA 3
P 4A 2 2, D1 l
f ^ D¨
P 2A 0 2./ Dt
P , 21瑚 i
P乏 l 姗
图 2— A 8 C 1芯片引脚图 2 T9 5
3 系统软件设计
系统软件采用汇编语 言编程 ,采用 A 8 T 9系列单片机结构 ,主要 由电源 电路 、按键控制 电路 等组
成 ,主程序分别调用子程序 ,进行相应程序模块的功能,完成再返 回主程序 ,执行下一个子程序 , 使程序
非常简洁,硬件改进也能很方便的修改相应软件 ,使系统软件修改和维护十分方便.
4 系统模块介绍
4 1 主 程序 .
O G0 H R 0
J PS A T M T R
;主程序起始地址
R M 的读操作是从内部程序存储器开始 , O 并延 至外部程序存储 器.
露 9一 帆_ 话 辫 协j 疗 话 媳 专 : ! 憾 ¥R T复位信号 S 当输入的复位信号延续 2 个机器周期以上高电平时即为有效 ,用以完成单片机 的复位初始化操作.
一一一 一 。一一 哪 时 一 一一 嘞 。 一
第2 6卷第 5期 (0 0 2 1)
河西学院学报
V பைடு நூலகம்2 N . (0 0 o.6 o5 2 1 )
单 片 机 A 8 5 的 设 计 与 开 发 T C 9 1
祝 燎 何 峰 山
张掖 7 40 ) 3 00
( 河西学院机电工程 系。甘肃 摘
要 :利用 A 8 C 1单片机控制产生 乐曲音符 ,利 用汇编语 言编程 ,再把 乐谱翻 译成计 算机 T9 5
以上是单片机芯片 4 条弓 脚的定义及简单功 能说明. 0 I
基于单片机的简易计算器设计课件
摘要近些年以单片机为核心的技术发展很快,现在它被广泛的应用于与我们生活相关的各个领域中,如电子、通信、科技、工业等,其中电子产品的更新速度更为迅猛。
计算器是日常生活中比较常见的电子产品之一,怎样才能使计算器技术更加的成熟、简单,充分利用已有的硬件和软件条件,设计出更简易的计算器。
本设计是以AT89C51单片机为核心的简易计算器设计,输入采用4*4矩阵键盘,可以进行加、减、乘、除带符号数字运算(八位整数),并在液晶显示屏LCD1602上静态显示操作的过程及结果。
软件用C语言编程、Keil uVision2和pretues仿真。
关键词:单片机;计算器;液晶显示屏;矩阵键盘AbstractIn recent years, the microcontroller as the core technology is developing very fast, now it is widely used in various fields related with our life, such as electronics, communications, science and technology, industry and so on, and the update speed of electronic product is more rapid. The calculator is the one of common electronic products in our daily life, how to make the computer technology more mature and simple and to make full use of the existing hardware and software conditions to design a simple calculator.The design is based on the AT89C51single-chip microcomputer as the core of a simple calculator design, using 4*4matrix keyboard input, you can add, subtract, multiplication, except the symbol digit operation ( eight integers ), and static display operation process and result in the LCD1602 screen LCD. The Software programming use C language, Keil uVision2 and pretues simulation.Key words: single chip microcomputer; calculator; LCD screen; keyboard matrix目录引言 (1)第一章设计原理及要求 (2)设计方案的确定 (2)系统的设计方案 (2)系统的设计要求 (2)第二章硬件模块设计 (4)单片机AT89C51 (4)AT89C51芯片的特点 (5)管脚说明 (5)振荡器特性 (7)芯片擦除 (7)键盘控制模块 (7)矩阵键盘的工作原理 (8)键盘电路主要器件介绍 (8)LCD显示模块 (10)显示电路 (11)LCD1602主要技术参数 (11)引脚功能说明 (11)运算模块(单片机控制) (12)第三章软件设计 (14)功能介绍 (14)系统流程图 (14)程序 (16)第四章系统调试 (17)软件介绍 (17)Keil uVision2仿真软件简介 (17)protues简介 (17)软件调试 (18)软件分析及常见故障 (18)仿真结果演示 (20)硬件调试 (21)结束语 (23)参考文献 (24)附录 (24)致谢 (35)引言计算工具最早诞生于中国,中国古代最早采用的一种计算工具叫筹策,也被叫做算筹。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AT89C51单片机简易计算器的设计单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。
本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除六位数范围内的基本四则运算,并在LCD上显示相应的结果。
设计电路采用AT89C51单片机为主要控制电路,利用MM74C922作为计算器4*4键盘的扫描IC读取键盘上的输入。
显示采用字符LCD静态显示。
软件方面使用C语言编程,并用PROTUES仿真。
一、总体设计根据功能和指标要求,本系统选用MCS-51系列单片机为主控机。
通过扩展必要的外围接口电路,实现对计算器的设计。
具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD 显示数据和结果。
(2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可,设计中采用集成的计算键盘。
(3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。
(4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD 上提示错误。
系统模块图:二、硬件设计(一)、总体硬件设计本设计选用AT89C51单片机为主控单元。
显示部分:采用LCD 静态显示。
按键部分:采用4*4键盘;利用MM74C922为4*4的键盘扫描IC,读取输入的键值。
总体设计效果如下图:(二)、键盘接口电路计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。
矩阵键盘采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。
这样键盘上按键的个数就为4×4个。
这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。
矩阵键盘的工作原理:计算器的键盘布局如图2所示:一般有16个键组成,在单片机中正好可以用一个P口实现16个按键功能,这种形式在单片机系统中也最常用。
图 2 矩阵键盘布局图矩阵键盘内部电路图如图3所示:为了进一步节省单片机I/O口资源,我们在设计中使用了MM74C922芯片。
MM74C922是一款4*4键盘扫描IC,它可检测到与之相连的4*4键盘的按键输入,并通过数据输出口将按键相应的编码输出。
其引脚图如图4所示:图4 MM94C22硬件图MM74C922引脚说明:(1) Y1~Y4(脚1~脚4):44键盘第一列至第四。
(2) X1~X4(脚11、10、8、7):44键盘第一行至第四行。
(3) DOA~ DOD(Dataout A~D,脚14~17):按键之BCD码输出,其中DOA为LSB,DOD为MSB。
(4) VCC(脚18):电源脚,+3V~+15V。
ab126计算公式大全(5) GND(脚9):接地管脚。
新艺图库(6) OSC(Oscillator,脚5):键盘扫描电路之频率所需外加电容的连引脚。
(7) KBM(Keyboard Mask,脚6):内部消除开关弹跳电路所外加电容的引脚。
(8) OE(Output Enable,脚13):芯片致能脚,接低电位可使芯片致能。
(9) DA(Data Available,脚12):数据有效输出脚。
任一按键按下时,此脚位会输出高电位,按键释放后此脚又会恢复为低电位。
MM74C922对各按键的响应如下表所示:如下图5所示,在本设计中,计算器输入键盘的4条行线、列线分别连接到MM74C922的X1-X4、Y1-Y4引脚,MM74C922的数据输出口与单片机的P2口相连,MM74C922的DA引脚经过一个非门连接到单片机的/INT0脚,当MM74C922检测到键盘输入时,DA产生高电平,与之相连的/INT0检测到低电平,给单片机一个中断,单片机从P2口的低四位读入键盘上按下的键的值。
图5 键盘接口电路图(三)、LCD显示模块本设计采用LCD液晶显示器来显示输出数据。
通过D0-D7引脚向LCD写指令字或写数据以使LCD实现不同的功能或显示相应数据。
图6 LCD 模块(四)运算模块(单片机控制)MCS-51 单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等一台计算机所需要的基本功能部件。
如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O 口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。
单片机是靠程序运行的,并且可以修改。
通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!因此我们采用单片机作为计算器的主要功能部件,可以很快地实现运算功能。
三、软件设计现实生活中人们熟知的计算器,其功能主要如下:1、键盘输入;2、数值显示;3、加、减、乘、除四则运算;4、对错误的控制及提示;针对上述功能,计算器软件程序要完成以下模块的设计:1、键盘输入检测模块2、LCD显示模块;3、算术运算模块4、错误处理及提示模块。
系统总流程图开始初始化参数初始化LCD 显示有键输入?读取键码LCD 显示数字键清零键功能键状态清零输入数值 数值送显示缓冲YN等待数值输入结果送显示缓冲根据上次功能键和输入的数据计算结果本次功能键?等待数值输入 结果送显示缓冲 等待数值输入结果送显示缓冲分块程序设计1、键盘输入检测程序设计有键按下时,单片机响应外部中断0,转入外部中断0中断处理函数,在中断处理函数中完成对按键的判断,以进行下一步的程序处理。
/***********外部中断0处理函数*************/void INT_0(void) interrupt 0 using 0{key=translate(P2&0x0f);if(key<='9'&&key>='0') //判断按下的键是否为数值{num=num*10+(key-'0');if (operators>0){y=num;iny=1;}elsex=num;if(num<134217728&&num>-134217728) //当前数值是否超出限定范围{display(num);}elsedataoverflow();}else{switch(key){case'c':x=0;y=0;num=0;iny=0;operators=0;display(num);break;case'=':arithmetic();iny=0;operators=0;num=0;break;case'+':if (operators)arithmetic();operators=1;num=0;break;case'-':if (operators)arithmetic();operators=2;num=0;break;case'*':if (operators)arithmetic();operators=3;num=0;break;case'/':if (operators)arithmetic();operators=4;num=0;break;}}}2、LCD显示程序设计利用LCD静态显示,通过程序向LCD写指令字或数据使LCD完成不同功能或显示相应数据。
/**************LCD初始化函数*************/void init_LCM(){write_com(0x30);write_com(0x30);write_com(0x30);write_com(0x38);write_com(0x08);write_com(0x01);write_com(0x06);write_com(0x0e);}/***********LCD写数据函数*************/ void write_data(char ddata){RS=1;/*写指令*/R_W=0;EN=1;/*使能信号开*/P1=ddata;/*将数据送入p1口*/EN=0;/*使能信号关*/check_BF();}/***********LCD写指令函数*************/ void write_com(char command){RS=0;/*写指令*/R_W=0;EN=1;/*使能信号开*/P1=command;/*将数据送入p1口*/EN=0;/*使能信号关*/check_BF();}/************LCD检查忙碌函数***********/ void check_BF(){char i,x=0x80;P1=0xff;while(x&0x80){RS=0;R_W=1;EN=1;x=P1;EN=0;for (i=0;i<10;i++);}EN=0;/*关闭使能信号*/}/**********LCD清屏函数**********/ void clearLCD(){write_com(0x01);}/**********LCD显示函数**********/ void display(long a){long temp,b,c=-1;int lenth=1,i,j;clearLCD();if(a<0){a=a*c;write_data('-');}temp=a;while((temp=temp/10)!=0){lenth++;}for(i=lenth;i>0;i--){b=1;for(j=0;j<i-1;j++){b=b*10;}write_data(0x30+a/b);a=a%b;}}3、算术运算程序设计4、 错误处理及提示程序设计/**********除数为处理函数**********/void dealerror(){int i=0;clearLCD();for (i=0;i<5;i++)write_data(error[i]);}/*********数值溢出处理函数**********/ 开始运算符是?加 乘 减除 除数为0?运算结果溢出? 错误信息送显示缓冲数值送显示缓冲YY N Nvoid dataoverflow(){int i=0;clearLCD();for(i=0;i<8;i++)write_data(overflow[i]);}四、联机调试在联机调试的过程中,一开始没有做数值溢出方面的控制,导致LCD显示的输入数据或计算结果与实际不相符。