电子表实训报告.docx

上传人:b****7 文档编号:15746529 上传时间:2023-07-07 格式:DOCX 页数:15 大小:73.88KB
下载 相关 举报
电子表实训报告.docx_第1页
第1页 / 共15页
电子表实训报告.docx_第2页
第2页 / 共15页
电子表实训报告.docx_第3页
第3页 / 共15页
电子表实训报告.docx_第4页
第4页 / 共15页
电子表实训报告.docx_第5页
第5页 / 共15页
电子表实训报告.docx_第6页
第6页 / 共15页
电子表实训报告.docx_第7页
第7页 / 共15页
电子表实训报告.docx_第8页
第8页 / 共15页
电子表实训报告.docx_第9页
第9页 / 共15页
电子表实训报告.docx_第10页
第10页 / 共15页
电子表实训报告.docx_第11页
第11页 / 共15页
电子表实训报告.docx_第12页
第12页 / 共15页
电子表实训报告.docx_第13页
第13页 / 共15页
电子表实训报告.docx_第14页
第14页 / 共15页
电子表实训报告.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

电子表实训报告.docx

《电子表实训报告.docx》由会员分享,可在线阅读,更多相关《电子表实训报告.docx(15页珍藏版)》请在冰点文库上搜索。

电子表实训报告.docx

电子表实训报告

 

深圳职业技术学院

SHENZHENPOLYTECHNIC

 

实训报告

主题:

电子表的设计与制作

 

系部:

机电学院

专业:

电气自动化

班级:

09电气自动化4

组员:

淳,毛威

日期:

2010年5月13日

 

一、设计目标

1.用4位的7段显示器显示分,秒,以24小时方式工作

2.用开关可以调节显示器的时间及日期显以及切换显示的容

3.可以设置闹钟

4.可以调节时间及日期

5.在闹钟时间到达时蜂鸣器会发声

二、设计方框图

显示时间,如果有中断,调节时间和闹钟

三、元器件介绍

1.AT89C51:

AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C单片机为很多嵌入式

系统提供了一种灵活性高且价廉的方案

 

2.4位7段共阳显示器:

4位是同时显示六位阿拉伯数字,而每一个数字又是七段码显示的;七段是指一个数码显示的阿拉伯数字是由七位二进制数控制的,共阳是指相应的二进制为1时不亮,为0时亮。

在实验中显示器的作用是显示时间。

四、设计原理

设计程序分为主程序,中断程序和各种功能程序。

2.6位7段共阳显示器:

六位是同时显示六位阿拉伯数字,而每一个数字又是七段码显示的;七段是指一个数码显示的阿拉伯数字是由七位二进制数控制的,共阳是指相应的二进制为1时不亮,为0时亮。

在实验中显示器的作用是显示时间。

四、设计原理

设计程序分为主程序,中断程序和各种功能程序。

主程序要完成系统的初始化,接受键值并根据键号实现不同的功能,以及判断闹铃时间是否到,如果时间到,则启动响铃。

中断服务程序包括定时计数器0和定时计数器1的中断服务程序,定时计数器0的中断程序实现50ms定时,并每中断20次就修改当前的,分,秒值。

外部中断0实现日期,时间,以及闹钟的转化,当单片机复位之后显示的时间的时和分钟,按一下外部中断0按钮,转化显示的秒钟,在按一下显示的是日期的月份和日,在按一下的话显示的就是闹钟的当前的设定时间。

而外部中断1实现的是调整时间,日期,闹钟,秒钟,如果当前显示的是分钟和秒钟的话,那么现在外部中断1可以调整秒钟;如果是月份的话那么就是可以调整日的显示;如果当前显示的是闹钟的时间,那么你就可以调整显示的闹钟的时间那么就可以改变闹铃响的时间,即是设定闹铃。

五、电路安装与调试过程

因为是用protues进行仿真,所以并没有实际的电路图,仿真的电路如下所示。

按开始按钮开始仿真,显示时间,调节开关可以控制时间,可以控制闹铃。

但刚开始时调节时钟时经常出错,还不能熟练掌握,多调试几次才能每次都准确的调节。

电子表仿真图如下:

六、训练总结

1.这次课程设计,我想到要做电子表主要是因为在大一大二的时候做过类似的题目,曾经用电路板接过数字钟,也用Multisim软件做过仿真,也用EDA工具做过实验,所以很想用单片机做个试试,看与之前的数字钟相比,用单片机做的优势与劣势在哪里。

2.因为这次用的protues软件之前从未接触过,做起来难免手忙脚乱的,一大堆难题需要解决,甚至是软件的安装都是经过一段时间摸索才真正掌握的。

借助老师的给的关于protues软件的PPT,不断的学习,以及和同学的交流,逐渐了解的软件的使用,能够制作一些简单的设计,比如流水灯,用数码管显示数字等。

3.经过不断的做试验,我还学会了protues软件和Keil软件的连接,应用Keil编译程序,然后用protues仿真。

因为protues软件本身自带编译器,也可以借助轻松汇编编写好汇编程序再在protues中添加进去就行了。

两种方法相比,个人觉得第二种方法更方便些,但如果编译不通过的话,只能知道出错的行,修改起来比较困难;第一种方法应用起来麻烦一些,必须先安装Keil软件和让它们相连接的软件,但用起来相当顺手,不论是汇编语言还是C语言。

4.我的课程设计是借鉴老师所给的材料,在完成整个电路的连接之后,想要进行仿真时,经常出现错误,有时编译失败,有时是数码管不亮,有时是控制开关失灵,有时是闹钟设置失效,在不断的检查过后一个完整的电子表终于呈现出来了!

5.在选择编成语言时,我同时选择了C语言和汇编两种进行,在多次比较之后还是选用汇编,因为虽然C语言程序相对一些,但因为我对汇编语言更为熟悉,最终还是选择汇编。

电子表的汇编程序对于我来说,想要全部理解还有困难的,只能大概明白。

6.在protues软件中,对于初学者而言,寻找器件,连接器件都有些困难,毕竟对软件不熟悉,有些器件的名称又不清楚,如果查找查不到时只有一个一个寻找,相当的费时。

通过这些练习,我才真正明白熟能生巧的道理,不管做什么都需要多多练习。

7.经过一个月的学习,通过查找各种资料,我对于电子表的设计原理和步骤有了更进一步的了解,也增加了我对单片机学习的兴趣,平时也可以选用各种软件完成单片机的一些种设计。

附录:

元器件清单

AT89C2051

1个

LED数码管

4个

12MH晶振

1个

22uf电解电容

1个

220uf电解电容

1个

510电阻

7个

2.2k电阻

5个

10k电阻

2个

30PF电容

1个

0.1PF电容

1个

PNP8550三极管

5个

蜂鸣器

1个

 

电子表程序:

ESCEQU22H

MSECEQU21H

MECEQU23H

ORG0000H

AJMPMAIN

ORG000BH

AJMPTIME0;定时器0实现自动计数

ORG0003H

AJMPWZD0;外部中断0实现时间,日期,秒表转换

ORG0013H

AJMPWZD1;外部中断1实现设置显示值

ORG0100H

MAIN:

MOVIE,#87H;开中断

SETBPX1;设置外部中断1以为优先级

MOVTMOD,#01H;使用定时器方式1

MOVTH0,#3CH;赋50ms初值

MOVTL0,#0B0H

MOVTCON,#15H;开定时器0,及选择中断触发方式

MOVMSEC,#20;赋值一秒钟初值

MOVR4,#00H;标志位清零(中断0)

MOVR5,#00H;秒表初值

MOVR0,#00H;分钟初值

MOVR1,#00H;小时初值

MOVR6,#01H;日期日初值

MOVSP,#3FH;设置堆栈初始值

MOVR7,#01H;月份初值

MOVESC,#06H;闹钟分钟的初始值

MOVMEC,#00H;闹钟小时的初始值

SETBP3.1

MW1:

SETBP3.0

SETBP3.7

SETBP3.5

SETBP3.4

ACALLCLOCK;调用闹钟子程序

CJNER4,#00H,MW7;判断显示时钟

MOVA,R0

AJMPWEI

MW7:

CJNER4,#01H,MW8;判断显示秒钟

MOVA,R5

AJMPWEI

MW8:

CJNER4,#02H,MW12;显示日期

MOVA,R6

AJMPWEI

MW12:

MOVA,ESC;显示闹钟的分钟

WEI:

ACALLSHOW;调用子程序将数据写给p1口

CLRP3.0

ACALLDELAY

SETBP3.0;调用子程序将数据写给p1口

ACALLSHOW1

CLRP3.7

ACALLDELAY

SETBP3.7

CJNER4,#00H,MW9;判断显示时钟

MOVA,R1

AJMPWEI1

MW9:

CJNER4,#01H,MW10;判断显示秒钟

MOVA,#00H

AJMPWEI1

MW10:

CJNER4,#02H,MW13

MOVA,R7;显示日期

AJMPWEI1

MW13:

MOVA,MEC;显示当前闹钟的小时

WEI1:

ACALLSHOW

CLRP3.5

ACALLDELAY;调用延时子程序

SETBP3.5

ACALLSHOW1

CLRP3.4

ACALLDELAY

AJMPMW1

;-----------------------------

SHOW:

MOVB,#0AH

DIVAB

MOVR2,A

MOVA,B

MOVDPTR,#TAB

MOVCA,A+DPTR

MOVP1,A

RET

;------------------------

SHOW1:

MOVA,R2

MOVCA,A+DPTR

MOVP1,A

RET

;------------------------

TIME0:

MOVTH0,#3CH;赋50ms初值

MOVTL0,#0B0H

DJNZMSEC,MW4;判断1s到否

MOVMSEC,#20

INCR5;秒钟加1

CJNER5,#60,MW4;判断1分钟

MOVR5,#00H

INCR0

CJNER0,#60,MW4;判断1小时

MOVR0,#00H

INCR1

CJNER1,#24,MW4;判断24小时

MOVR1,#00H

ACALLMONTH;调用月份子程序

MW4:

NOP

RETI

;---------------------------------

AN11:

INCR6;31天子程序

CJNER6,#32,AB1

MOVR6,#01H

INCR7

CJNER7,#13,AB1

MOVR7,#01H

AB1:

NOP

RET

;------------------------------------

AN12:

INCR6;30天子程序

CJNER6,#30,AB2

MOVR6,#01H

INCR7

CJNER7,#13,AB2

MOVR7,#01H

AB2:

NOP

RET

;---------------------------------

WZD0:

INCR4;标志为加1(中断0)

CJNER4,#04H,MW3;判断标志位

MOVR4,#00H

MW3:

NOP

RETI

WZD1:

CJNER4,#00H,OU;等于0是调时分(中断1)

INCR0

CJNER0,#60,MW6

MOVR0,#00H

INCR1

CJNER1,#24,MW6

MOVR1,#00H

OU:

CJNER4,#01H,MW5;等于1是调秒钟

INCR5

CJNER5,#60,MW6

MOVR5,#00H

SJMPMW6

MW5:

CJNER4,#02H,OU1

ACALLMONTH;调用月份子程序

AJMPMW6

;等于3调节闹钟的时间

OU1:

PUSHACC;保护现场

MOVR3,ESC

MOVA,MEC

INCR3

CJNER3,#60,OU7

MOVR3,#00H

INCA

CJNEA,#24,OU7

MOVA,#00H

OU7:

MOVESC,R3

MOVMEC,A

POPACC;恢复现场

MW6:

NOP

RETI

;-------------------------------------

TAB:

DB40H,79H,24H,30H,19H,12H,02H,78H,00H,18H

DELAY:

MOV09H,#1;延时子程序

DEL1:

MOV10H,#1

DEL2:

NOP

DJNZ10H,DEL2

DJNZ09H,DEL1

RET

;-------------------------------------

MONTH:

CJNER7,#1,AN2;判断月份子程序

ACALLAN11

AJMPMW2

AN2:

CJNER7,#3,AN3

ACALLAN11

AJMPMW2

AN3:

CJNER7,#5,AN4

ACALLAN11

AJMPMW2

AN4:

CJNER7,#7,AN5

ACALLAN11

AJMPMW2

AN5:

CJNER7,#8,AN6

ACALLAN11

AJMPMW2

AN6:

CJNER7,#10,AN7

ACALLAN11

AJMPMW2

AN7:

CJNER7,#12,AN8

ACALLAN11

AJMPMW2

AN8:

CJNER7,#2,AN9;判断2月份

ACALLAN12

AJMPMW2

AN9:

CJNER7,#13,AN10;判断30天的月份

AJMPMW2

AN10:

INCR6

CJNER6,#31,MW2

MOVR6,#01H

INCR7

CJNER7,#13,MW2

MOVR7,#01H

MW2:

NOP

RET

;--------------------------------------闹钟子程序

CLOCK:

PUSHACC;保护现场

MOVA,R0

CJNEA,ESC,OU6;判断闹钟时间到否

MOVA,R1

CJNEA,MEC,OU6

CLRP3.1

AJMPEXIT

OU6:

SETBP3.1

EXIT:

POPACC;恢复现场

RET

END

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

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2