1单片机课程设计论文设计题目:基于单片机的简易门铃的设计学院:汽车学院班级:电气工程及其自动化3班成员名单:摘要:本文设计了一种基于单片机的“叮咚”门铃,主要有键盘,音频功率放大器,AT89C51单片机,扬声器等构成,通过单片机定时/计数器T0来产生700Hz和500Hz的频率来使扬声器发出“叮咚”声音。1在现代电子产品中,“叮咚”门铃以它成本低,方便快捷等优点占据了很大的市场空间。本课程设计是基于单片机的“叮咚”门铃,通过单片机控制输出频率,由音频功率放大器LM386放大给扬声器,使之发出叮咚声。虽然功能简2单,但是由于其操作简单得到了广泛的应用。2主要技术指标是当按下开关SP1,AT89S51单片机产生“叮咚”声从P1.0端口输出到LM386,经过放大之后送入喇叭。关键词:AT89C51单片机;扬声器;频率;3目录一、设计任务及方案分析……………………………….……41、设计任务及要求………………………………….…..42、总体方案设计…………………………………….…..4二、芯片功能简介………………………………………….…5三、硬件系统电路设计…………………………………….…81、系统板上硬件连线…………………………………...82、硬件连接图及其电路仿真…………………………...9四、软件编程调试及性能分析……………………….……..101、程序流程图……………………………………….…102、汇编源程序…………………………………….……12五、总结……………………………………………………...13参考文献………………………………………………….......14谢辞…………………………………………………………...144一、设计任务及方案分析1、设计任务及要求当按下开关SP1,单片机产生“叮咚”声从P1.0端口输出到经过放大之后送入喇叭。具体实施如下:(1)按以上要求制定设计方案,并绘制出系统工作框图,绘制程序流程图;(2)按要求设计单片机的外围电路,给出电路原理图;(3)单片机仿真器、电路板、电源等硬件正确可靠地连接;(4)利用仿真器、单片机及电路板进行程序设计与调试;2、总体方案设计针对本课题的设计任务,进行分析得到:本次设计是利用单片机实现对扬声器发声的,控制采用按钮操作,AT89C51单片机进行控制,由音频功率放大器进行放大,最后使扬声器发出“叮咚”声音。图1“叮咚”门铃总体设计框图该系统的设计在总体上分为以下几个部分:1单片机控制部分;2音频功率放大器部分;3扬声器输出部分。单片机AT89C51按钮晶振电路音频放大器扬声器5二、芯片功能简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1.主要特性:·与MCS-51兼容·4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道6·低功耗的闲置和掉电模式·片内振荡器和时钟电路2.管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)7P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。84.芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。AT89C51单片机内部结构框图三、硬件系统电路设计1、系统板上硬件连线1)把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPKIN端口上;2)在“音频放大模块”区域中的SPKOUT端口上接上一个8欧或者是16欧的喇叭;3)把“单片机系统”区域中的P3.7/RD端口用导线连接到“独立式键盘”区域中的SP1端口上;92、硬件连接图及其电路仿真10四、软件编程调试及性能分析1、程序流程图1).我们用单片机实定时/计数器T0来产生700HZ和500HZ的频率,根据定时/计数器T0,我们取定时250us,因此,700HZ的频率要经过3次250us的定时,而500HZ的频率要经过4次250us的定时。信号产生的方法:500Hz信号周期为2ms,信号电平为每1ms(4X250us)变反1次,2).在设计过程,只有当按下SP1之后,才启动T0开始工作,当T0工作完毕,回到最初状态。3).“叮”和“咚”声音各占用0.5秒,因此定时/计数器T0要完成0.5秒的定时,对于以250us为基准定时2000次才可以。主程序流程图开始T0初始化T0开中断启动T0工作T0工作完毕否?SP1按下否?YESNOYESNO11该流程图是“叮咚”门铃系统设计,通过单片机的初始化判断按钮是否按下,通过单片机系统进行控制,使扬声器发出“叮咚”声音。T0中断程序框图T0中断入口T05S=0,Flag取反T05S加1中断返回P1.0取反T5HZ=0T7HZ=0Flag=0T7HZ加1T5HZ加1Flag=1T05S=2000吗?T7HZ=3吗?T5HZ=4吗?NOYESNOYESYESNO122、汇编源程序KEYBITP1.7LCNTEQU30HHCNTEQU31HFLAGEQU33H;计数标志ORG00HSJMPSTARTORG0BH;中断入口LJMPINT_T0START:MOVLCNT,#00HMOVHCNT,#00HCLRFLAGMOVTMOD,#01HMOVTH0,#(65536-700)/256;定时0.7毫秒MOVTL0,#(65536-700)MOD256S1:JBKEY,$;等待按键LCALLDELAYJBKEY,$MOVIE,#82HSETBTR0SJMPS1INT_T0:INCLCNTMOVA,LCNTCJNEA,#100,I1MOVLCNT,#00HINCHCNTMOVA,HCNTCJNEA,#05H,I1;输出500个周期方波MOVHCNT,#00HINCFLAG;计数标志加1I1:CPLP1.0MOVA,FLAGCJNEA,#00H,I2LJMPK1;FLAG=0,发高频音I2:MOVA,FLAGCJNEA,#01H,I3LJMPK2;FLAG=1,发低频音I3:MOVA,FLAGCJNEA,#02H,I1MOVFLAG,#00HCLRTR0;FLAG=2,关定时器LJMPRETUNE13K1:MOVTH0,#(65536-700)/256;高频音MOVTL0,#(65536-700)MOD256LJMPRETUNEK2:MOVTH0,#(65536-1000)/256;低频音MOVTL0,#(65536-1000)MOD256RETUNE:RETIDELAY:MOVR5,#20D1:MOVR6,#250DJNZR6,$DJNZR5,D1RETEND五、总结这次课程设计历时两周,通过团队合作我们在这两周内得到了不小的收获,发现了自己的很多不足,知识体系上的漏洞,看到了我们的实践经验还是比较缺乏,理论联系实际的能力还急需提高。首先选到这个题目,我们就开始收集大量的资料,包括AT89C51芯片的原理,人的听力范围等等与课程设计相关的各类知识,我们了解了很多之前并未注意的知识。拿到元件后,我们花了很长时间查阅各器件的功能引脚,详细了解了每个元件的功能后,为了使布线图美观和布线最优,我们花了半小时用铅笔花布线图,准备工作做好后,万事俱备,很快就把线连好了,正因