基于AT89C51单片机的电子表设计说明.docx

上传人:b****6 文档编号:3255652 上传时间:2022-11-21 格式:DOCX 页数:20 大小:142.48KB
下载 相关 举报
基于AT89C51单片机的电子表设计说明.docx_第1页
第1页 / 共20页
基于AT89C51单片机的电子表设计说明.docx_第2页
第2页 / 共20页
基于AT89C51单片机的电子表设计说明.docx_第3页
第3页 / 共20页
基于AT89C51单片机的电子表设计说明.docx_第4页
第4页 / 共20页
基于AT89C51单片机的电子表设计说明.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

基于AT89C51单片机的电子表设计说明.docx

《基于AT89C51单片机的电子表设计说明.docx》由会员分享,可在线阅读,更多相关《基于AT89C51单片机的电子表设计说明.docx(20页珍藏版)》请在冰豆网上搜索。

基于AT89C51单片机的电子表设计说明.docx

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

 

课程设计说明书

 

课程:

单片机应用技术课程设计

题目:

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

学号:

1

专业:

机械设计制造及其自动化

班级:

2011级机

院系:

工学院机械系

指导老师:

朱煜钰

课程设计时间:

2014.10.27至2014.11.10

黄河科技学院课程设计任务书

工学院机械系机械设计制造及其自动化专业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画图软件)绘制整个系统框图及各部分的软件流程图,列出程序清单,逐条加以注释,并注明各程序功能块的功能。

3.工作计划

序号

设计容

所用时间

1

布置任务及调研

4天

3

制作与调试

8天

4

撰写设计报告书

2天

合计

14天

4.主要参考资料

单片机课程设计指导书皮大能理工大学2012.7

8051单片机实践与应用吴金戎清华大学2003.8

单片机技术基础教程与实践夏路易电子工业 2008.1

单片机原理及应用毅刚高等教育2012.11

基于Proteus的单片机系统设计与仿真实例辉平机械工业

2007.7

 

指导老师签字:

日期:

 

第1章概述…………………………………………4

1.1容摘要……………………………………4

1.2实验基本原理………………………………4

第2章设计思路及框图……………………………5

2.1设计思路……………………………………5

2.2设计框图……………………………………5

第3章硬件的设计…………………………………6

3.1主控制部件…………………………………6

3.2显示模块…………………………………7

3.3晶振模块……………………………………7

3.4按键模块……………………………………8

3.5驱动模块……………………………………8

第4章电路设计原理图……………………………9

第5章程序的设计…………………………………10

5.1程序流程图…………………………………10

5.2源程序……………………………………12

第6章系统验证及调试……………………………23

第7章总结…………………………………………24

第8章参考文献……………………………………25

第1章概述

1.1容摘要

本次课程设计基于单片机原理技术介绍了一款于AT89C51芯片作为核心控制器的单片机电子表的设计与制作,主要有两个功能:

时钟和秒表。

其制作流程主要包括硬件电路原理的实现方案设计、软件程序编辑的实现、电子表正常工作的流程、原理图仿真实现、硬件实物的调试过程。

该单片机数字电子表采用LED数码管能够准确显示时间(显示格式为:

时时,分分,秒秒),可随时进行时间调整,时间可采用24小时制显示,还可实现时钟与秒表的切换,暂停与调时调分调秒,可按自己的要求设置扩展其它的功能。

1.2实验基本原理

利用AT89C51单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为0,每中断一次中断计数初值加1,当加到100时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。

为了将时间在6位LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。

由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。

第2章设计思路及框图

2.1设计思路

针对要实现的功能,采用AT89S51单片机进行设计,AT89S51单片机是一款低功耗,高性能CMOS8位单片机,第一,熟悉AT89S51单片机,在编程之前必须了解硬件结构尤其是各引脚的用法,以及部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。

这是前期准备工作。

第二,设计硬件部分:

依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。

第三,画图部分:

设计好电路后进行画图。

第四,软件部分:

先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。

第五部分是软件仿真部分:

软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。

第六部分是硬件实现部分:

连接电路并导入程序检查电路,实现想要的功能。

2.2设计框图

此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:

显示电路用8个共阴极数码显示管、按键模块、晶振模块。

显示管分别显示:

小时、分钟和秒,通过动态扫描进行显示。

电路的总体设计框架如下:

LED显示模块

单片机模块

时钟模块

按键模块

晶振模块

驱动模块

 

图1

第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所示

 

图2

3.2显示模块

方案一:

静态显示。

静态显示,即当显示器显示某一字符时,相应的发光二极管恒定导通或截止。

该方式每一位都需要一个8位输出口控制。

静态显示时较小电流能获得较高的亮度,且字符不闪烁。

但因当所需显示的位数较多时,静态显示所需的I/O口数较大,造成资源的浪费。

方案二:

动态显示。

动态显示,即各位数码管轮流点亮,对于显示器各位数码管,每隔一段延时时间循环点亮一次。

利用人的视觉暂留功能可以看到整个显示,但须保证扫描速度足够快,人的视觉暂留功能才可察觉不到字符闪烁。

显示器的亮度与导通电流、点亮时间及间隔时间的比例有关。

调整参数可实现较高稳定度的显示。

动态显示节省了I/O口,降低了能耗。

从节省单片机芯片I/O口和降低能耗角度出发,本数字电子钟数码管显示选择设计采用方案二。

3.3晶振模块

单片机芯片可使用部时钟电路和外部时钟电路两种方式产生电路所需的时钟脉冲,部时钟电路实现可用石英晶体和微调电容外接即可达到,外部时钟电路实现需要一个外部脉冲源引入脉冲信号以保证个单片机之间时钟信号的同步。

从硬件实现难易角度考虑,部时钟电路的实现比外部时钟电路的实现更简易。

既本数字电子钟设计所需的时钟源采用部时钟电路实现。

所用定时方式为工作方式1,石英晶振为12M,即最小定时时间为1us,最大定时时间约为65.5ms,其电路图如下图2所示。

图3

3.4按键模块

本数字电子钟设计所需按键用于进行显示时间的调整与设置扩展的小键盘。

单片机芯片4个I/O口可与按键直接相连,通过编程,单片机芯片即可控制按键接口电平的高低,即按键的开与关,以达到用按键进行显示时间的调整与设置扩展的小键盘的设计要求,本电路采用P1口与按键相连。

其电路图如图4所示:

图4

3.5驱动模块

从实物制作简易程度与驱动数码管段码能力角度出发,本数字电子钟设计采用数码管段码与AT89C51P0口相连,单片机AT89C51的P2口控制数码管的片选信号,通过编程,单片机芯片即可控制段码电平的高低的方式实现数码管段码控制。

第4章电路设计原理图

图5

 

第5章程序设计

5.1程序流程图

在主程序的开始定义了一组固定单元用来存储计数的分、秒、时的存储单元。

在主程序中,对不同的按键进行扫描,实现秒表,时间调整。

系统总体流程图如图6所示。

 

图6

T0中断入口

通过查表方式显示数据

位选数值=0

秒计数加1

秒计数=1000

秒计数=0

Seconds加1

中断返回

开始

系统子程序流程图如图7所示:

是否满24h?

显示缓冲单元清0

返回

N

Y

是否满60m?

小时加1

分值加1

N

计数器重新加载

循环次数加1

是否满1s?

是否满60s?

秒值加1

N

开始

 

5.2源程序

程序清单如下:

#include

#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;

sbitjia2=P1^6;

sbitjia3=P1^7;

//复位//

//函数声明//

voiddelay(ucharms);//延迟函数//

voidtime_pro1();//秒表处理函数//

voidtime_pro2();//时钟处理函数//

voidkeyscan();//键盘扫描//

voiddisplay1();//数码管显示秒表//

voiddisplay2();//数码管显示时钟//

/*******************/

//主函数//

/*******************/

voidmain()

{

P1=0xff;

TMOD=0x11;

TH0=(65536-10000)/256;

TL0=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

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

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