基于AT89C51单片机的定时器控制音乐门铃的仿真与实现

时间:2022-03-28 04:29:11

基于AT89C51单片机的定时器控制音乐门铃的仿真与实现

Simulation and Realization of Timer Controlling Music Doorbell Based on AT89C51 Microcontroller

Chen Qiaoli;Feng Yuhu

(①Electronic Information College,Shaanxi Institute of Technology,Xi'an 710300,China;

②The First Institute of Xi'an Northern Hui'an Limited Chemical Industry Company,Xi'an 710302,China)

摘要: AT89C51是由ATMEL公司推出的一种小型单片机,用它实现播放音乐功能的电子门铃,并且外加显示屏显示欢迎信息,是一种新式门铃的设计方案,值得在新式住宅或智能化楼宇系统推广使用。Proteus是一款功能强大的EDA仿真软件,它拥有丰富的仿真库元件,尤其是动态外设的仿真极大地补充了其他仿真软件的不足;而且虚拟工具箱的引入为仿真测试提供了方便。本文以51单片机为例具体分析了该软件在仿真微处理器及其外设硬件方面的、新的、独到的用途。

Abstract: AT89C51 is a small singlechip launched by ATMEL company, and we can use it to achieve electronic doorbell which can play music and has external screen to display welcome message and is a new bell design, so the small microcontroller is worthy of widely using in intelligent residential or in the intelligent building system. Proteus is the powerful EDA simulation software, it has rich simulation components, especially it is the dynamic simulation of peripherals which greatly complements deficiencies of other simulation software; and the introduction of the virtual toolbox provides a convenient test for the simulation. This paper analyzes the new, unique uses of 51 singlechip in small simulation processor and its peripheral hardware.

关键词: 51单片机 电子门铃 LCD1602液晶显示器 Proteus仿真软件 WAVE 6000或Keil 8051

Key words: 51 MCU;timer;buzzer;LCD 1602 liquid crystal display;Proteus simulation software;WAVE 6000 or Keil 8051

中图分类号:TP39文献标识码:A文章编号:1006-4311(2011)20-0146-03

0引言

学习单片机要有强烈的兴趣,还要舍得投资买板子和元器件,单片机带给人的乐趣是无穷的,但想买的元器件往往很贵或购买不便,所以很多设计都没法搞,不过proteus的出现改变了单片机发烧友的经济状况。因为单片机开发板一般都有的硬件,它全部都有了。例如流水灯,数码管,液晶显示器,时钟芯片,温度传感,步进机,继电器,存储器,A/D转换,D/A转换等等。

最近,随着市场上智能化楼宇的不断升温,门铃系统已作为智能化办公室和智能化住宅小区的一个重要组成部分,被各商家和用户所接受。悦耳动听的电子门铃为家庭生活带来欢快的气息,来访的客人只需用手指轻触门外的按钮按键,蜂鸣器就可发出连续“嘟”音或叮咚的音乐门铃声。为了让等待在门口的来客感受到音乐和享有愉悦的心情,减少等待的烦躁,实现有播放音乐功能的电子门铃,并且外加显示屏显示欢迎信息是一个不错的选择。随着单片机技术的飞速发展,通过单片机实现人们对物质生活的享受,将会日益成为我国未来的一个重要发展的方向。

AT89C51是由ATMEL公司推出的一种小型单片机。95年出现在中国市场。其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,可以很快被广大用户接受,其程序的电可擦写特性,使得开发与测试方便又易于实现。本设计主要介绍由AT89C51单片机来构成电子音乐门铃系统的实现技术。

1Proteus仿真功能简介

作为一款EDA(电子设计自动化)仿真软件,Proteus与同类软件有着很多的相似之处。相比之下,其主要的特点有两个:一是对动态元件的实时仿真,它对“人机对话”的模拟增强了系统的真实性;二是虚拟工具箱的功能,它能与仿真同时进行,测量方便而准确。下面着重介绍一下该软件的这两个突出特点。

1.1 实时动态仿真平台Proteus是英国Labcenter electronics公司的EDA工具软件,可以仿真、分析(SPICE)各种模拟器件和集成电路。该软件具有和其它EDA工具一样的原理布图、PCB设计及自动或人工布线和电路仿真功能,此外,它的电路仿真是互动的,可以针对微处理器的应用,实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型对设计进行交互式仿真。

与多数仿真软件相似,Proteus有着数量庞大的元器件仿真模型库。Labcenter公司与相关的第三方软件阵容共同开发了6000多个模拟和数字电路中常用的Spice模型以及各种动态元件,基本元件如电阻、电容、各种二极管、三极管、MOS管、555定时器等;74系列TTL元件和4000系列CMOS元件;存储芯片包括各种常用的ROM、RAM、EEPROM、I2C器件等。在丰富的库元件支持下,原理布图时只要进行相应的调用和连线,通过对每个元件的属性设置完成绘图,然后即可进行仿真和虚拟测量。

Proteus在安装以后,主要由两个程序组成:ARES和ISIS。其中,ISIS是电子系统仿真平台,主要用于电路原理图的设计及进行交互式仿真;ARES是布线编辑软件,主要用于印刷电路板的设计,并产生光绘输出文件。Proteus具有功能强大的ISIS智能原理图输入系统,有丰富的操作菜单和工具。在ISIS编辑区中,能方便地完成单片机系统的硬件设计、软件设计、单片机源代码级调试与硬件仿真功能。

1.2 虚拟工具箱Proteus的虚拟工具箱提供了电路测试中的常用工具和仪器,主要用于在实时仿真的同时对电路参数观测,测量结果随仿真动态变化并显示,可以满足精度要求不是很高的测量分析,对于电路特性的定性分析可以起到事半功倍的效果,大大节约了测试时间和开发成本。Proteus软件提供的虚拟工具和仪器通常有10种:示波器、逻辑分析仪、计数器、串口调试工具、SPI调试工具、I2C调试工具、直交流电压表、直交流电流表、函数发生器、脉冲发生器。下面我们以示波器为例来说明虚拟工具箱的应用。

图1中的电路非常简单,AT89C51中写入的是一个按下按键时,输出驱动蜂鸣器发出叮咚声的简单门铃程序。我们把输出管脚连接到示波器的CH1通道,运行仿真,用鼠标调节虚拟示波器的Y轴幅度和X轴扫描频率,整个调节步骤同真实的示波器完全一样。

1.3 Proteus在单片机仿真中的应用Proteus可以仿真很多常用的微处理器。具体讲,Proteus支持PIC、 8051、AVR、HC11、ARM7/LPC2000等系列多种型号的微处理器、微控制器,仿真时只需在设定元件属性时指定微处理器型号,即可进行实时动态仿真。

2字符型液晶显示器简介

液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。本设计是利用一种叫LCD1602的字符型液晶显示器来进行的,由于采用Protues仿真软件,LCD1602在Protues中对应的元件是LM016L。字符型液晶显示器,具体是一种用5×7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,这里以常用的2行16个字的LCD1602(DM-162与它兼容)模块来介绍它的编程方法。

LCD1602采用标准的14脚接口, 如图2所示。其中:第1脚:VSS为地电源;第2脚:VDD接5V正电源;第3脚:VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度;第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器;第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平,RW为高电平时可以读忙信号,当RS为高电平,RW为低电平时可以写入数据;第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令;第7~14脚:D0~D7为8位双向数据线;第15~16脚:空脚。

LCD1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。且它具有80个字节的CGRAM,可以分两行显示,每一行显示16个ASCII字符,足以应付简单用户界面(主要由数字和英文字母组成)的开发和系统参数的显示。LCD1602内部的控制器共有11条控制指令,如下表1所示。

液晶显示模块可以和单片机AT89C51直接接口,液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,即告诉模块在哪里显示字符。

3系统总体设计

3.1 系统框图设计本设计由硬件电路和软件电路两部分组成。其中音乐门铃的硬件电路由五个部分组成:单片机、时钟与复位电路、选择按键输入电路、音频发生器,扬声器。音乐门铃的硬件电路设计框图如图3所示。

3.2 涉及的知识点

3.2.1 AT89C51单片机芯片简介ATMEL公司生产的AT89C51单片机是把控制应用所必需的基本内容都集成在一个集成电路芯片上。按功能划分包括微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。

AT89C51单片机是一种低功耗且电压性能高的8位单片机,内部除CPU外,还包括128字节RAM,4个8位并行I/O口,6个中断源,2个中断优先权,2个16位可编程定时器/计数器,片内集成4K字节可改变程序的FLASH内存,具有低功耗、速度快、程序擦写方便等优点,完全满足本系统设计的需要。这里选择AT89C51单片机,通过T0定时中断,并配合P1.5引脚输出音频频率连接功放电路,从而驱动扬声器产生电子乐声;通过P3.7引脚接入“播放音乐”按键KEY,以中断方式接入系统,P0口连接LCD显示文字。

3.2.2 音乐门铃的设计方案设计方案具体如下:首先要学会运用AT89C51单片机定时器产生固定频率的方波信号,推动喇叭发出旋律;其次要掌握汇编语言的编程方法,编写延迟程序控制高低电平的持续时间,产生出美妙的音乐。通常一段音乐是由音符和节拍组成的,不同的音符是由相应频率的震动产生,产生不同的音频要有不同固定周期的脉冲信号。要产生音频脉冲,只要算出某一音频的周期(1/F),然后将此周期T除以2,即为半周期的时间。并利用单片机的内部定时器T0,使其工作在计数器模式MODE1,初始化适当的计数值TH0及TL0以及计时此半周期的时间,每当计时到就将输出的脉冲反相,循环操作就可在I/O引脚上产生优美的乐曲。

在客人来访时,只要按一下按钮开关T0,听到的将不再是单调的提示音,而是不同凡响的流行音乐旋律等个性化的电子音乐。本设计可以发出六种音乐,单击按钮开关选择喜欢的音乐。本设计的完成,能使设计人员加深对电子电路、电子元器件、印制电路板等知识的理解,可以独立地对其进行测试和检查。除了能实现预期的功能外,还能熟悉对系统进行快速排错调试,及对出现的功能故障进行分析和修改的技巧;还能够加强对软件编程、焊接技术、相关仪器设备的使用技能等知识的较为全面深入的提高。

4硬件电路设计[图4]和元件清单[表2]

5软件设计

5.1程序流程图程序流程图参考下面图5所示通过液晶显示屏上电复位显示“HELLO,WELCOME TO MY NEW HOME!”,如果有门铃按键信号输入,启动定时器,产生一定频率的脉冲,驱动蜂鸣器发音,播放出不同的乐曲。说明一下,程序里预设了多首乐谱可供循环播放,并设计了对按键的次数计数控制,根据按键的次数的不同可以选择播放不同的音乐。

5.2软件编译本设计的软件实现采用WAVE(伟福)6000或使用Keil 8051中的宏汇编器A51进行。(见图6、图7)

6结束语

由于Proteus ISIS各仿真部件基本上是软件,因此只要电子部件存在,就无需采购、制作电路板的过程。将各电子部件按计划好的硬件电路规则布置、与实现该单片机的软件设计代码恰当结合,就构成了我们的目标模拟系统。

本次设计硬件上的设计实现相对简单一些。原来打算运用LM386组成音频放大电路,提高音乐的播放质量,后来简化为直接由蜂鸣器输出,硬件电路由AT89C51单片机及按键、LCD1602液晶显示屏、蜂鸣器等组成,用杜邦线连接相应的接口而成。通过音乐门铃电路的设计与实现,不仅使我们学会了运用Proteus ISIS软件对音乐门铃电路的电路分析和仿真制作综合训练,加深了对系统控制原理等专业知识的认识和灵活运用。而且进一步掌握了对不同型号单片机的汇编语言编程知识,通过反复查阅资料和不断的总结和对比发现自己的不足和改进之处,例如即使是很小的编码或连线失误也不能放过,为今后制作出多种更好的不同型号单片机的仿真或实现产品奠定了根基,获得启迪。

参考文献:

[1]尹毅峰,刘龙江.单片机原理及应用[M].北京理工大学出版社,2010.

[2]姜志海,赵艳雷.单片机的C语言程序设计与应用[M].电子工业出版社,2008.

[3]高惠芳.单片机原理与应用技术[M].科学出版社,2010.

上一篇:基于B/S模式的实验室管理人员考核系统 下一篇:学生管理系统的设计与实现