高品质文库网

AT89C51单片机的电子表设计 精品
收录时间:2022-11-25 22:58:42  浏览:0
黄河科技学院课程设计任务书课程设计工作内容与基本要求(设计要求、设计任务、工作计划、所需相关资料)(纸张不够可加页)1设计要求利用AT89C51单片机作为微***,在数码管通过一个控制键转换来显示相应的时间和日期,能通过多个控制键用来实现时间和日期的调节。 2/ 设计任务与要求2/1系统硬件电路设计根据该系统设计的功能要求选择所用元器件,设计硬件电路。要求用Proteus绘制整个系统电路原理图。2/2软件设计根据该系统要求的功能进行软件设计,绘制整个系统的软件流程图;根据流程图编写程序并汇编调试通过;列出软件清单,软件清单要求逐条加以注释。2/3 Proteus仿真用Proteus对系统软硬件进行仿真调试并通过。2/4 编写设计说明书内容包括任务书、设计方案分析、硬件部分设计、软件部分设计、调试结果整理分析、设计调试的心得体会等,字数不少于5000字;硬件部分设计要绘制整个系统电路原理图,对各部分电路设计原理做出说明;软件设计部分要(用visio20XX画图软件)绘制整个系统及各部分的软件流程图,列出程序清单,逐条加以注释,并注明各程序功能块的功能。3工作计划 序号设计内容所用时间1布置任务及调研天3制作与调试天4撰写设计报告书2天合 计14天4主要参考资料单片机课程设计指导书 皮大能 北京理工大学出版社20XX/78051单片机实践与应用 吴金戎 清华大学出版社20XX/8单片机技术基础教程与实践 夏路易 电子工业出版社20XX/1单片机原理及应用张毅刚 高等教育出版社 20XX/11基于Proteus的单片机系统设计与仿真实例 蒋辉平 机械工业出版社 一、电子表 1/1电子表简介 1957年/Ventura发明了世界上第一个电子表,从而奠定了电子表的基础,电子表开始迅速发展起来。现代的电子表是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活补课缺少的工具。1/2 电子表的原理 该电子表由AT89C51,74LS373/BUTTON,数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天/满三十天(闰年二月满二十九天,平年二月满二十八天)为一个月,满十二个月为一年。电路中的键控1实现“年”和“分”的调节,键控2实现“月”和“时”的调节,键控3实现“日”和“分”的调节。每按一次就加一。二、 控制系统的硬件设计2/1 单片机型号的选择 通过对多种单片机性能的分析,最终认为89C51是最理想的电子时钟开发芯片。89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微***,而且它与MCS-51兼容,且具有4K字节可编程闪烁存储器和1000写/擦循环,数据保留时间为10年等特点,是最好的选择。2/2 数码管显示工作原理数码管是一种把多个LED(7SEG-MP*8-CA-BLUE)显示段集成在一起的显示设备。有两种类型,一种是共阳型,一种是共***型。共阳型就是把多个LED显示段的阳极接在一起,又称为公共端。共***型就是把多个LED显示段的***极接在一起,即为公共商。阳极即为二极管的正极,又称为正极,***极即为二极管的负极,又称为负极。通常的数码管又分为8段,即8个LED显示段,这是为工程应用方便如设计的,分别为A、B、C、D、E、F、G、DP,其中DP 是小数点位段。而多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。即,所有的A段都会连在一起,其它的段也是如此,这是实际最常用的用法。数码管显示方法可分为静态显示和动态显示两种。静态显示就是数码管的8段输入及其公共端电平一直有效。动态显示的原理是,各个数码管的相同段连接在一起,共同占用8 位段引管线;每位数码管的阳极连在一起组成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来。 共***数码管2/3 74LS373介绍:373为三态输出的八 D 透明锁存器,373 的输出端 O0O7 可直接与总线相连。 当三态允许控制端 OE 为低电平时,O0O7 为正常逻辑状态,可用来驱动负载或总 线。当 OE 为高电平时,O0O7 呈高阻态,即不驱动总线,也不为总线的负载,锁存器内部的逻辑操作不受影响。 当锁存允许端 LE 为高电平时,O 随数据 D 而变。当 LE 为低电平时,O 被锁存在 已建立的数据电平。当 LE 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善 400mV。 引出端符号: D0D7 数据输入端;OE 三态允许控制端(低电平有效;LE 锁存允许端;O0O7 输出端图3 74LS3732/4系统硬件电路设计 三、控制系统的软件设计3/1软件设计程序清单#include #includesbit P20=P20/ sbit khour=P30/ sbit kmin=P31/sbit knian=P32/sbit tiaonian=P33 /sbit speaker=P37 /int j=-1 / bit flag=0/leap=0/ char secshi=0/secge=0/minshi=0/minge=0/hourshi=0/hourge=0/char dayshi=0/dayge=0/monthshi=0/monthge=0/yearshi=0/yearge=0 /unsigned int num=0/sec=0/min=0/hour=0/ unsigned int day=1/month=1/year=10/ char saomiao8=0x01/0x02/0x04/0x08/0x10/0x20/0x40/0x80/ char shijian10=0xC0/0xF9/0xA4/0xB0/0x99/0x92/0x82/0xF8/0x80/0x90/ void delay(unsigned int z) unsigned int x/y/for(x=z/x0/x-)for(y=10/y0/y-) / void timer() interrupt 1 TH0=(65535-5000)/256/ TL0=(65535-5000)%256/ num+/ j+/ if(year%4=0&year%100!=0)|(year%400=0) leap=1/ else leap=0/ if(num=150) num=0/ sec+/ if(sec=60) sec=0/ min+/ if(min=60) min=0/ hour+/ if(hour=24) hour=0/ min=0/ sec=0/ day+/ if(leap=1&month=2&day=30)|(leap=0&month=2&day=29) day=1/ month+/ if(month=1|month=3|month=5|month=7|month=8|month=10|month=12) if(day=32) day=1/ month+/ if( month=4|month=6|month=9|month=11) if(day=31) day=1/ month+/ if(month=13) year+/ month=1/ secge=sec%10/ secshi=sec/10/ minge=min%10/ minshi=min/10/ hourge=hour%10/ hourshi=hour/10/ dayge=day%10/ dayshi=day/10/ monthge=month%10/ monthshi=month/10/ yearge=year%10/ yearshi=year/10/ P1=saomiaoj/ if(flag=1) if(P1=0x80) P2=shijiandayge/if(P1=0x40) P2=shijiandayshi/if(P1=0x20) P2=0xbf/ if(P1=0x10) P2=shijianmonthge/if(P1=0x08) P2=shijianmonthshi/if(P1=0x04) P2=0xbf/ if(P1=0x02) P2=shijianyearge/if(P1=0x01) P2=shijianyearshi/ else if(P1=0x80) P2=shijiansecge/if(P1=0x40) P2=shijiansecshi/if(P1=0x20) P2=0xbf/if(P1=0x10) P2=shijianminge//xian shi if(P1=0x08) P2=shijianminshi/if(P1=0x04) P2=0xbf/if(P1=0x02&hour24) P2=shijianhourge/ if(P1=0x01&hour23) hour=0/ if(flag=1) if(kmin=0) day+/ while(kmin=0)/ if(khour=0) month+/ while (khour=0)/ if(month12) month=1/ if(tiaonian=0&speaker=1) year+/ while (tiaonian=0)/ void baoshi() if(min=0&sec10) speaker=0/ delay(1) /speaker=1 / else speaker=1/void alarm() bit ring=1/char xx=10/if(tiaonian=0) ring=0/ delay(100)/while(tiaonian=0)/ if(hour=6&min=xx&ring=1) speaker=0/ delay(1) / speaker=1 /if(hour=6&min=xx+1) speaker=1/ void main() TMOD=0x01/ TR0=1/P2=0/ TH0=(65535-5000)/256/ TL0=(65535-5000)%256/ IE= 0x82/ IP=0x00/ EA=1/ EX0=1/ while(1) control() / alarm() / baoshi() / 3/2 Proteus仿真图5/a 时间仿真图(此时时间为2点8分31秒) 图5/b 日期仿真图(此时日期为20XX年9月3日)四、心得进过不懈的努力,我们顺利完成了这次单片机课程设计课题中的个性化电子表设计,本次仿真总的来说是实现了预期的效果,但是喇叭把的效果不是很好。功能还不够完善,设计还比较简单。不过通过此次设计我们还是学会了不少东西。首先,学会了keil和proteus软件。然后,由于此次程序是用C语言编写的,以前的C语言知识的到了巩固。同时,我们还领悟到了团队精神的真谛。通过这次的设计使我认识到本人对单片机方面的知识知道的太少了,对于书本上的很多知识还不能灵活运用,尤其是对程序设计语句的理解和运用,不能够充分理解每个语句的具体含义总的来说,本次
温馨提示:
1. 高品质文库网仅展示《AT89C51单片机的电子表设计 精品》的部分公开内容,版权归原著者或相关公司所有。
2. 文档内容来源于互联网免费公开的渠道,若文档所含内容侵犯了您的版权或隐私,请通知我们立即删除。
3. 当前页面地址:https://www.gpinxiao.vip/doc/36858b74644561af.html 复制内容请保留相关链接。