基于C51单片机技术的时钟课程设计报告 精品.docx

上传人:b****2 文档编号:1233657 上传时间:2022-10-19 格式:DOCX 页数:19 大小:685.52KB
下载 相关 举报
基于C51单片机技术的时钟课程设计报告 精品.docx_第1页
第1页 / 共19页
基于C51单片机技术的时钟课程设计报告 精品.docx_第2页
第2页 / 共19页
基于C51单片机技术的时钟课程设计报告 精品.docx_第3页
第3页 / 共19页
基于C51单片机技术的时钟课程设计报告 精品.docx_第4页
第4页 / 共19页
基于C51单片机技术的时钟课程设计报告 精品.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

基于C51单片机技术的时钟课程设计报告 精品.docx

《基于C51单片机技术的时钟课程设计报告 精品.docx》由会员分享,可在线阅读,更多相关《基于C51单片机技术的时钟课程设计报告 精品.docx(19页珍藏版)》请在冰豆网上搜索。

基于C51单片机技术的时钟课程设计报告 精品.docx

基于C51单片机技术的时钟课程设计报告精品

课设报告

福建工程学院软件学院

 

题目:

时钟

班级:

姓名:

学号:

指导老师:

日期:

2013年10月11日

目录

1摘要1

2设计要求1

2.1功能需求1

2.2设计要求1

3 硬件设计及描述 1

3.1  总体描述1

3.2  系统总体框图 1

3.3  Proteus电路图2

3.4  各部分硬件介绍2

4  软件设计流程及描述 6

4.1  程序流程图 6

4.2  函数模块及功能   7

4.2.1单片机主控制模块7

4.2.2数码管显示模块8

4.2.3按键模块9

4.2.4计时模块10

5  功能实现11

6 心得体会  13

7 源程序13

1摘要

众所周知单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

本设计要制作的就是单片机于生活中最为常见的几种应用——时钟。

本设计以AT89S52单片机作为核心,可以显示当前的时间,时间也可以人为设定,显示格式为时(两位),分(两位),秒(两位)。

设置时间的数值、启动定时器。

时钟显示电路由数码管组成,制作该装置的材料需要有软硬件的支持,硬件方面AT89C51单片机,晶振,电源,数码管。

2设计要求

2.1功能需求

1、在数码管上显示初始时间如12-23-33,从初始设置的时间开始走时,每一秒自动加1,当59秒后自动向分进位、59分后自动向时进位。

2、通过按键设置时间,按下键1,时钟分加1;按下键2,时钟分减1,。

从而实现用按键设置时间的功能。

2.2设计要求

本次设计的是时钟,本电路是由AT89S52单片机为控制核心,通过按键实现时钟分的自增自减进行时间的设置,在数码管上进行显示。

3 硬件设计及描述 

3.1  总体描述

单片机采用STC90C516RD+,采用MCS-51实验开发板。

在实验开发板上,根据功能需求,设定了控制模块由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作,选用12MHZ的晶振,使得单片机有合理的运行速度;输入模块由按键控制,设定或调整时间信息;输出模块有数码管显示时间信息,通过对AT89S52单片机的编程控制数码管的显示。

3.2  系统总体框图 

系统总体框图如图3-1所示:

 

图3-1系统总体框图

3.3  Proteus电路图

整体Proteus电路图如下图3-2所示:

图3-2整体Proteus电路图

3.4  各部分硬件介绍

AT89C51单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。

18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。

第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。

如下图3-3所示:

图3-3AT89C51仿真图

74HC573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。

当使能为低时,输出将锁存在已建立的数据电平上。

输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。

这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。

特别适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器。

表3-1为74HC573的引脚功能表:

表3-174HC573引脚功能表

PINNo引脚号

SYMBOL符号

NAMEANDFUNCTION名称及功能

1

OE

3StateoutputEnableInput(ActiveLOW)3态输出使能输入(低电平)

2,3,4,5,6,7,8,9

D0toD7

DataInputs数据输入

12,13,14,15,16,17,18,19

Q0toQ7

3StateLatchOutputs3态锁存输出

11

LE

LatchEnableInput锁存使能输入

10

GND

Ground接地(0V)

20

VCC

PositiveSupplyVoltage电源电压

下图74HC573的仿真图,其中引脚2~9分别接AT89C51的P0,引脚12~19分别接数码管的A、B、C、D、E、F、G、D、P端,引脚1接电源端,引脚11接地端。

图3-474HC573仿真图

74HC138按照三位二进制输入码和赋能输入条件,从8个输出端中译出一个低电平输出。

两个低电平有效的赋能输入端和一个高电平有效的赋能输入端减少了扩展所需要的外接门或倒相器,扩展成24线译码器不需外接门;扩展成32线译码器,只需要接一个外接倒相器。

在解调器应用中,赋能输入端可用作数据输入端。

下表为74HC138的真值表,其中H表示高电平,L表示低电平。

表3-274HC138真值表

下图为74HC138的仿真电路图,其中,引脚1、2、3分别接AT89C51的P0^0、P0^1、P0^2,引脚4、5接地,引脚5接一个上拉电阻并接电源端,Y0~Y7分别接数码管的引脚1~8。

图3-574HC138仿真图

下图为按键K1、K2的仿真图,K1接AT89C52的引脚P3^2控制时钟的分钟自加、K2接P3^3控制时钟的分钟自减。

图3-6开关K1、k2仿真图

下图为共阴数码管的方真图,其原理详见下文。

图3-7共阴数码管仿真图

4  软件设计流程及描述 

4.1  程序流程图 

程序流程图如图4-1所示:

图4-1程序流程图

4.2  函数模块及功能   

4.2.1单片机主控制模块

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。

18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。

第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。

引脚图如图4-2所示:

图4-2AT89S52引脚结构

4.2.2数码管显示模块

LED数码管显示器的内部由8个发光二极管组成。

其中7个长条形的发光二极管排列成“日”字形,另一个圆点形状的发光二极管在显示器的右下角作为显示小数点用。

数码管的外观引脚结构如图4-3所示:

图4-3数码管的外观引脚结构

LED数码显示器的内部结构有两种不同的形式:

一种是8个发光二极管的阳极全部连接在一起组成公共端,8个发光二极管的阴极则单独引出,称为共阳极显示器,如图4-4。

另一种是8个发光二极管的阴极全部连接在一起组成公共端,8个发光二极管的阳极则单独引出,称为共阴极显示器,如图4-5所示:

图4-4共阳极显示器图4-5共阴极显示器

LED显示器字形码表,如表4-1所示:

表4-1LED显示器字形码表

本设计中主要用数码管显示当前时间和显示设置后的时间,数码管显示模块流程图,如图4-6所示:

图4-6数码管显示模块流程图

4.2.3按键模块

本设计采用按键控制时间的设置,通过按键的控制使时钟的分自增、自减从而实现时间的设置。

独立按键电路图,如图4-7所示:

图4-7独立按键电路图

按键模块流程图,如图4-8所示:

图4-8按键模块流程图

4.2.4计时模块

计数器:

是单片机应用中的重要部件,工作方式灵活,可以对外部事件计数和检测等;实现计数功能。

其核心是特殊功能寄存器中能进行加1计数的寄存器。

实现原理:

对T0或T1引脚输入的外部脉冲计数,如下图4-9所示:

 

图4-9计数器原理图

计时模块流程图,如图4-10所示:

图4-10计时模块流程图

5  功能实现

程序运行后从当前时间开始计时。

前一段前时间如图5-1所示:

图5-1一段时间前

一段时间后时间如图5-2所示:

图5-2一段时间后

以图5-2为当前初始时间,连续按4下键1,时钟分自增4次,如图5-3所示:

图5-3自增后时间

以图5-3为当前初始时间,连续按13下键2,时钟分自减13,如图5-4所示:

图5-4自减后时间

6 心得体会  

通过此次实验,我完成了通过按键设置时钟时间,并用数码管进行显示,实现了时钟的计时功能。

本实验加深了我对单片机应用的了解。

实验过程中遇到了许多以前没有遇到的问题,这在某种程度上让我知道哪些知识是我还要加强的,哪些知识是我还欠缺的;同时也感谢老师耐心的指导。

总而言之,通过本实验的编译让我受益匪浅。

7 源程序

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

ucharcodew[8]={0,1,2,3,4,5,6,7};

sbitkey1=P3^2;

sbitkey2=P3^3;

sbitkey3=P3^4;

ucharsec=56;

ucharmin=34;

ucharhour=12;

uintcount;

voidDelay(uintxms);

voidsecond();

voidminute();

voidhours();

voidother();

voidftime();

voidOutside_Init(void);

voidtimer1_int(void);

voidcharge();

voidtimeon();

voidOutside_Init1(void);

voidOutside_Init0(void);

voidDelay(uintxms)

{

uinti,j;

for(i=0;i

for(j=0;j<148;j++)

;

}

voidsecond()

{

uchari,j;

i=sec/10;

j=sec%10;

P2=0x7;

P0=table[j];

Delay

(1);

P2=0x6;

P0=table[i];

Delay

(1);

}

voidminute()

{

uchari,j;

i=min/10;

j=min%10;

P2=0x4;

P0=table[j];

Delay(

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

当前位置:首页 > IT计算机 > 互联网

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

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