单片机电子时钟设计大作业_第1页
单片机电子时钟设计大作业_第2页
单片机电子时钟设计大作业_第3页
单片机电子时钟设计大作业_第4页
单片机电子时钟设计大作业_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南昌大亨

《单片机原理与接口技术》大作业

题目:《单片机电子时钟设计》

专业:软件工程

班级:软工146

学号:8000114047

学生姓名:____________荣麒_____________

南昌大学软件学院

一.题目:单片机电子时钟时钟

二.内容:

设计一个数字时钟,显示范围为00:00:00-23:59:59。通过几个开关进行控制,其中开关K1用于切换时间设置(调

节时钟)和时钟运行(正常运行)状态;开关K2用于切换修改时、分、秒数值;开关K3用于使相应数值加1调节;开关

K4用于减1调节;开关K5用于设定闹钟,闹钟同样可以设定初值,并且设定好后到时间通过实验箱音频放出一段乐曲作

为闹铃。

选做增加项目:还可增加秒表功能(精确到0.01s)或年月日设定功能。

三.要求:

开关K3进行加1调节时,当加至最大值(时为24,分和秒均为60)时要能正常归零。开关K4进行减1调节时,当

减至最小值00时,均能再回到从相应最大值(时为23,分、秒均为59)。闹钟乐曲自定。

四.电路及功能说明:

电路图如图所示:

I5-3H-HH

…卅I

',

・・

HteUT

"6ME

n

»tK

n

»«M

M

M

0g

RZtfAtt

n,f

»10

F3in)»

FXVMTTT

,1jfflno

rnrwn

.1*HD

cm

F3AKOI

,3?,fF

图A

XX¥

I

-I,

4?・sf

W:

・4

•Ks

8g

BQ

e二

*T-o

2■□■333■3333338p.

»■wwMMk^F■^.Wo□

>WwJUWU55Ss75SsSD

fnTS»Mq»»s,r

l3sr9>rdQasa«s8i8Bycu

no

0«二

3«二

?:

图c

该数字钟是用一片AT89C51A单片机通过编程去驱动8个数码管实现的。通过6个开关控制,从上到下6个开关

KEY1〜KEY6的功能分别为:KEY1.切换至秒表;KEY2,调节时间,每调•次时加1;KEY3,调节时间,每调•次分加1:

KEY4,从其它状态切换至时钟状态;KEY5,切换至闹钟设置状态,也可以对秒表清零;KEY6,秒表暂停.控制键分别与

P1.0-P1.5□连接.其中:

A.通过P2口利P3□去控制数码管的显示如图所示P2口接数码管的a——g端,是控制输出编码,P3口接数码管的1

——8端,是控制动态扫描输出.

B.从P0.0输出一个信号使二极管发光,二极管在设置的闹钟时间到了时候发光,若有乐曲可以去驱动扬声器实现。

(图A是时钟运行状态,图B是闹钟运行状态,图C是秒表运行状态)

功能说明:

1.各个控制键的功能:可对时间进行校准调节(只能加1);按下设置键数字时钟进入闹钟设置状态,设置闹钟的

时间;时加1、分加1键是在校准时间时或设置闹钟时间对小时数或分钟数调节而设置的;按下秒切换键就可以

进入秒表模式,同时秒表也开始计时,按下秒表暂停、复位键就暂停、归零,如果要重新对秒计时则可以按秒表

开始、复位;清零键可以对闹钟清零。

2.AT89c51单片机,通过编写程序对数码显示进行控制。

3.八个7段数码管显示时钟和秒表信号。

五.实验程序流程图:

1.主程序流程图:

N

执行显示程序匕

2.中断程序流程图

恢复初值保护

Y

Y

时数值time】.hour归零

2.秒表中断程序流程图:

3.按键程序流程图:

第一图为时钟和闹钟的调节.

第二图为进入中断和清零

断分加键tminule

否按下,Pl.1=0?,

N

六.开发板的结构

8位8段|「602液晶||芸乳|

7.5VUSB1117

电源开关赢管||显蔡接口||液器木]

直流供电供电接口电源芯片

|232串行|

系统

复位按键通信口

PSEN、EA

蜂鸣器

信号选择

40PIN单片温度传感

机锁紧座器18B20

3-8译码红外一体

器接收头

哪台5'

P0QT2PSPIBT3

系统EEPROM

时钟24co2

扩展借口扩展接口扩展接口SRAM1*8LED4*41*4

PORT2PORT1PORT362256显示灯矩阵键盘独立键盘

七.通过SST51实现开发板只读模式和程序烧写的切换

打开SSTEasyIAPHF.exe程序,选择串口

选择芯片型号和内部程序存储器

选择PC串口,MCU晶振和波特率

先选择确定在复位MCU

通讯成功后窗口右上角显示芯片信息和版本信息

点击DownloadSoftICE选项,将MCU中的BOOTLOADER监控程序替换为SoftICE监控程序

选择确认更换

打开KeilC51程序,新建一个工程

保存在自己新建的文件夹中

点击保存出现CPU选择对话框,选择SST系列的89X516RD2

出现是否添加标准51初始代码对话框,选''否"

工程建立之后新建源程序文件,点击“File”菜单下“New”选项

保存在工程文件夹内,C程序文件后缀为“.C",汇编程序文件后缀为“.ASM”

在文本编辑区编写源程序并保存;在SourceGroup上右击选择"AddFilesToGroup...”选项添加源文件至

工程

选择编写好的源程序文件,点击Add添加所选文件

点击编译按钮,编译工程

进入目标板调试选项设置,点击“Project"菜单下"OptionsforTarget...”选项

选择为硬件仿真功能

点击Setting进入通讯参数设定菜单,去掉所有Cache选项。至此设置完毕,进入仿真调试阶段

点击DEBUG下的“Start/StopDebugSession”选项进入DEBUG界面

进入后可以看到信息栏中由显示连接成功信息。在此仿真界面可以进行单步、全速、断点等调试方式

由SoftICE监控程序转换回SSTBoot-StrapLoader监控程序

打开编辑器SUPERPRO程序

进入SUPERPRO程序界面,单击“选择器件选项”

进入器件选择对话框,在器件类型处选择“MCU/MPU”在查找处输入要器件名称,找到之后选择“确定”

单击“装入文件”选项

进入下载文件选择对话框,选择要下载的SoftICE监控程序,文件格式一般为“.hex”或“.bin”格式

因为SST单片机的监控程序存储在Blockl中,Blockl的地址为lOOOOh,故数据缓冲区起始地址改为“10000”,

下载一般执行程序则直接默认

具体步骤为:Erase=》Program=》Verify;

打开SSTBOOT-STRAPLOADER软件工具,并按之前的步骤与单片机通讯连接成功。在界面的右下方IAP

Function菜单中有下载选项,选择"Download”选项下载程序

进入了下载文件选择界面

在文件查找对话框中找到要下载的用户程序,一般为.Hex或.bin格式文件

选择好用户程序后,单击步骤二中的0K选项开始下载,界面最下面的状态栏显示下载进度,当显示为Done

时表示程序下载已经完成,单片机上电执行用户程序了

八.实验结果分析:

此时钟设计是利用仿真软件进行仿真。基本上实现了要求的功能,该多功能数字钟实现的忖钟显示、闹钟设置和秒表

功能,校准时钟时只设计了时加键和分加键以及清零键,没有设置减分减时键。可发通过循环调节得到正确的调节数

值。另外,要求有一段乐曲来作为闹钟,可这里只是用了一个二级管的发光来实现这个功能。若用一个扬声器和一个

乐曲能够实现。

九.程序代码:

#include<reg5l.h>

#defineucharunsignedchar

#defineuintunsignedint

#definedelay_time3

uchark,dat[]={0,0,0,0,0,0,0,0};

uinttcount,t,u;

uchardatl[]={0,0,0,0,0,0,0,0};

uchardat2[]={0,0,0,0,0,0,0,0);

ucharalarms[]={0,0,0,0,0,0,0,0);

uchardis_bit[J={0x80,0x40,0x20,Ox10,0x08,0x04,0x02,0x01};

unsignedcharcodeSEG7[11]={0xC0,/*0*/

0xF9,/*l*/

0xA4,/*2*/

0xB0,/*3*/

0x99,/*4*/

0x92,/*5*/

0x82,/*6*/

0xF8,/*7*/

0x807*8*/

0x90,/*9*/

OxBF,/*-*/

);

sbitmiaobiaol=PlA0;

sbittminute=PlA1;

sbitthour=PlA2;

sbitmiaobiao2=PlA3;

sbitalarm=PlA4;

sbitPO_O=POAO;

sbitPl_5=PlA5;

sbitPl_6=PlA6;

sbitPl_7=PlA7;

ucharms=0;

ucharflag=O;

ucharsec=O;

ucharminit=O;

structtime{ucharsecond;ucharminute;ucharhour;}time1;

ucharn,i;

voiddelay(n)

(

while(n—)

(

for(i=120;i>0;i-);

voidmodify(void)

EA=0;

if(thour==0)

(

if(flag==0)

(

datl[6]++;delay(l80);

if(datl[6]>9)

{

datl[6]=0;datl[7]++;

if(datl[7]>2)

(

datl[7]=0;

)

)

)

if(flag==l)

(

alarms[6]++;delay(200);

if(alarms[6]>9)

{

alarms[6]=0;alarms[7]++;

if(alarms[7]>2)

(

alarms[7]=0;

dat[6]=alarms[6];

dat[7]=alarms[7];

if(tminute==O)

(

if(flag==O)

(

datl[3]++;delay(180);

if(dat[3]>=10)

{

datl[4]++;datl[3]=0;

if(datl[4]>5)

(

datlL4J=0;

if(flag==l)

(

alarms[3J++;delay(200);

if(alarms[3]>9)

(

alarms[4]4-+;alarms[3]=0;

if(alarms[4]>5)

(

alarms[4J=0;

)

)

dat[3]=alarms[3];

dat[4]=alarms[4];

)

}

if(miaobiaol==0)

{

TRO=O;ETO=O;TR1=1;ET1=1;

)

if(miaobiao2==0)

(

TRO=1;ETO=1;TR1=O;ET1=0;

dat2[0]=0;

dat2[l]=0;

dat2[3]=0;

dat2[4]=0;

dat2[6]=0;

dat2[7]=0;

ms=O;

sec=O;

minit=O;

)

if(Pl_5==0)

{

TRO=O;ETO=O;TR1=O;ET1=O;

)

if(alarm==O)

{

TRO=O;ETO=O;TR1=O;ET1=O;flag=1;

dat[OJ=O;

dat[l]=O;

dat[2]=10;

dat[3]=0;

dat[4]=0;

dat[5]=10;

dat[6]=0;

dat[7]=0;

)

EA=1;

voidinit(void)

TMOD=Oxll;

TH0=0xDB;

TLO=0xFF;

THl=0xDB;

TLl=0xFF;

ET0=1;//10ms

ET1=1;

//TR1=1;

TR0=l;

tcount=0;

ms=0;

sec=0;

minit=0;

EA=I;

voidtest(void)

(

for(k=0;k<8;k++)

(

P3=dis^bit[k];P2=SEG7[dat[k]];delay(l);P3=0X00;

voidmain()

(

init();

delay(lO);

while(l)

(

modifyO;

test();

voiddiplayOinterrupt1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论