电子计步器的设计.docx
《电子计步器的设计.docx》由会员分享,可在线阅读,更多相关《电子计步器的设计.docx(18页珍藏版)》请在冰豆网上搜索。
电子计步器的设计
金华职业技术学院
信息工程学院
传感器与测控技术实训报告
设计课题:
电子计步器的设计
专业班级:
网络
学生姓名:
学生学号:
指导教师:
1.设计任务描述
1.1设计题目:
电子计步器
(1)系统需求
(2)项目说明
(3)项目综述
1.2前期准备
(1)知识储备
(2)软件使用
(3)关键元件的展示
(4)原件清单
1.2.1设计目的
(1)掌握电子计步器的构成、原理与设计方法;
(2)设计思路
1.2.2基本要求,任务实施
(1)实现计步功能
(2)计时功能
(3)暂停显示时间
(4)重置功能
1.2.3发挥部分
(1)定时功能,定时5秒后闪烁。
(2)二极管原来灯是灭的,5秒后就灭了。
1.2.4总结
(1)系统需求
计步器是一种颇受欢迎的日常锻炼进度的监控器,可以激励人们挑战自己,增加体质,帮助瘦身。
在电子记步器项目学习中,电子计步器随身携带,当人们行走是,利用震动传感器讲姓周的信号转换成开关量信号传送给单片,单片机累积后显示在数码管上。
为了携带方便,因此读者课考虑选择3.3V供电的低功耗单片机STC12L5A60S2,其内部资源及使用方法和STC12L5A60S2一样的,只是工作电压不一样。
本项目主要介绍了数码管的显示设计、振动传感器及C51指针的内容。
(2)项目说明
根据以上需求,电子计步器系统功能被划分为以下模块,如图2.1所示:
项目
说明
学习目标
1、掌握单片机的定时器/计数器及中断系统的应用;
2、掌握按键及数码管的接口设计;
3、掌握振动传感器的接口设计;
4、掌握C51指针的应用;
主要内容
1.振动传感器的接口设计;
2.数码管接口设计;
3.C51指针的应用;
任务实施
1.数据显示模块;
2.步长设定模块
3.步数累计及换算模块;
4.电子计步器系统联调;
(3)项目综述
1.2前期准备
(1)常用的元件封装:
(参考protel学习\protel元件封装)
原理图里用的元件名称:
名称
原理图
PCB图封装
地
Gnd
电源
Vcc
电阻
RES
AXIAL0.3-0.7
可变电阻
POT1/POT2
VR1—VR5
排阻
Con(即可以用sip)
数码管
Dpy
自己封装
电容
CAP
RAD0.1-0.4
有极性电容
electro
RB.2/.4-RB.5/1.0
电解电容
electro
电解电容:
RB.1/.2-RB.4/.8其中.1/.2-.4/.8指电容大小。
一般<100uF用RB.1/.2,100uF-470uF用RB.2/.4,>470uF用RB.3/.6
二极管
DIODE
DIODE-0.4(小功率)DIODE-0.7(大功率)
三极管
NPNPNP
TO-92BTO-92A
整流桥
BRIDGE
D-44,D-37,D-46
单排多针插座
CON
SIP
双列直插元件
根据功能各自定义
DIP40
石英晶体振荡器
Crystal
XTAL1
光敏
PHOTO
开关
SW
AXIAL0.3-0.7或者要自己封装KG
蜂鸣器
Buzzer
Axial0.5或0。
6要么自己画
(2)软件使用
2、原理图库
在原理图的绘制中,要加入一下5个库文件:
MiscellaneousDevices.ddb
ProtelDOSSchematicLibraries.ddb
Sim.ddb
IntelDatabooks.ddb
TIDatabooks.ddb
改变mil和mm
在view中有个一个toggleunit,或者按q键。
、在元件封装编辑中,如何改变snap的间距
Tools–》layeroptions中可以改变。
在PCB布板的时候,要有一个基本库PCBFootprints.lib,如果不小心删掉了,要重新加回去,需要添加genericfootprints目录下的Advpcb即可。
如下图所示。
(3)关键元件的展示
真实的器件模样:
(2)AT89C51引脚图的展示:
(4)原件清单
器件名称
器件型号(规格)
器件数量
单片机
AT89C51
1
开关
SW-SPST
5
晶振
Y11.0592
1
数码管
7SEG_VCC
1
三极管
PNP
5
蜂鸣器
LS1
1
振动传感器接口
Con3
1
LED
Didoe
1
Header4
Con4
1
电阻
1k
1
电阻
5.1K
5
电阻
10K
1
电阻
100欧姆
8
电容
100PF
2
电容
10uf
1
电容
30pf
2
电源接口
BNC
1
接地
ground
8
1.2.1设计思路
根据项目要求,我将电子计步器设计分为两部分,第一部分是计数部分,将震动由传感器变为的脉冲信号整形后输入计数器通过译码器译码最后经显示器显示出跑(走)的步数。
然后在部分通过电路设计一数码管显示时间和步数。
第二部分是计时部分,经过AT89C51单片机的计时功能来实现计时的功能。
在此基础上设计出了一个定时提示的功能,当跑步的时间超过多少时间时,指示灯闪烁,以此提示用户运动的时间差不多了。
若应用健身器时一般不以秒算的话还可以设计出一毫秒级的计时器来方便更加精准的计时。
1.2.2基本要求,任务实施
1.2.3发挥部分
(1)仿真软件图和代码:
基本功能实现
(2)额外功能展示:
定时五秒闪烁,LED灯灭
(3)代码部分展示:
#include
voiddisplay();
unsignedintbuf=0;
unsignedcharflag=0;
unsignedinttime=0;
unsignedcharms=0;
intss=0,lyg=0;
voiddelay(intk);
unsignedcharcodeLED[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};
voidtimeint(void);
voidkey();
/*********************************************/
voiddisplay()
{
intgw,sw,bw,qw;
if(flag==0)
{
buf=buf%10000;
qw=buf/1000;
bw=buf/100%10;
sw=buf/10%10;
gw=buf%10;
}
elseif(flag==1)
{
time=time%10000;
qw=time/1000;
bw=time/100%10;
sw=time/10%10;
gw=time%10;
}
elseif(flag==2)//额外功能
{P1_5=0;
ss++;
if(ss<=10)
{
time=time%10000;
qw=time/1000;
bw=time/100%10;
sw=time/10%10;
gw=time%10;
}
else
{
qw=10;
bw=10;
sw=10;
gw=10;
if(ss==20)
ss=0;
}
}
P2=LED[qw];
P3_0=0;
P3_1=1;
P3_2=1;
P3_3=1;
delay(5);
P3_0=1;
P2=LED[bw];
P3_1=0;
P3_2=1;
P3_3=1;
delay(5);
P3_1=1;
P2=LED[sw];
P3_2=0;
P3_3=1;
delay(5);
P3_2=1;
P2=LED[gw];
P3_3=0;
delay(5);
P3_3=1;
}
/*********************************************/
voiddelay(intk)
{
chari;
charj;
for(i=0;i<124;i++)
for(j=0;j}
/*********************************************/
voidtimeint(void)
{
TMOD=0x10;
TH1=0x3c;
TL1=0xb0;
EA=1;
ET1=1;
}
/*********************************************/
voidTimer_1_isr()interrupt3
{
TH1=0x3c;
TL1=0xb0;
ms++;
if(ms==20)
{
time++;
ms=0;
if(time==9999)
{
time=0;
}
if(time==5)//定时器额外功能部分
{
if(lyg==1)
{
flag=2;
TR1=0;
ms=0;
}
}
}
}
/*********************************************/
voidkey()
{
if(P1_0==0)//按钮1
{
delay(20);
if(P1_0==0)
{
while(P1_0==0)
;
TR1=1;
flag=0;
buf++;
if(buf==9999)
{
buf=0;
}
}
}
if(P1_1==0)//按钮2
{
delay(20);
if(P1_1==0)
{
while(P1_1==0)
;
flag=1;
}
}
if(P1_2==0)//按钮3
{
delay(20);
if(P1_2==0)
{
while(P1_2==0)
;
TR1=0;
}
}
if(P1_3==0)//按钮4
{
delay(20);
if(P1_3==0)
{
while(P1_3==0)
;
flag=0;
buf=0;
time=0;
ms=0;
TR1=0;
}
}
if(P1_4==0)//按钮5
{
delay(20);
if(P1_4==0)
{
while(P1_4==0)
;
lyg=1;
buf=0;
time=0;
ms=0;
}
}
}
/*********************************************/
voidmain()
{
timeint();
while
(1)
{
key();
display();
}
}
(4)PCB原理图和仿真图的展示:
PCB图:
总结:
在这个设计的过程中,我首先确定了设计的基本框架,然后依次下手,由于基础不是很好,虽然确定了基本结构,但还有很多解决不了的问题,最后通过在网上搜集资料和与老师同学的交流,还算是比较顺利的完成了电子计步器的设计。
通过不断的查找资料,向老师同学请教,我学到了很多以前不知道的知识。
使我对以前所学的知识有了更深更系统地认识与了解,对部分元器件的功能与用法能够更熟练的掌握。
通过着次课程设计,我学会了怎样去查找资料,怎样学习别人的成果并将其运用,懂得了怎样选择方案。
通过这次课程设计,我了解了在我设计电路中的计数器、数码管的工作原理,对AT89C51组成用法有了更深的了解。
第二天原理图就基本成型了。
画好原理图后我用了老师教我们的Multisim软件在电脑上连接了电路并试验了,期间发现了不少错误,经过研究后改进了电路,最后基本成功的运行了。
一星期的课设时间有些短,有些地方没有考虑周全,设计还是有很多不足的地方,不是很成熟。
以后还需更熟练地掌握课本上的知识,并扩展衍生知识这样才能对试验中出现的问题进行分析解决。