基于单片机的作息时间控制钟系统Word文件下载.docx
《基于单片机的作息时间控制钟系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的作息时间控制钟系统Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
![基于单片机的作息时间控制钟系统Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-12/9/ac7e8713-bced-43db-a308-353661ca208a/ac7e8713-bced-43db-a308-353661ca208a1.gif)
2.2.2扩展部分实现…………………………………………………………8
第3节系统软件设计………………………………………………………………9
软件主程序……………………………………………………………………9
软件主要子程序………………………………………………………………10
3.2.1键盘扫描子程序………………………………………………………10
3.2.2万年历计算子程序……………………………………………………10
3.2.3校时子程序……………………………………………………………11
3.2.4播放语音子程序………………………………………………………12
第四节系统调试…………………………………………………………………14
调试…………………………………………………………………………14
4.1.1软件调试…………………………………………………………………14
4.1.2硬件调试…………………………………………………………………14
4.1.3软硬联调…………………………………………………………………14
第4节结束语………………………………………………………………………15
参考文献………………………………………………………………………………16
数理与信息工程学院04电子信息工程丁楠
指导教师:
余水宝
第一节引言
随着计算机技术的发展和在控制系统中的广泛应用,以及设备向小型化、智能化发展,作为高新技术之一的单片机以其体积小、功能强、价格低廉、使用灵活等优势,显示出了很强的生命力。
进入21世纪以来,开发推出单片机的公司很多,各种高性能单片机芯片市场也异常活跃,新技术的不断采用,更加使单片机的种类、性能以及应用领域不断扩大和提高。
台湾凌阳科技公司推出的16位单片机SPCE061A的问世,使得16位单片机的科技含量及应用跃上一个新的台阶。
因其功耗低,超高型,低成本,功能完整,在国内越来越受到用户的重视和广泛使用。
本设计是一个具有报时功能的作息时间控制钟。
它利用SPCE061A单片机的2Hz时基计时,进行年历计算,并用SPCE061A的语音功能将它报出来;
在进行时间计算,分每加一时,都与规定的作息时间比较,如果相等则进行相应的控制或动作。
由键盘、声音输出模块和指示灯三部分组成,系统扩展三个按键用于报时及校正时间。
现代机关企业,特别是学校要求对时间加以控制,要按时打铃及播放广播,以保证学习与工作的正常运行。
本设计实现了这些功能,给学校及其他机关企业带来方便,整体性好,人性化强、可靠性高,实现了对时间控制的智能化。
1.1作息时间控制钟概述
科技的进步需要技术不断的提升。
一块大而复杂的模拟电路花费了您巨大的精力,繁多的元器件增加了您的成本。
而现在,只需要一块几厘米见方的单片机,写入简单的程序,就可以使您以前的电路简单很多。
相信您在使用并掌握了单片机技术后,不管在您今后开发或是工作上,
一定会带来意想不到的惊喜。
以凌阳16位单片机SPCE061A为核心控制器件的作息时间控制钟,由键盘、声音输出模块和指示灯三部分组成。
它利用SPCE061A单片机的2Hz时基计时,进行年历计算,并用SPCE061A的语音功能将它报出来。
SPCE061A单片机是整个设计的核心控制器件,根据从键盘接受的数据控制整个系统的工作流程。
整体性好,人性化强、可靠性高,实现了对时间控制的智能化,摆脱了传统由人来控制时间的长短的不便,是现代学校必不可少的设备。
本设计任务和主要内容
在进行时间计算,分每加1时,都与规定的作息时间比较,如果相等则进行相应的控制或动作。
假定某高校的作息时间如下所示:
08:
00-------08:
50第一节课
09:
00-------09:
50第二节课
52-------10:
05课间操
10:
:
00第三节课
01:
00第四节课
12:
00-------13:
30午间休息
13:
30-------14:
20第五节课
14:
30-------15:
20第六节课
15:
21-------15:
50播放歌曲
SPCE061A的DAC为电流型输出,经负载电阻R1、三极管Q1放大驱动扬声器SPEAKER放音,SPEAKER可选用4Ω或8Ω扬声器。
IOA15接一个LED,到规定的作息时间用LED闪烁来表示,使用者可根据具体需要来控制电铃、播放提示语等。
凌阳芯片的工作电压为,我们给出了获得工作电压两种方法。
方法1、通过两个二极管连续降压使5v的电压降至,接近供芯片使用,这种方法比较简单,但电压值不是很精确。
见图1-1
图1-1
方法2、通过LM7833可获得准确的电压。
见图1-2
图1-2
第二节系统主要硬件电路设计
硬件设计是整个系统的基础,要考虑的方面很多,主要考虑以下几个因素:
①系统稳定度;
;
②器件的通用性或易选购性;
③软件编程的易实现性;
④系统其它功能及性能指标;
因此硬件设计至关重要。
现从各功能模块的实现逐个进行分析探讨。
2.1单片机控制系统原理
本设计以SPCE061A单片机为控制核心,模块化设计,共分以下几个功能模块:
键盘模块、声音输出模块和指示灯模块。
硬件连接图见图2-1
图2-1硬件连接图
2.2各功能模块分析
2.2.1SPCE061A性能简介
SPCE061A的结构框图如图2-2所示。
其内部结构如下:
[1]CPU
SPCE061A配备了凌阳科技开发的最新的16位微处理器,其内部含有8个寄存器,4个通用寄存器R1~R4,1个程序计数器PC,1个堆栈指针SP,1个基址指针BP,1个段寄存器SR,通用寄存器R3和R4结合组成一个32位寄存器MR,MR可以作为乘法运算和内积运算的目标寄存器。
此外,SPCE061A有3个FIQ中断和14个IRQ中断,1个由指令控制的软中断。
[2]存储器
SPCE061A拥有2kb的SRAM,还有32kb闪存FLASH
ROM,可在ICE工作方式下被编程写入或被擦除。
对闪存设置保密设定后,其内容将不能再通过ICE被读写,从而将程序保密。
[3]时钟
(1)锁相环(PLL)振荡器PLL的作用为系统提供一个实时时钟的基频(32
768Hz),然后将基基频进行倍频,调整至MHz,MHz,MHz,MHz或MHz。
系统默认的PLL自激振荡频率为MHz。
(2)系统时钟其信号源为PLL振荡器。
系统时钟频率(Fosc)和CPU时钟频率(CPUCLK)可通过编程来控制。
默认的Fosc、CPUCLK分别为24576MHz和Fosc/8。
(3)实时时钟32768Hz实时时钟通常用于钟表、实时时钟延时以及其他与时间相关类产品。
SPCE061A通过对32768Hz实时时钟源分频而提供了多种实时时钟中断源。
[4]低电压监测和低电压复位
低电压监测功能可以提供系统内电源电压的使用情况。
4级电压监测低限:
V,V,V和V。
可通过编程来控制,系统默认的电压监测低限为V。
低电压复位当电源电压低于V时,系统会变得不稳定且易出故障,导致电源电压过低的原因很多,如电压的反跳、负载过重、电池能量不足等。
如果系统设置了低电压复位(LVR)功能。
当电源电压低于该值时,会在4个时钟周期之后产生一个复位信号,使系统复位。
[5]中断
SPCE061A具有2种中断方式:
快速中断请求FIQ中断和中断请求IRQ中断。
中断控制器可处理3种FIQ中断和14种IRQ中断,以及1个由指令BREAK控制的软中断。
[6]输入/输出端口(I/O)
I/O是系统与其他设备进行数据交换的接口。
SPCE061A具有2个可编程口:
A口和B口。
A口既是具有可编程唤醒功能的普通I/O口,又可与ADC的多路LINEIN输入共用,B口除了具有普通I/O口的功能外,在特定的管脚上还可以完成一些特殊的功能。
[7]定时器/计数器
SPCE061A提供了2个16位的定时器/计数器:
TimerA和TimerB。
TimerA为通用计数器;
TimerB为多功能计数器。
TimerA的时钟源由时钟源A(高速时钟源)和时钟源B(实时时钟32768Hz)进行“与”操作而形成,TimerB的时钟源仅为时钟源A。
[8]时基
时间基准信号,简称时基信号,来自于32768Hz实时时钟,通过频率选择组合而成。
时基信号发生器的2个选频逻辑TMB1和TMB2为TimerA的时钟源B提供各种频率选择信号并为中断系统提供中断源(IRQ6)信号。
此外,时基信号发生器还可以直接生成2Hz,4Hz,1024Hz,2048Hz以及4096Hz的时基信号,为中断系统提供各种实时中断源(IRQ4和IRQ5)信号。
[9]模数转换器(ADC)和数模转换器(DAC)
SPCE061A有8个10位模数转换通道,其中7个通道用于将模拟量信号转换为数字量信号,可能直接通过引线(IOA[0~6])输入。
另外有一个通道只作为语音输入通道,通过内置有自动增益控制放大器的麦克风通道(MICIN)输入。
实际上可以把ADC看作是一个实现模数信号转换的编码器。
SPCE061A为音频输出提供了2个10位的数模转换器,即DAC1和DAC2。
DAC1,DAC2转换输出的模拟量电流信号分别通过AUD1和AUD2管脚输出。
[10]串行设备接口
串行输入输出端口SIO提供了1个1位的串行接口,用于与其他设备进行数据通讯。
在SPCE061A内通过IOB0和IOB1这2个端口实现与设备进行串行数据交换功能。
2.2.2扩展部分实现
系统扩展三个按键用于报时及校正时间。
凌阳芯片的工作电压为,通过LM7833可获得准确的电压。
第3节系统的软件设计
硬件平台结构一旦确定,大的功能框架即形成。
软件在硬件平台上构筑,完成各部分硬件的控制和协调。
系统功能是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。
因此,软件是本系统的灵魂。
软件采用模块化设计方法,不仅易于编程和调试,也可减小软件故障率和提高软件的可靠性。
同时,对软件进行全面测试也是检验错误排除故障的重要手段。
由于编程多涉及到数值运算,比较复杂,用我们平时常用的汇编语言编程是很难实现的,这里我们选用了移值性好、结构清晰、能进行复杂运算的C语言来实现编程。
软件主程序
程序按照结构化程序设计,所有功能都可通过调用子程序完成,主程序较简单,流程见0。
SPCE061A具有低功耗的睡眠模式,在睡眠模式下功耗电流可降到几个μΑ,这对于用电池供电的系统非常重要,睡眠模式可以通过按键中断唤醒。
图3-1软件主程序流程图
软件主要子程序
3.2.1键盘扫描子程序
由于机械触点的弹性作用,在键被按下或弹起时会出现电压抖动,从最初按下到接触稳定要经过数毫秒的弹跳时间,如图3-2所示。
为保证键识别的准确,必须进行去抖动处理,去抖动有硬件和软件两种方法。
硬件方法就是加去抖动电路,从根本上避免抖动;
软件方法有很多种,本例中主要是利用主程序的循环扫描,主程序循环一次,扫描一次按键,当连续N次扫描到的键值都一样时,则说明是稳定的按键值。
图3-2键盘按下过程
3.2.2万年历计算子程序
利用2Hz中断做时钟源进行计时,每两次中断秒加1,并进行年历计算,年历范围从2001年到3099年。
在进行年历计算时,有平闰年计算问题。
闰年的条件是:
能被400整除,或者能被4整除,但不能被100整除。
万年历调整子程序流程图见3-3
图3-3万年历计算子程序流程图
3.2.3校时子程序
系统扩展了三个按键,TIME键用于报时,由于时间包括年月日和时分,按一次TIME键,则报年月日,再按一次则报时分。
当一直按住TIME键3秒则进入时间校正状态,语音报当前是XXXX年,按UP键年份增加,按DOWN键减少;
按TIME键来切换月、日、时、分,调整完分后,按TIME键确认,语音报出年月日时分。
时间增加的流程如图3-4所示,时间减少的流程与增加的相同,所以不再给出时间减少的流程图。
在校正时间的状态下,如果连续2分钟键没有被按下,则自动退出
图3-4校时子程序流程图
3.2.4播放语音子程序
报时用SACM-A2000播放,该压缩算法压缩比较小(8:
1)所以具有高质量、高码率的特点适用于高保真音乐和语音。
图3-5播放语音子程序流程图
第4节系统调试
因本设计本身要求有稳定性高、免维护、抗干扰能力强等功能,系统调试除了验证数据处理的精度,确保判断的准确性外,同时必须确认各项的功能的正常运行。
4.1调试
根据系统设计方案,本系统的调试共分为三大部分:
硬件调试,软件调试和软硬件联调。
由于在系统设计中采用模块化设计,所以方便了对各电路功能模块的逐级测试,包括对:
键盘操作功能调试,声音输出功能调试,指示灯功能调试等。
单片机软件先在最小系统板上调试,确保工作正常之后,再与硬件系统联调。
最后将各模块组合后整体测试,使系统的所有功能得以实现。
4.1.1硬件调试
电路安装完成后,首先进行检查,即确认电路无虚焊,无短路,无断路,集成元件安装是否正确,之后进行电路功能模块的分级调试,根据电路功能逐级进行:
1)键盘功能调试
2)声音输出功能调试
3)指示灯功能调试
4.1.2软件调试
本系统的软件系统很大,全部用C51来编写,选用一般的伟福仿真器对C51进行调试。
除了语法差错外,当确认程序没问题时,通过直接下载到单片机来调试。
采取的是自下到上的调试方法,即单独调试好每一个模块,然后再连接成一个完整的系统,最后完成一个完整的系统调试。
主要是液晶显示屏实时显示功能的调试。
4.1.3软硬联调
系统做好后,进行系统的完整调试。
主要任务是检验实现的功能及其效果并校正数值。
根据实测数据,逐步校正数据,使测量结果更准确。
结束语
本设计以SPCE061A单片机为核心,是一个具有报时功能的作息时间控制钟。
现代学校要求对时间加以控制,要按时打铃及播放广播,以保证学习与工作的正常运行。
本设计实现了这些功能,给学校及其他机关企业带来方便,整体性好,人性化强、可靠性高,实现了对时间控制的智能化,适应了现代计算机科学技术的发展,给人们带来很大的效益。
这次设计的实现由以往的手动控制变为自动控制,可以自动控制高校的作息时间如下所示:
给学校的学习和工作带来方便!
通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。
创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。
使之不断地战胜别人,超越前人。
同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。
设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。
当然,我的设计还存在着一些缺陷,有待于在将来设计中进一步提高,在此恳请老师批评指正。
这次设计也让我懂得细节决定成败,在以后的设计中我会严格吸取教训,做的更好!
参考文献
[1]胡汉才.单片机原理及其接口技术[M].清华大学出版社,2000年5月第一版.
[2]何立民.单片机高级教程[M].北京航空航天大学出版社,2000年5月第一版.
[3]马忠梅单片机的C程序应用设计北京航空航天大学出版社,1999年
[4]凌阳科技大学计划凌阳单片机在大学生电子竞赛中的应用北京航空航天大学出版社,2005
[5]侯媛彬;
袁益民;
霍汉平凌阳单片机原理及其毕业设计精选北京科学出版社,2006
[6]王明臣数字电路基础北京科学技术文献出版社,1986
[7]高远信号数字处理技术及其应用哈尔滨:
黑龙江科学技术出版社,1983
[8]钟连声电子技术北京:
机械工业,1994
[9]周航慈;
饶运涛单片机程序设计基础北京航空航天大学出版社,
[10]王金汉C程序设计语言上海:
同济大学出版社,