数字电子时钟设计Word格式文档下载.docx
- 文档编号:16438661
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:16
- 大小:120.05KB
数字电子时钟设计Word格式文档下载.docx
《数字电子时钟设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数字电子时钟设计Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
至6.20
完成各种资料的收集
完成
2
至6.21
对资料进行整理
3
至6.22
掌握keilc51和proteus的使用方法
4
至6.23
数字时钟电路图的绘画
5
至6.24
对数字时钟的调试及程序编写
6
至6.27
修改论文及答辩
四、成绩评定与评语
日期:
2016-6-27
专业设计的主动性与平时表现(20%)
独立思考能力与动手能力(40%)
专业设计完成情况(40%)
专业设计成绩
第一章系统方案与总体结构
系统采用通用的80C51芯片,显示器为6个共阳极LED数码管,用1个BCD7段译码器74LS47驱动数码管(74LS47的输入为BCD码,其输出级为集电极开路输出,可直接驱动7段译码管,具有首尾消零等特点),用3-8译码器74LS138的输出作为动态扫描时数码管的选通信号,因为采用了上述两个芯片,所以在对数码管进行扫描显示时,只需要单片机的7条I/O线就能完成显示功能了。
时间以24小时为一个周期,数字时钟钟的格式为:
XXXXXX,由左向右分别为:
时、分、秒。
完成显示由秒加1,一直加1至59,再恢复为00;
分加1,一直加1至59,再恢复00;
时加1,一直加1至23,再恢复00。
*****按键功能*****
1.启动时,数字时钟从23:
59:
00开始自动计时;
2.按键S1控制对“时”的调整,每按一次时计数值加1;
3.按键S2控制对“分”的调整,每按一次分计数值加1;
4.按键S3控制对“秒”的调整,每按一次秒计数值加1;
5.按键S4控制对“时”的调整,每按一次时计数值减1;
6.按键S5控制对“分”的调整,每按一次分计数值减1;
7.按键S6控制对“秒”的调整,每按一次秒计数值减1。
第二章数字时钟硬件构成
2.1数字时钟框图设计
图1数字时钟框图
2.2选用芯片简介
2.2.180C51简介
虽然目前单片机的品种很多,但其中最具代表性的当属Intel公司的MCS-51单片机系列。
MCS-51以其典型的结构、完善的总线、SFR的集中管理模式、位操作系统和面向控制功能的丰富的指令系统,为单片机的发展奠定了良好的基础。
MCS-51系列的典型芯片是80C51(CHMOS型的8051)。
为此,众多的厂商都介入了以80C51为代表的8位单片机的发展,如Philips、Siemens(Infineon)、Dallas、ATMEL等公司,我们把这些公司生产的与80C51兼容的单片机统称为80C51系列。
特别是在近年来,80C51系列又有了许多发展,推出了一些新产品,主要是改善单片机的控制功能,如内部集成了高速I/O口、ADC、PWM、WDT等,以及低电压、微功耗、电磁兼容、串行扩展总线和控制网络总线性能等。
单片机内部结构图为如图3所示:
80C51单片机管脚说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
2.2.2BCD7段译码74LS47简介
该电路是由与非门、输入缓冲器和7个与或非门组成的BCD-7段译码器/驱动器。
通常是低电平有效,高的灌入电流的输出可直接驱动显示器。
7个与非门和一个驱动器成对连接,以产生可用的BCD数据及其补码至7个与或非译码门。
剩下的与非门和3个输入缓冲器作为试灯输入(LT)端、灭灯输入/动态灭灯输出(BI/RBO)端及动态灭灯输入(RBI)端。
该电路接受4位二进制编码—十进制数(BCD)输入并借助于辅助输入端状态将输入数据译码后去驱动一个七段显示器。
输出结构设计成能承受7段显示所需要的相当高的电压。
驱动显示器各段所需的高达24mA的电流可以由其高性能的输出晶体管来直接提供。
BCD输入计数9以上的显示图案是鉴定输入条件的唯一信号。
该电路有自动前、后沿灭零控制(RBI和RBO)。
试灯(LT)可在端处在高电平的任何时刻去进行,该电路还含有一个灭灯输入(BI),它用来控制灯的亮度或禁止输出。
该电路在应用中可以驱动共阳极的发光二极管或直接驱动白炽灯指示器。
图574LS47管脚图
2.2.33-8线译码器74LS138简介
当一个选通端(E1)为高电平,另两个选通端(/E2)和/(E3))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。
图674LS138管脚图
2.2.4LED数码显示器简介
LED数码显示器是1种由LED发光二极管组合显示字符的显示器件。
它使用了8个LED发光二极管,其中7个用于显示字符,1个用于显示小数点。
LED数码显示器有两种连接方法
(1)共阳极接法。
把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。
当阴极端输入低电平时,段发光二极管就导通点亮,而输入高电平时则不点亮。
(2)共阴极接法。
把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。
每个发光二极管的阳极通过电阻与输入端相连。
当阳极端输入高电平时,段发光二极管就导通点亮,而输入低电平时则不点亮。
在本设计中所采用的是共阴极LED数码显示器,
2.3数字时钟原理图
2.4数字时钟仿真图
第三章数字时钟软件设计
由于电路设计得极其巧妙,许多功能都可以由硬件完成,因此软件设计就比较简单了。
下面介绍软件设计的要点:
主程序:
首先进行初始化,设置数字时钟的计时初值为23:
00,启动T0进行50ms定时,且允许T0中断。
然后检测S1--S6是否按下,当按键S1--S6按下时,转入
时、分、秒计数值的调整程序,系统主程序流程图如图13所示。
定时器T0中断子程序:
中断服务子程序的作用是进行时、分、秒的计时与显示。
定时器T0用于定时,定时周期设为50ms,中断累计20次(即1s)。
定时器T0中断服务程序流程图如图14所示。
时、分、秒计数值调整子程序TIME:
时间计数单元分别在40H(s),41H(min),42H(h)内存单元中,在计数单元中采用组合BCD码计数。
TIME子程序的作用是当满1秒时,对秒计数单元进行加1操作,满60向分进位;
对分计数单元进行加1操作,满60向时进位;
对时计数单元进行加1操作,满24清零。
显示子程序VIEW:
VIEW子程序的作用是分别将时间计数单元40H(s),41H(min),42H(h)中的十进制时间值(组合BCD码)转化为个位和十位(分离BCD码)存放在显示缓冲区中,显示缓冲区地址为30H--35H。
其中30H--31H存放秒数据,32H--33H存放分数据,34H--35H存放时数据。
由于每一个地址单元内均为分离BCD码,用BCD一个7段译码器74LS47直接进行译码,因此不需要软件方式对BCD码数据进行译码。
扫描子程序SCAN:
SCAN子程序的作用是把显示缓冲区中的数据依次送往显示器显示。
把扫描值作为高4位,显示数据值作为低4位,输出P0口,以完成显示,因为采用了3-8译码器74LS47作为扫描输出,所以用36H单元存放扫描指针,即36H中存放的是数码管的序号,显示时,只需取出30H--35H某一地址中的数据,并从P0口的低4位输出,同时P0口的高4位作为扫描值输出,就能保证数码管的正常工作。
第四章数字时钟汇编程序
*******主程序*******
ORG0000H
LJMPSTART
ORG000BH
LJMPTT0
ORG0050H
START:
MOVSP,#70H
MOV36H,#00H;
(36H)为扫描指针
MOV40H,#00H;
秒控制
MOV41H,#59H;
分控制
MOV42H,#23H;
时控制
MOV30H,#00H
MOV31H,#00H;
显示秒
MOV32H,#09H
MOV33H,#05H;
显示分
MOV34H,#03H
MOV35H,#02H;
显示时
MOVTMOD,#01H;
定时器T0工作方式设定
MOVTL0,#0B0H;
设置定时器T0低4位初值
MOVTH0,#3CH;
设置定时器T0高4位初值
MOVIE,#82H;
闭合EA,ET0
MOV50H,#20;
定时1秒循环次数
SETBTR0
LOOP:
JBP1.0,N2;
S1按下时加1
CALLDE;
消除抖动
MOVA,42H
ADDA,#01H
DAA
MOV42H,A
CJNEA,#24H,N1
MOV42H,#00H
N1:
JNBP1.0,$
CALLDE
N2:
JBP1.1,N4;
S2按下分加1
CALLDE
MOVA,41H
MOV41H,A
CJNEA,#60H,N3
MOV41H,#00H
N3:
JNBP1.1,$
N4:
JBP1.2,N6;
S3按下秒加1
MOVA,40H
MOV40H,A
CJNEA,#60H,N5
MOV40H,#00H
N5:
JNBP1.2,$
N6:
JBP1.3,N8;
S4按下时减1
MOVR7,34H
CJNER7,#00H,N60
MOVR6,35H
CJNER6,#00H,N61
MOV42H,#23H
JMPN7
N60:
MOVA,34H
DECA
MOV34H,A
MOVA,35H
SWAPA
ADDA,34H
N61:
MOV34H,#09H
N7:
JNBP1.3,$
N8:
JBP1.4,N10;
S5按下分减1
MOVR7,32H
CJNER7,#00H,N80
MOVR6,33H
CJNER6,#00H,N81
MOV41H,#59H
JMPN9
N80:
MOVA,32H
MOV32H,A
MOVA,33H
ADDA,32H
N81:
N9:
JNBP1.4,$
N10:
JBP1.5,N11;
S6按下秒减1
MOVR7,30H
CJNER7,#00H,N100
MOVR6,31H
CJNER6,#00H,N101
MOV40H,#59H
JMPN11
N100:
MOVA,30H
MOV30H,A
MOVA,31H
ADDA,30H
N101:
MOV30H,#09H
MOV31H,A
N11:
JNBP1.5,$
******T0中断服务子程序******
TT0:
MOVTH0,#3CH
MOVTL0,#0B0H
PUSHACC
PUSHPSW
DJNZ50H,TINT0
CALLTIME
CALLVIEW
TINT0:
CALLSCAN
POPACC
POPPSW
LJMPLOOP
******显示扫描子程序******
SCAN:
MOVR0,#36H
SCAN0:
MOVA,@R0
ADDA,#30H;
A加30H即为显示缓冲区地址
MOVR1,A
ORLA,@R1
MOVP0,A;
P0高4位为扫描值,低4位为显示数据值
CALLDELAY
INC@R0
CJNE@R0,#06H,SCAN0
MOV@R0,#00H
RET
******时、分、秒计数值调整子程序******
TIME:
CJNEA,#60H,TTI
CJNEA,#24H,TTI
TTI:
******向显示缓冲区写数据******
VIEW:
MOVA,40H;
30H为显示缓冲区首地址
ANLA,#0FH
MOV33H,A
MOV35H,A
******延时子程序******
DELAY:
MOVR7,#65
DJNZR7,$
DE:
MOVR4,#10;
延时5ms
DE1:
MOVR5,#249
DJNZR5,$
DJNZR4,DE1
END
第五章心得体会
一个星期的单片机课程设计很快就结束了,在这一周当中,虽然开始有点困难,但是经过努力学习,合理地进行设计安排,我终于顺利地完成了本次单片机课程设计,同时也学到了很多东西。
在本次课程设计中,我通过动手实践操作,进一步学习和掌握了单片机原理的有关知识,特别是程序的编程方面,加深了对单片机原理及应用技术的认识,进一步巩固了对单片机知识的理解,掌握简单单片机应用系统的设计、制作的方法。
在设计时根据课题要求,复习相关的知识,查询相关的资料。
根据实验条件,找到适合的方案,找到需要的元器件及工具,进行实验。
这次的单片机课程设计重点是通过实践操作和理论相结合,提高动手实践能力,提高科学的思维能力,更在一周的时间了解了更多的有关单片机的知识,使知识更加丰富,使自己更加充实。
单片机作为我们的主要专业课之一,虽然在大三开学初期我对这门课并没有什么兴趣,觉得那些程序枯燥乏味,但在这次课程设计后我发现自己在一点一滴的努力中对单片机的兴趣也在逐渐增加。
作为一名信息科学专业的大三学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。
虽然过去从未独立应用过它们,但在学习的过程中带着问题去学习我发现效率很高,这是我做这次课程设计的又一收获。
然后,要做好一个课程设计,就必须做到:
在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;
要有一个清晰的思路和一个完整的的软件流程图;
在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;
要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便。
在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
通过查阅大量有关资料,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。
但通过学习这一次实践,增强了我的动手能力,提高和巩固了单片机方面的知识,特别是软件方面,并让我认识到把理论应用到实践中去是多么重要。
参考文献
(1)谢维成等.《单片机原理与运用及C51程序设计》.北京:
清华大学出版社;
(2)李朝青编著.《单片机原理及接口技术》.北京:
航空航天大学出版社,1999.3;
(3)丁元杰主编.单片微型计算机.北京:
机械工业出版社.2003;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 电子 时钟 设计