24h自动打铃系统设计_第1页
24h自动打铃系统设计_第2页
24h自动打铃系统设计_第3页
24h自动打铃系统设计_第4页
24h自动打铃系统设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机课程设计常熟理电气与自动化工程学院单片机技术课程设计题目:自动打铃系统设计名:t=r.号:级:指导教师: 起止日期:课程设计答辩记录专业班级答辩人课程设计题目记录内容记录人说明:主要记录答辩时所提的问题及答辩人对所提问题的回答课程设计(论文)题目名称 自动打铃系统2013年 4月 11日单片机课程设计 第一章 目录第一章.目录第二章.课程设计任务书第三章.总体设计方案第四章.操作及使用说明第五章.硬件原理图第六章.程序流程第七章.调试.运行及其结果101011第八章.收获及体会第九章.参考文献第十章.代码及元件清单12第二章.单片机技术课程设计任务书题目:自动打铃系统设计、课程设计任务本

2、课题要求应用以 51单片机为核心设计一自动打铃系统,能完成基本计时和显示功能,用LCD显示时间、铃声可用蜂鸣器发出。二、课程设计目的通过本次课程设计使学生掌握:1)掌握以单片机为核心的控制系统的分析和设计的基本方法;2)控制程序的设计及实现方法; 3)提高学生对单片机实时控制系统的设计和调试能力。三、课程设计要求基本计时和显示功能(用24小时制显示)。包括上下午标志,时、分的数字显示,秒信号指 示,并能设置当前时间(含上、下午,时,分能实现基本打铃功能,规定:上午8 : 00上课铃:打铃10秒、停2秒、再打铃10秒。下午5 : 30下课铃:打铃10秒、停2秒、再打铃10秒。四、课程设计内容1、

3、人机对话“界面”的设计;2、内存端口及外设的设置;3、硬件电路原理图、软件清单。第三章.总体设计方案设计方案选择方案一:数字电路设计的自动打铃系统利用函数信号发生器来进行脉冲信号输出,禾U用74160N来设置十进制和六进制的进位输出。利用数码显示器来显示时间,利用或门、与门、非门、与非门、等电路元件进行组合实现 打铃的控制。方案二:基于单片机的自动打铃系统设计单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实1;若秒值达到60,则将其清零,现1秒定时中断,每产生一次中断,存储器内相应的秒值加并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时

4、值达到24 , 则将时字节清零。建立完一个实时时钟后接下来进行定时处理和打铃输出,当主程序检测到有 分进位标志时,便开始比较当前时间与信息时间表上的作息时间是否相同,相同者,则进行报 时处理并控制打铃,不相同则返回主程序。方案确定方案一的设计只能事先设定打铃时间不能完全自动打铃,且在修改打铃时间上存在一定的 困难。而方案二中的设计能完全实现自动化,诠释了我们这次毕业设计的主题。并在修改打铃 时间上有了很大的方便,只需修改一部分程序便能实现不同的需要。因此我选择方案二进行设计。基本方案1.设计课题简要概述自动打铃装置用于工厂、学校等地的时间控制,本设计是按照学校作息时问设定的,模拟4个按钮,分别

5、用来调了电了钟显示时、分、秒。还根据学校的作息时间按时打铃,本系统有 时、调分、秒和强制打铃及强制关铃,以保证始终与标准时间相吻合。首先设计出本系统的硬件基本框图,根据框图设计电气原理图,简要概述基本原理,按照设计技术参数设计出各部分程序。2 .系统软硬件划分由于需要最小系统设计,因此,极大地介于系统的硬件成本,所有能用软件实现的功能都用软件完成,如按键的去抖,采用延时,显示部分用动态显示等,这样硬件部分的设计可以采用单片机最小系统,所谓最小系统时仅有程序存储器和时钟及复位电路的单片机系统。3.单片机选型根据课题的具体内容,任务要求,计时、校时、定时、键盘显示等功能,经多方面考虑,所选系统选项

6、用.与MSC-51单片机完全兼容的 AT89C51低功耗单片机。AT89C5单片机性能介绍AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能 8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。引脚说明:VCC :供电电压。P0 口: P0 口为一个8位漏级开路双向I/O 口,每脚可吸收 8TTL门电流。当 P1 口的管脚 第一次写1时,被定义

7、为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH编程时,P0 口作为原码输入口,当 FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1 口:门电流。P1P1 口是一个内部提供上拉电阻的8位双向I/O 口,P1 口缓冲器能接收输出 4TTL口管脚写入1后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。 在FLASH编程和校验时,P1 口作为第八位地址接收。P2 口: P2 口为一个内部上拉电阻的8位双向I/O 口,P2 口缓冲器可接收,输出4个TTL门电流,当P2 口被写“1时,其管脚被内部

8、上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“ 1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在FLASH编程和校验时接收高八位地址信号和控制信号。P3 口: P3 口管脚是8个带内部上拉电阻的双向I/O 口,可接收输出4个TTL门电流。当P3 口写入“1后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL )这是由于上拉的缘

9、故。P3 口也可作为 AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0 RXD (串行输入口) P3.1 TXD (串行输出口) P3.2 /INTO (外部中断0)P3.3 /INT1 (外部中断1)P3.4 TO (记时器0外部输入)P3.5 T1 (记时器1外部输入)P3.6 /WR (外部数据存储器写选通)P3.7 /RD (外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。89C51各部分引脚图如下:按钮控制模块Pl. 0匚13丿40Pk 1C233Fl. 2匚338Pl* 3匚437Pl. 4匚536MCiSI/Pl. 5匚635HI S0/

10、Pk6匚734SCK/Fk ?匚833RST匚932MD/P3* 0匚1031TKD/F3, 1C11310IHT0/P3. 2匚1229INTl/PM 3C1328TO/P3, 4匚1427T1/P3. 5匚1526WP3.6匚1625RD/P3, r匚1724KTAL2匚1823XT AL IC1922PDIP匚2021V c,cF0. 0 /ADOPiO. 1/ADlPO. 2/AD2 PO. 3/AD3 PI0.4/AD4PO, 5/AD5 PI0.6/AB6PO. 7/kD7 EA/VPP ALE/PG PESHF2 7/A15P2. &/A14P2. 5/kl3F2. 4/kl2P

11、2. 3/AllP2. 2/klOF2. 1/A3P2. 0/A8引脚图第四章.操作及使用说明三个按钮的一端分别接地,另一端接单片机一个端口的三个引脚,当某一个按钮按下的时候,其对应的引脚就由高电平变成低电平,然后通过单片机扫描读取引脚的电平来判断按钮是否按下。采用动态扫描方式,通过一组单片机端口驱动并联在一起的LCD发光管的一端(共阴或共阳端),LCD发光管的另一脚接通用I/O 口,控制其亮灭。该方法能驱动较多的LCD,控制方式较灵活,而且节省单片机的资源S1o o52-i O O53按钮控制蜂鸣器驱动模块LSI蜂鸣器采用无源式蜂鸣器,蜂鸣器根据结构不同分为压电式蜂鸣器和电磁式蜂鸣器;而两种

12、蜂鸣器又分为有源蜂鸣器和无源蜂鸣器,本设计只是通过简单延时达到驱动蜂鸣器的效果。 按钮S1:设置时间及日期按钮。按钮S2:增加。按钮S3:减少。使用过程中注意按钮的使用,及反应时间。显示器模块LJLJ rLMOISLg SS 2 S S gfes g号I寸LCD1062液晶显示是通过液晶显示模块实现的。液晶显示模块(LCD Module)是一种将液晶显示器件,连接件,集成电路,PCB板,背光源,结构件装配在一起的组件。第五章硬件原理图tcuiUM016L4ft 4 Lb nU1191S2930 J=L=*O =L*0=d*POfl/ACflPD.1/*1P0 3/XT应P0J/W3P0 4rA

13、t4P 0j5/PDJ6/flRCTP0ZWt7PEOjnePZIjMP2.2Jft1DPSENP2.3JSV11ALEP2.4Jft12EA堆碍馆P2钿QP2.7JA1SP1DP 3J(VP1 1pS.IjTP12P3.tUP1Jps.s/mP14P3 41DP15P3.&T1piefrJ.HAWRP17P37/RDAreecsi353637亟343332五24as27-36.1012-4114ZjE雀172.34RP1PlSP&AkERRESPAChS第六章.程序流程及代码清单N第七章.调试.运行及其结果实现计时和显示功能(24小时制),可设置当前时间(包括上下午标志,时、分的数字显示),

14、能在上午8: 00和下午5:30定点打铃,且每次打铃均为响铃10s,停2s,再响10s。系统误差及性能分析经测试该简易自动打铃系统在一天内会出现时间误差,该误差主要是由于晶振自身的误差 所造成的。另外在中断的过程中,只会在第一次计时时产生时间的偏移,而它所产生累积误差 很大。第八章.收获体会通过这次课程设计,我得到了很多收获和体会,懂得了团队合作的重要性和必要性,以及 工程设计的大体过程。第一,巩固和加深了对单片机基本知识和理解,提高了综合运用所学知识的能力。第二,增强了根据课程需要选学参考资料,查阅手册,图表和文献资料的自学能力。通过 独立思考,深入研究有关问题,学会自己分析解决问题的方法。

15、第三,通过实际方案的分析比较,设计计算,安装调试等环节,初步掌握了简单使用电路 的分析方法和工程设计方法。第四,在这次课程设计过程中,光有理论知识是不够的,还必须懂一些实践中的知识。所 以在课程设计的实践中,我们应将实验课与课堂教学结合起来,锻炼自己的理论联系实际的能 力与实际动手能力。第五,掌握了比较常用的仪器的使用方法,提高了动手能力。第六,培养了严谨的工作作风和科学态度。总之这次课程设计,培养了我们综合应用单片机原理及应用的理论知识和理论联系实际的 能力;在设计的过程中还培养了我们的团队精神,同学共同协作,一齐商量讨论,解决了许多 问题。这一切都令我们受益匪浅,在今后的学习工作中我们会一

16、如既往,不断努力。经过近几天的课程设计,我充分认识到理论知识和实践结合的重要性。经过半年多的理论基础的学习,我成功的将理论运用如实践,并成功的运用单片机,以前只是在路上看见那些交 通灯,但是并没有认真的研究交通灯的内部控制原理,还有单片机上那些芯片的功能和引脚图 平常也不是常接触,通过这次系统设计让我清楚如果想做一个产品该怎样思考。此次课程设计 持续的时间较长,对我的耐心是一种极大的考验,同时学校的支持力度也应该加强,而不应该 对学生的提问表示不解,对有些程序的编写要及时的给予指导,当然学生也要积极的配合老师 的工作,努力将自己所学的知识尽可能的运用到对方案的设计中去。感谢王小英老师的细心指导

17、、和伙伴之间的配合。第九章.参考文献1张鑫.单片机原理及应用M.北京:电子工业出版社,2005.8.2康光华.电子技术基础.模拟部分M.北京:高等教育出版社,2006.1.3康光华.电子技术基础.数字部分M.北京:高等教育出版社,2006.1.4祁伟,杨亭.单片机C51程序设计教程与实验M.北京:北京航空航天大学出版社, 2006.楼然苗.李光飞.单片机课程设计指导M.北京:北京航空航天大学出版社,2007.4单片机学习网 HYPERLINK 单片机课程设计 单片机课程设计 /LCD使能端/LCD数据/指令(H/L )选择端/定义功能按键/定义时分秒 +1按键定义时分秒-1按键Hello ;第

18、十章代码及元件清单代码:#in clude#defi ne uchar un sig ned char#defi ne uint un sig ned int#defi ne datase nd POsbit Icde n=P 3人4;sbit lcdrs=卩3人5;sbit s1= PUO;sbit s2=P 1人1;sbit s3=P 1人2;sbit knock=P 2人0;uchar mytableO=ucharmytabIe1=Good morin g;uchar code lin e0= 2013-04-10uchar code lin e1= AM00:00:00H.H./初始化

19、显示/平年月闰年月uchar code mon th0=31,28,31,30,31,30,31,31,30,31,30,31; uchar code mon th1=31,29,31,30,31,30,31,31,30,31,30,31;uchar coun t,hour,m inu te,sec on d,year=1,m on th=1,date=1; uchar s1num;/s1 num :定义功能键按下次数变量void delay_ms(i nt ms)int i,j;for(i=ms;i0;i-)for(j=0;j0;x-)for(y=110;y0;y-);void write_

20、com (un sig ned char c)/ 写命令子函数/低电平选择为写指令lcdrs=0;lcde n=0;/把指令写入P1 口 /参考时序图开使能/读取指令/关闭使能datase nd=c;delay(5);lcde n=1;delay(5);lcde n=0;void write_data(u nsig ned char d)写数据子函数高电平选择为写数据/把数据写入P0 口/参考时序图开使能/读取数据/关闭使能lcdrs=1;datase nd=d;dela y(5);Icde n=1;delay(5);Icde n=0;void write_hms(uchar add,ucha

21、r dat)/时分秒写函数add:输入位置设置变量dat:输入时分uchar sw,gw;sw=dat/10;gw=dat%10;write_com(0 x80+0 x40+add);write_data(0 x30+sw);write_data(0 x30+gw);void write_ymd(uchar add,uchar dat) /年月曰写函数add:输入位置设置变量分秒数据/定义十位,个位变量/从第二行(add)位开始写数据 写入十位/写入个位dat:输入时秒数据/定义十位,个位变量uchar sw,gw;sw=dat/10;/从第一行(add)位开始写数据 写入十位/写入个位gw=

22、dat%10;wnte_com(0 x80+add);write_data(0 x30+sw);write_data(0 x30+gw);/定时器0中断子程序void t0() in terru pt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;coun t+;/时分秒处理子程序void gethms()int i;second+;if( hour=8)&(mi nute=0)|(hour=17)&(mi nute=30)if(seco nd=0)&(seco nd=12)&(seco nd=22)for(i=0;i mon th1m on th-

23、1) date=mon th1m on th-1; elseif(date mon th0m on th-1) date=mon th0m on th-1; write_ymd(10,date); write_ymd(7,m on th);write_com(0 x80+0 x08);break;case 6: year+;if(year=100) year=1;write_ymd(4,year); write_com(0 x80+0 x05);break;if(s3=0)dela y(5);if(s3=0)while(s3=0);switch(s1 num) case 1:case 2:日输

24、出显示/光标闪烁位定为日个位/月+/判断日和月的配对关系日输出显示月输出显示/光标闪烁位定为月个位/年+/复位年输出显示/光标闪烁位定为年个位/时分秒-1模块sec on d-;if(sec on d=255) sec on d=59; write_hms(8,sec on d);write_com(0 x80+0 x40+0 x09); break;min ute-;/秒-复位/秒输出显示/光标闪烁位定为秒个位if(minu te=255) minu te=59; write_hms(5,mi nu te); write_com(0 x80+0 x40+0 x06);break;复位分输出显

25、示光标闪烁位定为分个位单片机课程设计 case 3: hour-;if(hour=255) hour=23;write_hms(2,hour); write_com(0 x80+0 x40+0 x03);break;case 4: date-;if(year%4=0)if(date=0)date=mon th1m on th-1;elseif(date=0)date=mon th0m on th-1;write_ymd(10,date); write_com(0 x80+0 x0b);break;case 5: mon th-;if(mon th=0)mon th=12;if(year%4=0

26、)if(date mon th1m on th-1) date=mon th1m on th-1; elseif(date mon th0m on th-1) date=mon th0m on th-1; write_ymd(10,date); write_ymd(7,m on th); write_com(0 x80+0 x08);break;case 6: year-;if(year=0) year=99;write_ymd(4,year); write_com(0 x80+0 x05);break;复位/时输出显示光标闪烁位定为时个位日-/日输出显示/光标闪烁位定为日个位月-/判断日和月的配对关系日输出显示月输出显示/光标闪烁位定为月个位年-/复位年输出显示/光标闪烁位定为年个位单片机课程设计 void in itialize()uchar num;Icde n=0;wnte_com(0 x38);write_com(0 x0c);write_com(0 x06);write_com(0 x01);/LCD初始化函数第一行,前头空5格显示显示6个字符/第二行,从第一格开始显示/显示16个字符R/L :清屏指令每次显示下一屏内容时,必

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论