基于51单片机的电子万年历设计毕业论文设计 联系客服

发布时间 : 星期六 文章基于51单片机的电子万年历设计毕业论文设计更新完毕开始阅读847fed9c32d4b14e852458fb770bf78a64293a14

图3-9 独立键盘

当按键按下,与主控芯片连接的端口被降为低电平,按键松开则也升为高电平。按键采用的是Tack Switch按钮开关,它具有自动恢复(弹回)的功能。当我们按下按钮时,其中的接点接通(或切断),放开按钮后,接点恢复为切断(或接通)。按照尺寸区分,电子电路或微型计算机所使用的Tack Swith可分为8mm、10mm、12mm等。虽然Tack Switch有4个引脚,但实际上,其内部只有一对a接点,即其中两个引脚是内部相连通的,而另外两个引脚内部也是相连通的。7个按键实现了开机模式选择,日期调节等功能,独立按键的引入使得体现了本设计的人性化,智能化,功能的强大。

3.2.5 蜂鸣器模块

蜂鸣器模块是本设计中体现人机交互的又一大设计亮点,其电路原理图如下图:

图3-10 蜂鸣器模块

(1)蜂鸣器的介绍

○1蜂鸣器的作用:蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。

○2 蜂鸣器的分类:蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两类。

○3 蜂鸣器的电路图形符号:蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。

本设计里,我们采用有源蜂鸣器,由于蜂鸣器的工作电流一般比较大,以至于单片机的I/O 口是无法直接驱动的,所以要利用放大电路来驱动,我们使用三极管来放大电流,驱动蜂鸣器,此模块只要通过BELL(连接到到单片机P2.7)输入的PWM波既可以使蜂鸣器分出声音,我们设计的这款万年历可以在闹钟定时中作为声音提醒信号。

6

3.2.6 单片机模块

AT89S52是ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含8k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚,它集Flash存储器既可在线编辑(ISP)也可用传统方法进行编辑及通用8位微处理器于单片芯片中,功能强大AT89S52单片机可为您提供许多高性价比的应用场合。器管脚图如图3-2:

图3-1 AT89S52管脚图

在本系统中,AT89S52单片机内部的功能单元已经能够满足系统设计需要,不需要系统扩展。

AT89S52具有以下的特点: 主要性能

● 与MCS-51单片机产品兼容 ● 8K字节在系统可编程Flash存储器 ● 1000次擦写周期 ● 全静态操作:0Hz~33Hz ● 三级加密程序存储器 ● 32个可编程I/O口线 ● 三个16位定时器/计数器 ● 八个中断源

● 全双工UART串行通道

7

● 低功耗空闲和掉电模式 ● 掉电后中断可唤醒 ● 看门狗定时器 ● 双数据指针 ● 掉电标识符

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有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内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

3.2.7 温度信息的采集

通过DS18B20单线总线的所有执行处理都从一个初始化序列开始。初始化序列包括一个由总线控制器发出的复位脉冲和随后由从机发出的存在脉冲:

(1)复位:首先我们必须对DS18B20芯片进行复位,复位就是由控制器(单片机)给DS18B20单总线至少480us的低电平信号。当18B20接到此复位信号后则会在15~60us后回发一个芯片的存在脉冲。

(2)存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在15~60us后接收存在脉冲,存在脉冲为一个60~240us的低电平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20间的数据通信。

(3)控制器发送ROM指令:双方打完了招呼之后最要将进行交流了,ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。各自功能如下:

Read ROM(读ROM)[33H] (方括号中的为16进制的命令字): 这个命令允许总线控制器读到DS18B20的64位ROM。只有当总线上只存在一个DS18B20的时候才可以使用此指令。

Match ROM(指定匹配芯片)[55H]: 这个指令后面紧跟着由控制器发出了64位序列号,

8

当总线上有多只DS18B20时,只有与控制发出的序列号相同的芯片才能做出反应,其它芯片将等待下一次复位。这条指令适合单芯片和多芯片挂接。

Skip ROM(跳跃ROM指令)[CCH]: 这条指令使芯片不对ROM编码做出反应,在单总线的情况之下,为了节省时间则可以选用此指令。如果在多芯片挂接时使用此指令将会出现数据冲突,导致错误出现。

Search ROM(搜索芯片)[F0H]: 在芯片初始化后,搜索指令允许总线上挂接多芯片时用排除法识别所有器件的64位ROM。

Alarm Search(报警芯片搜索)[ECH]: 在多芯片挂接的情况下,报警芯片搜索指令只对附合温度高于TH或小于TL报警条件的芯片做出反应。只要芯片不掉电,报警状态将被保持,直到再一次测得温度值达不到报警条件为止。

ROM指令为8位长度,功能是对片内的64位光刻ROM进行操作。其主要目的是为了分辨一条总线上挂接的多个器件并作处理。诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的ID号来区别,一般只挂接单个18B20芯片时可以跳过ROM指令(注意:此处指的跳过ROM指令并非不发送ROM指令,而是用特有的一条“跳过指令”)。

(4)控制器发送存储器操作指令:在ROM指令发送给18B20之后,紧接着(不间断)就是发送存储器操作指令了。操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。

Write Scratchpad (向RAM中写数据)[4EH]:这是向RAM中写入数据的指令,随后写入的两个字节的数据将会被存到地址2(报警RAM之TH)和地址3(报警RAM之TL)。写入过程中可以用复位信号中止写入。

Read Scratchpad (从RAM中读数据)[BEH]:此指令将从RAM中读数据,读地址从地址0开始,一直可以读到地址9,完成整个RAM数据的读出。芯片允许在读过程中用复位信号中止读取,即可以不读后面不需要的字节以减少读取时间。

Copy Scratchpad (将RAM数据复制到EEPROM中)[48H]:此指令将RAM中的数据存入EEPROM中,以使数据掉电不丢失。此后由于芯片忙于EEPROM储存处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持10MS,来维持芯片工作。

Convert T(温度转换)[44H]:收到此指令后芯片将进行一次温度转换,将转换的温度值放入RAM的第1、2地址。此后由于芯片忙于温度转换处理,当控制器发一个读时间隙

9