电子综合设计多功能数字钟报告附完整程序代码Word格式文档下载.docx
- 文档编号:19059033
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:48
- 大小:1.16MB
电子综合设计多功能数字钟报告附完整程序代码Word格式文档下载.docx
《电子综合设计多功能数字钟报告附完整程序代码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《电子综合设计多功能数字钟报告附完整程序代码Word格式文档下载.docx(48页珍藏版)》请在冰豆网上搜索。
2012/10/2
焊接板子
2012/10/5
2
黄浩
程序设计
2012/10/3
8
彭鑫
硬件参数调试
2012/10/6
4
软件参数调试
5
产品成型
2012/10/10
1
1.2.3工程预算
表1-2工程预算
项目
计算基础(元/个)
单个成品费用(元)
人工费
初检
0.01
焊接原件
0.10
3.10
调试
0.30
成型
0.50
销售
2.00
合计
5.81
材料费
STC12C5A60S2
8.00
晶振(12MHZ)
0.20
晶振(32.768KHZ)
0.70
DS1302
蜂鸣器
四位数码管
8550三极管
0.05
电阻(470)
0.08
电阻(4K7)
电阻(1K)
按键
1.00
电解电容(10uF)
瓷片电容(30PF)
0.02
单层铜板(70mm*70mm)
排针
0.04
插座(DIP40)
0.5
插座(DIP8)
16.10
利润
总成本
21.91
单个成品市场售价
60.00
总利润
38.09
2设计说明
2.1基本设计思想
该多功能数字钟具有时间显示、闹铃、秒表和倒计时4个功能。
采用STC12C5A60S2为主控芯片,时钟芯片则用DS1302,我们只需要把时钟芯片读出的时间送入数码管显示就可以了。
另外,利用单片机的定时中断,就可以轻松实现闹铃、秒表和倒计时功能。
所有功能均可可通过连接在STC单片机上的三个按键来控制。
2.2设计原理
(1)主控芯片为STC12C5A60S2,外接12MHZ的时钟晶,利用单片机的强推挽功能可以直接驱动数码管显示【2V以上为高电平,0.8V以下为低电平】。
(2)时钟。
我们选用DS1302来提供时钟数据,其优点是时间精确,并具有断电保护功能(在断电的情况下:
100uF的电解电容充满电大约可以供其工作一小时,我们选用的1000uF),且读取数据方便。
(3)显示器。
我们选用四位数码管作为显示器,其优点是操作简单,价格便宜。
因为这里要显示的数据较多(有时钟、闹铃、秒表和倒计时的数据),我们选择滚动显示:
年、月、日、时、分、秒的方式显示时钟。
(4)闹铃。
我们选用蜂鸣器作为闹铃,用8550PNP型三极管驱动并用I/O口P1.7来控制闹铃的开关。
如果闹铃设置时间与时钟时间一致,则置P1.7为低电平,闹铃工作,否则不工作。
(5)秒表。
秒表是通过对T0中断次数的计数来设计的,当中断时间满10ms时,秒表小数位的第2位加一,同时中断时间清零;
以此类推,完成秒表的设计。
(6)倒计时。
倒计时的实现和秒表的实现基本原理相同,这里不再重复。
(7)按键。
对多功能数字钟的控制,是通过三个按键来实现的,不同的按键方式,可以控制不同的工作模式。
2.3系统结构框图
图2-1系统结构框图
2.4原理图
图2-2原理图
2.5各单元模块设计原理
2.5.1单片机最小系统
该主控芯片为STC12C5A60S2
(1)由于单片机内部的R/C振荡器存在制造误差和±
%5到±
%10的温漂误差,因此我们选用在外部接高精度的晶体振荡器,参照STC12C5A60S2的PDF和手边的晶振资源,这里我们选用12M的晶振。
晶振硬件电路如图2-1。
(2)由于普通51单片机的I/O口为弱上拉,输出电流小(约为150uA-250uA),点亮的数码管亮度不够,在白天光照充足的情况下,无法正常显示数据。
而要使数码管正常工作,必须外加上拉电阻,这样会增加硬件的体积。
我们考虑到硬件尽量小型化的因素,这里我们选择I/O口具有强推挽输出的单片机STC12C5A60S2,其工作在强推挽模式下的输出电流可达20mA,(注意:
总的输出电流不要超过120mA)能直接驱动数码管工作,达到高亮度显示。
(3)此处复位电路采用上电复位,参照PDF的说明,我们选用10uF的电容和4.7K的电阻,其连接方式如图2-1。
复位时,复位脚的电压变化如图2-2。
从图中我们可以看出,高电平时间约为37ms,满足单片机复位时的高电平时间长短要求。
【复位时间:
RST复位管脚拉高并维持至少24个时钟加10us后,单片机进入复位状态】
图2-3单片机最小系统原理图
图2-4复位脚电压图
2.5.2数码显示模块
该显示器为四位七段共阴数码管,高电平点亮数码管,位选低电平有效。
(1)显示方式为动态显示。
通过不断刷新数码管,即通过一定的时间间隔依次点亮每个数码管,利用人的视觉停留效应来达到显示数字的目的(此设计采用的刷新时间约为200us)。
(2)由于是通过单片机的强推挽功能来驱动该数码管的,为了保证I/0口的安全,我们在P0口加了470Ω的限流电阻,保证I/O口的电流不超过限定值20mA。
连接方式如图2-3(3)数码管操作简单,价格便宜,非常适合学习用。
图2-5数码管显示模块原理图
2.5.3闹铃模块
该闹铃选用蜂鸣器。
(1)由于单片机的驱动能力较弱,即使将I/O口设置为强推挽模式,I/O的输出电流也只有20mA,且总的输出电流不能超过120mA。
另外,考虑到驱动数码管时,我们已经设置了P0的8个I/O口为强推挽模式,因此这里我们采用8550PNP型三极管来驱动蜂鸣器,三极管的接法如图2-4所示。
【三极管参数:
最大集电极电流(A):
0.5A;
直流电增益:
10-60;
功耗:
625mW;
最大集电极发射电压(VCEO):
25】。
(2)闹铃工作方式:
闹铃时间的小时和分钟数用按键设置好后,单片机通过不断地将设置时间与时钟时间进行对比,看两者时间是否相等,以此来决定的闹铃的工作与否。
若设置时间与时钟时间一致,则置I/O口P1.7为低电平,三极管导通,闹铃工作,并可通过任意按键打断闹铃,此时加在闹铃两端的电压约为5V,通过闹铃的电流约为21.1mA,;
否则,加在闹铃两端的电压为零,闹铃不工作。
(3)由于蜂鸣器内部为电感式结构,突然断电时会产生一个感应电动势,使原蜂鸣器两端的电压加倍,其值约为10V,为了防止I/O口被烧坏,我们在P1.7口处串接一个一定阻值的限流电阻,同时考虑到三极管的放大倍数约为10-60且蜂鸣器工作时的电流会有几十mA,我们选择的限流电阻的阻值为1K。
这样设计,即使在三极管基极产生了约10V的电压,由于限流电阻的存在,其通过I/O的最大电流也被限制在10mA左右。
硬件连接如图2-4
图2-6闹铃模块原理图
2.5.4接口和外部控制模块
该模块在P2.0,P2.1,P2.2三个I/O口外接三个按键,单片机通过不断采集P2.0,P2.1,P2.2口的电平高低信息来响应外部操作,ISP用于下载程序。
硬件连接如图2-5。
图2-7接口和外部控制模块原理图
2.5.5时钟模块
该时钟用DS1302芯片来提供时间数据。
(1)由于采用单片机内部时钟来做万年历,程序编写复杂且时钟容易出现时间不准确的现象,故选用独立的时钟芯片来提供时钟数据【实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。
】,以达到设计高精度时钟的目的,参照PDF,晶振选择32.768K。
(2)DS1302采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据,读写数据简单。
(3)电源设计简单,工作电压宽达2.5~5.5V,可以与单片机共用电源。
【1、DS1302采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。
2、当VCC2>
VCC1+0.2V时,由VCC2供电;
当VCC2<
VCC1时,由VCC1供电】
(4)具有断电保护功能。
在断电的情况下,由VCC1供电,供电电压约为4.2V。
【100uF的电解电容充满电大约可以供其工作一小时】。
因此我们选用的2200uF电解电容来代替干电池作为备用电源,已达到减小电路板体积和控制制作成本的目的。
硬件连接如图2-6
图2-8时钟模块原理图
2.6各单元模块设计流程及部分程序代码
2.6.1各单元模块设计流程图
图2-9主程序流程图图2-10中断流程
图2-11闹铃流程图图2-12秒表流程图
图2-13倒计时流程图图2-14修改时钟流程图
2.6.2部分程序代码
见附录3
2.7时钟的操作流程
对该多功能数字钟的控制是通过三个按键实现的,按键如实物图2所示。
从上到下,按键的功能分别是:
(1)第1个按键是KEYSET,按一次,设置模式数加一,可以设置11钟工作模式,对应0-10,初始设置模式为0。
(2)第2个按键是KEYADD,用来实现对时间的增大设置,操作时可以按一次加1,也可以长按按键实现连续加1。
(3)第3个按键是KEYSUB,用来实现对时间的减小设置,操作时可以按一次减1,也可以长按按键实现连续减1。
表2-1多功能数字钟操作详解表
KEYSET设置
模式
显示模式
功能
年
月
日
时
分
秒
设置模式为0时,时间滚动显示。
设置模式为1时,可在对应显示模式下,修改相应时间,以达到调整相应时间的目的。
设置模式为2时,可在对应显示模式下,修改相应时间,以达到调整相应时间的目的。
设置模式为3时,可在对应显示模式下,修改相应时间,以达到设置闹铃小时数的目的。
设置模式为4时,在对应显示模式下,修改相应时间,以达到设置闹铃分钟数的目的。
设置模式为5时,显示秒表初始界面,显示00:
00。
6
设置模式为6时,启动秒表,秒表开始计数。
7
设置模式为7时,秒表停止,此时可以秒表读数。
设置模式为8时,倒计时初始界面,显示60。
9
设置模式为9时,启动倒计时。
10
设置模式为10时,返回滚动显示时间界面。
注释:
1、在某一个显示模式确定的情况下,只能进入与之想对应的的设置模式,才能修该显示模式的数据。
如:
在显示模式为年的时候,你可以将设置模式调到1或2,通过按键加和减就能设置时间的年数;
在显示模式为时的时候,你可以将设置模式调到3,就能设置闹铃的小时数。
2、表中的显示模式下若为0,则表示该参数在与之对应的设置模式下不可设置或不显示。
3调试说明
3.1生产工艺
该多功能数字钟的生产工艺如下:
1)绘图:
用PROTELL99SE绘制原理图和PCB图。
2)打印:
用油墨打印机将PCB打印到油纸上。
3)转印:
将打印好的油纸通过转印机转印到铜板上。
4)腐蚀:
将转印好的铜板用盐酸腐蚀液腐蚀出来。
5)钻孔:
对腐蚀好的铜板钻孔。
6)焊接:
将元件焊接到铜板的对应位置。
(注意:
1、有极性的元件要注意正负极是否放置正确。
2、先安装焊接小元件,再安装焊接大元件)
3.2调试准备工作
1)检查元器件引脚之间有无短路,连接处有无接触不良。
2)未插芯片时,对电路通5V电压,检测电路板各点的电参数是否正常。
正常点参数如表3-2。
3)在通电的情况之下,逐个安装芯片,并依次检测各端口点参数是否正常。
正常电参数如表3-3。
3.3调试方法及步骤
在给电路板供电的情况下,将根据题目要求在KEIL4中设计的程序下进单片机中(注意:
STC12C5A60单片机下载时,需要断电下载),看电路是否能满足设计要求。
各项功能指标如表3-1,检验步骤如下:
(1)时间显示是否正常。
(2)时间校准是否正常。
(3)闹铃是否正常。
(4)秒表是否正常。
(5)倒计时是否正常。
表3-1功能指标表
正常情况
时间显示
时间年、月、日、时、分、秒会分4次滚动显示出来,每一次的显示时间为4S。
显示界面如图5-2
时间校准
可通过三个按键从新设置时间年、月、日、时、分、秒;
设置时间时相应数码管会闪烁并显示设置值。
闹铃
可以在一天24小时内任意设置闹铃;
当到达闹铃时间时,闹铃能正常发声,且当闹铃发声时,可以通过任意按键终止闹铃,若无终止操作,闹铃一分钟后会自动关闭。
秒表
秒表初始界面、计时界面显示正常;
秒表是否精准;
最长秒表时间为99’99S。
倒计时
倒计时初始界面、计时界面显示是否正常;
倒计时是否精准。
时间校准、闹铃、秒表、倒计时的使用方法见表2-1。
3.4调试数据
3.4.1未安装芯片时的点参数
表3-2未安装芯片时电参数表
元件名称
端口电压(V)
电源:
5;
接地:
0;
其他:
主电源:
数码管
全部:
3.4.2安装芯片后的点参数
表3-3安装芯片后电参数表
VCC:
GND:
RESET:
X1:
2.09;
X2:
2.00其他:
(1)外加电源时VCC2:
VCC1:
4.37;
0.69;
0.28;
RST:
4.03-4.08;
I/O:
1.81-1.91;
SCLK:
2.39-2.42
(2)掉电时VCC2:
4.32;
0.67;
0.26;
段码口:
0-5位选口:
3.76-3.93
三极管
未工作时E:
B:
C:
0工作时E:
4.24;
4.99
(1)未工作时V+:
0GND:
0P1.7:
5
(2)工作时V+:
4.99GND:
I:
21.6mA
按键按下:
未按下:
3.5调试结果
(1)显示界面清晰。
(2)可以滚动时间显示年、月、日、时、分、秒。
(3)可以设置当前时间,并具有掉电保持功能。
(4)具有定闹钟(1天之内)、秒表(00:
00-99’99S),倒计时功能(60S)。
3.6注意事项
(1)腐蚀铜板前,应检查转印后的油墨线是否连接可靠。
(2)在完成制板后,先检验电路有无短路再上芯片带电调试。
(3)在安装芯片时和拆除芯片时,注意保护芯片管脚。
(4)不能带电插拔芯片。
(5)编写程序时,如有多个功能模块,应逐个建立子函数,以增加程序的可读性和可移植性。
3.7可能遇到的问题及解决方案
(1)用小电机钻焊孔时,钻机容易把焊盘打掉。
解决办法:
A、钻孔时,尽量细心。
B、画PCB图时,适当调整焊盘大小。
(2)数码管显示时间时,四位数码管中的某位不显示或者显示不正确。
A、检查数码管的管脚电压是否正常。
B、检查段码和位选是否正确。
C、检查程序是否存在逻辑错误。
(3)闹铃程序正常运行,到了设置时间蜂鸣器没有响声。
A、检查三极管的管脚电压是否正常。
B、检查程序是否存在逻辑错误。
(4)秒表及倒计时是否正常运行。
检查程序是否存在逻辑错误。
4总结
在这次多功能数字钟的制作中,让我们更加清楚电子产品电路设计的流程,如何构思程序的编写,以及选择正确核心芯片的重要性,懂得了多功能数字钟的工作原理和设计理念,这次制作使我们对以前大一,大二学习的基础理论知识得到了巩固和加强,提高了自己的动手能力,思维能力,创造能力,增加了大家对电路设计的兴趣,也让我们明白了无论组员多么优秀,如果不团结,这个团队是没有什么作为的。
在制作过程中,我们学到了不少东西,比如,如何操作使用软件Protel99SE画PCB,如何进行安装,调试等。
老师也给予了很多指导,也让我们清楚看到了自己的不足,并及时的要求我们纠正,做为电子专业的学生,通过这次课程的训练,相信我们能够在以后工作学习中,游刃有余,迅速融入到这个行业中来,并通过自己自身的不断努力,一定能走得更高更远。
5附录
附录1PCB图及实物图
图5-1PCBC图
图5-2实物图
附录2材料清单
数量(个)
STC12C5A60S2(DIP40)
DS1302(DIP8)
四位七段共阴数码管
10uF电解电容(RB.1/.2)
1000uF电解电容(RB.2/.32)
插座(DIP14)
附录3完整程序代码
#include"
STC12C5A60S2.h"
#defineucharunsignedchar
#defineuintunsignedint
#defineulongunsignedlong
ucharcodeacLEDCS[]={0xef,0xdf,0xbf,0x7f};
/*位选地址码,低电平有效,接在P2口的高四位*/
ucharcodeacLedSegCode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c};
/*段码*/
ucharacLED[4];
/*显示缓冲区*/
charcScanIndex;
/*位选指针0~3*/
ucharcKey;
/*初始键值*/
ucharcKeyCode;
/*键值*/
uintnDelayKey;
/*键盘延时变量,为定时中断间隔时间的整数倍*/
ucharcLongDelay;
/*按键长按时间*/
bitbStill;
/*是否松键标志*/
charcMode=0;
/*显示方式变量,0~3对应4种方式*/
charcSetMode;
/*功能模式变量,0~10对应11种方式*/
uintnTimer;
/*定时计数变量,为定时中断间隔时间的整数倍*/
uintnTimer1;
/*********闹铃,低电平有效**************/
sbitbBell=P1^7;
/*用I/O口,P1.7控制闹铃*/
ucharcTimeMin=60;
/*闹铃定时时间变量:
分钟*/
ucharcTimeHour=24;
/*闹铃定时时间变量:
小时*/
/*************秒表*************/
uintnStopWatchFlag;
/*秒表计数开始标志,为1有效*/
uintnStopWatch=0;
/*秒表计数,为中断的整数倍:
200uS*/
uintnStopWatchSec=0;
/*秒表的秒*/
uintnStopWatchTenMs=0;
/*秒表的毫秒*/
/*通用位寻址寄存器*/
ucharbdataReg=0;
sbitbReg0=Reg^0;
/*串行移位之用*/
sbitbReg7=Reg^7;
/************DS1302驱动程序*************/
/*引脚定义*/
sbitDS_CLK=P1^1;
/*时钟接口*/
sbitDS_IO=P1^2;
/*数据接口*/
sbitDS_RST=P1^3;
/*时钟复位接口*/
/***************************************************/
typedefstructStrClock/*时钟结构体1*/
{
ucharSec;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 综合 设计 多功能 数字 报告 完整 程序代码