当前位置:文档之家› 基于51单片机的简易温湿度测量仪

基于51单片机的简易温湿度测量仪

基于51单片机的简易温湿度测量仪
基于51单片机的简易温湿度测量仪

毕 业 设 计 (论 文)

设计(论文)题目:____基于51单片机的简易温湿度测量仪_

单 位(系别):___电子信息工程系_____

学 生 姓 名:__ __________ _

专 业:___通信工程___________

班 级:

学 号:____ ________

指 导 教 师:____ ____________

答辩组负责人:______________________

填表时间: 20 12 年 5 月

重庆邮电大学移通学院教务处制

编 号:____________

审定成绩:____________

摘要

单片微型计算机(Single Chip Microcomputer) 简称单片机, 又称MCU(Micro Controller Unit),是将计算机的基本部分微型化,使之集成在一块芯片上的微机.片内含有CPU、ROM、RAM、并行I/O、串行I/O、定时器/计数器、中断控制、系统时钟及系统总线等。随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具。本文所涉及的是市场占有率最高的是MCS—51 系列,因为世界上很多知名的IC 生产厂家都生产51 兼容的芯片。生产MCS—51 系列单片机的厂家如美国AMD 公司、ATMEL 公司、INTEL 公司、WINBOND 公司、PHILIPS 公司、ISSI 公司、TEMIC 公司及南韩的LG 公司、日本NEC、西门子公司等。到目前为止,MCS—51 单片机已有数百个品种,还在不断推出功能更强的新产品。

【关键词】单片机温度测控

ABSTRACT

MCS-80C51 Based on the temperature of the 51 SCM measurement instrument Abstract: Single Chip Microcomputer hereinafter referred to as the single chip microcomputer,also known as MCU(Micro Controller Unit), the computer is the basic part of miniaturization, make integration on a single chip microcomputer. Piece contains CPU、ROM、RAM、Parallel I/O、serial ports I/O、the timer/counter、interrupt control、The system clock and the system bus, etc. With the development of technology, SCM is not a strange nouns,, It is the emergence of the history of modern computer technology, Because the birth of the single chip microcomputer marks formal form the computer general computer systems and embedded computer system two branches. Single chip microcontroller tiny size and low cost, Can be widely embedded in such as toys household appliances robot instruments automotive electronic industrial control unit office automation equipment financial electronic system ship terminals and personal information communication product, become a modern electronic system is the most important intelligent tool. This paper is related to the market share is the highest MCS 51 series, because much of the world famous IC manufacturers are production 51 compatible chip production MCS 51 series microcontroller manufacturers such as the AMD ATMEL company INTEL company WINBOND company PHILIPScompany TEMIC company and South Korea ISSIcompany LG company Japan NEC Siemens ag, etc so far, MCS 51 SCM has hundreds of species, also in continuously introduce more powerful new products.【Key words】single chip A/D temperature measurement and control MCS-80 C51

目录

前言 1 第一章温湿度测量的目的及要求 2 第一节作品设计目的

第二节作品设计内容及要求

第三节第三节本章小结

第二章部分器件简介 4 第一节烟雾传感器 4

一、烟雾传感器介绍 6

二、MQ-2的构成及工作原理9

第二节LM393 9

一、LM393简介与特点及应用10

二、LM393功能结构10

第三节单片机10

一、单片机的概述10

二、AT89C51 11

第四节蜂鸣器21 第五节本章小结23 第三章51单片机烟雾探测警报系统的硬件设计及实现24 第一节MQ-2模块设计24 第二节蜂鸣器电路设计25 第三节51单片机烟雾探测警报器整体设计实现26 第四节本章小结27 第四章51单片机烟雾探测警报系统的软件编写及调试28 第一节系统的软件编写28 第二节程序调试35

第三节本章小结36 结论37 致谢38 参考文献39 附录40

一、英文原文40

二、英文翻译41

三、工程设计及图纸42

四、源程序43

五、其他44

前言

随着科学技术的日新月异,人类社会取得了长足的进步!在居家生活、工农业生产、气象、环保、国防、科研、航天等部门,经常需要对环境中的湿度和温度进行测量及控制。本设计设计了一个智能化的温湿度测量应用系统。本系统采用技术成熟的DHT11作为测量湿度和温度的传感器。控制系统芯片采用技术成熟,功能强大、价位低廉大众化的AT89C51单片机。DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。每个DHT11传感器都在精确的湿度校验箱中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。LCD显示电路,声光报警电路都由AT89C51单片机控制。同时设计了能给系统提供稳定工作电压的电源电路。为了提高系统的抗干扰性能,对湿度、温度的检测采用了硬件抗干扰和软件抗干扰的综合方法。最后设计了系统各个功能部分的软件程序。由本设计课题做成的温湿度检测系统结构简单、价格便宜、量程宽,具有较高的可靠性、安全性及实用性。

第一章温湿度测量的目的及要求

第一节作品设计目的

在重要的设备房间中,设备对温、湿度等运行环境的要求非常严格。对于面积较大的房间,由于气流及设备分布的影响,温湿度值可能会有较大的区别。所以应根据主房间实际面积在房间加装温湿度传感器,以实时客观检测房间内的温、湿度。在监控本系统,温湿度一体化传感器将把检测到的温湿度值实时传送到监控主机中,并在监控界面上以图形形式直观地表现出来。管理员可实时了解房间各点的实际温湿度值,一旦房间内实际温、湿度值越限,系统将自动弹出报警框并触发报警,提示管理员通过调节送风口的位置、数量,设定空调的运行温湿度值,尽可能让房间各点的温湿度趋向合理,确保房间设备的安全正常运行。

第二节作品设计内容及要求

1.设计一个温湿度侧量电路,要求:

(1)用单片机通过编程来控制温湿度的显示

(2)液晶要准确显示外界的温、湿度的大小

(3)具有超温、湿度测量报警装置

2.用中、小规模集成电路组成测量系统,并在实验仪器(可在面包板)上进行组装、调试。

3.画出各单元电路图、整机功能框图和逻辑电路图,写出设计和实验总结报告

第二节本章小结

明晰设计理念,了解方案设计,基本掌握单片机检测气敏传感器再驱动蜂鸣器报警流程。

第一章部分器件简介

第一节烟雾传感器

一、烟雾传感器介绍

烟雾传感器,就是将空气中的烟雾浓度变量转换成有一定对应关系的输出信号的装置。

离子式烟雾传感器

该烟雾报警器内部采用离子式烟雾传感,离子式烟雾传感器是一种技术先进,工作稳定可靠的传感器,被广泛运用到各消防报警系统中,性能远优于气敏电阻类的火灾报警器。

它在内外电离室里面有放射源镅241,电离产生的正、负离子,在电场的作用下各自向正负电极移动。在正常的情况下,内外电离室的电流、电压都是稳定的。一旦有烟雾窜逃外电离室。干扰了带电粒子的正常运动,电流,电压就会有所改变,破坏了内外电离室之间的平衡,于是无线发射器发出无线报警信号,通知远方的接收主机,将报警信息传递出去。烟雾传感器广泛应用在城市安防、小区、工厂、公司、学校、家庭、别墅、仓库、资源、石油、化工、燃气输配等众多领域。

光电式烟雾传感器

光电烟雾报警器内有一个光学迷宫,安装有红外对管,无烟时红外接收管收不到红外发射管发出的红外光,当烟尘进入光学迷宫时,通过折射、反射,接收管接收到红外光,智能报警电路判断是否超过阈值,如果超过发出警报。

光电感烟探测器可分为减光式和散射光式,分述如下:

减光式光电烟雾探测器

该探测器的检测室内装有发光器件及受光器件。在正常情况下,受光器件接收到发光器件发出的一定光量;而在有烟雾时,发光器件的发射光到受到烟雾的遮挡,使受光器件接收的光量减少,光电流降低,探测器发出报警信号。

散射光式光电烟雾探测器

该探测器的检测室内也装有发光器件和受光器件。在正常情况下,受光器件是接收不到发光器件发出的光的,因而不产生光电流。在发生火灾时,当烟雾进入检测室时,由于烟粒子的作用,使发光器件发射的光产生漫射,这种漫射光被受光器件接收,使受光器件的阻抗发生变化,产生光电流,从而实现了烟雾信号转变为电信号的功能,探测器收到信号然后判断是否需要发出报警信号。

气敏式烟雾传感器

气敏传感器是一种检测特定气体的传感器。它主要包括半导体气敏传感器、接触燃烧式气敏传感器和电化学气敏传感器等,其中用的最多的是半导体气敏传感器。它的应用主要有:一氧化碳气体的检测、瓦斯气体的检测、煤气的检测、氟利昂(R11、R12)的检测、呼气中乙醇的检测、人体口腔口臭的检测等等。

它将气体种类及其与浓度有关的信息转换成电信号,根据这些电信号的强弱就可以获得与待测气体在环境中的存在情况有关的信息,从而可以进行检测、监控、报警;还可以通过接口电路与计算机组成自动检测、控制和报警系统。

其中气敏传感器有一下几种类型:

可燃性气体气敏元件传感器, 包含各种烷类和有机蒸气类(VOC)气体,

目前大量应用于抽油烟机、泄漏报警器和空气清新机; ( 2)一氧化碳气敏元件传感器, 一氧化碳气敏元件可用于工业生产、环保、汽车、家庭等一氧化碳泄漏和不完全燃烧检测报警; (3)氧传感器, 氧传感器应用很广泛, 在环保、医疗、冶金、交通等领域需求量很大; (4)毒性气体传感器,主要用于检测烟气、尾气、废气等环境污染气体。

气敏式烟雾传感器的典型型号有MQ-2气体传感器。该传感器常用于家庭和工厂的气体泄漏装置,适宜于液化气、丁烷、丙烷、甲烷、酒精、氢气、烟雾等的探测。

二、MQ-2的构成及工作原理

MQ-2具有广泛的探测范围,高灵敏度与快速回复,优异的稳定性和寿命长,简单的驱动电路等特点。可用于家庭和工厂的气体泄漏监测装置,适宜液化气,丁烷,甲烷,丙烷,氢气,酒精,烟雾等的探测。MQ-2由气体敏感层(二氧化锡),电极(金),测量电极引线(铂),电热器(镍鉻合金),陶瓷管(三氧化二铝),防爆网(100目双层不锈钢),卡环(镀镍铜材),基座(胶木),针状管脚(镀镍铜材)构成。封装好的MQ-2有六只引脚,四只用于信号输出,两只用于提供加热电流。外形结构如下图所示

MQ-2工作条件及灵敏度特性图MQ-2灵敏度特性曲线如下图1

其中:

温度:二十摄氏度

相对湿度:65%

氧气浓度:21%

RL=5K

RS:元件在不同气体,不同浓度下的电阻值

R0:元件在洁净空气中的电阻值

图1

MQ-2气敏元件的温湿度特性如下图2

R0:二十摄氏度,33%RH条件下,1000ppm氢气中元件电阻

RS:不同温湿度,1000ppm氢气中元件电阻

图2

MQ-2工作原理

直流电压通过引脚直接供传感器MQ-2的加热丝H-H工作,加热丝给传感器MQ -2预热一定时间后,一般大约20秒,才能正常检测烟雾。当MQ-2所处的环境烟雾在允许范围内时,其两端输出电极H-H间导电率很低,则加在电极间两端H—H电压很低,则输出电压升高。当烟雾浓度减少,传感器MQ-2导电率升高,

加在电极间两端H-H的电压升高,输出电压变小。在没有被检测的气体环境中,MQ-2输出电压值大小约1V,当电压每增加0.1V左右时,被检测气体浓度增加200ppm左右。

第二节LM393

一、LM393简介与特点及应用

简介

LM393是由两个独立的、高精度电压比较器组成的集成电路,失调电压点,最大为2mv。它专为获得宽电压范围、单电源供电而设计,也可以双电源供电;而且无论电源电压大小,电源消耗的电流都很低。

特点

●电源电压范围宽:

——单电源:2v-36v

——双电源:±1v-±18v

●电源电流消耗很低(0.4mA)

●输入偏执电流低:25nA

●输入失调电流低:±5nA

●最大输入失调电压:正负3mV

●输入共模电压范围接近低电平

●输出饱和电压低:250mV at 4mA

●输出电平兼容TTL,DTL,ECL,MOS和CMOS逻辑系统

应用

主要应用于限幅器、简单的模数转换器、脉冲发生器、方波发生器、延时发生器、宽频压控振荡器、MOS时钟计时器、多频振荡器和高平数字逻辑门电路。393被设计成能直接连接TTL和CMOS;当用双电源供电时,它能兼容MOS逻辑电路-这是低

功耗的393相较于标准比较器的独特优势。

二、LM393功能结构

功能框图

OUT A:输出A

IN A-:反相输入A

IN A+:同相输入A

GND:接地端

IN B+:同相输入B

IN B-:反相输入B

OUT B:输出B

Vcc :电源电压

第三节单片机

一、单片机的概述

●在一片IC中集成了CPU、MEM、各种I/0接口(如,PIO、CTC、UART,……。)

●主要用于测控领域,因此,也称其为MCU。

●在应用中,单片机是作为一个功能部件被嵌入在应用系统中,从而构

成一个嵌入式系统。所以,也称单片机为嵌入式微控制器——EMCU。

●单片机分通用型与专用型两大类。

单片机的发展

●第一阶段:1974-78年,两个芯片构成。如,仙童的F8。

●第二阶段:1976-78年,资源少。如,无串口,存储空间少等。如,

Intel的MCS-48。

●第三阶段:1978-82年,系统资源较丰富。如,Intel的MCS-51。

●第四阶段:1982-现在,种类丰富,应用广泛。从字长、速度、资源、

应用与专用。

单片机的应用

●工业自动化控制

●智能仪表

●消费产品的智能化

●通信设备的逻辑单元

●智能终端及计算机外围设备的控制部件

●武器装备的智能部件

二、AT89C51

AT89C51 是美国 ATMEL 公司生产的低电压,高性能 CMOS8 位单片机,片内含 4k bytes 的可反复擦写的只读程序存储器(PEROM)和 128 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器(CPU)和 Flash 存储单元,功能强大 AT89C51 单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。

主要性能参数:

·与 MCS-51 产品指令系统完全兼容

·4k 字节可重擦写 Flash 闪速存储器

·1000 次擦写周期

·全静态操作:0Hz-24MHz

·三级加密程序存储器

·128×8字节内部 RAM

·32 个可编程 I/O 口线

·2 个 16 位定时/计数器

·6 个中断源

·可编程串行 UART 通道

·低功耗空闲和掉电模式

功能特性概述:

AT89C51 提供以下标准功能:4k 字节 Flash 闪速存储器,128 字节内部 RAM,32 个 I/O 口线,两个 16 位定时/计

数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51 可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

AT89C51引脚功能

引脚功能说明

●Vcc:电源电压

●GND:地

●P0 口:P0 口是一组 8 位漏极开路型双向 I/O 口,也即地址/数据总线

复用口。作为输出口用时,每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。在 FIash 编程时,P0 口接收指令字节,而在程序校

验时,输出指令字节,校验时,要求外接上拉电阻。

●P1 口:P1 是一个带内部上拉电阻的 8 位双向 I/O 口,P1 的输出缓冲级

可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

FIash 编程和程序校验期间,P1 接收低 8 位地址。

●P2 口:P2 是一个带有内部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲

级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行

MOVX@DPTR 指令)时,P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器(如执行 MOVX@RI 指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR)区中 R2 寄存器的内容)在整个访问期间不改变。Flash 编程或校验时,P2 亦接收高位地址和其它控制信号。

●P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。P3 口输出缓

冲级可驱动(吸收或输出电流)4 个 TTL逻辑门电路。对 P3 口写入“1”

时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的 P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能,如下表所示:

端口引脚第二功能

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 INT0(外中断 0)

P3.3 INT1(外中断 1)

P3.4 T0(定时/计数器 0 外部

输入)

P3.5 T1(定时/计数器 1 外部

输入)

P3.6 WR(外部数据存储器写选

通)

P3.7 RD (外部数据存储器读选

通)

P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号。

●RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平

将使单片机复位。

●ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)

输出脉冲用于锁存地址的低 8 位字节。即使不访问外部存储器,ALE 仍以时钟振荡频率的 l/6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。对 Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元的 DO 位置位,可禁止 ALE 操作。该位置位后,只有一条 MOVX 和 MOVC 指令 ALE 才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 无效。

●PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当

AT89C51 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN 信号不出现。

●EA/VPP:外部访问允许。欲使 CPU 仅访问外部程序存储器(地址

0000H—FFFFH) EA 端必须保持低电平,(接地)。需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。Flash 存储器编程时,该引脚加上+12V 的编程允许电源 Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。

●XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。

●XTAL2:振荡器反相放大器的输出端。

时钟振荡器

AT89C5l 中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1

和 XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图 1。

外接石英晶体(或陶瓷谐振器)及电容 C1、C2 接在放大器的反馈回路中构成并联振荡电路。对外接电容 C1、C2 虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF±10pF,而如使用陶瓷谐振器建议选择40pF±10F。用户也可以采用外部时钟。采用外部时钟的电路如图5 右图所示。这种情况下,外部时钟脉冲接到 XTAL1 端,即内部时钟发生器的输入端,XTAL2 则悬空。

石英晶体时:C1,C2=30pF±10pF外部时钟驱动电路

陶瓷滤波器:C1,C2=40pF±10pF

内部振荡电路图1

由于外部时钟信号是通过一个 2 分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。

空闲节电模式

AT89C51 有两种可用软件编程的省电模式,它们是空闲模式和掉电工作模式。这两种方式是控制专用寄存器 PCON(即电源控制寄存器)中的 PD(PCON.1)和IDL(PCON.0)位来实现的。PD 是掉电模式,当 PD=1 时,激活掉电工作模式,单片机进入掉电工作状态。IDL 是空闲等待方式,当 IDL=1,激活空闲工作模式,单片机进入睡眠状态。如需同时进入两种工作模式,即 PD 和 IDL 同时为 1,

则先激活掉电模式。

在空闲工作模式状态,CPU 保持睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,片内 RAM和所有特殊功能寄存器的内容保持不变。空闲模式可由任何允许的中断请求或硬件复位终止。

终止空闲工作模式的方法有两种,其一是任何一条被允许中断的事件被激活,IDL(PCON.0)被硬件清除,即刻终止空闲工作模式。程序会首先响应中断,进入中断服务程序,执行完中断服务程序并紧随 RETI(中断返回)指令后,下一条要执行的指令就是使单片机进入空闲模式那条指令后面的一条指令。

其二是通过硬件复位也可将空闲工作模式终止。需要注意的是,当由硬件复位来终止空闲工作模式时,CPU 通常是从激活空闲模式那条指令的下一条指令开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期(24个时钟周期)有效,在这种情况下,内部禁止 CPU 访问片内 RAM,而允许访问其它端口。为了避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。

掉电模式

在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内 RAM 和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器但不改变RAM中的内容,在 Vcc 恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。

空闲和掉电模式外部引脚状态

模式程序存

储区ALE ---

PSEN

P0 P1 P2 P3

空闲模

内部 1 1 数据数据数据数据

空闲模

外部 1 1 浮空数据地址数据

掉电模

内部0 0 数据数据数据数据

掉电模

外部0 0 浮空数据数据数据

AT89C51单片机简易计算器的设计

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,读取输入的键值。 总体设计效果如下图:

基于AT89C51单片机的温度传感器

基于AT89C51单片机的温度传感器 目录 摘要.............................................................. I ABSTRACT........................................................... I I 第一章绪论 (1) 1.1 课题背景 (1) 1.2本课题研究意义 (2) 1.3本课题的任务 (2) 1.4系统整体目标 (2) 第二章方案论证比较与选择 (3) 2.1引言 (3) 2.2方案设计 (3) 2.2.1 设计方案一 (3) 2.2.2 设计方案二 (3) 2.2.3 设计方案三 (3) 2.3方案的比较与选择 (4) 2.4方案的阐述与论证 (4) 第三章硬件设计 (6) 3.1 温度传感器 (6) 3.1.1 温度传感器选用细则 (6) 3.1.2 温度传感器DS18B20 (7) 3.2.单片机系统设计 (13)

3.3显示电路设计.................................错误!未定义书签。 3.4键盘电路设计................................错误!未定义书签。 3.5报警电路设计.................................错误!未定义书签。 3.6通信模块设计.................................错误!未定义书签。 3.6.1 RS-232接口简介..............................错误!未定义书签。 3.6.2 MAX232芯片简介.............................错误!未定义书签。 3.6.3 PC机与单片机的串行通信接口电路.............错误!未定义书签。 第四章软件设计..................................错误!未定义书签。 4.1 软件开发工具的选择..........................错误!未定义书签。 4.2系统软件设计的一般原则.......................错误!未定义书签。 4..3系统软件设计的一般步骤......................错误!未定义书签。 4.4软件实现....................................错误!未定义书签。 4.4.1系统主程序流程图.........................错误!未定义书签。 4.4.2 传感器程序设计...........................错误!未定义书签。 4.4.3 显示程序设计.............................错误!未定义书签。 4.4.4 键盘程序设计.............................错误!未定义书签。 4.4.5 报警程序设计.............................错误!未定义书签。 4.4.6 通信模块程序设计.........................错误!未定义书签。 第五章调试与小结..................................错误!未定义书签。致谢...............................................错误!未定义书签。参考文献...........................................错误!未定义书签。附录...............................................错误!未定义书签。系统电路图.......................................错误!未定义书签。系统程序.........................................错误!未定义书签。

基于51单片机的简易计算器制作

基于51单片机的简易计算器制作专业:电气信息班级:11级电类一班 姓名:王康胡松勇 时间:2012年7月12日 一:设计任务 本系统选用AT89C52单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计,具体设计如下: (1)由于设计的计算器要进行四则运算,为了得到较好的显示效果,经综合分析后,最后采用LED 显示数据和结果。 (2)采用键盘输入方式,键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键(on\c)和等号键(=),故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)在执行过程中,开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LED上提示八个0;当除数为0时,计算器会在LED上会提示八个负号。 设计要求:分别对键盘输入检测模块;LED显示模块;算术运算模块;错误处理及提示模块进行设计,并用Visio画系统方框图,keil与protues仿真 分析其设计结果。 二.硬件设计 单片机最小系统 CPU:A T89C52 显示模块:两个4位7段共阴极数码管 输入模块:4*4矩阵键盘 1.电路图

电路图说明 本电路图采用AT89C52作为中处理器,以4*4矩阵键盘扫描输入,用两个74HC573(锁存器)控制分别控制数码管的位于段,并以动态显示的方式显示键盘输入结果及运算结果。为编程方便,以一个一位共阴极数码管显示负号。 三,程序设计 #include #define Lint long int #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; //锁存器段选sbit wela=P2^7; sbit display_g=P2^0; //负号段选 sbit display_w=P2^1; //负号位选uchar code table[]={0x3f,0x06,0x5b,0x4f, //0,1,2,3

简单51单片机数字时钟设计

题目:简单51单片机数字时钟设计 院系: 物理与电气工程学院 专业:自动化专业 班级:10级自动化 姓名:苏吉振 学号:2 老师:李艾华

引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS 化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。 单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。 单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。 数字钟是采用数字电路实现对时,分,秒数字显示的计时装置,广泛用于个 人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。

基于51单片机的计算器设计程序代码汇编

DBUF EQU 30H TEMP EQU 40H YJ EQU 50H ;结果存放 YJ1 EQU 51H ;中间结果存放GONG EQU 52H ;功能键存放 ORG 00H START: MOV R3,#0 ;初始化显示为空MOV GONG,#0 MOV 30H,#10H MOV 31H,#10H MOV 32H,#10H MOV 33H,#10H MOV 34H,#10H MLOOP: CALL DISP ;PAN调显示子程序WAIT: CALL TESTKEY ; 判断有无按键JZ WAIT CALL GETKEY ;读键 INC R3 ;按键个数 CJNE A,#0,NEXT1 ; 判断就是否数字键 LJMP E1 ; 转数字键处理NEXT1: CJNE A,#1,NEXT2 LJMP E1 NEXT2: CJNE A,#2,NEXT3 LJMP E1 NEXT3: CJNE A,#3,NEXT4 LJMP E1 NEXT4: CJNE A,#4,NEXT5 LJMP E1 NEXT5: CJNE A,#5,NEXT6 LJMP E1 NEXT6: CJNE A,#6,NEXT7 LJMP E1 NEXT7: CJNE A,#7,NEXT8 LJMP E1 NEXT8: CJNE A,#8,NEXT9 LJMP E1 NEXT9: CJNE A,#9,NEXT10 LJMP E1 NEXT10: CJNE A,#10,NEXT11 ;判断就是否功能键LJMP E2 ;转功能键处理NEXT11: CJNE A,#11,NEXT12 LJMP E2 NEXT12: CJNE A,#12, NEXT13 LJMP E2

基于51单片机SHT11温湿度传感器检测程序.doc

基于51单片机SHT11温湿度传感器检测程序(含电路图) ? 下面是原理图: 下面是SHT11与MCU连接的典型电路:

下面是源代码: #include #include /******************************************************** 宏定义 ********************************************************/ #define uint unsigned int #define uchar unsigned char #define noACK 0 #define ACK 1 #define STATUS_REG_W 0x06 #define STATUS_REG_R 0x07 #define MEASURE_TEMP 0x03 #define MEASURE_HUMI 0x05 #define RESET 0x1e enum {TEMP,HUMI}; typedef union //定义共用同类型 { unsigned int i; float f; } value; /******************************************************** 位定义 ********************************************************/ sbit lcdrs=P2^0; sbit lcdrw=P2^1; sbit lcden=P2^2; sbit SCK = P1^0; sbit DATA = P1^1; /******************************************************** 变量定义 ********************************************************/ uchar table2[]="SHT11 温湿度检测"; uchar table3[]="温度为:℃"; uchar table4[]="湿度为:"; uchar table5[]="."; uchar wendu[6]; uchar shidu[6]; /******************************************************** 1ms延时函数 ********************************************************/ void delay(int z) {

基于51单片机的计算器设计

目录 第一章引言 (3) 1.1 简述简易计算器 (3) 1.2 本设计主要任务 (3) 1.3 系统主要功能 (4) 第二章系统主要硬件电路设计 (4) 2.1 系统的硬件构成及功能 (4) 2.2 键盘电路设计 (5) 2.3 显示电路设计 (6) 第三章系统软件设计 (7) 3.1 计算器的软件规划 (7) 3.2 键盘扫描的程序设计 (7) 3.3 显示模块的程序设计 (8) 3.4 主程序的设计 (9) 3.5 软件的可靠性设计 (9) 第四章调试 (9) 第五章结束语 (10) 参考文献 (11) 附录源程序 (11)

第一章引言 1.1 简述简易计算器 近几年单片机技术的发展很快,其中电子产品的更新速度迅猛。计算器是日常生活中比较的常见的电子产品之一。如何才能使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器呢? 本设计是以AT89S52单片机为核心的计算器模拟系统设计,输入采用4×6矩阵键盘,可以进行加、减、乘、除9位带符号数字运算,并在LCD1602上显示操作过程。 科技的进步告别了以前复杂的模拟电路,一块几厘米平方的单片机可以省去很多繁琐的电路。现在应用较广泛的是科学计算器,与我们日常所用的简单计算器有较大差别,除了能进行加减乘除,科学计算器还可以进行正数的四则运算和乘方、开方运算,具有指数、对数、三角函数、反三角函数及存储等计算功能。计算器的未来是小型化和轻便化,现在市面上出现的使用太阳能电池的计算器, 使用ASIC设计的计算器,如使用纯软件实现的计算器等,未来的智能化计算器将是我们的发展方向,更希望成为应用广泛的计算工具。 1.2 本设计主要任务 以下是初步设定的矩阵键盘简易计算器的功能: 1.扩展4*6键盘,其中10个数字,5个功能键,1个清零 2.强化对于电路的焊接 3.使用五位数码管接口电路 4. 完成十进制的四则运算(加、减、乘、除); 5. 实现结果低于五位的连续运算; 6. 使用keil 软件编写程序,使用汇编语言; 7. 最后用ptoteus模拟仿真; 8.学会对电路的调试

基于51单片机的电子时钟的设计

目录 0 前言 (1) 1 总体方案设计 (2) 2 硬件电路设计 (2) 3 软件设计 (5) 4 调试分析及说明 (7) 5 结论 (9) 参考文献 (9) 课设体会 (10) 附录1 电路原理 (12) 附录2 程序清单 (13)

电子时钟的设计 许山沈阳航空航天大学自动化学院 摘要:传统的数字电子时钟采用了较多的分立元器件,不仅占用了很大的空间而且利用率也比很低,随着系统设计复杂度的不断提高,用传统时钟系统设计方法很难满足设计需求。 单片机是集CPU、RAM、ROM、定时器/计数器和多种接口于一体的微控制器。它体积小、成本低、功能强,广泛应用于智能产品和工业自动化上。而51系列的单片机是各单片机中最为典型和最有代表性的一种。,本次设计提出了系统总体设计方案,并设计了各部分硬件模块和软件流程,在用C语言设计了具体软件程序后,将各个模块完全编译通过过后,结果证明了该设计系统的可行性。该设计给出了以AT89C2051为核心,利用单片机的运算和控制功能,并采用系统化LED显示模块实时显示数字的设计方案,适当地解决了实际生产和日常生活中对计时高精确度的要求,因此该设计在现代社会中具有广泛的应用性。 关键字:AT89C2051,C语言程序,电子钟。 0前言 利用51单片机开发电子时钟,实现时间显示、调整和闹铃功能。具体要求如下: (1)按以上要求制定设计方案,并绘制出系统工作框图; (2)按要求设计部分外围电路,并与单片机仿真器、单片机实验箱、电源等正确可靠的连接,给出电路原理图; (3)用仿真器及单片机实验箱进行程序设计与调试;

(4)利用键盘输入调整秒、分和小时时刻,数码管显示时间; (5)实现闹钟功能,在设定的时间给出声音提示。 1总体方案设计 该电子时钟由89C51,BUTTON,1602 LCD液晶屏等构成,采用晶振电路作为驱动电路,利用单片机内部定时计数器0通过软件扩展产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。闹钟和时钟的时分秒的调节是由一个按键控制,而另外一个按键控制时钟和闹钟的时间的调节。 图1 系统结构框图 该电子时钟由STC89C51,BUTTON,1602 LCD液晶屏等构成,采用晶振电路作为驱动电路,晶振电路的晶振频率为12MHZ,使用的定时器/计数器工作方式0,通过软件扩展产生的一秒定时,达到时分秒的计时,60秒为一分钟,60分钟为一小时,24小时为一天,又重00:00:00开始计时。没有按键按键按下时,时钟正常运行,当按下调节时钟按键K1,就会关闭时钟,当按下闹钟按键K3时时钟就会进入设置时间界面,但是时钟不会停止工作,按K2键,,就可以对时钟和闹钟要设置的时间进行调整。 2硬件电路设计

51单片机简易计算器程序

#include <reg51.h>#include <intrins.h> #include <ctype.h> #include <stdlib.h> #define uchar unsigned char #define uint unsigned int uchar operand1[9], operand2[9]; uchar operator; void delay(uint); uchar keyscan(); void disp(void); void buf(uint value); uint compute(uint va1,uint va2,uchar optor); uchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0xff}; uchar dbuf[8] = {10,10,10,10,10,10,10,10}; void delay(uint z) { uint x,y; for(x=z;x>0;x--)

for(y=110;y>0;y--); } uchar keyscan() { uchar skey; P1 = 0xfe; while((P1 & 0xf0) != 0xf0) { delay(3); while((P1 & 0xf0) != 0xf0) { switch(P1) { case 0xee: skey = '7'; break; case 0xde: skey = '8'; break; case 0xbe: skey = '9'; break; case 0x7e: skey = '/'; break; default: skey = '#'; }

51单片机热敏电阻测温程序

//本程序是通过热敏电阻测温度(30c-50c),采用六位串行数码管显示,前三位显示ds18b20测得数据,后三位是热敏电阻测得数据 #include #include #include #define uchar unsigned char #define uint unsigned int uchar smg[]={0x88,0xeb,0x4c,0x49,0x2b,0x19,0x18,0xcb,0x08,0x09}; uchar b,d; uint shuju; int a,temp; sbit start=P2^7; sbit ale=P2^7; sbit addc=P2^6; sbit addb=P2^5; sbit adda=P2^4; sbit eoc=P2^3; sbit oe=P2^2; sbit clk=P3^2;//0809时钟脚 sbit dat=P3^0; //串行数码管数据端 sbit clock=P3^1; //串行数码管时钟端 sbit DQ=P2^0; /******************delay**************************/ void delay(uint x) { while(x--); } void delay1(uint x) { uint i,j; for(i=0;i

基于51单片机的电子时钟设计源程序

#include unsigned char DispBuf[6]; //时间显示缓冲区 unsigned char Disdate[6]; //日期显示缓冲区 unsigned char DisSec[6]; //秒表缓冲区 struct //设定时间结构体 { unsigned char Hour; unsigned char Min; unsigned char Sec; }Time; struct //设定日期结构体 { unsigned char Year; unsigned char Month; unsigned char Days; }Date; struct //设定毫秒结构体 { unsigned char Minite; unsigned char Second; unsigned char MilliSec; }Millisecond; unsigned char point=0; unsigned char point1=0; unsigned char point2=0; unsigned char Daymount; unsigned char Daymount1; unsigned char T0_Int_Times=0; //中断次数计数变量 unsigned char Flash_flag=0; //闪烁标志,每半秒闪烁 unsigned char Flash_flag1=0; //闪烁标志,每半秒闪烁 unsigned char DisPlay_Back=0; //显示缓冲区更新备份,如果显示缓冲区更新则跟闪烁标志不一致 unsigned char DisPlay_Back1=0; //显示缓冲区更新备份,如果显示缓冲区更新则跟闪烁标志不一致 unsigned char i,j; unsigned char SetMillisecond; //启动秒表 code unsigned char LEDCode[]={0x01,0xd7,0x22,0x82,0xc4,0x88,0x08,0xc1,0x00,0x80}; //数码管显示代码 code unsigned char ErrorLEDCode[]={0x01,0xe7,0x12,0x82,0xc4,0x88,0x08,0xc1,0x00,0x80};//绘制错误图纸的数码管显示代码 void DisPlayBuf(); void ChangeToDispCode(); void ChangeToDispCode1(); void changedate(); // 调日期 void displaydate(); // 显示日期 void makedays(); //确定每个月的日期 void runSec();

AT89C51单片机C实现简易计算器

AT89C51单片机简易计算器的设计 一、总体设计 根据功能和指标要求,本系统选用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所示:

基于51单片机的数字计算器的设计

《单片机技术及其应用》课程设计报告 专业:通信工程 班级:09312班 姓名:某某某 学号:09031069 指导教师: 二0一二年六月十八日

目录 1设计目的 (1) 2 设计题目描述与要求 (1) 3 设计过程 (2) 4硬件总体方案及说明 (6) 5 软件总体方案及设计流程 (9) 6 调试与仿真 (13) 7 心得体会 (14) 8 指导老师意见 (15) 9 参考文献 (16) 附录一 (16) 附录二 (21)

基于51单片机的数字计算器的设计 1设计目的 简易计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用和单片机完整程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。单片机课程设计既巩固了课本学到的理论,还学到了单片机硬件电路和程序设计,简易计算器课程设计通过自己动手用计算机电路设计软件,编写和调试,最后仿真,来加深对单片机的认识,充分发挥我们的个人创新和动手能力,并提高我们对单片机的兴趣,同时学习查阅资料、参考资料的方法。 本设计是基于51系列的单片机进行的简易计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED 上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件选择AT89C51单片机和74ls164,输入用4×4矩阵键盘。显示用5位7段共阴极LED静态显示。软件从分析计算器功能、流程图设计,再到程序的编写进行系统设计。选用编译效率最高的Keil软件进行编程,并用proteus仿真。 2 设计题目描述与要求 基于AT89C51数字计算器设计的基本要求与基本思路: (1)扩展4*4键盘,其中10个数字,5个功能键,1个清零 (2)使用五位数码管接口电路

51单片机电子时钟设计报告

电子时钟实验报告 全部代码在文档末尾:51单片机,LCD1602液晶显示屏平台下编程实现,可直接编译运行 目录: 一,实验目的 (1) 二,实验要求 (2) 三,实验基本原理 (2) 四,实验设计分析 (2) 五,实验要求实现 (3) A.电路设计 (3) 1. 整体设计 (3) 2. 分块设计 (4) 2.1 输入部分 (4) 2.2 输出部分 (5) 2.3 晶振与复位电路 (5) B.程序设计 (6) B.1 程序总体设计 (6) B.2 程序主要模块 (6) 五.实验总结及感想 (8) 一,实验目的 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以电子钟是以其小巧,价格低廉,走时精度高,使用方便,

功能多,便于集成化而受广大消费的喜爱,得到了广泛的使用。 1. 学习8051定时器时间计时处理、按键扫描及LCD液晶显示的设计方法。 2. 设计任务及要求利用实验平台上LCD1602液晶显示屏,设计带有闹铃功能的数字时钟 二,实验要求 A.基本要求: 1. 在LCD1602液晶显示屏上显示当前日期,时间。 2. 利用按键可对时间及闹玲进行设置,并可显示设置闹玲的时间。闹玲时间到蜂鸣器发出 声响,一分钟后闹铃停止。 B.扩展部分: 1.日历功能(能对年,月,日,星期进行显示,分辨平年,闰年以及各月天数,并调整)实现年月日时分秒的调整,星期准确的随着日期改变而改变进行显示。 2.定时功能(设定一段时间长度,定时到后,闹铃提示) C.可扩展部分: 1.闹铃重响功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调) 2.可进行备忘录提示,按照年月日,可在设定的某年某月进行闹铃提示。 三,实验基本原理 利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.05s中断一次并当作一个计数,设定定时1秒的中断计数初值为20,每中断一次中断计数初值加1,当减到20时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了,是否一天到了,是否一个月到了,是否一年到了。 将时间在LCD液晶屏上显示,降低了程序的编写难度。LCD的固定显示特性是我们省去了数码管的动态扫描显示。 四,实验设计分析 针对要实现的功能,采用AT89S52单片机进行设计,AT89S52 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结

基于51单片机的简易计算器设计

河南##############学校 毕业设计(论文) 基于51单片机的简易计算器 系部: 自动控制系 专业: 电气自动化 班级: 自083 姓名: 崔 # # 学号: 091415302 指导老师: 许 # 二零一二年五月八日

基于51单片机的简易计算器 摘要 工程实践教学环节是为了学生能够更好地巩固和实践所学专业知识而设置的,在本次工程实践中,我以《智能化测量控制仪表原理与设计》、《MCS-51系列单片微型计算机及其应用》课程中所学知识为基础,设计了简易计算器。本系统以MCS-51系列中的8051单片机为核心,能够实现多位数的四则运算。该系统通过检测矩阵键盘扫描,判断是否按键,经数据转换把数值送入数码管动态显示。本系统的设计说明重点介绍了如下几方面的内容:基于单片机简易计算器的基本功能,同时对矩阵键盘及数码管动态显示原理进行了简单的阐述;介绍了系统的总体设计、给出了系统的整体流程框图,并对其进行了功能模块划分及所采用的元器件进行了详细说明;对系统各功能模块的软、硬件实现进行了详细的设计说明。 关键词:MCS-51;8051单片机;计算器;加减乘除

Based on the simple calculator 51 SCM Abstract The engineering practice teaching is to students better to consolidate and practice have set up by the professional knowledge, in this engineering practice, I to the intelligent measurement control instrument principle and design ", "the MCS-51 series single chip computer and its application" course knowledge as the foundation, the design the simple calculator. This system to MCS-51 of the 8051 series single chip microcomputer as the core, can realize the connection arithmetic. The system through the test matrix keyboard scan, judge whether key, the data transfer the numerical into digital tube dynamic display. This system mainly introduced the design that the following aspects of content: based on single chip microcomputer simple calculator basic functions, and the matrix keyboard and a digital tube dynamic display of the principle of a simple expatiated; introduced the design of the whole system, the whole process of the system are discussed, and its function module partition and the components for a detailed explanation; the functional modules of the system hardware and software of the implementation of the detailed design instructions. Key words: MCS-51;8051 single chip microcomputer;Calculator;Add, subtract, multiply and divide:

51单片机的电子时钟设计

基于51单片机的电子时钟设计 摘要:本文介绍了基于51单片机的电子时钟的设计,从硬件和软件两个方面给出了具体实现过程。该时钟的设计采用功能分块的思想方法,将硬件电路划分为开关电路,显示驱动电路和数码管电路等若干独立模块,而软件的实现则由闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等组成。文中给出了各个模块的电路图,并用Proteus的ISIS软件对电子时钟系统的各个功能进行了仿真,并给出了相应的仿真结果图像。 关键词:单片机;电子时钟;键盘控制 Electronic Clock Design Based on 51 Single-chip *** Shandong Institute of Business and Technology , 264005 Abstract:This paper introduces the electronic clock design based on 51 single-chip microcomputer, and it provides us specific implementation process from aspects of hardware and software. This clock is designed by the method of function blocks. In hardware, it’s circuit is divided into switch block, display drive block and digital control block. However, the software consist of the program of alarm clock, time display, date display, stopwatch display, time adjust, timing adjustment, the alarm clock adjustment, time delay and so on. Circuit diagrams of each module is also given and the corresponding simulation image of this clock produced by software of Proteus is also showed in this paper. Key words:single chip microcomputer; electronic clock;Keyboard control 一,引言 1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活补课缺少的工具。现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,

51单片机简易计算器代码

#include"reg52.h" #define uchar unsigned char #define uint unsigned int sbit busy=P0^7; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } char i,j,temp,num; long a,b,c; //a,第一个数b,第二个数c,得数 uchar flag,fuhao;//flag表示是否有符号键按下,fuhao表征按下的是哪个符号uchar code table[]={7,8,9,0,4,5,6,0,1,2,3,0,0,0,0,0}; uchar code table1[]={7,8,9,0x2f-0x30,4,5,6,0x2a-0x30,1,2,3,0x2d-0x30,0x01-0x30,0,0x3d-0x30,0 x2b-0x30}; //按键显示编码表 sbit lcden=P2^2; sbit lcdwrite=P2^1; sbit lcdrs=P2^0; //lcd的写指令 void write_com(uchar com) { lcdrs=0; lcden=0; P0=com; delay(1); lcden=1; delay(1); lcden=0; } //lcd的写数据 void write_date(uchar da) { lcdrs=1; lcden=0; P0=da; delay(1); lcden=1; delay(1); lcden=0; } //初始化

void init() //初始化 { uchar num; num=-1; lcdwrite=0; lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); delay(500);//延时0.5s write_com(0x01); i=0; j=0; a=0; //第一个参与运算的数 b=0; //第二个参与运算的数 c=0; flag=0; //flag表示是否有符号键按下, fuhao=0; // fuhao表征按下的是哪个符号 } void keyscan() // 键盘扫描程序 { P3=0xfe; if(P3!=0xfe) { delay(10); //延迟20ms if(P3!=0xfe) { temp=P3&0xf0; switch(temp) { case 0xe0:num=0; break; case 0xd0:num=1; break; case 0xb0:num=2; break; case 0x70:num=3; break; } } while(P3!=0xfe); if(num==0||num==1||num==2)//如果按下的是'7','8'或'9 { if(j==1)//确认一次计算完毕,清屏 { write_com(0x01);

相关主题
文本预览
相关文档 最新文档