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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机电子时钟设计报告Word格式.docx

1、第一部分 设计任务和要求 41、设计题目 42、设计要求 4第二部分 设计方案 41、总原理框图 42、设计方案的选择 5第三部分 主要器件及简介 51、STC89C51单片机介绍 62、SR410361K数码管 7第四部分 电路原理 81、硬件部分 82、原件清单 93、软件部分 10第五部分 课程设计总结 14第六部分 参考文献 14附录 实物图 14单片机电子时钟设计第一部分 设计任务和要求利用单片机定时器制作数字时钟并可以实现时钟的控制。第二部分 设计方案本次设计数字钟,使用了ATC8951单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按

2、键来调整时钟的时、分、秒,同时使用C语言程序来控制整个时钟显示,使得编程变得更容易。1、总原理框图总原理框图如下图所示:2、设计方案的选择1.计时方案方案1:采用实时时钟芯片现在市场上有很多实时时钟集成电路,如DS1287、DS12887、DS1302等。这些实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需要程序干预。因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能。方案2:使用单片机内部的可编程定时器。利用单片机内部的定时计数器进行中端定时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,但程序设计较为复杂。2.显示方案

3、对于实时时钟而言,显示显然是另一个重要的环节。通常LED显示有两种方式:动态显示和静态显示。静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。但占有I/O口线多,每一个LED都要占有一个I/O口,硬件开销大,电路复杂。需要几个LED就必须占有几个并行口,比较适用于LED数量较少的场合。当然当LED数量较多的时候,可以使用单片机的串行口通过移位寄存器的方式加以解决,但程序编写比较麻烦。LED动态显示硬件连接简单,但动态扫描的显示方式需要占有CPU较多的时间,在单片机没有太多实时测控任务的情况下可以采用。本系统需要采用两个4位8段数码管来分别显示时、分、秒及分隔

4、符号,因数码管个数较多,故本系统选择动态显示方式。第三部分 主要器件及简介1、STC89C51单片机介绍STC89S52单片机是由深圳宏晶公司代理销售的一款MCU,是由美国设计生产的一种低电压、高性能CMOS 8位单片机,片内含8kbytes的可反复写的FlashROM和128bytes的RAM,2个16位定时计数器5。STC89C51单片机内部主要包括累加器ACC(有时也简称为A)、程序状态字PSW、地址指示器DPTR、只读存储器ROM、随机存取存储器RAM、寄存器、并行I/O接口P0P3、定时器/计数器、串行I/O接口以及定时控制逻辑电路等。这些部件通过内部总线联接起来,构成一个完整的微型

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

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

7、被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PRO

8、G:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器 时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据

9、存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时, /EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。2、SR410361K数码管本次设计采用的SR410361K数码管是4位8段共阳数码管,其引脚图如下:第四部分 电路原理1、硬件部分(1)最小系统:复位时单片机的初始化操作,只要给RST引脚加上两个机器周期以上的高电平信号,就可以使STC89C51单片机复位。本次采用的是12M晶振,

10、按钮复位电路。(2)数码管显示电路: P0口驱动数码管位选,P2口驱动数码管段选。(3)键盘输入电路:本次设计采用独立键盘,键盘按下时,相应的I/O口电平由高变低,一次检测按键是否被按下。4个独立按键与单片机P1.0P1.3口相连。(4)LED灯电路: LED灯作为加减时间控制指示灯,一共2个。P3.7口黄灯亮表示控制时,P3.3口红灯亮表示控制分,红灯、黄灯一起亮表示控制秒。整体电路原理图如下:2、原件清单Part Type Designator Footprint 0.1u C6 RAD0.2 10K R2 AXIAL0.3 10k R5 AXIAL0.3 10k R6 AXIAL0.3

11、10k R9 AXIAL0.3 10k R12 AXIAL0.3 10k R7 AXIAL0.3 10k R8 AXIAL0.3 10k R4 AXIAL0.3 10k R3 AXIAL0.3 10u C4 RB.1/.2 10u C5 rb.1/.2 12M Y1 SRY 30p C7 sip2 30p C8 sip2 470 R15 AXIAL0.3 470 R20 AXIAL0.3 470 R13 AXIAL0.3 470 R22 AXIAL0.3 470 R21 AXIAL0.3 470 R14 AXIAL0.3 470 R17 AXIAL0.3 470 R16 AXIAL0.3 47

12、0 R19 AXIAL0.3 470 R18 AXIAL0.3 8550 Q8 S8050 8550 Q3 S8050 8550 Q2 S8050 8550 Q1 S8050 8550 Q4 S8050 8550 Q7 S8050 8550 Q6 S8050 8550 Q5 S8050 AT89S52 U2 dip40 CON2 J2 sip2 ISP ISP2 IDC10 LED-RED D3 LED_1 LED-YELLOW D4 LED_1 SR10302 M3 dip12 SR10302 M4 dip12 SW-PB S4 SKEY SW-PB S10 SKEY SW-PB S7 SK

13、EY SW-PB S5 SKEY SW-PB S6 SKEY 3、软件部分根据本次课程设计的要求,软件设计可分为以下几个功能模块:(1)主程序模块:主程序主要用于系统初始化:设置定时器的工作方式和计数初值等参数。(2)计时模块,即定时器0中断子程序:系统使用12MHz的晶振,假设定时器0工作在方式1,则定时器的最大定时时间为65.536ms,这个值远远小于1s。因此本系统采用定时器与软件循环相结合的定时方法。设定时器0工作在方式1,每隔50ms溢出中断一次,则循环中断20次延时时间是1s。因定时器0工作在方式1,则50ms定时对应的定时器初值为:TH0=(65536-50000)/256; T

14、L0=(65536-50000)%256;(3)时间、日期设置模块:该模块由键盘输入相应的数据来设置当前时间。程序通过调用一个键盘设置子程序通过键盘扫描将键入的数值送到单片机中,在主函数中检测输入时间值的合法性,若键盘输入的时间、日期不合法,则初始值置为0,设置时间后,时钟要从这个时间开始计时。(4)显示模块: 动态显示时分秒,以及中间的分割符。编写具体程序如下:# include #define uint unsigned int#define uchar unsigned charsbit p10=P10;sbit p11=P11;sbit p12=P12;sbit p13=P13;sbi

15、t p34=P34;sbit p37=P37;uchar code table= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/09字段uint count,shi,fen,miao,s1=0,s2=0,f1=0,f2=0,m1=0,m2=0,temp,flag=0;void delay(uint z) uint x,y; for(x=88;x0;x-) for(y=z;yy-);void init() TMOD=0x01;/选着定时器0 TH0=(65536-50000)/256;/给定时器赋初值 定时50毫秒 EA=1;/开启总中断

16、ET0=1;/开启定时器中断 TR0=1;/开始定时void display(uint s,uint f,uint m)/显示子程序 s1=s/10;/对时分秒取模 s2=s%10; f1=f/10; f2=f%10; m1=m/10; m2=m%10; P2=0xff; P0=0x01; P2=tables1; delay(1); P0=0x02; P2=tables2; P0=0x08; P2=tablef1; P0=0x10; P2=tablef2; P0=0x40; P2=tablem1; P0=0x80; P2=tablem2;void key() if(p10=0)/对时分秒进行选

17、择 delay(1); if(p10=0) TR0=0; flag+; if(flag=1) p34=0; p37=0; if(flag=2) p37=1; if(flag=3) p34=1; if(flag=4) flag=0; while(!p10) desiply(shi,fen,miao); if(flag=1) if(p11=0)/对秒进行相加 delay(1); if(p11=0) miao+; if(miao=60) miao=0; while(!p11) display(shi,fen,miao); if(p12=0)/对秒进行相减 if(p12=0) miao-; if(mi

18、ao=0) miao=59;p12) if(flag=2) if(p11=0)/对分进行相加 fen+; if(fen=60) fen=0;p11) if(p12=0)/对分进行相减 fen-; if(fen=0) fen=59; if(flag=3) if(p11=0)/对时进行相加 shi+; if(shi=24) shi=0; if(p12=0)/对时进行相加 shi-; if(shi=0) shi=23; if(p13=0) TR0=1; flag=0; p34=1; p37=1;void main() init(); while(1) key(); desiply(shi,fen,m

19、iao); P2=0xff; P0=0x24; P2=0xbf;void inter0() interrupt 1/定时器0的中断向量号为 1/给定时器重装赋初值 count+; if(count=20) count=0; miao+; if(miao=60) miao=0; fen+; if(fen=60) fen=0; shi+; if(shi=24) shi=0; 第五部分 课程设计总结本次单片机课程设计,在我和我的组员的默契配合,以及知道老师和同学的帮助下顺利完成了。在设计过程中,从电路的设计,源程序的书写和修改以及实物电路的焊接中都遇到了不少问题,但在我们的共同努力下解决了,并且从中学到了不少知识。我们在设计过程中还不断提出自己的疑点以及新的想法,联系实际应用,将课本上学习的东西运用到实际中,这些都令我们受益匪浅。课程设计需要很大的耐心,尤其是遇到困难的时候,这也是对我们的考验。在设计过程中,我们遇到问题不是感到急躁,而是耐心地寻找解决的办法,与老师、同学进行交流讨论,寻求最佳的解决办法。第六部分 参考文献1张毅刚。单片机原理及应用(第二版)。北京:高等教育出版社。20042郭天祥。新概念51单片机C语言教程.北京:电子工业出版社。2007附录 实物图

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

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