单片机实现的多功能数字电子表设计报告.docx
《单片机实现的多功能数字电子表设计报告.docx》由会员分享,可在线阅读,更多相关《单片机实现的多功能数字电子表设计报告.docx(35页珍藏版)》请在冰豆网上搜索。
单片机实现的多功能数字电子表设计报告
1、目的………............................................................................................2
2、课题内容………………..…………………………………………….2
3、主要技术指标…………………………………………………………2
4、课题分析与硬件电路设计原理………………………………………2
5、系统框图………………………………………………………………4
6、方案选择与元器件选择………………………………………………4
7、软件设计依据与分析…………………………....................................7
8、附录…………………………………………………………………..12
9、附录一设计总结与体会…………………………………………....12
10、附录二元器件清单………………………………………………..13
11、附录三系统调试记录......................................................................14
12、附录四参考文献..............................................................................16
13、附录五整机电路图..........................................................................17
14、附录六源程序清单..........................................................................18
多功能数字电子表设计报告
一、目的
1、使学生将所学的“数字电子技术”和“单片机原理”等相关知识应用于实践。
培养学生理论联系实际的工作作风,提高学生的动手能力。
2、学会用“计算机辅助分析设计软件”对该题目进行分析、设计与仿真,并打印出仿真结果,提高学生对计算机的应用水平。
3、掌握电路的焊接、安装、调试技术,培养学生的工程意识,提高学生分析并解决实际问题的能力,激发学生对产品开发的兴趣,培养学生的科技创新精神。
二、课题内容
设计并制作符合以下要求的“多功能数字电子表”,并撰写分析设计报告。
1、基本要求:
(2010-11-11)
(1)、计时功能:
显示时、分、秒;
(2)、定闹功能;
(3)、秒表功能;
(4)、倒计时功能。
2、提高要求:
(1)、增加“语音报时”功能;
(2)、增加“电子日历”功能。
(3)、数字温度计,
三、主要技术指标
1、计时精度:
±2秒/月;
2、功能设置按键不得多于3个。
四、课题分析与硬件电路设计原理
1、课题分析
在进行课题设计前,我们应该确定一些基本的设计原则,然后再根据这些原则去寻找思路。
在设计系统时,我们主要考虑以下一些原则:
节约元器件,尽量降低系统实现的成本;硬件电路尽量简单,使得硬件实现、问题检查、软件编程以及系统调试的难度都降低;能在软件上实现的,不采取软件实现,使芯片利用率尽可能高;软件设计方案要优化,使得编程尽可能简单,方便仿真与测试;设计方案要和当前的试验平台相应;充分利用各种资料,尽量采用成熟与经典的电路。
要实现一个系统,先要明确该系统的功能和要求。
设计的系统必须要能实现基本的功能,再考虑实现其他的功能。
为了取得比较好的实践成绩,我们必须实现课程设计的提高要求。
我们可以从老师给出来的两个提高方案种选一个或两个都选,也可以自己拟定一个方案。
首先考虑“语音报时”。
由于语音报时要用到语音芯片,使用语音芯片后,系统的电路复杂性增加,不仅在电路设计和硬件电路实现方面难度加大,而且系统调试的难度也加大。
因而,经过综合考虑,我们决定选择仅通过蜂鸣器来实现报时功能。
再考虑“电子日历”。
由于电子表显示时分秒需要六位数码管,日历显示的年月日也可以采用六位显示,而且日历设计在数学原理上和钟表设计一样。
因而,可以在不增加硬件的条件下实现“电子日历”,而系统的功能按键少,必然增加了软件实现的难度;从另外一方面看,这相当于提高了硬件的利用率。
为了锻炼自己,我们决定选择实现“电子日历”功能。
其次,从日常生活中所使用的电子表来看,我们还可以尝试实现“星期”功能,考虑到自身知识积累与时间限制,不选择实现该功能。
综上所述,我们要设计的电子表,其所能实现的功能为:
计时、闹钟、秒表、倒计时、报时与日历。
2、硬件电路设计原理
多功能电子表的实现方式有多种,从软件和硬件的角度来看,可以分成硬件实现方式与软硬件结合的实现方式。
本次课程设计是基于单片机的设计,因而是软硬件结合的实现方式。
软硬件结合的实现方式比硬件实现方式更具有优点。
从电子表的用户角度来看,一个电子表可划分为三个部分:
用户面对的显示界面;用户切换电子表各种功能的按键;用户无需关心的电子表内部控制部分。
从这三方面我们可以综合出本次实践所需要设计的系统的框图,如图1所示。
电子表的关键秒信号的产生与秒计数,利用单片机内部的定时器和计数器,无需外加日历芯片,即可以实现所要求的各种功能。
经过综合考虑,我们选择AT89C52单片机来设计系统。
AT89C52是低电压,高性能CMOS8位单片机片内含8kbytes可反复擦写的只读程序存储器(PEROM)和256bytesd的随机存储器(RAM),与标准MCS—51指令系统及8052产品引脚兼容,片内置8位中央处理器(CPU)和Flash单元。
3个16位定时/计数器,8个中断源,32个可编程I/O口线。
根据AT89C52的引脚功能,我们选择P0口为功能切换输入口(,与)与蜂鸣器驱动信号输出口(),P1口为显示电路的段选输出口,P2口为显示电路的位选输出口。
由于采用数码管显示电路,为使得显示稳定,需对段选信号进行锁存,即在AT89C52的P0口接缓冲器。
为了电路连接方便,应该选择8输入8输出缓冲器。
经过对比各种缓冲器后,选择74LS244。
74LS244是三态输出的八组缓冲器和总线驱动器,能驱动数码管的各段稳定工作。
五、系统框图
图1
单片机:
用于控制电子表的运行;74LS244:
输出缓冲器,用以锁存单片机的显示输出,并驱动七段数码管;LED:
电子表的显示窗口;功能键:
实现电子表的功能切换;蜂鸣器:
用以整点报时、闹铃发声。
六、方案选择与元器件选择
(一)、方案选择
在经过课题分析,确定了系统框图后,还需要确定具体的硬件电路,以便根据确定的硬件电路进行软件设计。
而在软件实现方面,也需要结合具体的硬件电路,选择最优化组合,才能使得编程简单,系统调试方便,出问题也容易发现。
整个电路系统分为六个子模块:
作为控制处理器的单片机(芯片一经选定,其他子模块必须根据他来确定);显示模块;响铃模块;时钟产生模块;复位模块;功能按键模块。
响铃模块、时钟产生模块与复位模块都已经有很多经典的范例供参考,可以很容易确定下来;方案选择的最关键是显示模块和功能按键模块,它不仅关系着软件实现的难以与成败,还对系统调试有着重大影响。
1、显示模块
显示模块采用6位8段共阳数码管进行显示,单片机的P0口位显示输出端口。
数码管显示的关键是要有足够的显示亮度和显示稳定。
因而,选择线缓冲器74LS244作为单片机的显示输出信号的缓冲器。
由74LS244的功能可知,只需要一片该芯片即可以让数码管显示稳定。
要保证数码管有足够的亮度,必须要有合适的位选电压。
因而,让单片机的位选输出信号通过三极管放大再接到数码管上。
2、功能按键模块
系统的各个功能的切换,是通过功能按键实现的。
由于设计要求是功能开关不多于三个,而系统的功能多样,如果选择一个功能开关,显然难以实现诸多系统功能;如果选择两个开关,从数学角度上分析,显然可以实现,但难度大,繁琐,也不方便调试,因而功能开关设置为三个。
按键电路要考虑去抖动的问题。
按键电路去抖动的实现方式有硬件实现与软件实现两种方式。
根据设计原则,应该尽量降低成本和硬件电路的复杂性,提高对单片机的功能利用率。
因而,在设计中采用软件去抖动方式。
确定按键数量后,还需要确定按键所对应的单片机引脚,以便根据引脚进行软件设计。
单片机的RST管脚接复位开关,、、管脚分别接功能开关。
为了叙述方便,以下行文过程均用管脚名称代指对应开关。
复位后,系统的初始状态为:
时钟从00:
00:
00开始计时,日期从08:
03:
14开始计时。
系统的正常显示为时间显示。
由于功能按键少,必须采用按键组合的方式,才能实现系统的所有功能。
按键组合的方式,不仅关系到软件实现的难易程度,还关系系统调试的难易与系统实现的成败。
因而,必须优化按键功能组合方案。
以下是经过优化得到的一个按键功能组合方案,我们采用该方案来进行系统实现:
(1)在时钟状态下,短按,时钟仍然计时,但LED熄灭,晚上防止灯光刺眼,再短按,LED重新点亮。
(2)在时钟状态下长按,时钟单元清零,分单元闪烁,进入分调整,再短按,分加1,短按,分减1;再长按,时单元闪烁,进入时调整状态,再短按,时加1,短按,时减1,再长按,退出时间调整状态,进入时钟显示状态。
(3)在时钟状态短按,显示日期,再长按,进入日期调整状态,短按,日加1,短按,日减1;再长按,进入月调整状态,短按,月加1,短按,月减1;再长按,进入年调整状态,短按,年加1,短按,年减1.再长按,退出日期显示调整状态,进入时钟显示状态。
(4)在时钟状态长按,进入秒表状态,秒表开始计时。
再按下,秒表暂停;再按,秒表清零;再按,秒表又开始计时;再按,秒表清零,秒表清零后短按,可退出秒表功能,回到时钟显示状态。
(5)在时钟状态,短按,进入闹钟/倒计时调整状态,LED显示“00:
00:
灭—”,可分调整,按,分加1,按,分减1;再按,LED显示“00:
00:
—灭”,进入闹钟时调整,按,时加1。
闹钟调整好后,按下,LED显示“00:
00:
—0”,表明闹钟有效;如再按下,LED又显示“00:
00:
—灭:
,表明闹钟无效,再按,LED显示为“00:
00:
00”,开始倒计时。
倒计时到零时,蜂鸣器报警,同时回到时钟状态。
(6)在闹铃响时,可按停闹,不按则闹钟响1分钟。
整点报时,闹铃响的次数即为整点数。
(二)、元器件选择
由于可以通过软件靠一片单片机就能实现对电子表的各种功能的控制,故单片机的外部,只需要接功能切换模块、报时闹铃模块和显示模块。
而时间显示为六位,故需要六只共阳LED。
为了使得LED的显示能够稳定,应该对段选信号进行锁存。
遵循节约成本和布线尽可能简单的原则,采用一片74LS244三态缓冲驱动做LED段选信号的锁存器即可稳定驱动LED工作。
为了使得LED显示的亮度比较强,必须保证位选信号的电压比较大。
单片机的位选输出直接驱动LED工作,可能导致亮度不够,因而把单片机的位选输出经三极管放大后输到LED的阳极,需要6只PNP三极管。
同样,如果直接把报时和闹铃信号直接从单片机输出到蜂鸣器,有可能无法驱动蜂鸣器工作,因而把报时输出信号经三极管放大后才输到蜂鸣器,还需要一个PNP三极管。
而功能切换和调整模块,只需要加4个电平触发开关即可,三个开关进行功能切换与调整,一个用来进行复位。
对应于各个开关和驱动电路,还应选择合适的电阻。
同时,为了使得到单片机的工作时钟,还需要电容和晶振来构成时钟产生电路。
七、软件设计依据与分析
1、软件模块
定时器T0、T1溢出周期为50ms,T0为秒计数用,T1为调整时闪烁及秒表定时用。
、、为调整按键。
单片机的P0口为字符输出口,P2口为扫描口,为蜂鸣器接口。
单片机存储单元分配如下:
50H~55H为闹钟定时单元;60H~65H为秒表计时单元;
79H~75H为显示时间单元;76H~79H为分时计时单元;
40H~45H为倒计时单元;30H~35H为日期单元;
03H标志位为0时,时钟闪烁,为1时秒表状态;
05H标志位为0时,不闹铃,为1时,闹铃;
07H每秒改变一次,使蜂鸣器的间隔鸣叫。
(1)主程序
秒计数由定时器T0中断完成,秒表定时及时调整闪烁由定时器T1中断完成,主程序循环调用显示子程序和查键子程序,当端口有开关按下时,转入相应功能程序。
程序流程如图1。
(2)显示子程序
时间显示子程序每次显示6个连续内存单元的十进制的BCD码数据,首地址在调用显示子程序时先指定内存单元中50H~55H为闹钟定时单元,70H~75H为时钟显示单元,由于采用7段共阳LED动态扫描实现数据显示,所以显示用十进制BCD码数据的对应段码存放在ROM表中。
显示时,先取出内存在地址中的数据,然后查得对应显示用段码从P0口输出,P2口将对应的数码管选通,就能显示该地址单元的数据值,为了显示小数点等特殊字符,显示和计时应采用不同的显示子程序。
(3)定时器T0中断服务程序
定时器T0用于时间计时,定时溢出中断周期为50ms,中断进入后先进行中断初值校正,当中断累计20次(即50ms×20=1s)时,对秒计数单元进行加1操作,时钟计数单元地址分别在70H~71H(秒)、76H~77H(分)、78H~79H(时)中,最大计时值为23时59分59秒。
7A单元存放“熄灭符”数据(#0AH),用于时间调整时的闪烁功能,在计数单元中,采用十进制BCD码计数,满10进位。
T0中断程序流程如图3。
(4)闹钟时间设定功能程序
在正常时钟状态下,若按下口的按键开关,则进入设定闹时调分状态,显示首地址改为50H,LED显示50H~55H中的闹钟设定时间,显示式样为00:
00:
—,其中高2位代表时,低2位代表分,定时闹铃精确到分。
按,分加1,按,时减1,按,闹铃有效,显示式样为00:
00:
—0;再按,闹铃无效,显示式样变为00:
00:
—,再按,调整闹钟时间结束,恢复正常时间显示。
在闹铃时,可按下的按键开关使蜂鸣器停止,不按则蜂鸣器将鸣叫1min后自行终止;在设定闹钟后,若要取消闹时功能,则可按下,当听到“滴”一声时表明已取消了闹铃功能。
(5)定时器T1中断服务程序
T1中断程序用于指示时间调整单元数字的闪亮或秒表计数;在时间调整状态下,每过左右,将对应的调整单元的显示数据换成“熄灭符”数据(#0AH)。
这样,在调整时间时,对应调整单元的显示数据会间隔闪亮;在做秒表计时时,每过10ms中断1次,计数单元加1,每10次为1s。
秒表计数单元地址在60H~61H(10ms)、62H~63H(s)、64H~65H(min),最大计数值为99分秒。
T1中断服务程序流程如图4。
(6)调时功能程序
在时钟状态下长按,时钟单元清零,分单元闪烁,进入分调整,再短按,分加1,短按,分减1;再长按,时单元闪烁,进入时调整状态,再短按,时加1,短按,时减1,再长按,退出时间调整状态,进入时钟显示状态。
(7)秒表功能程序
在时钟状态长按,进入秒表状态,秒表开始计时。
再按下,秒表暂停;再按,秒表清零;再按,秒表又开始计时;再按,秒表清零,秒表清零后短按,可退出秒表功能,回到时钟显示状态。
(8)日期调整功能程序
在时钟状态短按,显示日期,再长按,进入日期调整状态,短按,日加1,短按,日减1;再长按,进入月调整状态,短按,月加1,短按,月减1;再长按,进入年调整状态,短按,年加1,短按,年减1.再长按,退出日期显示调整状态,进入时钟显示状态。
(9)闹钟/倒计时调整程序
在时钟状态,短按,进入闹钟/倒计时调整状态,LED显示“00:
00:
灭—”,可分调整,按,分加1,按,分减1;再按,LED显示“00:
00:
—灭”,进入闹钟时调整,按,时加1。
闹钟调整好后,按下,LED显示“00:
00:
—0”,表明闹钟有效;如再按下,LED又显示“00:
00:
—灭:
,表明闹钟无效,再按,LED显示为“00:
00:
00”,开始倒计时。
倒计时到零时,蜂鸣器报警,同时回到时钟状态。
2、软件设计流程图
图2系统流程图
图3T0中断
图4T1中断
八、附录
附录一设计总结与体会
本次设计实践以单片机应用为基础,由于我们之前没有学习单片机的知识,因而在设计过程中面临一些困难。
为了解决问题,我们一边做系统设计,一边针对性地学习相关知识,排除了设计过程中的各种困难,不仅完成了基本的设计要求,还实现了“电子日历”的提高要求。
通过本次实践,我们不但获取了不少新知识,各方面的能力也得到了综合训练,能力得到了很大的提高。
随着计算机在现代社会的广泛应用,单片机的应用也深入到社会生产的与生活的方方面面,被用在各个控制领域。
基于单片机的电子设计,更成为电子设计领域的重要部分。
我们所学的专业是生物医学工程,这个专业的诸多学习研究方向都要和控制打交道。
因而,我们有必要掌握单片机的基本应用,这对我们的专业技能与能力的提高都大有裨益。
通过这次课程设计实践,我们学到了不少单片机基础知识,也对单片机的初步应用有比较清晰的了解。
我们以前学了各种电路电子知识,也有过一些电路设计实践,而这次设计实践让我们有了更大的收获。
在以往的设计实践中,我们往往都偏向于某一方面知识的运用,而且实践也带有验证性质;而在本次设计实践中,强调了软件和硬件方面的综合应用,是系统级别的设计,真正考验和锻炼我们的能力。
首先,由于课程学习安排上的原因,我们本学期才安排单片机基础与应用的课程,所以在接到设计任务时,我们对单片机知识所知不多,更谈不上应用。
为了完成设计任务,我们针对性地学习单片机的知识,即学即用。
同时,我们不仅利用了图书馆的资料文献,还充分利用了互联网的信息资源。
在硬件实现方面,我们积累了电路排版布线的经验与知识;在软件设计方面,我们充分体验到了模块化设计的好处。
在课题设计过程中,不仅培养了我们的自学能力,也提高了我们的知识综合应用能力,更提升另外我们的综合设计能力。
在课程设计过程中,小组的每一个成员都有明确的分工,同时也密切配合,使得我们能够按时顺利完成设计任务。
一个课题小组就是一个团队,实践的过程体现和培养了我们的团队协作精神和能力。
附录二元器件清单
名称
型号
数量(片/只)
单片机
AT89C52
1
LED共阳极数码管
6
缓冲驱动器
74LS244
1
三极管
PNP型
7
按键
触发式
4
晶振
12MHz
1
电容
30pF
2
电解电容
10uF
1
电阻
1kΩ
3
Ω
7
Ω
1
510Ω
8
基板
1
蜂鸣器
1
附录三系统调试记录
1、LED的亮灭控制
在时钟状态下,短按,LED熄灭;再短按,LED重新点亮。
2、时间调整
在时钟状态下长按,时钟单元清零,分单元闪烁,进入分调整,再短按,分加1,短按,分减1;再长按,时单元闪烁,进入时调整状态,再短按,时加1,短按,时减1,再长按,退出时间调整状态,进入时钟显示状态。
3、日期调整
在时钟状态短按,显示日期,再长按,进入日期调整状态,短按,日加1,短按,日减1;再长按,进入月调整状态,短按,月加1,短按,月减1;再长按,进入年调整状态,短按,年加1,短按,年减1.再长按,退出日期显示调整状态,进入时钟显示状态。
4、秒表测试
在时钟状态长按,进入秒表状态,秒表开始计时。
再按下,秒表暂停;再按,秒表清零;再按,秒表又开始计时;再按,秒表清零,秒表清零后短按,可退出秒表功能,回到时钟显示状态。
5、闹钟/倒计时设置
在时钟状态,短按,进入闹钟/倒计时调整状态,LED显示“00:
00:
灭—”,可分调整,按,分加1,按,分减1;再按,LED显示“00:
00:
—灭”,进入闹钟时调整,按,时加1。
闹钟调整好后,按下,LED显示“00:
00:
—0”,表明闹钟有效;如再按下,LED又显示“00:
00:
—灭:
,表明闹钟无效,再按,LED显示为“00:
00:
00”,开始倒计时。
倒计时到零时,蜂鸣器报警,同时回到时钟状态。
6、闹钟测试
设定一个响闹时间,当时钟显示时间到达该时间,闹铃开始响闹。
在闹铃响时,可按停闹,不按则闹钟响1分钟。
7、时间显示测试
当秒显示单元显示为“59”时,1秒后分显示单元加1,秒显示单元变成“00”;把分显示单元调整为“59”(时显示单元不为23),当分显示单元和秒显示单元都显示为59时,1秒后,时显示单元加1,分显示单元与秒显示单元都变为“00”;把时显示单元调整为“23”,分显示单元调整为“59”,当秒显示单元显示“59”时,1秒后,时、分、秒显示单元都显示为“00”。
8、日期显示测试
当时间显示为“23:
59:
59”时,1秒后,日期自动加1。
附录四参考文献
1、《单片机原理及应用》,丁元杰著,北京航空航天大学出版社2005年8月版。
2、《电子线路Protel99SE实用教程》,王芳主编,中南大学出版社2005年8月第一版。
3、《单片机实用教程》,李勋、刘源编著,北京航空航天大学出版社2000年6月第一版。
4、《综合课程设计汇编》,重庆大学出版社。
附录五整机电路图
附录六程序清单
DISPFIRSTEQU36H
BELLEQU
CONBSEQU2FH
ORG0000H
LJMPSTART
ORG0003H
RETI
ORG000BH
LJMPINTT0
ORG0013H
RETI
ORG001BH
LJMPINTT1
ORG0023H
RETI
QQQQ:
MOVA,#10H
MOVB,79H
MULAB
ADDA,78H
MOVCONBS,A
BSLOOP:
LCALLDS20MS
LCALLDL1S
LCALLDL1S
LCALLDL1S
DJNZCONBS,BSLOOP
CLR08H
AJMPSTART1
START:
MOVR0,#00H
MOVR7,#80H
CLEARDISP:
MOV@R0,#00H
INCR0
DJNZR7,CLEARDISP
MOV20H,#00H
MOV7AH,#0AH
MOV30H,#04H
MOV31H,#01H
MOV32H,#03H
MOV33H,#00H
MOV34H,#08H
MOV35H,#00H
MOV70H,#00H
MOV71H,#00H
MOV72H,#00H
MOV74H,#00H
MOV75H,#00H
MOV76H,#00H
MOV77H,#00H
MOV78H,#00H
MOV79H,#00H
MOVTMOD,#11H
MOVTL0,#0B0H
MOVTH0,#3CH
MOVTL1,#0B0H
MOVTH1,#3CH
SETBEA
SETBET0
SETBTR0
MOVR4,#14H
START22:
MOVDISPFIRST,#70H
START1:
LCALLDISPLAY
JNB,SETMM1
JNB,FUNSS
JNB,TSFUN
JB08H,QQQQ1
AJMPSTART1
FUNSS:
LJMPFUNSS1
QQQQ1:
LJMPQQQQ
TSFUN:
L