《定时器控制门铃的系统设计.doc》由会员分享,可在线阅读,更多相关《定时器控制门铃的系统设计.doc(17页珍藏版)》请在三一办公上搜索。
1、目 录1 课程设计概述11.1设计目的11.2设计内容和要求11.3 设计思路11.4定时器控制门铃的系统设计11.5定时器控制门铃的功能要求21.6定时器控制门铃的系统的基本构成及原理22 硬件开发平台33 软件开发平台44 硬件电路的设计54.1系统硬件总电路构成及原理54.2 主控制部分AT89C51单片机简介54.3其它器件74.4定时器控制门铃系统原理图84.5设计的连线图94.6 硬件资源及其分配94.7运行步骤94.8检测与调试105 程序设计125.1流程图125.2关键源代码136 运行结果14结 论15参考文献161 课程设计概述1.1设计目的1通过单片机课程设计,熟练掌握
2、C语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。2通过定时器控制门铃声响的系统设计,掌握定时/计数器的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力。1.2设计内容和要求内容:设计一个能够控制门铃声响的模拟系统。要求:当按下开关SP1,单片机产生“叮咚”声从P3.0端口输出到喇叭。具体实施如下:(1)按以上要求制定设计方案,并绘制出系统工作框图,绘制程序流程图;(2)按要求设计单片机的外围电路,给出电路原理图;(3)单片机仿真器、电路板、电源等硬件正确可靠地连接;(4)利用仿真器、单片机及电路板进行程序设计与调试;1.3 设计思路1针对本课题的设计任务,进行分析得到
3、:本次设计是利用单片机实现对扬声器发声的,控制采用按钮操作,AT89C51单片机进行控制,最后使扬声器发出“叮咚”声音。2.绘制电路原理图,编写程序,并进行仿真,基本实现扬声器发“叮咚”声音出功能。1.4定时器控制门铃的系统设计通过编写程序,实现对输出频率的控制,来扬声器的管理。其有两个声音“叮”、“咚”,因此有两个输出的频率对应于两个不同扬声器声音的输出。最终利用单片机实现对扬声器发声的控制,采用按钮操作,AT89C51单片机进行控制,最后使扬声器发出“叮咚”声音。1.5定时器控制门铃的功能要求本设计能模拟基本的扬声器发出声响的系统,是用中断的方式定时控制不同频率的输出。1.5.1计时显示定
4、时/计数器工作方式寄存器,定时器采用T0定时器工作于模式0, 位数:13位。计数范围:0-8192 。1.5.2中断设置每次定时器中断执行两个不同频率的输出。1.6定时器控制门铃的系统的基本构成及原理单片机设门铃系统,可用单片机直接控制输出频率变化来实现门铃声响可以广泛的应用到现实门铃的设计中。图1.1 系统的总体框图据此,本设计系统以单片机为控制核心,连接成最小系统。系统的总体框图如上所示。因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。当定时器1被用作波特率
5、发生器时,波特率工作于方式1和方式3是由定时器1的溢出率和SMOD的值(PCON.7-双倍速波特率)决定。方式1、3波特率= (定时器1的溢出率) 特殊时,定时器被设在自动重袋模式(模式2,TMOD的高四位为0100B),其为:方式1、 3波特率= 11.0592MHZ晶振的一些典型波特率如下:波特率SMOD TH1 19200 1 0FDH 9600 0 0FDH 4800 0 0FAH2400 0 0F4H 1200 0 0E8H 300 0 0A0H2 硬件开发平台Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,
6、真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。丰富的器件库:超过27000种元器件,可方便地创建新元件;智能的器件搜索:通过模糊搜索可以快速定位所需要的器件;智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间;支持总线结构:使用总线器件
7、和总线布线使电路设计简明清晰;可输出高质量图纸:通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。3 软件开发平台Keil uVision2是德国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入
8、,使程序达到接近于汇编的工作效率。KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强, 使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。软件系统功能:Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,使您能在很短的时间内就能学会使用Keil C51来开发单片机应用程序 。另外重要的一点,只要看一
9、下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优越性。4 硬件电路的设计4.1系统硬件总电路构成及原理实现本设计要求的具体功能,可以选用AT89S51单片机及外围器件构成最小控制系统,1个扬声器和1个喇叭来组成输出模块等。主要器件的选择:器件个数扬声器1晶振(11.0592)1电阻若干电容2按铃1表4-14.2 主控制部分AT89C51单片机简介89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Onl
10、y Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51单片机为40双列直插芯片,有4个I/O口,P0 ,P1, P2, P3,单片机的最小系统如图所
11、示,18引脚和19引脚接时钟脉冲电路,XTAL1接外部晶振和微调电容的一端,在片内它是震荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内她是振荡器倒相放大器的输出端,第9脚为复位输入端,接上电容,电阻及开关后构成上电复位电路,20引脚为接地端,40引脚为电源端。如图所示: 图4.1 晶振与单片机的连接4.2.1 AT89C51的内部结构功能 中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。 数据存储器(内部RAM):数据存储器用于存
12、放变化的数据。AT89S51中数据存储器的地址空间为256个RAM单元,但其中能作为数据存储器供用户使用的仅有前面128个,后128个被专用寄存器占用。程序存储器(内部ROM):程序存储器用于存放程序和固定不变的常数等。通常采用只读存储器,且其有多种类型,在89系列单片机中全部采用闪存。AT89C51内部配置了4KB闪存。定时/计数器(T0):定时/计数器用于实现定时和计数功能。AT89C51共有2个16位定时/计数器。并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。 每个口都由1个锁存器和一个驱动器组成。它们主要用于实现与外部设备中数
13、据的并行输入与输出,有些I/O口还有其他功能。全双工串行口:A89C51内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。 时钟电路:时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。中断系统:中断系统的作用主要是对外部或内部的终端请求进行管AT89C51共有5个中断源,其中有2个外部中断源和3个内部中断源。4.2.2 51单片机的串行接口工作方式51单片机的串行接口有四种工作方式。方式0是将SBUF作为8位同步移位寄存器使用(固定波特率);方式1是10位异步通信方式(可变波特率);方式2是11位异步通信方式(固定波特率);方
14、式3是11位异步通信方式(可变波特率)。 图 4.2串行接口与单片机的连接 4.3其它器件根据本设计的特点,示波器和扬声器不可少。示波器和扬声器如下所示。图4.3 示波器的连接图4.4 扬声器的连接4.4定时器控制门铃系统原理图本系统以单片机为核心,系统硬件电路由单片机,电阻,晶振,扬声器,喇叭等组成。其具体的硬件电路总图如图3.6所示。图4.5系统原理4.5设计的连线图图4.6实物图 4.6 硬件资源及其分配主要用到的硬件:P1.7口、P3.0口、扬声器、定时器T0。硬件分配:(1)P1.7口:作为输入口,与按铃(按扭)相连接。(2)定时/计数器T0用来产生2种不同周期的中断,分别为700u
15、s和1000us。(3)P3.0口:作为输出口,与扬声器相连接。4.7运行步骤1.接硬件图接线,为了确保扬声器能够对应发响,实验时,对P3口的接线做了调整。即P1.7接按铃,P3.0接扬声器。2.开始连续运行,观察扬声器是与程序设计思路对应,如果有偏差,则单步运行或断点运行,进行调试,直至满足设计要求。3.整体运行,观察扬声器输出是否都符合要求,如果不符合,则再调试。直至满足要求。4.8检测与调试 4.8.1硬件调试硬件调试是利用开发系统、基本测试仪器(万用表、示波器等), 检查用户系统硬件中存在的故障。硬件调试可分为静态调试与动态调试两步进行。u 静态调试 静态调试是在用户系统未工作时的一种
16、硬件检测。 第一步:目测。检查外部的各种元件或者是电路是否有断点。 第二步:用万用表测试。先用万用表复核目测中有疑问的连接点, 再检测各种电源线与地线之间是否有短路现象。 第三步:加电检测。给板加电,检测所有的插座或是器件的电源端是否符合要求的值 第四步:是联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。 u 动态调试 动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分到合。 由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的 器件全部从用户系统中去掉,这
17、样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。 由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。4.8.2软件调试 软件调试是通过对拥护程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。程序后,编辑,查看程序是否有逻辑的错误。 5 程序设计5.1流程图开始T0初始化T0开中断启动T0工作T0工作完毕否?SP1按下否?YESNONOYES图5.2流
18、程图5.2关键源代码#include #define uchar unsigned char /定义无符号字符型(0255)#define uint unsigned int /定义无符号整型(065535)sbit Key = P17; /声明Key为P1.7端口sbit DoorBell = P30; /声明DoorBell为P3.0端口uint p = 0;void Timer0() interrupt 1 /中断 DoorBell = DoorBell;p+;if(p400) /声音为“叮”的频率初值设定 TH0 = (8192-700)/32;TL0 = (8192-700)%32;
19、else if(p800) /声音为“咚”的频率初值设定 TH0 = (8192-1000)/32;TL0 = (8192-1000)%32;else TR0 = 0;P = 0;void main() /主程序开始 IE = 0x82; /中断使能寄存器IE,相当于EA=1;ET0=1;TMOD = 0x00; /定时/计数器工作方式寄存器 其为T0定时器工作方式为0TH0 = (8192-700)/32; /初值的设定TL0 = (8192-700)%32;while(1) if(Key = 0) /判断按铃是否按下,等于0为按下 TR0 = 1; /开启中断while(Key=0);6
20、运行结果进入Proteus仿真设计平台,加载仿真电路,点击运行按钮,仿真运行结果如下图所示。图6.1验仿真结果图 结 论这次课程设计历时两周,通过团队合作我们在这两周内得到了不小的收获,发现了自己的很多不足,知识体系上的漏洞,看到了我们的实践经验还是比较缺乏,理论联系实际的能力还急需提高。首先选到这个题目,我们就开始收集大量的资料,包括AT89C51芯片的原理,人的听力范围等等与课程设计相关的各类知识,我们了解了很多之前并未注意的知识。拿到元件后,我们花了很长时间查阅各器件的功能引脚,详细了解了每个元件的功能后,为了使布线图美观和布线最优,我们花了半小时用铅笔花布线图,准备工作做好后,万事俱备
21、,很快就把线连好了,正因如此,我们感觉自己的布线还比较美观和简练,只有一根由于遗漏产生的飞线。当焊接完电路,听到清脆的叮咚声时,我们十分高兴。理论联系实际给人对知识一种积极向上的对知识的渴望。此次我们的实验取得了圆满的成功,通过这次实验,开阔了我门的视野,提高了我们的兴趣。在今后的学习中我们仍可以进行这方面的尝试,开拓自己的眼界和操作能力,提高自己的动手制作能力,在动手中学习,再动手中成长收获。参考文献【1】谢维成. 单片微型计算机原理及应用.清华大学出版社,2009. 【2】余锡存 曹国华.单片机原理及接口技术.西安电子科技大学出版社,2011.【3】雷丽文 等.微机原理与接口技术.电子工业出版社,1997.【4】吴黎明, 王桂棠, 洪添胜,等. 单片机原理及应用技术.科学出版社,2005.【5】韩克, 柳秀山, 等. 电子技能与EDA 技术.暨南大学出版社, 2004.【6】张毅坤单片微型计算机原理及应用西安电子科技大学出版社,1998 本文配套源码下载链接: 密码: nu1b