定时器控制门铃的系统设计_第1页
定时器控制门铃的系统设计_第2页
定时器控制门铃的系统设计_第3页
定时器控制门铃的系统设计_第4页
定时器控制门铃的系统设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目目 录录 1 课程设计概述.1 1.1 设计目的.1 1.2 设计内容和要求.1 1.3 设计思路.1 1.4 定时器控制门铃的系统设计.1 1.5 定时器控制门铃的功能要求.2 1.6 定时器控制门铃的系统的基本构成及原理.2 2 硬件开发平台.3 3 软件开发平台.4 4 硬件电路的设计.5 4.1 系统硬件总电路构成及原理.5 4.2 主控制部分at89c51 单片机简介.5 4.3 其它器件.7 4.4 定时器控制门铃系统原理图.8 4.5 设计的连线图.9 4.6 硬件资源及其分配.9 4.7 运行步骤.9 4.8 检测与调试.10 5 程序设计.12 5.1 流程图.12 5.2

2、 关键源代码.13 6 运行结果.14 结 论.15 参考文献.16 xxxx 大学课程设计 1 1 课程设计概述 1.1 设计目的 1通过单片机课程设计,熟练掌握 c 语言的编程方法,将理论联系到实践 中去,提高我们的动脑和动手的能力。 2通过定时器控制门铃声响的系统设计,掌握定时/计数器的使用方法,和 简单程序的编写,最终提高我们的逻辑抽象能力。 1.2 设计内容和要求 内容:设计一个能够控制门铃声响的模拟系统。 要求:当按下开关 sp1,单片机产生“叮咚”声从 p3.0 端口输出到喇叭。 具体实施如下: (1)按以上要求制定设计方案,并绘制出系统工作框图,绘制程序流程图; (2)按要求设

3、计单片机的外围电路,给出电路原理图; (3)单片机仿真器、电路板、电源等硬件正确可靠地连接; (4)利用仿真器、单片机及电路板进行程序设计与调试; 1.3 设计思路 1针对本课题的设计任务,进行分析得到:本次设计是利用单片机实现对 扬声器发声的,控制采用按钮操作,at89c51 单片机进行控制,最后使扬声器发 出“叮咚”声音。 2.绘制电路原理图,编写程序,并进行仿真,基本实现扬声器发“叮咚”声 音出功能。 1.4 定时器控制门铃的系统设计 通过编写程序,实现对输出频率的控制,来扬声器的管理。其有两个声音 “叮” 、 “咚” ,因此有两个输出的频率对应于两个不同扬声器声音的输出。最终 利用单片

4、机实现对扬声器发声的控制,采用按钮操作,at89c51 单片机进行控制, xxxx 大学课程设计 2 最后使扬声器发出“叮咚”声音。 1.5 定时器控制门铃的功能要求 本设计能模拟基本的扬声器发出声响的系统,是用中断的方式定时控制不同 频率的输出。 1.5.1 计时显示 定时/计数器工作方式寄存器,定时器采用 t0 定时器工作于模式 0, 位数: 13 位。计数范围:0-8192 。 1.5.2 中断设置 每次定时器中断执行两个不同频率的输出。 1.6 定时器控制门铃的系统的基本构成及原理 单片机设门铃系统,可用单片机直接控制输出频率变化来实现门铃声响可以 广泛的应用到现实门铃的设计中。 图

5、1.1 系统的总体框图 据此,本设计系统以单片机为控制核心,连接成最小系统。系统的总体框图 如上所示。因为它能够准确地划分成时钟频率,与 uart(通用异步接收器/发送器) 量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些 晶振都是准确,常被使用的。当定时器 1 被用作波特率发生器时,波特率工作于方 式 1 和方式 3 是由定时器 1 的溢出率和 smod 的值(pcon.7-双倍速波特率) 决定。 方式 1、3 波特率= (定时器 1 的溢出率) 特殊时,定时器被设在自动重袋模式 xxxx 大学课程设计 3 (模式 2,tmod 的高四位为 0100b

6、),其为:方式 1、 3 波特率= 11.0592mhz 晶振的 一些典型波特率如下: 波特率 smod th1 19200 1 0fdh 9600 0 0fdh 4800 0 0fah 2400 0 0f4h 1200 0 0e8h 300 0 0a0h 2 硬件开发平台 proteus 是世界上著名的 eda 工具(仿真软件),从原理图布图、代码调试到 单片机与外围电路协同仿真,一键切换到 pcb 设计,真正实现了从概念到产品的 完整设计。是目前世界上唯一将电路仿真软件、pcb 设计软件和虚拟模型仿真软 件三合一的设计平台,其处理器模型支持 8051、hc11、pic10/12/16/18

7、/24/30/dspic33、avr、arm、8086 和 msp430 等, 2010 年又增加了 cortex 和 dsp 系列处理器,并持续增加其他系列处理器模型。 在编译方面,它也支持 iar、keil 和 mplab 等多种编译器。 丰富的器件库:超过 27000 种元器件,可方便地创建新元件;智能的器件搜 索:通过模糊搜索可以快速定位所需要的器件;智能化的连线功能:自动连线功 能使连接导线简单快捷,大大缩短绘图时间;支持总线结构:使用总线器件和总 线布线使电路设计简明清晰;可输出高质量图纸:通过个性化设置,可以生成印 刷质量的 bmp 图纸,可以方便地供 word、powerpoi

8、nt 等多种文档使用。 在 proteus 绘制好原理图后,调入已编译好的目标代码文件:*.hex,可 以在 proteus 的原理图中看到模拟的实物运行状态和过程。 xxxx 大学课程设计 4 3 软件开发平台 keil uvision2 是德国 keil software 公司出品的 51 系列兼容单片机 c 语言软 件开发系统,使用接近于传统 c 语言的语法来开发,与汇编相比,c 语言在功能 上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高 了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序 达到接近于汇编的工作效率。keilc51 标准 c

9、 编译器为 8051 微控制器的软件开 发提供了 c 语言环境,同时保留了汇编代码高效,快速的特点。c51 编译器的功能 不断增强, 使你可以更加贴近 cpu 本身,及其它的衍生产品。c51 已被完全集 成到 uvision2 的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实 时操作系统,项目管理器,调试器。uvision2 ide 可为它们提供单一而灵活的开 发环境。 软件系统功能: keil c51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 windows 界面,使您能在很短的时间内就能学会使用 keil c51 来开发单片机应用 程序 。另外重要的一点,只要看一下编

10、译后生成的汇编代码,就能体会到 keil c51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。 在开发大型软件时更能体现高级语言的优越性。 xxxx 大学课程设计 5 4 硬件电路的设计 4.1 系统硬件总电路构成及原理 实现本设计要求的具体功能,可以选用 at89s51 单片机及外围器件构成最小 控制系统,1 个扬声器和 1 个喇叭来组成输出模块等。 主要器件的选择: 器件个数 扬声器1 晶振(11.0592)1 电阻若干 电容2 按铃1 表 4-1 4.2 主控制部分at89c51 单片机简介 89c51 是一种带 4k 字节闪存可编程可擦除只读存储器(fperom

11、flash programmable and erasable read only memory)的低电压、高性能 cmos 8 位微 处理器,俗称单片机。at89c2051 是一种带 2k 字节闪存可编程可擦除只读存储 器的单片机。单片机的可擦除只读存储器可以反复擦除 1000 次。该器件采用 atmel 高密度非易失存储器制造技术制造,与工业标准的 mcs-51 指令集和输 出管脚相兼容。由于将多功能 8 位 cpu 和闪烁存储器组合在单个芯片中, atmel 的 at89c51 是一种高效微控制器,at89c2051 是它的一种精简版本。 at89c 单片机为很多嵌入式控制系统提供了一种

12、灵活性高且价廉的方案。 at89c51 单片机为 40 双列直插芯片,有 4 个 i/o 口,p0 ,p1, p2, p3, 单片机的最小系统如图所示,18 引脚和 19 引脚接时钟脉冲电路,xtal1 接外部 晶振和微调电容的一端,在片内它是震荡器倒相放大器的输入,xtal2 接外部晶 振和微调电容的另一端,在片内她是振荡器倒相放大器的输出端,第 9 脚为复位 输入端,接上电容,电阻及开关后构成上电复位电路,20 引脚为接地端,40 引 xxxx 大学课程设计 6 脚为电源端。如图所示: 图 4.1 晶振与单片机的连接 4.2.1 at89c51 的内部结构功能 中央处理器: 中央处理器(c

13、pu)是整个单片机的核心部件,是 8 位数据宽度的处理器,能 处理 8 位二进制数据或代码,cpu 负责控制、指挥和调度整个单元系统协调的工 作,完成运算和控制输入输出功能等操作。 数据存储器(内部 ram): 数据存储器用于存放变化的数据。at89s51 中数据存储器的地址空间为 256 个 ram 单元,但其中能作为数据存储器供用户使用的仅有前面 128 个,后 128 个 被专用寄存器占用。 程序存储器(内部 rom): 程序存储器用于存放程序和固定不变的常数等。通常采用只读存储器,且其 有多种类型,在 89 系列单片机中全部采用闪存。at89c51 内部配置了 4kb 闪存。 定时/计

14、数器(t0): 定时/计数器用于实现定时和计数功能。at89c51 共有 2 个 16 位定时/计数器。 并行输入输出(i/o)口: xxxx 大学课程设计 7 8051 共有 4 组 8 位 i/o 口(p0、 p1、p2 或 p3),用于对外部数据的传输。 每个口都由 1 个锁存器和一个驱动器组成。它们主要用于实现与外部设备中数据 的并行输入与输出,有些 i/o 口还有其他功能。 全双工串行口: a89c51 内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该 串行口既可以用作异步通信收发器,也可以当同步移位器使用。 时钟电路: 时钟电路的作用是产生单片机工作所需要的时钟脉冲序列

15、。 中断系统: 中断系统的作用主要是对外部或内部的终端请求进行管 at89c51 共有 5 个中 断源,其中有 2 个外部中断源和 3 个内部中断源。 4.2.2 51 单片机的串行接口工作方式 51 单片机的串行接口有四种工作方式。方式 0 是将 sbuf 作为 8 位同步移位 寄存器使用(固定波特率) ;方式 1 是 10 位异步通信方式(可变波特率) ;方式 2 是 11 位异步通信方式(固定波特率) ;方式 3 是 11 位异步通信方式(可变波特 率) 。 图 4.2串行接口与单片机的连接 4.3 其它器件 根据本设计的特点,示波器和扬声器不可少。 示波器和扬声器如下所示。 xxxx

16、大学课程设计 8 图 4.3 示波器的连接 图 4.4 扬声器的连接 4.4 定时器控制门铃系统原理图 本系统以单片机为核心,系统硬件电路由单片机,电阻,晶振,扬声器,喇 叭等组成。其具体的硬件电路总图如图 3.6 所示。 图 4.5 系统原理 xxxx 大学课程设计 9 4.5 设计的连线图 图 4.6 实物图 4.6 硬件资源及其分配 主要用到的硬件:p1.7 口、p3.0 口、扬声器、定时器 t0。 硬件分配: (1)p1.7 口:作为输入口,与按铃(按扭)相连接。 (2)定时/计数器 t0 用来产生 2 种不同周期的中断,分别为 700us 和 1000us。 (3)p3.0 口:作为

17、输出口,与扬声器相连接。 4.7 运行步骤 1.接硬件图接线,为了确保扬声器能够对应发响,实验时,对 p3 口的接线做 了调整。即 p1.7 接按铃,p3.0 接扬声器。 2.开始连续运行,观察扬声器是与程序设计思路对应,如果有偏差,则单步 xxxx 大学课程设计 10 运行或断点运行,进行调试,直至满足设计要求。 3.整体运行,观察扬声器输出是否都符合要求,如果不符合,则再调试。直 至满足要求。 4.8 检测与调试 4.8.1 硬件调试 硬件调试是利用开发系统、基本测试仪器(万用表、示波器等) , 检查用户 系统硬件中存在的故障。 硬件调试可分为静态调试与动态调试两步进行。 静态调试 静态调

18、试是在用户系统未工作时的一种硬件检测。 第一步:目测。检查外部的各种元件或者是电路是否有断点。 第二步:用万用表测试。先用万用表复核目测中有疑问的连接点, 再检测 各种电源线与地线之间是否有短路现象。 第三步:加电检测。给板加电,检测所有的插座或是器件的电源端是否符合 要求的值 第四步:是联机检查。因为只有用单片机开发系统才能完成对用户系统的调 试。 动态调试 动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件 内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及 远、由分到合。 由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路 时,与该元件

19、无关的 器件全部从用户系统中去掉,这样可以将故障范围限定在 某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块 电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。 由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的 分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就 会定位故障元件了。 xxxx 大学课程设计 11 4.8.2 软件调试 软件调试是通过对拥护程序的汇编、连接、执行来发现程序中存在的语法错 误与逻辑错误并加以排除纠正的过程。程序后,编辑,查看程序是否有逻辑的错 误。 xxxx 大学课程设计 12 5 程序

20、设计 5.1 流程图 开始 t0 初始化 t0 开中断 启动 t0 工作 t0 工作完毕否? sp1 按下否? yes no no yes 图 5.2 流程图 xxxx 大学课程设计 13 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 time

21、r0() interrupt 1 /中断 doorbell = doorbell; p+; if(p400) /声音为“叮”的频率初值设定 th0 = (8192-700)/32; tl0 = (8192-700)%32; else if(p800) /声音为“咚”的频率初值设定 th0 = (8192-1000)/32; tl0 = (8192-1000)%32; else tr0 = 0; p = 0; void main() /主程序开始 ie = 0 x82; /中断使能寄存器 ie,相当于 ea=1;et0=1; tmod = 0 x00; /定时/计数器工作方式寄存器 其为 t0 定时器工作方式为 0 th0 = (8192-700)/32; /初值的设定 tl0 = (8192-700)%32; while(1) if(key = 0) /判断按铃是否按下,等于 0 为按下 tr0 = 1; /开启中断 while(key=0); xxxx 大学课程设计 14 6 运行结果 进入 proteus 仿真设计平台,加载仿真电路,点击运行按钮,仿真运行结果如 下图所示。 图 6.1 验仿真结果图 xxxx 大学课程设计 15 结 论 这次课程设计历时两周

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论