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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

电子万年历设计论文Word文件下载.docx

1、3.3 AT89C52主要性能介绍AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在线系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使AT89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89C52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口

2、,片晶振及时钟电路。另外,AT89S52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1

3、口是一个具有部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4个TTL 逻辑电平。对P1 端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。P2 口是一个具有部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4个TTL 逻辑电平。对P2 端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。在访问

4、外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口是一个具有部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。P3口亦作为AT89C52特殊功能(第二功能)使用,如图3-2所示。在flash编程和校验时,P3口也接收一些控制信号。图 3-23

5、.4 DS1302芯片的介绍DS1302 是DALLAS 公司推出的涓流充电时钟芯片含有一个实时时钟/日历和31 字节静态RAM 通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM 指示决定采用24 或12 小时格式DS1302 与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1 RES 复位2 I/O 数据线3 SCLK串行时钟时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW。DS1302 是由DS1202 改进

6、而来增加了以下的特性双电源管脚用于主电源和备份电源供应Vcc1 为可编程涓流充电电源附加七个字节存储器它广泛应用于传真便携式仪器以及电池供电的仪器仪表等产品领域下面将主要的性能指标作一综合:1. 实时时钟具有能计算2100 年之前的秒分时日日期星期月年的能力还有闰年调整的能力2. 318位暂存数据存储RAM3. 串行I/O 口方式使得管脚数量最少4. 宽围工作电压2.0-5.5V5. 工作电流2.0V 时,小于300nA6. 读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送7. 8脚DIP 封装或可选的8 脚SOIC 封装(根据表面装配)8. 简单3 线接口9. 与TTL 兼容V

7、cc=5V10.可选工业级温度围-40 +853.4.1 管脚说明管脚描述: 管脚配置: 图 3-3 图 3-43.4.2 DS1302时钟信号设置模式如图3-5所示图 3-53.5 LCD1602液晶介绍模块组件部主要由LCD显示屏、控制器、列驱动器和偏压产生电路构成。LCD显示屏为行和列交叉形成的点阵,以58点阵的字符结构模式和设置的显示字符数目,选择适宜的行数,分单屏、双屏或者多屏显示规定的字符。对于双屏或者多屏显示结构的LCD,每一显示屏结构部分,均由各自独立的使能信号E控制。列驱动器与控制器配套使用,它接收来自控制器的振荡、帧同步输出、串行输出的数据和移位及锁存脉冲,产生列交流扫描驱

8、动信号。控制器接受来自MPU的指令和数据,控制着整个模块的工作,由CGROM、CGRAM、DDRAM等字符存储域、以及与MPU和列驱动器的I/O接口、指令寄存和译码机构、地址计数器等部分组成。在控制器的控制下,模块通过数据总线DB0DB7和E、R/W、RS三个输入控制端与MPU接口。这三根控制线按照规定的时序相互协调作用,使控制器通过数据总线DB接收MPU发送来的指令和数据,从CGROM中找到欲显示字符的字符码,送入DDRAM,在LCD显示屏上与DDRAM存储单元对应的规定位置显示出该字符。控制器还可以根据MPU的指令,实现字符的显示、闪烁和移位等显示效果。3.5.1端口的定义:管脚号符号功能

9、1Vss电源地(GND)2Vdd电源电压(+5V)3V0LCD驱动电压(可调)4RS寄存器选择输入端,输入MPU选择模块部寄存器类型信号;RS=0,当MPU进行写模块操作,指向指令寄存器;当MPU进行读模块操作,指向地址计数器;RS=1,无论MPU读操作还是写操作,均指向数据寄存器5R/W读写控制输入端,输入MPU选择读/写模块操作信号;R/W=0 读操作;R/W=1 写操作6E使能信号输入端,输入MPU读/写模块操作使能信号;读操作时,高电平有效;写操作时,下降沿有效7DB数据输入/输出口,MPU与模块之间的数据传送通道89101112131415A背光的正端+5V16K背光的负端0V3.5

10、.2 操作时序图写操作时序如图3-6图3-6读操作时序如图3-7图 3-73.5.3 指令说明一般情况下,部RAM的数据传送的功能使用最为频繁,因此,RAM中的地址指针所具备的自动加一或减一功能,在一定程度上减轻了MPU编程负担。此外,由于数据移位指令与写显示数据可同时进行,这样用户就以最少系统开发时间,达到最高的编程效率。这里值得一提的是,在每次访问模块之前,MPU应首先检测忙标志BF,确认BF=0后,访问过程才能进行。 Clear display 清显示指令码:Return home 归位指令码:Entry mode set 设置输入模式指令码:I/D=1,完成一个字符码传送后,AC自动加

11、1;I/D=0, 完成一个字符码传送后,AC自动减1;S=1,将全部显示向右(I/D=0)或者向左(I/D=1)移位;S=0, 显示不发生移位;Display on/off control 显示开/关控制指令码:D:显示开/关控制标志:D=1,开显示;D=0,关显示;C:光标显示控制标志:C=1,光标显示;C=0,光标不显示;B:闪烁显示控制标志:B=1,光标所指位置上,交替显示全黑点阵和显示字符,产生闪烁效果。Cursor or display shift 光标或显示移位指令码:光标或显示移位指令可使光标或显示在没有读写显示数据的情况下,向左或向右移动;运用此指令可以实现显示的查找或替换;在

12、双行显示方式下,第一行和第二行会同时移位;当移位越过第一行第四十位时,光标从第一行跳到第二行,但显示数据只在本行水平移位,第二行的显示决不会移进第一行;倘若仅执行移位操作,地址计数器AC的容不会发生改变。S/CR/L说明0 光标向左移动,AC自动减一光标向右移动,AC自动加一光标和显示一起向左移动光标和显示一起向右移动第4章 系统程序的设计多功能万年历系统的软件设计主要由主程序、温度子程序、时钟程序、定时中断子程序及液晶显示子程序组成。由于C语言编写的程序逻辑性强,也方便移植。而汇编虽然效率高,但相对比较繁琐,特别是遇到综合性强的逻辑运算时,执行起来比较困难。下面主要对时钟程序和闹钟子程序加以

13、详细介绍。4.1 高准确度时钟程序算法电子计时器通常以石英晶振为时钟源。时钟源的频率通常为几十khz乃至几十mhz,而所用时钟的最小计单位一般在0.01s1s。高频的时钟源脉冲通过分频器后产生基本定时脉冲。电子计时器的计时部分就是对基本定时脉冲进行累加,产生秒、分、时等时间信息乃至日、月、年等日期信息。而常常一个电子时钟会出现走时误差,一个常规电子计时器的计时准确度,取决于晶振标称频率(fs)与实际频率(fo)的频率偏差和晶振频率的时漂、温漂等离散参数。普通晶振的实际频率与标称频率有较大的偏差,可达万分之五,折算到一天计时误差就是43.2s。而减少计时误差的最好方法就是用软件控制,我们本实验中

14、用到的AT89C52的晶振频率是12MHZ,实际长期平均振荡频率fo=12.0006mhz,量化精度取1字节,取tns=10ms,则分频系数为: n0=fo/(12tns)=12.0006/(1210 610 -2)=10000.5 令n=int(n0)=10000 ni为第i决定时值,可能是10000或10001,这取决于nti的进位;nti为第i次尾数暂存值。每次定时中断服务程序均执行上式,取得第i次定时计数值,然后实时时钟增加10ms,完成时钟功能。这样进行软件计时校正后,每10天的计时误差1s。所以这种基于软件提高时钟准确度的算法,具有极高的实用价值。4.2 定时闹钟程序时钟的闹钟主要

15、是通过外部设置的按键来定时,当时钟的时间与设置的时间相同时,将会触发中断源,进入闹钟子程序,这时蜂鸣器将会被接通,发出声音。当中断时间达到规定的时间后,闹钟程序讲会自动退出,蜂鸣器停止响。闹钟工作的程序框图如图3-8所示图 3-8第5章 调试与结果分析经过理论分析和仿真调试后,最后按照硬件电路制作出了成品多功能电子万年历,现在进入了最后的调试阶段。开始为整个系统接上电源后,液晶显示器不亮,通过调节与液晶显示器电源端相连的电位器,显示屏点亮了。5.1 调试我们发现虽然显示屏亮了,但是时钟不走,复位也不起作用,4个时间设置按键也没有反应,通过认真的分析后,软件应该是没有问题的,因为在仿真的时候是能

16、正常工作的,这只可能是在硬件上出现了问题,通过检查电路的焊接,连线都没有错误的情况下,最后确定应该是某个模块没有正常工作,通过查资料,发现时钟芯片DS1302的数据端口和时钟信号端口要接上拉电阻,这样才能正常的工作,通过调试,最后时钟开始走起来,达到了预期的效果。5.2 结果分析 时钟虽然是正常的走了,整个系统也运行顺畅,但是时钟精度不够高。5.2.1 误差分析一个常规的电子时钟走时不准的原因主要是时钟标称频率与实际频率有误差,这样导致时钟计数不准确,另外是环境的温度影响,也会导致走时有误差,因为每个元器件都有一个正常工作温度围,但超出这个围后,就会使元件不能正常工作,这样也就导致了整个系统的

17、误差产生。第6章 总结多功能万年历是能同时显示日历、星期、时间、温度的电子时钟。这次的毕业设计从选题上也花了很多时间,板也做了一块又一块,在做的过程中还是出现了很多常见的错误,比如在画原理图的时候,连线连错,网络标号不对应,电源和地接反,这些都是很小的错误,但是小错误也能成大错,导致最后做出来的板不能实现预期的功能。另外就是对一些芯片的运用不熟悉,导致显示乱码也是很正常的,比如时钟芯片DS1302的数据端口和信号端口必须接上拉电阻后再接电源端,否则芯片不能正常工作,软件无常运行,整个系统也将瘫痪无常显示。还有液晶显示器的电源端也要接个电位器,一是方便调节明暗度,二是防止电流过大,烧坏显示屏,这

18、些都是很基本的知识,但必须要熟记和掌握,以致才能运用的更加熟练。另外对于这次的毕业设计,感觉自己的能力又得到了一定的提高,特别是对设计的整体流程有了更清晰的认识,包括选题、设计,制版,调试、写报告。但是还有很多要弥补的地方,比如写软件程序,对于一个学单片机的人来说,不仅要懂硬件,更要懂软件,只有都懂了,才能设计出更好的电路,要学好这些,只有不断的去尝试,尝试中不断的发现错误,不断的改正错误,只有这样能力才能得到一步步的提高。参考文献1 权昌.兴富单片机原理及应用华南理工大学,2007年8月2 正振.电子电路设计与制作 广西交通职业技术学院信息工程系 2007年3 科技.8051系列单片机C程序

19、设计.:人民邮电,2006年4 谭浩强.C程序设计.:清华大学,1991年附录附录一 电路原理图附录二 电路PCB图附录三 元件清单元件类型个数电阻1K排阻10K晶振12M32.768K电解电容22u瓷片电容22p单片机AT89C52温感器DS18B20三极管NPN时钟芯片DS1302电位器蜂鸣器附录四 源程序#includeINTRINS.H#define uchar unsigned char #define uint unsigned int#define TIME (0X10000-50000)#define FLAG 0XEF /闹钟标志sbit rst=P35;sbit clk=P

20、34;sbit dat=P33;sbit rs=P15;sbit rw=P16;sbit e=P17;sbit DQ=P14; /温度输入口sbit P3_2=P32;sbit ACC_7=ACC7;uchar i=20,j,time116; /全局变量及常量定义uchar alarm2,time215,time3;uchar code Day=31,28,31,30,31,30,31,31,30,31,30,31;/12个月的最大日期(非闰年)/音律表uint code table1=64260,64400,64524,64580,64684,64777,64820,64898,64968,

21、65030,65058,65110,65157,65178,65217;/发声部分的延时时间uchar code table2=0x82,1,0x81,0xf4,0xd4,0xb4,0xa4,0x94,0xe2,1,0xe1,0xd4,0xb4,0xc4,0xb4,4,0;/LCD自建字uchar code tab=0x18,0x1b,5,4,4,5,3,0,0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02,/年0x0f,0x09,0x0f,0x09,0x0f,0x09,0x11,0x00,/月0x0f,0x09,0x09,0x0f,0x09,0x09,0x0f,

22、0x00;/日 /*温度小数部分用查表法*/Uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;/闹钟中用的全局变量uchar th1,tl1;uchar temp_data2=0x00,0x00; / 读出温度暂放bit flag; /18b20存在标志位/*11微秒延时函数*/delay(uint t) for(;t0;t-);/*18B20复位函数*/ow_reset(void) uchar i; DQ=1;_nop_(); DQ=0; / delay(50); / 550us / delay(6); / 66us for(i=0;i i-) / DQ=1; DQ=0;/5us DQ=val&0x01; /最低位移出 delay(6); /66us val=val/2; /右移一位 delay(1);/*18B20读1个字节函数*/从总线上读取一个字节uchar read_byte(void) uchar value=0;ii-) value=1; _nop_(); /4us /4us if(DQ) value|=0x80; return(value);/*读出温度函数*

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

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