基于单片机的定时打铃设计 下载本文

西安文理学院本科毕业设计(论文)

本次设计开关部分可以用蜂鸣器也可以用光耦合器。考虑到本设计蜂鸣器足以满足设计要求,而且蜂鸣器比光耦合器便宜,故选用蜂鸣器。

2.4 显示方式选择

在模拟电子和数字电子中,常用显示数据的有数码管和液晶显示器。

方案一:采用LED数码管显示。虽然功耗低,控制简单,但却只能显示数字和一些简单的字符,而且显示信息少,需要较多位的数码管,占用了较多的单片机I/O口,没有较好的人机界面。

方案二:采用LCD液晶显示,可以显示所有字符及自定义字符,并能同时显示多组数据、汉字,字符清晰。由于自身具有控制器,不但可以减轻主单片机的负担,而且可以实现菜单驱动方式的显示效果,达到友好的人机介面。LCD显示能解决LED只能显示数字等几个简单字符的缺点,性能好,效果多,控制方便,显示方式多,且能耗也较少。

这次设计中不仅要显示相应的时钟、定时组别、目前运行的模式,而且还要显示出相应的定时开始时间和结束时间,需要显示的信息较多,所以采用方案二,用LCD显示结果。

2.5 时钟的实现及单片机的选择

时钟的实现可已通过使用时钟芯片或者单片机的定时器实现。下面简要介绍几种方案的特点。单片机仅用于控制蜂鸣器、键盘,实现时钟和定时,用52结构的有STCmel的STC89CXX系列、STC89SXX系列、STC89C20系列(20引脚)或STC的所有单片机都可以实现。根据在学校比较流行的学习单片机是STC89C52系列,而且STC89C52单片机便宜,购买方便,下载方便,故单片机选用STC89C52单片机。

方案一:时钟通过使用时钟芯片来实现,控制部分通过使用单片机来实现。时钟芯片种类非常多,有内置晶振及充电电池的,也有外置晶振的,现在流行的时钟芯片有DS1302、 DS1307、PCF8485、SB2068等。使用时钟芯片可以得到准确的时钟走时,可用简单的程序实现定时开关打铃的定时功能。

方案二:时钟通过单片机的内部定时器来实现时钟。单片机的内部定时器可实现较为精确的时钟走时,定时50毫秒的误差率极小,可达到定时开关打铃的使用要求。使用单片机内部定时器可简化硬件电路,可以节省开支,但是编程的难度有所提高。

本次设采用方案一,使用1302可以得到较为准确的时间信号。

2.6 按键控制部分的实现

时钟时间和定时时间的设置功能可以通过按键来实现。按键的实现可以通过以下两种方案实现:

第4页

西安文理学院本科毕业设计(论文)

方案一:单片机的每一个I/O口与一个按键相连,这样就可以根据扫描I/O口的电平变化实现相关功能。这样可以很简单的实现按键的功能。

方案二:使用矩阵键盘实现。矩阵键盘可以用较少的I/O口实现多个按键功能,能节省更多的I/O口,利于系统扩展功能。但是编程复杂。

根据本定时开关打铃的设置要求,用到6个按键。通过两个方案的对比,方案一的实施办法更符合要求。

第5页

西安文理学院本科毕业设计(论文)

第三章 主要元器件原理及其应用

本章主要讨论了各模块元器件的选择以及元器件的工作原理。

3.1 单片机STC89C52简介

主CPU电路选用STC89C52RC系列单片机,STC89C52RC是采用8052核的ISP(In System Programming)在系统可编程芯片,最高工作时钟频率为80MHz,片内含8K Bytes的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-52指令系统及80C52引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。STC89C52RC系列单片机是单时钟/ 机器周期(1T)的兼容8052 内核单片机,是高速/ 低功耗的新一代8052 单片机,全新的流水线/ 精简指令集结构,内部集成MAX810 专用复位电路。

3.1.1 主要特性

(1)增强型1T流水线/精简指令集结构8052CPU

(2)工作电压:3.4V-5.5V(5V 单片机)/2.0V-3.8V(3V 单片机)

(3)工作频率范围:0-35MHz,相当于普通8052的0~420MHz.实际工作频率可达48MHz.

(4)用户应用程序空间12K/10K/8K/6K/4K/2K字节 (5)片上集成522字节RAM

(6)通用I/O口(27/23个),复位后为:准双向口/弱上拉(普通8052传统I/O口)可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不得超过55mA

(7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片

(8)EEPROM功能 (9)看门狗

(10)内部集成MAX810专用复位电路(外部晶体20M以下时,可省外部复位电路) (11)时钟源:外部高精度晶体/时钟,内部R/C振荡器。用户在下载用户程序时,可选择是使用内部R/C 振荡器还是外部晶体/时钟。常温下内部R/C振荡器频率为:5.2MHz~6.8MHz。精度要求不高时,可选择使用内部时钟,因为有温漂,请选4MHz ~8MHz

(12)有2个16位定时器/计数器

(13)外部中断2路,下降沿中断或低电平触发中断,Power Down 模式可由外部中断低电平触发中断方式唤醒

(14)PWM(4路)/PCA(可编程计数器阵列),也可用来再实现4个定时器或4个外部中断(上升沿中断/下降沿中断均可支持)

第6页

西安文理学院本科毕业设计(论文)

(15)STC89Cc526AD具有ADC功能。10位精度ADC,共8路 (16)通用异步串行口(UART)

(17)SPI同步通信口,主模式/从模式 (18)工作温度范围:0-75℃/-40-+85℃

(19)封装:PDIP-28,SOP-28,PDIP-20,SOP-20,PLCC-32,TSSOP-20(超小封状,定货)

3.1.2 引脚功能说明

管脚图如3.1所示。

图3.1 STC89C52管脚图

P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。

P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个 TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2EX),具体如下表所示。 在flash编程和校验时,P1口接收低8位地址字节。

引脚号第二功能

第7页