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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机设计说明书概要Word文件下载.docx

1、 2014-06-03 摘要 随时代的发展,生活节奏的加快,人们的时间观念愈来愈强;随自动化、智能化技术的发展,机电产品的智能度愈来愈高,用到时间提示、定时控制的地方变得更加广泛,因此,设计开发数字时钟具有良好的应用前景。 由于单片机成本价格低、高性能,在自动控制产品得到了广泛的应用。本设计利用Ateml公司的AT89C51单片机对电子时钟进行开发,设计了实现所有功能的硬件电路,使用 Keil C来进行代码编写和调试,通过Keil C与Proteus进行联合调试来测试最终结果。 在介绍本单片机的发展情况基础上,说明了本设计实现的功能,以及Proteus仿真实验板上的硬件情况,并对各功能进行了分

2、析。主要工作放在软件的编程上面,用Proteus仿真环境可以实现时间、日期、定时以及它们的设定功能,详细对软件编程以及调试进行了说明,并对计时误差进行了分析及校正。整个实验效果良好,可以投入使用。关键词:单片机 AT89C51 电子时钟 C语言 目录第一章 设计任务分析1.1课题背景 单片机自1976年由Intel公司推出MCS-48开始,迄今已有二十多年了。由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围

3、以及网络通讯等广大领域。 单片机有两种基本结构:一种是在通用微型计算机中广泛采用的,程序存储器和数据存储器共用一个存储器空间的结构,称为“冯诺依曼”(VonNeumann)结构。另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,称为“哈佛”(Harvard)结构,目前的单片机采用此种结构为多。 本文讨论的单片机多功能时钟系统的核心是目前应用极为广泛的51系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能多等特点。不仅能满足所需要求而且还有很多功能可供扩展,有着广泛的应用领域。1.2课题意义 在日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光

4、定时等。早期常用的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性价比的不断提高,新一代产品的应用也越来越广泛。大则可以构成复杂的工业过程控制系统,完成复杂的控制功能;小则可以用于家电控制,甚至可以用于儿童电子玩具。它功能强大、体积小、质量轻、灵活好用,配以适当的接口芯片,可以构成各种各样、功能各异的微电子产品。 随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使用起来很不方便。这些具有人们所需要的智能化特性的产品减轻了人的劳动,扩大了数字化的范围,为家庭数字化提供了可能。根据

5、这种实际情况,设计了一个单片机多功能时钟系统,它有基本的时间功能,还有定时功能,既可作为闹铃,也可扩展为定时对家电等电气产品的自动控制,可以避免多种控制器的混淆,利用一个控制器对多路电器进行控制;可增加温度传感器,进行实时温度显示,进一步扩展为利用不同的温度某些电气产品进行自动控制;也可增加湿度传感器,进行实时湿度显示,以便对湿度进行控制,方便人们的生活。1.3本章小结 本章主要介绍了课题背景、设计任务和课题意义,对单片机的优点及结构作了简要叙述,也对本系统的应用及概况进行了说明。第二章 系统功能及操作2.1 系统功能的确定 本系统有显示时间、日期和设定闹铃功能,并且可以对时间、日期进行设定。

6、闹铃提示使用屏显提示方式。2.2 系统操作设置 本系统的按键是4x4键盘,可以输入09 ,设置闹铃、取消、确定、设置时间、设置日期。具体按键码如下:0x11 数字10x12 数字20x14 数字30x18 设置闹铃0x21 数字40x22 数字50x24 数字60x28 设置时间0x41 数字70x42 数字80x44 数字90x48 日期设置0x81 取消0x82 数字00x84 设置闹铃标志0x88 确定2.3 本章小结 本章主要对本系统的基本功能和操作进行了详细说明。第三章 系统硬件设计3.1仿真电路板的原理图键盘电路LCD电路复位电路时钟电路3.2功能电路分析 3.2.1时钟电路 仿真

7、电路的时钟振荡源电路如图所示。其中为12MHz的晶振,改变两电容CB的值即可对此晶振频率进行调节。该电路提供单片机工作所需的振荡频率,计算定时器初值即需此晶振频率,在通信时也需知道晶振频率,以对波特率进行计算。 3.2.2 复合复位电路 如图所示为实验板的复合复位电路,当RESET信号为低电平时,仿真电路为工作状态,当RESET信号为高电平时,仿真电路为复位。这是上电复位和按钮复位的结合体。 3.2.3 LCD显示电路 如图所示,本电路中使用的是LCD1602 ,D0D7双向数据端接51单片机的P0口,RS,RW,E分别接P2.0P2.2,由于P0口没有上拉电阻所以要连接一个9针排阻,起到加大

8、驱动电流,提高稳定性的作用。 3.2.4 键盘电路 如图键盘是4x4 的16键的行列式键盘,行接P1口高4位,列接P1口的低4位。3.3本章小结 本章主要对芯片作了介绍,对其内存单元作了详细说明,并对系统硬件的结构框图和各功能电路作了说明,以及这些电路在本设计中的用途。第四章 系统软件设计4.1 计时时钟实现的基本方法 时钟的最小计数单位是秒,AT89C51晶振频率为12M,机器周期为1M,那么机器一周期时间为1/f=1/1M=1微秒。使用定时器0的方式2,定时器的最大计数时间为256微秒,想要以1秒闪烁,则TH0 = 6,TL0 = 6,每次计数都是记(256-6=250)微秒,中断次数1秒

9、除以250微秒等于4000次。以此循环实现1s计数。4.2 实现时钟程序设计步骤 系统采用模块化结构,主程序只需调用各个子程序模块就能实现相应功能。其模块结构如下图: 4.2.1主程序模块设计4.2.2 计时子程序模块说明 当T0中断时,count设为4000次,即满足4000次中断后在中断服务程序里调用时间更新函数TimeUpdate(),秒满60,秒清零,分加1,分满60,时加1,时满24,调用星期计算函数,日加1,并更新相应的星期。4.2.3 显示模块说明 显示部分主要是对lcd1602的特性操作,lcd1602初始化设置为5x7点阵。利用其CGDRM写数据来实现显示时间、日期、闹铃标志

10、。CGRAM初始值为0x40。其中日期(年、月、日)和闹铃标志的显示是使用如下数组来实现:ring_buf=0x0a,0x15,0x0a,0x11,0x0a,0x04,0x0e,0x00;/闹铃nin= 0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02;/ 年yue= 0x0f,0x09,0x0f,0x09,0x0f,0x09,0x0b,0x11;月ri = 0x0F,0x09,0x09,0x0F,0x09,0x09,0x0F,0x00;日4.2.4 键盘扫描模块说明 键盘采用4x4的行列式键盘,行线读取P1口高4位信号,列线读取P1口的低4位信号,通过软件延时方

11、法消除抖动,延时时间10ms。4.2.5 时钟、闹铃设定模块说明 当设定时间时,断开T0中断,秒单元清0,进入时、分单元设定。设定好后重装T0初值,开T0中断。如下图所示:4.2.6 日期设定模块说明 日期设定与时间设定类似,除了对输入的控制,还有增加了对星期的更新步骤。4.3本章小结 本章主要对软件实现的功能进行说明,包括软件流程图,软件的参数就算和原理说明。第5章 调试结果及PCB图的设计5.1 调试及结果5.1.1 调试过程该时钟程序的功能模块先后实现的顺序为:主程序时间模块显示模块键盘模块时间设定及其显示模块日期及其显示模块日期设定及其显示模块定时及其显示模块定时设定及其显示模块。每完

12、成一个模块就与前一个已完成的模块结合起来调试,直至实现相应功能,再编写下一模块程序。在与主程序衔接时,主程序和各子程序也需作相应的改动,以便与子程序更好的衔接,特别是显示子程序需作较大改动,以便对不同内容进行显示。5.1.2 调试遇到的问题调试过程还是有困难的,首先是程序定义的unsigned char 数组出问题,问题如下:* ERROR L107: ADDRESS SPACE OVERFLOW SPACE: DATA SEGMENT: ?DT?USART_READWRITE LENGTH: 007AH上网查了下,找到了具体的原因和解决方法如下:说明data空间已经不够用,原因是可能有好多函

13、数,而函数内部的局部变量又没有定义其空间,这种情况下,系统会将变量分配到你在Otions for Target 对话框里的设置的空间。如果你在下图所示中的 Memory Model 里设置成 Small:variables in DATA,则DATA空间很快便用完,导致data空间不够用。解决的办法有三种,一是通过更改Memory Model设置,可以设置成pdata或xdata,以便有足够大的空间,但这又带来新的问题,程序运行速度减慢,而且code代码也会加大,因为如果一个局部变量被存放在了xdata空间,汇编语言访问xdata空间的代码大小要比访问data空间的代码大,变量一旦很多,程序的

14、代码也会逐渐增大;二是根据自己的要求设置变量的空间。所以这涉及到代码优化的问题,遇到具体问题时,在运行速度和代码大小之间取得适合自己的情况;第三种,即目前使用的是将unsigned char 改为 unchar code ,由于unchar code 将数据保存到c51的4k字节的Flash中,导致运行的时候才将数据写入RAM所以速度稍微慢些,不过肉眼看不出来区别。 其次,因为刚接触LCD1602,对其特性没有完全掌握,刚开始让其显示自定义中文字符年、月、日和闹铃标志出现了严重的错误,具体是在向LCD1602写数据时出现的:要从CGRAM中读出数据在1602上显示,搞了半天发现CGRAM里的地址和DDRAM里的地址有上面的转换关系,所以解决方法是(address&=0x3f)/0x08 这样作为写入数据的参数才能正确被LCD1602显示。5.1.2 调试结果 经过不断的调试,最终的结果还是令人满意,具体如下:5.2 PCB图的设计 本次画PCB图是使用protel99sel来绘制,主要步骤是制作原理图元器件库、PCB元器件库 制作原理图(层次图) 制作PCB图。由于刚刚入门对PCB制作不熟练,所以在制作最终的PCB图是采用自动布线做法,导致线路走的有点难看。具体效果如下: 原理图的显示部分5.2-1 原理图的MCU部分 5.2-2 原理图主图5.2-3 PCB铺完铜顶层 5.2-

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

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