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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

作息时钟设计.docx

1、作息时钟设计课题名称作息时钟设计 课题工作内容“作息时钟设计”的硬件电路主要由单片机控制电路、数码管显示电路、DS1302、主要实现:1、单片机驱动数码管显示时间。2、到设定的闹钟时间后蜂鸣器响。 指标要求1、单片机驱动数码管显示现在时间。2、设定闹钟 进程安排第 一 天:下达任务、理解课题要求、收集和消化相关资料; 第 二 天 :方案论证和制定,元器件采购; 第 三四 天: 硬件制作、调试 第 五八 天: 软件设计、调试 第 九 天:根据设计内容,撰写设计报告 第 十 天:作品演示、答辩考核主要参考文献单片机应用系统设计技术 张齐著 电子工业出版社 单片机原理及应用技术 范力旻 电子工业出版

2、社 例说8051 谢亮、陈敌北、 张义和 人民邮电出版社 单片机C语言应用100例 王东锋 王会良 电子工业出版社 51系列单片机设计实例 楼然苗 李光飞 北航出版社 地点秋白楼起止日期2012.6.10-6.23 目录一、设计背景.11. 1单片机技术的发展及应用.11. 1. 1单片机技术的发展.11. 1. 2单片机技术的应用.2二、系统工作原理及总休设计.22.1系统总体方框图.22.2 DS1302.32.3数码管显示.32.4 AT89C5.42.5晶振.5三、原理图.5四、总结.6五、程序清单.7六、原件清单.12七、实物.12一、设计背景1.1单片机技术的发展及应用 现代的计算

3、机都是大规模集成电路计算机,具有功能强、结构紧凑、系统可靠等特征。随着半导体技术的发展,能够在一个硅片上制造出上百万个品体管,于是出现了以一个大规模集成电路为主的中央处理器微处理器(up),以及大容量的集成电路半导体存储器,通用和专用的输入输出接口电路,由这些大规模集成电路组成各种类型的微型计算机。1. 1. 1单片机技术的发展所谓单片机(microcontroller)是指在一个集成芯片中,集成微处理器(CPU)、存储器、基本的I/O接口以及定时/计数、通信部件,即在一个芯片上实现一台微型计算机的基本功能。1970年微型计算机研制成功之后,随着就出现了单片机(即单片微型计算机)。美国Inte

4、l公司1971年生产的4位单片机4004和1972年生产的雏形8位单片机8008,特别是1976MCS-48单片机问世以来,在短短的二十几年间,经历了四次更新换代,其发展速度大约每二、三年要更新一代、集成度增加一倍、功能翻一番。其发展速度之快、应用范围之广,己达到了惊人的地步,它己渗透到生产和生活的各个领域。尽管目前单片机的品种很多,但其中最具典型性的当数Intel公司的MCS-51系列单片机。MCS-51是在MCS-48的基础上于80年代初发展起来的,虽然它仍然是8位的单片机,但其功能有很大的增强。由于PHILIPS. ATMEL, WELBORD, LG等近百家IC制造商都主产51系列兼容

5、产品,具有品种全、兼容性强、软硬件资料丰富等特点。因此,MCS-51应用非常广泛,成为继MCS-48之后最重要的单片机品种。直到现在MCS-51仍不失为单片机中的主流机型。国内尤以Intel的MCS-51系列单片机应用最广。由于8位单片机的高性能价格比,估计近十年内,8位单片机仍将是单片机中的主流机型。1. 1. 2单片机技术的应用随着计算机技术的发展和在控制系统中的广泛应用,以及设备向小型化、智能化发展,作为高新技术之一的单片机以其体积小、功能强、价格低廉、使用灵活等优势,显示出很强的生命力。它和一般的集成电路相比有较好的抗干扰能力,对环境的温度和湿度都有较好的适应性,可以在工业条件下稳定工

6、作。且单片机广泛地应用于各种仪器仪表,使仪器仪表智能化,提高它们的测量速度和测量精度,加强控制功能。如MCS-51系列.单片机控制的“船舶航行状态自动记录仪”、“烟叶水分测试仪”、“智能超声波测厚仪”等。单片机也广泛地应用于实时控制系统中,例如对工业上各种窑炉的温度、酸度、化学成分的测量和控制。将测量技术、自动控制技术和单片机技术相结合,充分发挥其数据处理功能和实时控制功能,使系统工作处于最佳状态,提高系统的生产效率和产品质量。从航空航天、地质石油、冶金采矿、机械电子、轻工纺织等行业的分布系统与智能控制以及机电一体化设备和产品,到邮电通信、日用设备和器械,单片机都发挥了巨大作用。其应用大致可分

7、为以下几方面:(1) 机电一体化设备的控制核心机电一体化是机械设备发展的方向。单片机的出现促进了机电一体化技术的发展,它作为机电产品的控制器,充分发挥其自身优点,大大强化了机器的功能,提高了机器的自动化、智能化程度。最典型的机电产品机器人,每个关节或动作部位都是一个单片机控制系统。(2)数据采集系统的现场采集单元大型数据采集系统,要求数据采集的同步性和实时性要好。使用单片机作为系统的前端采集单元,由主控计算机发出采集命令,再将采集到的数据逐一送到主计算机中进行处理。如有些气象部门、油田采油部门以及电厂等均可采用这样的系统。(3)分布控制系统的前端控制器在直接控制级的计算机分布控制系统(DCS)

8、中,单片机作为过程控制中每一分部操作或控制的控制器,进行数据采集、反馈计算、控制输出,并在上位机命令的指挥下进行相应协调工作。(4)智能化仪表的机芯自动化仪表的智能化程度越来越高。采用单片机的智能化仪表可具有自整定、自校正、自动补偿和自适应功能,还可进行数字PID调节,软件消除电流热噪声等等,解决传统仪表所不能解决的难题。单片机的应用使这种性能如虎添翼,如自动计费电度表、燃气表中己有这方面的应用。许多工业仪表中的智能流量计,气体分析仪、成分分析仪等也采用了这项技术。甚至有的保健治疗仪中也采用了单片机控制。(5)消费类电子产品控制该应用主要反映在家电领域,如洗衣机、空调器、保安系统、VCD视盘机

9、、电子秤、IC卡、手机、BP机等。这些设备中使用了单片机机芯后,大大提高了其控制功能和性能,并实现了智能化、最优化控制。(6)终端及外围设备控制计算机网络终端设备,如银行终端、商业POS(自动收款机)以及计算机外围设备如打印和L、通信终端和智能化UPS等。在这些设备中使用单片机,使其具有计算、存储、显示、输入等功能,具有和计算机连接的接口,使计算机的能力及应用范围大大提高。二、系统工作原理及总体设计2. 1系统总体方框图本次设计实现的功能主要有:使用2个4位七段数码管来显示现在的时间,显示格式为“时分秒”,中间用小数点分隔。能够根据预先设定好的作息时间表自动启停控制电路,完成对外部设备的实时控

10、制。2.2 DS1302DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。下图为DS1302的引脚功能图:要特别说明的是备用电源B1,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,

11、最好选用小型充电电池。可以用老式电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100 F就可以保证1小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。2.3 数码管数码管采用的是共阳管,输出高电平时相应的灯亮。则显示09输出的数应为0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff。2. 4 AT89C52 图2-2 AT89C52单片机引脚图AT89C52的工作特性:内含4KB的FLASH存储器檫写次数1000次; 内含128字节

12、的RAM;具有32根可编程I/O线;具有2个16位编程定时器 具有6个中断源,5个中断矢量,2级优先权的中断结构;具有1个全双工的可编程串行通信接口;具有1个数据指针DPTR;具有可编程3级程序锁定位;AT89C52的工作电源为5(10.2)V且典型值为5V;AT89C52最高工作频率为24MHZ;AT89C52的编程频率为324MHZ,编程启动电流和启动电压分别为1mA、5或12V。2.5晶振电路:晶振在数字电路的基本作用是提供一个时序控制的标准时刻。数字电路的工作是根据电路设计,在某个时刻没完成特定的任务,如果没有一个时序控制的标准时刻,整个数字电路就会成为“聋子”,不知道什么时刻该做什么

13、事情了。晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。晶振的工作原理: 主板时钟芯片即分频器的原始工作振荡频率,由石英晶体多谐振荡器的谐振频率来产生,晶振其实是一个频率产生器,他主要把传进去的电压转化为频率信号。提供给分频率一个基准的14.318MHZ的振荡频率,它是一个多谐振荡器的正回馈环电路,也就是说它把输入作为输出,把输出作为输入的回馈频率,像这样一个永无休止的循环自激过程。三、原理图四、总结本次课程设计是对单片机理论学习的检验,是将理论应用到实践中的一个平台。通过本课程设计,

14、使我们进一步学习与理解计算机控制系统的构成原理、接口电路与应用程序,进一步巩固与综合专业基础知识和相关专业课程知识,提高了我们运用理论知识解决实际问题的实践技能;也更加知道了查阅资料的重要性。自此对单片机更有了感性的认识,提高了对次的兴趣,对以后的发展很有帮助。五、程序清单#include#define w_second 0x80 /秒写入地址#define w_minute 0x82 /分写入地址#define w_hour 0x84 /时写入地址#define w_day 0x86 /日写入地址#define w_month 0x88 /月写入地址#define w_week 0x8a /

15、星期写入地址#define w_year 0x8c /年写入地址#define r_second 0x81 /秒读出地址#define r_minute 0x83 /分读出地址#define r_hour 0x85 /时读出地址#define r_day 0x87 /日读出地址#define r_month 0x89 /月读出地址#define r_week 0x8b /星期读出地址#define r_year 0x8d /年读出地址#define w_wp 0x8e /指令写允许端地址#define uchar unsigned charuchar table=0xc0,0xf9,0xa4,

16、0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;/7段数码管编码uchar second; / 秒指针uchar minute; / 分指针uchar hour; / 时指针uchar day; / 日指针uchar month; / 月指针uchar week; / 星期指针uchar year; / 年指针uchar cc; uchar h_clock,m_clock,h,m; sbit change=P10; / 选择按钮sbit ok=P12; / 确定更改按钮sbit crrect=P11; / 更改按钮sbit look=P13; / 时间和年月日查

17、看切换按钮sbit clock=P14; /闹钟设定sbit ce=P32; / ds1302 片选端sbit sclk=P30; / ds1302 时控端sbit io=P31; / ds1302 串口端sbit clock_beef=P37; /蜂鸣器控制端sbit clock_button=P15; /闹钟启停按钮void write_ds1302(uchar addr,uchar dat) /写程序 uchar i,temp; ce=0;sclk=0;ce=1; for(i=0;i=1; sclk=1; for(i=0;i=1; sclk=1; ce=0;uchar read_ds13

18、02(uchar addr) /读程序 uchar i,temp; ce=0;sclk=0;ce=1; for(i=0;i=1; sclk=1; for(i=0;i=1; sclk=0; if(io) temp=temp|0x80; else temp=temp&0x7f; sclk=1; return temp;void set_ds1302() /初始化ds1302 write_ds1302(w_wp,0x00); write_ds1302(w_second,second); write_ds1302(w_minute,minute); write_ds1302(w_hour,hour);

19、 write_ds1302(w_day,day); write_ds1302(w_month,month); write_ds1302(w_week,week); write_ds1302(w_year,year); write_ds1302(w_wp,0x80);void view1() /时间显示 uchar i; P0=tablesecond%16; /秒显示 P2=0x01; for(i=0;i=160;i+); P2=0; P0=tablesecond/16; P2=0x02; for(i=0;i=160;i+); P2=0; P0=tableminute%16-0x80; /分显示

20、,(-0x80表示dp点亮) P2=0x04; for(i=0;i=160;i+); P2=0; P0=tableminute/16; P2=0x08; for(i=0;i=160;i+); P2=0; P0=tablehour%16-0x80;/时显示 P2=0x10; for(i=0;i=160;i+); P2=0; P0=tablehour/16; P2=0x20; for(i=0;i=160;i+); P2=0;void view2() /日期显示 uchar i; P2=0; P0=tableweek%16; /星期显示 P2=0x01; for(i=0;i=160;i+); P2=

21、0; P0=tableweek/16; P2=0x02; for(i=0;i=160;i+); P2=0; P0=tableday%16-0x80; /日显示 P2=0x04; for(i=0;i=160;i+); P2=0; P0=tableday/16; P2=0x08; for(i=0;i=160;i+); P2=0; P0=tablemonth%16-0x80;/月显示 P2=0x10; for(i=0;i=160;i+); P2=0; P0=tablemonth/16; P2=0x20; for(i=0;i=160;i+); P2=0; P0=tableyear%16-0x80; /

22、年显示 P2=0x40; for(i=0;i=144;i+); P2=0; P0=tableyear/16; P2=0x80; for(i=0;i=144;i+); P2=0; void view3() /闹钟设定程序 uchar i; P0=tablem%16; P2=0x01; for(i=0;i=160;i+); P2=0; P0=tablem/16; P2=0x02; for(i=0;i=160;i+); P2=0; P0=tableh%16-0x80; P2=0x04; for(i=0;i=160;i+); P2=0; P0=tableh/16; P2=0x08; for(i=0;i

23、=160;i+); P2=0;void beep() /蜂鸣器启动程序 int i; clock_beef=clock_beef; for(i=1;i=50;i+) second=read_ds1302(r_second); minute=read_ds1302(r_minute); hour=read_ds1302(r_hour); view1(); void display1() /读秒,分,时程序 second=read_ds1302(r_second); minute=read_ds1302(r_minute); hour=read_ds1302(r_hour); view1(); i

24、f(h_clock=read_ds1302(r_hour) &(m_clock=read_ds1302(r_minute) ) /判断时分 while(clock_button) beep(); clock_beef=0; void display2() /读星期,日,月,年程序 week=read_ds1302(r_week); day=read_ds1302(r_day); month=read_ds1302(r_month); year=read_ds1302(r_year); view2(); if(h_clock=read_ds1302(r_hour) &(m_clock=read_

25、ds1302(r_minute) & (clock_button) while(clock_button) beep(); clock_beef=0; void crrect_ds1302(uchar cc) /更改程序 while(crrect); switch(cc) case 1: if(read_ds1302(r_minute)=0x59)minute=0x00; else if(read_ds1302(r_minute)%16=9) minute=read_ds1302(r_minute)/16;minute=(minute+1)*16; elseminute=read_ds1302

26、(r_minute)+1; set_ds1302(); break; case 2: if(read_ds1302(r_hour)=0x23)hour=0x00; else if(read_ds1302(r_hour)0x20) if(read_ds1302(r_hour)%16=9) hour=read_ds1302(r_hour)/16;hour=(hour+1)*16; else hour=read_ds1302(r_hour)+1; else hour=read_ds1302(r_hour)+1; set_ds1302(); break; case 3: if(read_ds1302(

27、r_week)=0x07)week=0x01; else week=read_ds1302(r_week)+1; set_ds1302(); break; case 4: if(read_ds1302(r_day)=0x31)day=0x01; else if(read_ds1302(r_day)%16=9) day=read_ds1302(r_day)/16;day=(day+1)*16; elseday=read_ds1302(r_day)+1; set_ds1302(); break; case 5: if(read_ds1302(r_month)=0x12)month=0x01; else if(read_ds1302(r_month)%16=9) month=read_ds1302(r_month)/16;month=(month+1)*16; elsemonth=read_

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

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