ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:823.86KB ,
资源ID:25674101      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25674101.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(徐海学院单片机课程设计13级.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

徐海学院单片机课程设计13级.docx

1、徐海学院单片机课程设计13级中国矿业大学徐海学院单片机课程设计姓 名:王金成 学 号: 22131128同组人:汤 岚 学 号: 22130257班 级:电气13-3班 实验日期:2015年 12月 教师签字 单片机课程设计之实现数字钟定时姓名:王金成 班级:电气13-3 学号:22131128【摘要】近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用越来越普及了,并且由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,使单片机在电子和一些自动化行业中应用也越来越广泛了,利用单片机实现的电子钟具有编程灵活,并便于功能的扩展,很精确。数字钟的组成模块主要由一个

2、AT89C51单片机模块、用于显示时间的数码管显示模块其他组成部分。红外线遥控是目前使用很广泛的一种通信和遥控技术。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。【关键词】单片机 红外控制 KEIL软件 C语言编程 1.系统设计方案系统设计原理框图2程序设计2.程序设计定时程序设计单片机的定时功能也是通过计数器的计数来实现的,此时的计数脉冲来自单片机的内部,即每个机器周期产生一个

3、计数脉冲,也就是每经过1个机器周期的时间,计数器加1。如果MCS-51采用的12MHz晶体,则计数频率为1MHz,即每过1us的时间计数器加1。这样可以根据计数值计算出定时时间,也可以根据定时时间的要求计算出计数器的初值。MCS-51单片机的定时器/计数器具有4种工作方式,其控制字均在相应的特殊功能寄存器中,通过对特殊功能寄存器的编程,可以方便的选择定时器/计数器两种工作模式和4种工作方式。定时器/计数器工作在方式0时,为13位的计数器,由TLX(X=0、1)的低5位和THX的高8位所构成。TLX低5位溢出则向THX进位,THX计数溢出则置位TCON中的溢出标志位TFX.当定时器/计数器工作于

4、方式1,为16位的计数器。本设计师单片机多功能定时器,所以MCS-51内部的定时器/计数器被选定为定时器工作模式,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器增1。实时时钟实现的基本方法时钟的最小计时单位是秒,但使用定时器的方式1,最大的定时时间也只能达到131ms。我们可把定时器的定时时间定为50ms。这样,计数溢出20次即可得到时钟的最小计时单位:秒。而计数20次可以用软件实现。秒计时是采用中断方式进行溢出次数的累积,计满20次,即得到秒计时。从秒到分,从分到时是通过软件累加并进行比较的方法来实现的。要求每满1秒,则“秒”单元中的内容加1;“秒”单元满60,则“分”单元中的

5、内容加1;“分”单元满60,则“时”单元中的内容加1;“时”单元满24,则将时、分、秒的内容全部清零。实时时钟程序设计步骤(1)选择工作方式,计算初值;(2)采用中断方式进行溢出次数累计;(3)从秒分时的计时是通过累加和数值比较实现的;(4)时钟显示缓冲区:时钟时间在方位数码管上进行显示,为此在内部RAM中要设置显示缓冲区,共6个地址单元。显示缓冲区从左到右依次存放时、分、秒数值;(5)主程序:主要进行定时器/计数器的初始化编程,然后反复调用显示子程序的方法等待中断的到来。(6)中断服务程序:进行计时操作(7)加1子程序:用于完成对时、分、秒的加操作,中断服务程序在秒、分、时加1时共有三种条调

6、用加1子程序,包括三项内容:合字、加1并进行十进制调整、分字。3红外遥控红外接收与发射通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。图1a红外发射原理图图1b 红外接受原理图红外解码红外遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:采用脉宽调

7、制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。4.程序执行方案子函数顺序结构方案将各个模块放入main()函数顺序执行优点:结构简单,代码量少,层次清晰。缺点:实时性差,用户体验较差,中断加顺序方案关键模块采用中断结构,如显示模块,以保证其实时性,对于实时性要求不高的模块采用循环结构嵌套顺序结构。优点:实时性好,运行稳定,抗干扰性能好缺点:结构复杂5.设计工作及设计报告评分表项 目内 容测试结果走时准 确 性程序走时准确,误差小于1s/

8、分钟正 确 性秒、分、时进位正确。优良程度走时完全符合设计要求。闹铃完成程度能够闹铃,能够设置闹铃时间和整点报时。正 确 性能够准时闹铃和整点报时电路图及设计文件完 整 性所要求功能完全实现。规范程度电路符合设计规范,软件符合软件设计要求。抗干扰设计显示抗干扰显示正常,未发现受按键干扰和其他干扰。按键抗干扰按键及时、有效、正确响应。系统抗干扰系统稳定运行4小时未见异常。6.系统调试系统调试包括硬件调试和软件调试两部分,介绍一下我在这两方面遇到一些问题,以及如何解决的。硬件部分 硬件焊接为单片机板,因为是以前焊好的,所以不存在问题。软件部分开始对单片机C语言很陌生,看程序很困难,自己编写不出程序

9、。通过老师的讲解,和以前学过的C语言的知识,与单片机C语言基本相同,有些区别,把其中的区别搞懂了,能够编写简单的程序了。通过程序调试各个部分的功能,完成各功能模块,把程序下载到单片机中,最终实现报时的功能。7.结论与展望结论单片机多功能定时系统理论上能很好的达到了学校教学要求,发挥了单片机在智能化方面的应用。该系统的设计很好的满足当前学校教学的需要,是一个理想的智能化的设计。它具有一个走时精确的实时钟,可以任意设置时间,可以控制时间表的转换,时钟的显示功能等。可以通过按键操作和数字显示。该系统规模小,但是功能较多,操作简单,造价低,应用非常广泛。该系统的设计为向家庭数字化方向发展又前进了一步。

10、同时又扩大了单片机的应用领域。单片机的发展趋势自单片机出现至今,单片机技术已走过了几十年的发展路程。纵观几十年来单片机发展历程可以看出,单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,拉动广泛的应用领域,表现出比微处理器更具个性的发展趋势:(1)采用先进结构以实现高性能在过去的一段时间内,单片机的指令运行速度一直在10MIPS以下,这对于应用在工业控制领域内的单片机来说是足够了,但当单片机被应用在通讯及DSP领域作为高速运算、编码或解码时,就会出现因指令运行速度不够而限制单片机应用的情形,因此提高单片机指令运行速度已经成为迫切需要解决的问题。(2)进一步降低功耗基于

11、80C51的飞利浦低功率、低系统成本微控制器51LPC系列是业界推动单片机向低功耗方向发展的主导单片机系列之一。51LPC系列单片机采用以下三种方法降低功耗:使系统进入空闲模式,在空闲模式下,只有外围器件在工作,任意的复位及中断均可结束空闲模式;使系统进入低功耗模式,在低功耗模式下,振荡器停止工作,是功耗降到最小;使系统进入低电压EPROM操作;EPROM包含了模拟电路,当Vcc高于4V时,可通过软件使这些模拟电路掉电以降低功耗,在上电情况下可使系统退出该模式。(3)采用Flash Memory随着半导体工艺技术的不断进步,MPU的Flash版本逐渐替代了原有的OTP版本。Flash MPU具

12、有以下优点:与多次可编程的窗口式EPROM相比,Flash MPU的成本要低得多;在系统编程能力以及产品生产方面提供了灵活性,因为Flash MPU可在编程后面再次以新代码重新编程;可减少已编程器件的报废和库存;有助于生产厂商缩短设计周期,使终端用户产品和、更具有竞争力。(4)集成更多功能及兼容性目前单片机的另一个发展趋势是在芯片上集成更多的功能。如模拟功能,包括模拟比较器、A/D和D/A转换器等。具体表现在:兼容性作为设计的第一考虑;额外的新的特点是透明的;使用同一种编程器;OTP使器件快速提升及标准化成为可能。(5)强抗干扰能力不断加强抗干扰能力是单片机进一步发展的必然趋势。ST Micr

13、oelectronics公司推出的ST62系列单片机在这方面是佼佼者,其优良的抗干扰能力使得许多大公司将其应用在系统中的关键部件上。许多单片机开发商也正朝着这个方向努力。(6)朝系列化、全面化方向发展各大单片机开发商在增加产品功能的同时效力于形成产品的系列化=全面化,以满足各种控制领域的要求,这也是单片机发展的趋势之一。日本TOSHBA公司开发了从4位到64位的多系列单片机,日立公司也有从4.位到32位的单片机,目前还没有哪个厂家生产的单片机比东芝公司的种类多。随着单片机性能的不断提高,不断的克服和弥补自身的不足。在各种控制领域,单片机将拥有更加广阔的使用天地。在很长的一段时间内,它将一直是工

14、程设计人员的首选控制芯片之一。8.自我总结这次课程设计,我学到了许多,无论是硬件焊接还是软件编程,都有了进一步的提高。初步掌握了单片机C语言的编程。对红外控制,单片机显示等有了更深入的了解。这些离不开老师的指导和同学的互相帮助。我还有许多不足,这些还远远不够,在今后我还要不断的练习。参考文献1 张专成 赵怀勋.单片机测控系统中的监视定时器.武警技术学院.Mar 19972 张景元.基于单片机的多用途定时器的设计与实现.电子工程师2000年第8期3 李洪涛.一种单片机控制的定时打铃器.电子世界.1990年第2期 4 何业军 李超.基于单片机控制的高精度定时打铃器的设计.电子技 术.2001年第7

15、期5 关宗安 仲丛久.基于单片机实现的多路定时控制器的设计.沈阳航空工业学院学报.2004年6月.第21卷第3期6 ATMEL.Microcontroller Data book.20027 Mark1.Montrose.PRINTED Circuit Board Design Techniques for EMC compliance.IEE Press series.20008 范立南.单片微机接口与控制技术.沈阳:辽宁大学出版社.19969 张友德.单片微型机原理、应用与实践.上海:复旦大学出版社.199210李华.MCS-51系列单片机实用接口技术,北京:北京航空航天大学出版社.199

16、311何希庆,高伟.MCS-51单片机原理、实验、实例M.山东:山东大学出版社.198912张毅刚,彭喜源,潭晓昀.MCS-51单片机应用设计M.哈尔滨:哈尔滨工业大学出版社.199713胡汉才.单片机原理及接口技术M,北京:清华大学出版社.199614余永权,单片机与家用电器智能化设计M.北京:电子工业出版社.199515房小翠,王金凤.单片微型计算机与机电接口技术M.北京国防工业出版社.200216皮红梅,李英顺.单片机开发中的定时方法.沈阳石油化工高等专科学校学报.2002年12月17Maxim公司.Newreleases Data Book 1996附录一:单片机板电路原理图附录二:单

17、片机数字钟实物照附录三:程序/#include #include #include delay.h #include decode.hsbit speaker=P25;unsigned int i;unsigned int k; unsigned char timer0h,timer0l,time; /世上只有妈妈好数据表code unsigned char sszymmh= 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1, 6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1, 6,1,1, 5,2,1

18、, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2, 5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0 ; / 音阶频率表 高八位code unsigned char FREQH= 0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, 0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, /1,2,3,4,5,6,7,8,i 0xFC,0xFD,0xFD,0xFD,0xFD,0xFE, 0xFE,0x

19、FE,0xFE,0xFE,0xFE,0xFE,0xFF, ; / 音阶频率表 低八位code unsigned char FREQL= 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6, 0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, /1,2,3,4,5,6,7,8,i 0xEE,0x44, 0x6B,0xB4,0xF4,0x2D, 0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16, ;#define uchar unsigned char#define uint unsigned int#define Font_co

20、de P0 /字符码写地址#define reg_code P2 /字位码写地址unsigned int n;unsigned char min;unsigned char hour;unsigned char second;unsigned char minx;unsigned char hourx;bit flag;code unsigned char tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /共阴数码管 0-9 unsigned char sDis_Shiwei=0xc0;/定义十位unsigned char sDis

21、_Gewei=0xc0; /定义个位unsigned char mDis_Shiwei=0xc0;/定义十位unsigned char mDis_Gewei=0xc0; /定义个位unsigned char hDis_Shiwei=0xc0;/定义十位unsigned char hDis_Gewei=0xc0; /定义个位code uchar Show_Tab= 0xC0,/*0*/ 0xF9,/*1*/ 0xA4,/*2*/ 0xB0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xF8,/*7*/ 0x80,/*8*/ 0x90,/*9*/ 0x88,/*

22、A*/ 0x83,/*b*/ 0xC6,/*C*/ 0xA1,/*d*/ 0x86,/*E*/ 0x8E /*F*/;code uchar S_Tab8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsigned char Display_Buffer8; /显示缓冲区uchar bit_con; /字位码扫描计数器extern uchar key_value; /键值extern bit key_flg; /按钮按下标志extern bit cycle_flg; /循环标志void delay(unsigned int cnt) while(-cnt);

23、void delayx(unsigned char t) unsigned char t1; unsigned long t2; for(t1=0;t1t;t1+) for(t2=0;t28000;t2+) ; TR2=0; void song() RCAP2H=timer0h; RCAP2L=timer0l; TR2=1; delayx(time); void main() delay_nus(1); delay_nms(1); reg_code = 0xff; /关闭显示 for(bit_con=0;bit_con8;bit_con+) Display_Bufferbit_con = Sh

24、ow_Tab0; bit_con = 0; Timer0init();/定时器0初始化 EX0init(); /外部中断初始化 while(1) P0=sDis_Shiwei;/显示十位 P2=0xbf; delay(300);/短暂延时 P0=sDis_Gewei; /显示个位 P2=0x7f; delay(300); P0=mDis_Shiwei;/显示十位 P2=0xef; delay(300);/短暂延时 P0=mDis_Gewei; /显示个位 P2=0xdf; delay(300); if(key_value=0x09) /如果读到K1为0 key_value=0; min+; i

25、f(min=60) min=0; P0=hDis_Shiwei;/显示十位 P2=0xfb; delay(300);/短暂延时 P0=hDis_Gewei; /显示个位 P2=0xf7; delay(300); if(key_value=0x43) /如果读到K1为0 key_value=0; hour+; if(hour=24) hour=0; if(key_value=0x40) /如果读到K1为0 key_value=0; hour-; if(hour=0) hour=23; sDis_Shiwei=tabsecond/10;/十位显示值处理sDis_Gewei=tabsecond%10

26、; /个位显示处理mDis_Shiwei=tabmin/10;/十位显示值处理mDis_Gewei=tabmin%10; /个位显示处理hDis_Shiwei=tabhour/10;/十位显示值处理hDis_Gewei=tabhour%10; /个位显示处理 if(key_value=0x45) /如果读到K1为0 key_value=0; minx=min; hourx=hour; flag=0; if(key_value=0x15) /如果读到K1为0 key_value=0; min-; if(min=0) min=59; if(min=(minx+1) & (hour=hourx) f

27、lag=0; if(min=minx) & (hour=hourx) & flag=0) while(1) TR2=1; /启动定时器 ET2=1; /打开定时器2中断 i=0; while(i100) /音乐数组长度 ,唱完从头再来 k=sszymmhi+7*sszymmhi+1-1; timer0h=FREQHk; timer0l=FREQLk; RCAP2H=timer0h; RCAP2L=timer0l; time=sszymmhi+2; i=i+3; song(); if(key_value=0x47) /如果读到K1为0 key_value=0; flag=1; TR2=0; /启

28、动定时器 ET2=0; /打开定时器2中断 break; break; timer1() interrupt 3unsigned char count;TH1=0xd8;/重新赋值TL1=0xf0;count+;if (count=100) count=0; second+;/秒加1 if(second=60) second=0; min=min+1; if(min=60) min=0; hour=hour+1; if(hour=24) hour=0; second=0; min=0; void t2int() interrupt 5 TR2=0; TF2=0; speaker=!speaker; TR2=1; Decode.c/*/* 红 外 遥 控 解 码 */* CPU & XTAL :89c52 12Mhz */* 支持的红外编码方案: NEC6121 */* 编码格式:引导信号(或连发信号)+地址码+地址码+控制码+控制码反码 */*/#include decode.h/#include display.c#include ABSACC.h

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1