- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
单片机课程设计报告
课 程 单片机课程设计设计题目 “叮咚”门铃设计年级专业 12级自动化学 号
学生姓名
指导教师
PAGE
PAGE1
设计题目:
一、要求
要求按下按键时,蜂鸣器发声,并播出“叮咚-叮咚-叮咚”声音
二、分析
系统方案
本次课设是基于STC89C51单片机的叮咚门铃设计。STC89C51单片机是一款性能稳定,价格比较低廉的单片机,用STC89C51作为主控芯片,结合外设蜂鸣器电路,可使门铃性能更加优良,更适合用于现实生活中去。在该设计中,STC89C51单片机是整个系统主控芯片,它主要负责输出不同频率的PWM脉宽,从而控制三极管通断次数来使扬声器发出不同频率的声音。
程序方案
本次课设主要用高级语言C语言来实现,通过KEIL公司的Uvision4软件编译,stc-isp下载工具下载程序
三、设计
1、硬件设计(包括设计方案及说明、完整的硬件连接图等)
叮咚门铃硬件电路主要包括单片机最小系统、蜂鸣器电路、按键。电路图如下
_IR3
_I
R3
10k
8550
蚌鸣器
OOA
VCC `tC
T 了
开关
1!PI.O
1!
p·uPI.2Pl.3
Pl.斗
VCC
1(AD1)"-=--.蚁..函
1(AD1)
沁
页且皿)
只心(心3)
40
:C1351
:C1
畸泌
31D2
沁 D3
,A
痉觉二酋
l,叶
-』.
-
F
j
4
肚E
.
.
CXD
P-1,5
沁(4如} 沁D斗 i
Pl.0Pl.1
函 R5T
"_(5心9 34D5 心
".沁)(贞皿 ) JJDl 1;
-··心切 ,2
-··
P3.0(如)
呤SBJ:汀.让RRWE拉131415161]i319
呤
SBJ:
汀.让
R
RW
E
拉
13
14
15
16
1]i3
19
改YST丛
,另4
阳贞九)
百((\PF)
I 30斗话-P茫S_l_}
I 30
环
"Pi.兀入15) pg
"
印",A.I引
P2”Ai3) 妃 BTX6
9
R ·S
BP3.-颈-祁RO)
r.,.心
灯A也]
6YEi
$52
J_
R.叩All) 25 B1下飞立.斗11) 24 B饮4l?.2{AIO) 习 BTN3
P.21A(9) 33 Em.一
贮织战} 丑 B丁1
D
D
巨
-G-K-—D·
最小系统
P0.3.a
P0.3.a如
P0.4:JAD-4-
PO.5AD5
P0.6i心P0.7iAD7
P2.31A11P2.4..lA.12P2.5JA.·1l
p.2.A1斗
P2]-rA.飞
P1-OfT2
P1.1fT2EX
P1之
P3imxD
PJ..芍,亚
P3_1,tTXD
P3_3.flNT1P3A汀OF3_5.iT1
P3.f!.示
P3了]百i万
蜂嘘
2、软件编程(包括流程图、完整的汇编源程序及其注释)软件设计流程图
程序代码
#includeAT89X52.Hunsignedcharobuf1;unsignedcharobuf2;unsignedintobuf3;
bitstopb;bitflagb;
voiddelayms(unsignedintk)
{
unsignedcharp;for(;k0;k--)
for(p=110;p0;p--);
}
voidmain(void)
{
unsignedchari,j,k;
TMOD=0x02;//定时器T0初始化TH0=0x06;
TL0=0x06;
4
PAGE
PAGE5
ET0=1;
EA=1;//允许总中断while(1)
{
if(P1_0==0)//检测K1按键
{
for(k=0;k3;k++){ //三重循环
P1=0x00;
for(i=10;i0;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); //延时函数
}
}
}
}
voidt0(void)interrupt1using0
{
obuf3++;if(obuf3==3000)
{
obuf3=0;if(f
文档评论(0)