基于AT89C51单片机的电子表设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

0课程设计说明书课程:单片机应用技术课程设计题目:基于AT89C51单片机的电子表设计姓名:学号:1专业:机械设计制造及其自动化班级:2011级机院系:工学院机械系指导老师:朱煜钰课程设计时间:2014.10.27至2014.11.101黄河科技学院课程设计任务书工学院机械系机械设计制造及其自动化专业11级3班学号姓名指导教师朱煜钰题目:基于AT89C51单片机的电子表设计课程:单片机应用技术课程设计课程设计时间2014年10月27日至2014年11月10日共2周课程设计工作内容与基本要求(设计要求、设计任务、工作计划、所需相关资料)(纸张不够可加页)1.设计要求利用AT89C51单片机作为微控制器,在数码管通过一个控制键转换来显示的时间和日期;能通过多个控制键用来实现时间和日期的调节。2.设计任务与要求2.1系统硬件电路设计根据该系统设计的功能要求选择所用元器件,设计硬件电路。要求用Proteus绘制整个系统电路原理图。2.2软件设计根据该系统要求的功能进行软件设计,绘制整个系统的软件流程图;根据流程图编写程序并汇编调试通过;列出软件清单,软件清单要求逐条加以注释。2.3Proteus仿真用Proteus对系统软硬件进行仿真调试并通过。2.4编写设计说明书内容包括任务书、设计方案分析、硬件部分设计、软件部分设计、调试结果整理分析、设计调试的心得体会等,字数不少于5000字;硬件部分设计要绘制整个系统电路原理图,对各部分电路设计原理做出说明;软件设计部分要(用visio2003画图软件)绘制整个系统框图及各部分的软件2流程图,列出程序清单,逐条加以注释,并注明各程序功能块的功能。3.工作计划序号设计内容所用时间1布置任务及调研4天3制作与调试8天4撰写设计报告书2天合计14天4.主要参考资料单片机课程设计指导书皮大能北京理工大学出版社2012.78051单片机实践与应用吴金戎清华大学出版社2003.8单片机技术基础教程与实践夏路易电子工业出版社2008.1单片机原理及应用张毅刚高等教育出版社2012.11基于Proteus的单片机系统设计与仿真实例蒋辉平机械工业出版社2007.7…指导老师签字:日期:3目录第1章概述…………………………………………41.1内容摘要……………………………………41.2实验基本原理………………………………4第2章设计思路及框图……………………………52.1设计思路……………………………………52.2设计框图……………………………………5第3章硬件的设计…………………………………63.1主控制部件…………………………………63.2显示模块…………………………………73.3晶振模块……………………………………73.4按键模块……………………………………83.5驱动模块……………………………………8第4章电路设计原理图……………………………9第5章程序的设计…………………………………105.1程序流程图…………………………………105.2源程序……………………………………12第6章系统验证及调试……………………………23第7章总结…………………………………………24第8章参考文献……………………………………254第1章概述1.1内容摘要本次课程设计基于单片机原理技术介绍了一款于AT89C51芯片作为核心控制器的单片机电子表的设计与制作,主要有两个功能:时钟和秒表。其制作流程主要包括硬件电路原理的实现方案设计、软件程序编辑的实现、电子表正常工作的流程、原理图仿真实现、硬件实物的调试过程。该单片机数字电子表采用LED数码管能够准确显示时间(显示格式为:时时,分分,秒秒),可随时进行时间调整,时间可采用24小时制显示,还可实现时钟与秒表的切换,暂停与调时调分调秒,可按自己的要求设置扩展其它的功能。1.2实验基本原理利用AT89C51单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为0,每中断一次中断计数初值加1,当加到100时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。为了将时间在6位LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。5第2章设计思路及框图2.1设计思路针对要实现的功能,采用AT89S51单片机进行设计,AT89S51单片机是一款低功耗,高性能CMOS8位单片机,第一,熟悉AT89S51单片机,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二,设计硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。第三,画图部分:设计好电路后进行画图。第四,软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,实现想要的功能。2.2设计框图此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:显示电路用8个共阴极数码显示管、按键模块、晶振模块。显示管分别显示:小时、分钟和秒,通过动态扫描进行显示。电路的总体设计框架如下:图1LED显示模块单片机模块时钟模块按键模块晶振模块驱动模块6第3章硬件的设计3.1主控制部件89C51是一个8位单片机,片内ROM全部采用FLASHROM技术,晶振时钟为12MHz。89C51是标准的40引脚双列直插式集成电路芯片,有4个八位的并行双向I/O端口,分别记作P0、P1、P2、P3。第31引脚需要接高电位使单片机选用内部程序存储器;第40脚为电源端VCC,接+5V电源,第20引脚为接地端VSS,通常在VCC和VSS引脚之间接0.1μF高频滤波电容。硬件原理图如图2所示XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U4AT89C51图273.2显示模块方案一:静态显示。静态显示,即当显示器显示某一字符时,相应的发光二极管恒定导通或截止。该方式每一位都需要一个8位输出口控制。静态显示时较小电流能获得较高的亮度,且字符不闪烁。但因当所需显示的位数较多时,静态显示所需的I/O口数较大,造成资源的浪费。方案二:动态显示。动态显示,即各位数码管轮流点亮,对于显示器各位数码管,每隔一段延时时间循环点亮一次。利用人的视觉暂留功能可以看到整个显示,但须保证扫描速度足够快,人的视觉暂留功能才可察觉不到字符闪烁。显示器的亮度与导通电流、点亮时间及间隔时间的比例有关。调整参数可实现较高稳定度的显示。动态显示节省了I/O口,降低了能耗。从节省单片机芯片I/O口和降低能耗角度出发,本数字电子钟数码管显示选择设计采用方案二。3.3晶振模块单片机芯片可使用内部时钟电路和外部时钟电路两种方式产生电路所需的时钟脉冲,内部时钟电路实现可用石英晶体和微调电容外接即可达到,外部时钟电路实现需要一个外部脉冲源引入脉冲信号以保证个单片机之间时钟信号的同步。从硬件实现难易角度考虑,内部时钟电路的实现比外部时钟电路的实现更简易。既本数字电子钟设计所需的时钟源采用内部时钟电路实现。所用定时方式为工作方式1,石英晶振为12M,即最小定时时间为1us,最大定时时间约为65.5ms,其电路图如下图2所示。图383.4按键模块本数字电子钟设计所需按键用于进行显示时间的调整与设置扩展的小键盘。单片机芯片4个I/O口可与按键直接相连,通过编程,单片机芯片即可控制按键接口电平的高低,即按键的开与关,以达到用按键进行显示时间的调整与设置扩展的小键盘的设计要求,本电路采用P1口与按键相连。其电路图如图4所示:图43.5驱动模块从实物制作简易程度与驱动数码管段码能力角度出发,本数字电子钟设计采用数码管段码与AT89C51P0口相连,单片机AT89C51的P2口控制数码管的片选信号,通过编程,单片机芯片即可控制段码电平的高低的方式实现数码管段码控制。9第4章电路设计原理图XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51234567891RP1RESPACK-8X1CRYSTALC11nFC21nF图510第5章程序设计5.1程序流程图在主程序的开始定义了一组固定单元用来存储计数的分、秒、时的存储单元。在主程序中,对不同的按键进行扫描,实现秒表,时间调整。系统总体流程图如图6所示。图6T0中断入口通过查表方式显示数据位选数值=0秒计数加1秒计数=1000秒计数=0Seconds加1中断返回开始11系统子程序流程图如图7所示:是否满24h?显示缓冲单元清0返回NYYYNYNN是否满60m?小时加1分值加1N计数器重新加载循环次数加1是否满1s?是否满60s?秒值加1N开始125.2源程序程序清单如下:#includereg51.h#defineucharunsignedchar#defineuintunsignedint//七段共阴数码显示管段码表//ucharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//定义初始化变量////秒表部分//ucharDecisec=0;//分秒//ucharSec=0;//秒//ucharMint=0;//分////时钟部分//ucharSeconds=0;ucharMinutes=0;ucharHours=0;ucharCount=0;ucharNumb=0;//按键部分//sbitCHANGE=P1^0;//切换:可实现跑表与时钟互切//sbitSTART=P1^1;//开始//sbitSTOP=P1^2;//暂停//sbitRST=P1^3;sbitrst=P1^4;sbitjia1=P1^5;13sbitjia2=P1^6;sbitjia3=P1^7;//复位////函数声明//voiddelay(ucharms);//延迟函数//voidtime_pro1();//秒表处理函数//voidtime_pro2();//时钟处理函数//voidkeyscan();//键盘扫描//voiddisplay1();//数码管显示秒表//voiddisplay2();/

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功