1、 单片机单片机课程设计报告课程设计报告 课课 程程 单片机课程设计单片机课程设计 设计设计题目题目 “叮咚”门铃设计叮咚”门铃设计 年级专业年级专业 1212 级自动化级自动化 学学 号号 学生姓名学生姓名 指导教师指导教师 1 设计题目设计题目: 一、一、要求要求 要求按下按键时,蜂鸣器发声,并播出“叮咚-叮咚-叮咚”声音 二、二、分析分析 系统方案系统方案 本次课设是基于 STC89C51 单片机的叮咚门铃设计。STC89C51 单片机是一款性能稳定,价格比较低廉的单片机, 用 STC89C51 作为 主控芯片,结合外设蜂鸣器电路,可使门铃性能更加优良,更适合用 于现实生活中去。在该设计中
2、,STC89C51 单片机是整个系统主控芯 片,它主要负责输出不同频率的 PWM 脉宽,从而控制三极管通断次 数来使扬声器发出不同频率的声音。 程序方案程序方案 本次课设主要用高级语言 C 语言来实现,通过 KEIL 公司的 U vision4 软件编译,stc-isp 下载工具下载程序 三、三、设计设计 1、硬件设计、硬件设计(包括设计包括设计方案及方案及说明、完整的硬件连接图等说明、完整的硬件连接图等) 叮咚门铃硬件电路主要包括单片机最小系统、 蜂鸣器电路、 按键。 电路图如下 2 蜂鸣器电路 最小系统最小系统 3 总电路图总电路图 2、软件编程(包括流程图、完整的汇编源程序及、软件编程(
3、包括流程图、完整的汇编源程序及其注释)其注释) 软件设计流程图软件设计流程图 4 程序程序代码代码 #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; TL
4、0=0x06; 5 ET0=1; EA=1; /允许总中断 while(1) if(P1_0=0) /检测 K1 按键 for(k = 0; k 0;i-) for(j=248;j0;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=
5、0) flagb=flagb; else stopb=1; TR0=0; if(flagb=0) 6 obuf2+; if(obuf2=1) obuf2=0; P1_6=P1_6; else obuf1+; if(obuf1=25) obuf1=0; P1_6=P1_6; 3、调试说明、调试说明 在对系统设计以及实现后,需要进入调试阶段,以检查系统所存 在的缺陷,以便排除各种可能出现的不利于系统正常运行的因素。 调 试本系统主要包括两个步骤: 调试控制系统和各个模块是否能正常工 作,其中分为底层硬件调试和上层软件的调试。 底层硬件调试和上层软件的调试是不可缺少的调试, 这两者可分开调 试,其间
6、可以没有联系的调试,之后再整体的调试,看看是否能够达 到我们的预期的效果。这样,我们才能及时的发现问题,从而着手的 解决每一个问题。 软件调试软件调试 程序经 KIEL4 软件多次编译无误后,下载到单片机中,通过反 复的调试,更改单片机的延时时间和输出频率,找到最适合的频率段 和效果最明显的音频,使蜂鸣器发出最悦耳的叮咚声 7 硬件调试硬件调试 本次课设只需要用到单片机最小系统, 和一个蜂鸣器电路, 电路 简单,在工艺实习板子上稍作更改即可使用, 在原有的工艺实习板子 上, 去掉多余的杜邦线和数码管, 提高系统的稳定性。 尝试下载程序, 检查无误,电路可正常使用。 按键的测试 用电表对按键进行测试,当按键的按