单片机课程设计书倒计时器的设计.docx

上传人:b****6 文档编号:7915979 上传时间:2023-01-27 格式:DOCX 页数:15 大小:221.15KB
下载 相关 举报
单片机课程设计书倒计时器的设计.docx_第1页
第1页 / 共15页
单片机课程设计书倒计时器的设计.docx_第2页
第2页 / 共15页
单片机课程设计书倒计时器的设计.docx_第3页
第3页 / 共15页
单片机课程设计书倒计时器的设计.docx_第4页
第4页 / 共15页
单片机课程设计书倒计时器的设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

单片机课程设计书倒计时器的设计.docx

《单片机课程设计书倒计时器的设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计书倒计时器的设计.docx(15页珍藏版)》请在冰豆网上搜索。

单片机课程设计书倒计时器的设计.docx

单片机课程设计书倒计时器的设计

XXXXXXXXXXXXX

单片机原理及接口技术课程设计总结报告

设计题目:

电子钟倒计时器的设计

姓名:

XXXXXXX

系别:

XXXXXXXXXXXXXXX

XXXXXXXXXXXXX

专业:

XXXXXXXX

班级:

XXXXXXXXX

学号:

XXXXXXXXXXX

指导教师:

XXXX

 

2010年01月12日

郑州轻工业学院

课程设计任务书

题目电子钟倒计时器的设计

专业、班级XXXXXXXXX班学号XXXX姓名XXXXXX

主要内容、基本要求、主要参考资料等:

主要内容

1.以单片机为核心器件组成具有倒计时功能的计时器。

2.可以通过按键进行复位、启动、暂停等功能。

基本要求

1.能够对电子电路、电子元器件等方面的知识有进一步的认识,独立对其进行测试与检查。

 

2.熟悉8052单片机的内部结构和功能,合理使用其内部寄存器,能够完成相关软件编程设计工作。

 为实现预期功能,能够对系统进行快速的调试,并能够对出现的功能故障进行分析,及时修改相关软硬件。

参考资料

1.单片机原理及接口技术张毅刚/彭喜元主编人们邮电出版社

2.单片机试验与实践教程万光毅主编北京航空航天大学出版

完成期限:

2010年01月12日

指导教师签名:

课程负责人签名:

2010年01月04日

绪论

单片机自20世纪70年代问世以来,已对人类社会产生了巨大的影响。

尤其是美国Intel公司生产的MCS-51系列单片机,由于其具有集成度高、处理功能强、可靠性高、系统结构简单、价格低廉、易于使用等优点,在工业控制、智能仪器仪表、办公室自动化、家用电器等诸多领域得到广泛的应用。

在于MCS-51单片机兼容的各种增强型、扩展性等多种衍生单片机产品中,美国ATMEL公司推出的AT89C5x系列单片机在我国的8位单片机市场中占有比较大的份额。

AT89C5x系列单片机有多种机型,其中的基本型AT89C51单片机时十分重要的,因为他是目前替代MCS-51系列单片机的主要芯片之一,具有典型性、代表性,同时也是各种增强型、扩展型等衍生产品的基础。

   

本次课程设计就是用AT89C5x系列的单片机设计电子钟倒计时器,,不但电路简单,而且功能可根据需要自行设计。

电子钟倒计时器在生活中非常有用。

例如:

可用于新年倒计时、重大的事件倒计时以及科研上的倒计时。

 

目录

1设计方案简介5

2设计流程图5

3设计原理6

3.1AT89C516

3.1.1AT89C51单片机简介6

3.1.2管脚功能7

3.2实验原理图9

4软件流程图10

4.1倒计时器主程序框图10

4.2显示子程序框图11

5带详细注释的源程序清单11

6调试运行18

7个人体会18

8参考文献20

1.设计方案简介

(1)4个按键组成2*2矩阵形式,接到P3口。

其中SW4接P3.6口,SW5接P3.7。

(2)通过T0定时器与P2.3引脚配合构成音频发生器,在P2.3引脚输出音频频率。

2.设计流程图

设计电路

原理图输入

汇编语言

焊接电路

编译

映射下载到芯片上

3.设计原理

3.1AT89C51

3.1.1AT89C51单片机简介

图(a)89C51内部结构图

AT89C51是美国ATMEL公司推出的系列单片机,将多种功能的8位CPU与FPEROM(快闪可编程/擦除只读存储器)结合在一个芯片上,是一种低功耗、高性能的CMOS控制器,为很多嵌入式控制应用提供了非常灵活而又价格适宜的方案,其性能价格比远高于同类芯片。

它与MCS-51指令系统兼容,片内FPEROM允许对程序存储器在线重复编程,也可用常规的EPROM编程器编程,可循环写入/擦除1000次。

89C51内含4KB的FPEROM,一般的EEPROM的字节擦除时间和写入时间基本上均为10ms,对于任一个实时控制系统来说,这样长的时间是不可能在线修改程序的。

与EEPROM相比较,FPEROM大大缩短了存储内容擦除和写入的时间,为在线改写程序提供了极大的方便,而且价格也比带EPROM87C系列单片机便宜,这更显示出了89C系列的优越性。

它还有128*8Bit的片内RAM;32根I/O线;2个16位定时/计数器;5个中断源;一个全双工的异步串行口;间歇和掉电工作模式;三级程序存储器加密;全静态工作,晶振工作范围:

0Hz—24MHz。

3.1.2管脚功能

AT89C51单片机为40引脚芯片如图(b)所示。

(1)I/O口线:

P0、P1、P2、P3共四个八位P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读ˆ写操作。

P0口也用以输出外部存储器的低8位地址。

由于是分时输出,故应在外部加锁存器将此地址数据锁存,地址锁存信号用ALE。

P1口是专门供用户使用的I/O口,是准双向口。

P2口是从系统扩展时作高8位地址线用。

不扩展外部存储器时,P口也可以作为用户I/O口线使用,P2口也是准双向口。

P3口是双功能口,该口的每一位均可独立地定义为第一I/O功能或第二I/O功能。

作为第一功能使用时操作同P1口。

P3口的第二功能如图(c)。

图(b)89C51引脚图

(2)控制口线:

PSEN(片外取控制)、ALE(地址锁存控制)、EA(片外储器选择)、RE2SET(复位控制);

(3)电源及时钟:

CCC、VSS;XTAL1,XTAL2

图(c)引脚功能表

3.2实验原理图

(1)主控制电路

(2)LED数码管控制电路图(3)蜂鸣器控制电路

4.软件流程图

4.1倒计时器主程序框图

 

4.2显示子程序框图

 

5.带详细注释的源程序清单

;************************************************

;设计选题:

倒计时器系统设计

;描述:

4位LED数码显示"倒计时器",显示时间为99秒,

;一个"开始"键,一个"复位"键,一个"暂停"键。

;调用子程序:

计时子程序,显示子程序,定时子程序

;所用特殊寄存器:

寄存器A,寄存器C

;所用中断:

外部中断INT0,定时器T0

;实验作者:

肖延文--47号,高穹誉--10号

;************************************************

ORG0000H

LJMPSTART;主程序必须避开地址000BH

ORG000BH;定时器0的中段服务程序,起始地

;址为000BH

LJMPIT00

ORG0030H

START:

MOVTH0,#0D8H;装入初始值,定时10ms

MOVTL0,#0F0H

MOVTMOD,#01H;工作方式1

MOV33H,#09;显示初值为99s

MOV32H,#09

MOV31H,#00

MOV30H,#00

SETBET0;打开定时0

SETBEA;开总中断

LOOP1:

JBP3.6,LOOP;判断高低位,即按键KEY0是否按下

LCALLDISPLAY;为低,即按键按下,延时消抖

LCALLDISPLAY

JBP3.6,LOOP;按键真的按下,并不是外界的干扰

SETBTR0;启动定时器

HERE:

LCALLDISPLAY;调用显示

JBP3.7,LOOP3;判断高低,即KEY1按键是否按下

CLRTR0;按下,关闭定时器,这里并没有消抖

LJMPLOOP1;等待KEY0的按下

LOOP3:

SJMPHERE;KEY1没有按下,就需显示

LOOP:

LCALLDISPLAY;KEY1没有按下,就需显示

LJMPLOOP1

;************************************************

;减10ms子程序

;************************************************

SUB1:

DEC30H;百分位减1

MOVA,30H

CJNEA,#0FFH,LOOP2;判断百分位减到0之后是否再减1

MOV30H,#09;是,装入初值9

DEC31H;十分位减1

MOVA,31H

CJNEA,#0FFH,LOOP2;判断十分位减到0之后是否再减1

MOV31H,#09

DEC32H

MOVA,32H

CJNEA,#0FFH,LOOP2

MOV32H,#09

DEC33H

MOVA,33H

CJNEA,#0FFH,LOOP2

CLRP2.3;从99s减到0s后,驱动蜂鸣器

LCALLDELAY;延时

LCALLDELAY

SETBP2.3;关闭蜂鸣器

MOV33H,#09;装入初值99s

MOV32H,#09

MOV31H,#00

MOV30H,#00

LOOP2:

NOP;空指令

RET;返回

;************************************************

;显示子程序

;************************************************

DISPLAY:

MOVDPTR,#TAB;赋表首地址

;选定片选数码管

MOVA,#0FBH

SETBP2.7

MOVP0,A;点亮最左边的数码管

CLRP2.7

XCHA,R0;暂存A的值

;输出显示数据

MOVA,33H

MOVCA,@A+DPTR;根据表值查找所需的值

SETBP2.6

MOVP0,A;显示值

CLRP2.6

LCALLDELAY;延时

;选择下一显示数码管

XCHA,R0;恢复原值

RLA;循环左移,为下次做准备

SETBP2.7

MOVP0,A

CLRP2.7

XCHA,R0

MOVA,32H

MOVCA,@A+DPTR

SETBP2.6

MOVP0,A

CLRP2.6

LCALLDELAY

XCHA,R0

RLA

SETBP2.7

MOVP0,A

CLRP2.7

XCHA,R0

MOVA,31H

MOVCA,@A+DPTR

SETBP2.6

MOVP0,A

CLRP2.6

LCALLDELAY

XCHA,R0

RLA

SETBP2.7

MOVP0,A

CLRP2.7

XCHA,R0

MOVA,30H

MOVCA,@A+DPTR

SETBP2.6

MOVP0,A

CLRP2.6

LCALLDELAY

RET

;************************************************

;数码管显示的数值

;************************************************

TAB:

DB0EDH,48H,0F4H,0B5H,99H

DB3DH,7DH,85H,0FDH,0BDH,0DDH,79H,6CH,0F1H,7CH,5CH

IT00:

MOVTH0,#0D8H;装入初值10ms

MOVTL0,#0F0H

LCALLSUB1;减10ms

RETI;返回

;************************************************

;延时子程序,时间大约为:

2us*10*250

;************************************************

DELAY:

MOVR7,#10

DEL2:

MOVR6,#250

DEL1:

DJNZR6,DEL1

DJNZR7,DEL2

RET

END;结束

 

6.调试运行

1.接硬件图连线,为了确保四位数码管能够对应显示。

实验时,对P0口的接线做了调整。

即:

P0.0接L1,P0.1接L2,P0.2接L3,P0.3接L4。

2.从0030H单元开始连续运行,观察四个数码管显示情况是否与预期的结果一致。

如果不一致,则单步运行或断点运行进行调试,直至满足设计要求。

3.整体运行,观察数码管显示是否符合要求。

如果不符合,则再调试,直至满足要求。

7.个人体会

通过本次课程设计,我深深的体会到了作为一个硬件工程师的艰辛。

即使做一个小小的项目,都需要这么多的辛苦,必须考虑到问题的任何一个细节,否则最后也将是功败垂成。

原理图设计:

当我们选取了这样一个题目,我们就开始收集相关的各种资料,对题目有个大致的了解,规划一下设计的任务将要完成哪些功能。

然后就具体的每一项功能应该怎样具体的设计,例如用什么方法完成这一功能,这种想法是否合理。

经过长时间的查阅资料、思索、推敲,最后定出了这次设计的原理图。

编程调试:

此次设计的编程,难点在于对LED数码管显示程序的编写,由于对AT89C51的工作原理不是很熟悉,所以一开始摸不着头脑。

看参考教材、上网查阅其相关资料,对AT89C51的工作原理有个大致的了解后,程序的编写也初见端倪了,所以花在编此段程序的时间最长;中断程序的编写也是常规的编写。

在整个程序的编写过程中,研究每个子程序是否好使,我是通过KeilC和proteus两个软件来实现的。

Proteus是一个单片机的仿真软件,发现它之后真的很受用,通过它可以不用连接硬件就能检查程序是否好使。

KeilC则帮助我检查程序是否存在语法错误之类的问题,还可以生成hex文件,供proteus软件仿真使用。

通过这两个软件,我们把整个的程序调试正确。

通过上面的这个步骤,把程序调试好,接下来就是真正的硬件连接调试了。

程序既然已经在仿真的软件上通过认证,如果连接上硬件不好使的话,说明在硬件上某个部分存在一定的问题。

这点得到了验证:

硬件模拟的时候,紧急情况用的开关有一个不好使,按下的时候没有反应。

用万用表检测发现,开关内部的连接没有错误,但是当开关按下的时候,不是接通的,说明此开关有问题。

后来仔细检查,发现一个引脚在焊接的时候没有焊接上。

这次课程设计我是全身心的投入进去了,从中确确实实学到了不少东西,使我受益匪浅。

这次课程设计中犯下了不少错误,以后我会接受这些教训,同时把这些教训转换为经验应用到以后的此类设计中。

最后,衷心感谢在课程设计期间老师对我们的无私帮助,还要感谢和我同组的合作者,以及所有帮助过我的同学。

8.参考文献

(1)单片机原理及接口技术张毅刚/彭喜元主编人们邮电出版社

(2)单片机试验与实践教程万光毅主编北京航空航天大学出版

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

当前位置:首页 > 求职职场 > 笔试

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

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