单片机数字时钟课程设计完整版.docx

上传人:b****2 文档编号:1672832 上传时间:2022-10-23 格式:DOCX 页数:14 大小:22.46KB
下载 相关 举报
单片机数字时钟课程设计完整版.docx_第1页
第1页 / 共14页
单片机数字时钟课程设计完整版.docx_第2页
第2页 / 共14页
单片机数字时钟课程设计完整版.docx_第3页
第3页 / 共14页
单片机数字时钟课程设计完整版.docx_第4页
第4页 / 共14页
单片机数字时钟课程设计完整版.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

单片机数字时钟课程设计完整版.docx

《单片机数字时钟课程设计完整版.docx》由会员分享,可在线阅读,更多相关《单片机数字时钟课程设计完整版.docx(14页珍藏版)》请在冰豆网上搜索。

单片机数字时钟课程设计完整版.docx

单片机数字时钟课程设计完整版

 

课程设计任务书

学生姓名:

江勇峰专业班级:

自动化0607

 

指导教师:

刘教瑜工作单位:

武汉理工大学自动化学院

 

题目:

简易数字时钟

 

初始条件:

用C语言编写程序,实现简易数字时钟的功能。

要求完成的主要任务:

(1)简易数字时钟能实现时、分、秒的数字显示;

(2)可以对时钟、分钟进行调节并且校正。

近几年,单片机在各个领域得到广泛的应用。

从工业到人们的日常生活,大部分的科技产品都是通过单片机来控制。

在它问世之前,自动控制设备不能被广泛的应用,这是因为控制设备的体积庞大,耗电量大,价格昂贵。

在第一台微处理器成功研制不久,第一个单片机就问世了。

因为其小巧的体积,低功耗,以及高效的性能,单片机受到了大家的欢迎。

今天,单片机成为了解决低复杂度,中等复杂度控制问题的传统选择。

文章介绍了单片机在定时方面的基本功能。

生活中,我们发现:

时间的准确显得格外的重要。

我们选择的方法是单片机开发设计使用的传统方法,通过本次设计,可以了

解整个单片机开发的流程。

文章首先介绍了单片机的基本知识,然后同时给出了

框图,流程图等。

论文涵盖了从需求分析,系统设计,编程,原理图等产品开发

的基本过程。

 

关键词:

单片机,软件仿真,原理图

 

Abstract

 

SingleChipMicrocomputerhasachievedaimmemsepopularityin

allfiledsinrecentyears.Fromindustrytopeople

’scommonlives,most

oftechnicalapplicationsarecontrolledbySCM.Beforeitappeared,the

automatic

devices

could’t

be

widely

used

becauseof

their

huge

size

large

quantityof

powercost

andhigh

price.The

first

SCMappeared

as

soon

asthefirst

MCU(MicroController

Unit)

was

successfully

developed.Duetoitssmallsize,lowpowercostandhighperformance,it

hasbeenwelcomedbypeople.

Nowadays,

SCMhas

been

selectedas

a

traditional

solution

for

low

ormediumcomplexity

problemsaboutdevicescontrolling.This

essay

showsabasicapplicati

onofSCMintimingforpeople

’slife.

Time

accuracyisavitalfactorthateffectstheresults.

Theapproachwechooseis

thecommonwayfor

SCMdevelopingfromwhich

wecanget

anacknowledgeabouttheSCMdevelop

flowing

process.The

paper

firstintroducesknowledgeon51serialSCM,thenAtitalsoshowsblock

diagrams,flowingprocessdiagramsandsoon.Itpresentstheprocess

includingrequirementanalysis,systemdesign,SCMprogramming,program

emulation,whichformsacompleteprocedureforproductmanufacture

 

Keywords:

SCM,softwareemulation,schemetic

 

1

单片机的基本知识4

1.1数码管动态显示原理4

1.2键盘扫描原理5

2

程序说明和流程图6

2.1程序说明6

2.2流程图8

3

程序设计9

4

实验仿真和验证13

5

心得体会14

6参考文献错误!

未定义书签。

 

简易数字时钟

 

1单片机的基本知识

 

1.1数码管动态显示原理

 

+5V

g

fGNDa

b

a

a

a

b

b

c

f

b

c

g

d

d

c

e

e

e

dp

f

d

·

g

f

dp

g

e

dGNDc

dp

dp

(a)

(b)

图1数码管显示原理图

 

如图1数码管显示原理图所示,使用LED显示器时,要注意是共阴还是共阳,

要注意区分这两种不同的接法。

为了显示数字或字符,必须对数字或字符进行编

码。

七段数码管加上一个小数点,共计8段。

因此为LED显示器提供的编码正好

是一个字节。

我们用的是共阴LED显示器,根据电路连接图显示16进制数的编

 

码已列在下表。

0x3f,0x06,0x5b,0x4f,0x66,0x6d,

01234

0x7d,0x07,0x7f,0x6f,0x77,0x7c,

6789AB

0x39,0x5e,0x79,0x71,0x00

CDEF无显示

 

5

动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪

一位数码管有效,由另一位控制显示码值。

选亮数码管采用动态扫描显示。

所谓

动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉

和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。

动态显示的亮

度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。

们这里正是利用的数码管动态显示来完成显示功能。

 

1.2键盘扫描原理

 

键盘分编码键盘和非编码键盘,键盘上闭合键的识别由专用的硬件编码器实现,并产生按键编码号或键值的称为编码键盘,如计算机键盘。

而靠软件编程来识别的称为非编码键盘,在单片机组成的各种系统中,用的最多的是非编码键盘,也有用到编码键盘的,我们这里用的就是非编码键盘。

如图2键盘图所示,当按钮按下时;端口会变成低电平,我们设计一段扫描程序来判断那个端口是低电平来判断是否有按键按下。

 

图2键盘图

 

2程序说明和流程图

 

2.1程序说明

 

此实时时钟的设计与实现,主要采用了6只LED数码管,加Atmega128单片机,包括显示模块,运算模块和校时模块三大功能模块。

显示模块:

 

用Atmega128控制,用数码管的显示功能来设计。

显示部分硬件用六只LED为显示管,这些LED发光二极管的阴极是互相连接在一起的,所以称为共阴极数码管。

通过在这8只发光二极管的阳极加+5V或0V的电压使不同的二极管发光,形成不同的数字。

该模块主要是将运算模块和校时模块运算出来的十进制表

示的时位、分位和秒位数值,并通过6只数码管显示出来。

该模块实现的硬件是7seg-mpx6-ca单元,采用软件译码,即在程序中设置一个段选码表。

CPU直接往LED输出八段代码,省去了硬件译码器。

A0~A3作为8段数据输出口到达各LED。

只要做到每送一次段选码时也送一次位扫描码,并且每送一次位扫描码后,位码中的0右移一位作为下一次的位扫描码,即可实现由左向右使6只LED依次出现数字显示。

运算模块:

 

该模块的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已经开辟的内存单元里,以便显示模块即时地显示出来。

该模块可以细分为秒定时模块和运算模块。

延时程序实现延时功能,由于CPU运算模块中的指令消耗一定的时间,所消耗的时间可以用来延时。

当演示完成后才能让秒单元内的数值加

1。

在主程序里,必须对秒、分和时的单元内的数值进行判断,当秒加到60时,分必须加1、秒清零;当分加到60时,时加1、分清零。

当时加到24时,直接清零。

然后转到调用处。

校时模块:

该模块主要功能是修改时、分、秒内存单元的数值。

每按一次键,对应的显

示值便加1。

分、秒加到59后变为00;小时加到23后再按键即变为00.再调校时均不向上一单位进位(例如分加到59后变为00;但小时不发生改变)。

 

2.2流程图

 

1.主函数

 

开始

 

初始化(定时器、显示

区、输入输出、计数单

元等)

 

初始化时,分,秒并在秒上自加一位

 

秒计数到60

 

Y

分钟自加一位,N

秒钟归零

 

分钟到60

 

Y

 

时钟自加一位,分钟

归零

 

键盘输入

 

Y

 

修改分钟,小时

 

调用显示子程序

 

2.显示子程序

 

N

 

N

 

开始

 

初始化数据,定义输入输出

 

确定数码管的位选

 

显示数据

 

调用延时

 

对随后的5个数码管同样操

作,给不同的位选信号

 

返回主函数

 

3程序设计

 

#include

#include

//#pragmainterrupt_handlert1_int:

13

unsignedcharled_table[26]=//数码管段码表

{0xC0,/*0*/

0xF9,/*1*/

0xA4,/*2*/

0xB0,/*3*/

0x99,/*4*/

 

0x92,/*5*/

0x82,/*6*/

0xF8,/*7*/

0x80,/*8*/

0x90,/*9*/};

unsignedintm;

unsignedcharm6,m5,m4,m3,m2,m1;

voiddisplay()

{DDRE=0XFF;

DDRB=0XFF;

PORTE=0X00;

PORTB=0Xff;

PORTE|=BIT(0);

PORTB=led_table[m6];

delay(3);

PORTB=0XFF;

PORTE=0X00;

PORTE|=BIT

(1);

PORTB=led_table[m5]-0X80;

delay

(2);

PORTB=0XFF;

PORTE=0X00;

PORTE|=BIT

(2);

PORTB=led_table[m4

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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