单片机课程设——计叮咚门铃设计

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中南民族大学

计算机科学学院

单片机课程设计报告

课程单片机课程设计设计题目“叮咚”门铃设计年级专业 12级自动化

学号

学生姓名

指导教师

2014年12月12 日

课程设计量化评分标准

指指导导老老师师评评语语::

设计题目:

一、要求

要求按下按键时,蜂鸣器发声,并播出“叮咚-叮咚-叮咚”声音二、分析

系统方案

本次课设就是基于STC89C51单片机的叮咚门铃设计。STC89C51单片机就是一款性能稳定,价格比较低廉的单片机,用STC89C51作为主控芯片,结合外设蜂鸣器电路,可使门铃性能更加优良,更适合用于现实生活中去。在该设计中,STC89C51单片机就是整个系统主控芯片,它主要负责输出不同频率的PWM脉宽,从而控制三极管通断次数来使扬声器发出不同频率的声音。

程序方案

本次课设主要用高级语言C语言来实现,通过KEIL公司的U vision4软件编译,stc-isp下载工具下载程序

三、设计

1、硬件设计(包括设计方案及说明、完整的硬件连接图等)

叮咚门铃硬件电路主要包括单片机最小系统、蜂鸣器电路、按键。电路图如下

蜂鸣器电路

最小系统

总电路图

2、软件编程(包括流程图、完整的汇编源程序及其注释) 软件设计流程图

程序代码

#include

unsigned char obuf1;

unsigned char obuf2;

unsigned int obuf3;

bit stopb;

bit flagb;

void delayms(unsigned int k)

{

unsigned char p;

for(; k > 0; k--)

for(p = 110; p > 0; p--);

}

void main(void)

{

unsigned char i,j, k;

TMOD=0x02; //定时器T0初始化

TH0=0x06;

TL0=0x06;

ET0=1;

EA=1; //允许总中断

while(1)

{

if(P1_0==0) //检测K1按键

{

for(k = 0; k < 3; k++){ // 三重循环

P1=0x00;

for(i=10;i>0;i--)

for(j=248;j>0;j--);

if(P1_0==0)

{

obuf1=0;

obuf2=0;

obuf3=0;

flagb=0;

stopb=0;

TR0=1; //启动定时器T0,发出"叮咚"声

while(stopb==0);

P1=0xff;

}

delayms(3000); // 延时函数

}

}

}

}

void t0(void) interrupt 1 using 0

{

obuf3++;

if(obuf3==3000)

{

obuf3=0;

if(flagb==0)

{

flagb=~flagb;

}

else

{

stopb=1;

TR0=0;

}

}

if(flagb==0)

{

obuf2++;

if(obuf2==1)

{

obuf2=0;

P1_6=~P1_6;

}

}

else

{

obuf1++;

if(obuf1==25)

{

obuf1=0;

P1_6=~P1_6;

}

}

}

3、调试说明

在对系统设计以及实现后,需要进入调试阶段,以检查系统所存在的缺陷,以便排除各种可能出现的不利于系统正常运行的因素。调试本系统主要包括两个步骤:调试控制系统与各个模块就是否能正常工作,其中分为底层硬件调试与上层软件的调试。

底层硬件调试与上层软件的调试就是不可缺少的调试,这两者可分开调试,其间可以没有联系的调试,之后再整体的调试,瞧瞧就是否能够达到我们的预期的效果。这样,我们才能及时的发现问题,从而着手的解决每一个问题。

软件调试

程序经KIEL4软件多次编译无误后,下载到单片机中,通过反复的调试,更改单片机的延时时间与输出频率,找到最适合的频率段与效果最明显的音频,使蜂鸣器发出最悦耳的叮咚声

硬件调试

本次课设只需要用到单片机最小系统,与一个蜂鸣器电路,电路简单,在工艺实习板子上稍作更改即可使用,在原有的工艺实习板子上,去掉多余的杜邦线与数码管,提高系统的稳定性。尝试下载程序,检查无误,电路可正常使用。

按键的测试

用电表对按键进行测试,当按键的按下,跟按键连接的管脚变为低电平,松开变为高电平。按键没有问题。

声音播放测试

由于声音播放模块电路很简单,只需一个高低电平即可进行测试。在测试中,我将声音播放模块的控制引脚给了单独断开,将其对电源进行试触、发现扬声器有声音传出,这说明了声音播放系统就是能正常工作的!

4、设计结果及错误分析

在本次设计中,遇到了很多的问题与困难,由于自己不太擅长软件编程,需要查阅大量的质料,理解语句的意译,不得不得向同学求问,刚开始由于输出700Hz与500Hz的方波,我花了一个多礼拜的时间都无法攻克这个问题,因为频率不对,蜂鸣器发出的叮咚声音不够标准,后来在同学的帮助下,通过不断地调试,终于找到的最适合的频率,

相关文档
最新文档