好好学习,天天向上,一流范文网欢迎您!
当前位置:首页 >> 最新范文 内容页

单片机MC51多功能秒表设计报告

单片机MC51多功能秒表设计报告 本文关键词:秒表,多功能,单片机,报告,设计

单片机MC51多功能秒表设计报告 本文简介:单片机课程设计报告设计题目:多功能秒表班级:09电信(1)班姓名:黄伟昭学号:20094081032指导教师:邵海龙调试地点:调试时间:成绩:一、实验要求1.硬件电气原理图一张(含元器件清单一份;所有引脚标注清楚)2、软件程序清单一套(含主要程序流程图,全部源程序及详细的注释)3、使用功能说明书一份

单片机MC51多功能秒表设计报告 本文内容:

单片机课程设计报告

设计题目:

多功能秒表

级:

09电信(1)班

名:

黄伟昭

号:

20094081032

指导教师:

邵海龙

调试地点:

调试时间:

绩:

一、实验要求

1.硬件电气原理图一张(含元器件清单一份;所有引脚标注清楚)

2、软件程序清单一套(含主要程序流程图,全部源程序及详细的注释)

3、使用功能说明书一份(含功能描述及操作指南和收获体会

4、软件在开发板上调试成功,并能成功表演,仿真成功达到设计课题的要求。

二、实现要求

秒表功能

1、设计可以显示0.01秒—59分59秒00的秒表,最小单位为毫秒;

2、通过按键控制秒表清零、暂停、继续、退出、时间设置、记录等功能;

3、具有倒计时、正计时功能;

4、秒表可以分组存储,批量显示;

三、硬件原理:

1、显示模块:

(1)

七段共阴数码管:

在共阴极结构中,各段发光二极管的阴极连在一起,将此公共点接地,某一段发光二极管的阴极为高电平时,该段发光。

LED显示0~9某个字符时,则要求在a~dp送固定的字段码,如要使LED显示“0”,则要求a、b、c、d、f各引脚为高电平,g和dp为低电平,字段码为“0x3f”

dp

g

f

e

d

c

b

a

0

0

1

1

1

1

1

1

0x3f

共阴极字符0~15七段码如下:

字符:

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

字段码:0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,(2)

74HC573(八进制

3

态非反转透明锁存器)

高性能硅门

CMOS

器件输入是和标准

CMOS

输出兼容的;加上拉电阻,他们能和

LS/ALSTTL

输出兼容。

当锁存使能端LE为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。

×/u36755X出能直接接到

CMOS,NMOS

TTL

接口上

×/u25805X作电压范围:2.0V~6.0V

×/u20302X输入电流:1.0uA

×CMOS

器件的高噪声抵抗特性

2、按键模块:

本次设计采用独立按键。

3、80c51芯片:

80C51单片机属于MCS-51系列单片机,由Intel公司开发,其结构是8048的延伸,改进了8048的缺点,增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(PUSH)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源。采用40引脚双列直插式DIP(Dual

In

Line

Package),内有128个RAM单元及4K的ROM。80C51有两个16位定时计数器,两个外中断,两个定时计数中断,及一个串行中断,并有4个8位并行输入口。80C51内部有时钟电路,但需要石英晶体和微调电容外接,本系统中采用12MHz的晶振频率。由于80C51的系统性能满足系统数据采集及时间精度的要求,而且产品产量丰富来源广,应用也很成熟,故采用来作为控制核心。

四、流程图

Key3=0?

清零复位

数都=0?

Key2=0?

Y

Y

Y

N

Y

N

Y

Y

Y

Y

Y

N

Y

N

Y

Y

开始

扫描按键

Key5=0?

Flag2=!Flag2

Flag2=0?

Key1=0?

Flag=!Flag

TR0=!TR0

TR0=1?

Flag=0?

倒计时

正计时

显示End

Key3=0?

Flag3=!Flag3

Flag3=0?

Key1=0?

Key2=0?

Key1=0?

秒+1

秒-1

分+1

分-1

显示

Y

五、主程序

#include

#define

uchar

unsigned

char

#define

uint

unsigned

int

uchar

code

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

uchar

code

table1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

uchar

tempdate[8];

uchar

i,x,tt,tt1,w,n,flag,flag1,flag2,flag3,keyn;

char

min_h,min_l,sec_h,sec_l,sec_ph,sec_pl;

uchar

tmin_h[8],tmin_l[8],tsec_h[8],tsec_l[8],tsec_ph[8],tsec_pl[8];

uchar

minh1,minl1,sech1,secl1,secph1,secpl1;

char

minh,minl,sech,secl,secph,secpl;

sbit

wela=P2^6;

sbit

dula=P2^7;

sbit

key1=P2^0;

sbit

key2=P2^1;

sbit

key3=P2^2;

sbit

key4=P2^3;

sbit

key5=P2^4;

sbit

beep=P2^5;

void

delay(uint

z)//12mhz延时

1ms

{

uint

y;

while(z--)

for

(y=89;y>0;y--);

}

void

beep1(uchar

z)

{

uchar

i;

for(i=0;i0

if(sec_pl0)

if(sec_pl==10){sec_pl=0;sec_ph++;}

if(sec_ph==10){sec_ph=0;sec_l++;}

if(sec_l==10){sec_l=0;sec_h++;}

if(sec_h==6){min_l++;sec_h=0;}

if(min_l==10){min_l=0;min_h++;}

if(min_h==6)clr();

}

}

void

time1()

interrupt

3

{

TH1=(65536-2000)/256;

TL1=(65536-2000)%256;

dis(0,6);

}

六、使用说明书

多功能秒表使用说明书

秒表显示方式:

多功能秒表可以显示从(0.00秒到59分59秒99),当显示的时间超过1小时后,数码管数据清零,显示情况如下图:

图一

秒表按键设置:

多功能秒表共设置有5个按键如图:

图二

秒表的使用方法:

1、正计时:

多功能秒表一开机,默认为正计时工作方式,当按下key1(开始/暂停)键后,秒表开始计时。在计时过程中,可以通过key1(开始/暂停)键,来控制计时的暂停或开始,亦可以通过key2(记录)键来记录时间数据,用户每按一次key2(记录)键,喇叭响一声,则记录一组时间数据,一共可以记录7组数据。若时间数据存满以后,计时停止,再按一次key2(记录)键可以返回查看原先记录的数据(若需要记录的数据不足七组,可以在记录数据组数到达所需要求时先暂停计时然后按下key2(记录)键进入查看数据,未记录的数据组默认显示为(0000.00))。在查看数据时,按住key2(记录)键最后一位数码管将会显示要显示的数据组数,如图三,当放开key2(记录)键后将显示的是记录下的第二组数据。图三

2、倒计时:

首先使秒表暂停,然后按住key4(模式切换)键,此时最后一位数码管显示“d”,放开该键,则秒表进入倒计时模式,再次按住key4(模式切换)键,最后一位数码管显示“A”,放开该键则可以切换回正计时模式(如图四所示)。倒计时模式下也可以记录7组数据,记录和查看方法与正计时相同。

图四

当倒计时时间进入最后10秒倒计时时,每隔一秒喇叭响一声。当再度跳为0000.00时,计时停止,在数码管上闪烁”End”喇叭长响(如图五所示)。

图五

3、时间设置

首先使秒表暂停,长按key5(时间设置),直到最后一位数码管显示“A”且喇叭响一声(如图六所示)。放开该键,后可以看到秒的个位为长亮,其它数码管闪烁显示,此时按一下key1(开始/暂停)键可以使秒加1,按一下key2(记录)键,可以使秒减一,按下key3(复位)键可以看到分个位变为常亮,其余闪烁显示,此时按一下key1(开始/暂停)键可以使分加1,按一下key2(记录)键,可以使分减一。当时间设置完成后再长按key5(时间设置)键,直到最后一位数码管显示“A“,且喇叭响一声后松开退出时间设置。图六

七、心得体会

设计的过程中,我受益匪浅。首先,我意识到平时扎实的基础是关键,只有平时学得牢,在面对课题时思路才会敏捷,在面对问题时才会快速找到症结所在并找到解决之道。其次,程序设计是个很复杂的过程,在大的构思实现之后我们往往还要在很多的细节上对程序加以改进。

在过去的大学学习中,我们大多数接触的是专业课,我们在课堂上学习的也都是专业课的理论知识,为了锻炼我们的实践能力把所学的专业理论知识运用到实践中去,课程设计为我们搭建了这样一个练习的平台。

在这次课程设计中,我们培养了在实践中研究问题、分析问题和解决问题的能力,并意识到程序设计不仅要注重整体,更要注重细节;当程序运行过程中遇到问题时,我们要打开思路,发挥创新精神,力求用最有效简洁的方法解决;遇到难以解决的困难时,我们要多多请教书本、老师、同学,坚持不懈,就算程序运行失败了也不要气馁。

这一次的课程设计实验,让我体会到知识的应用所带来的成就感。与此同时,单片机课程设计也使我们体会到了团结的力量,再复杂的程序在我们的讨论中也可以得到答案。课程设计所带来的经验可以让我更好的学习。

八、整体电路仿真图

TAG标签: