基于单片机的电子数字钟仿真.docx

上传人:b****5 文档编号:11802322 上传时间:2023-04-02 格式:DOCX 页数:16 大小:263.25KB
下载 相关 举报
基于单片机的电子数字钟仿真.docx_第1页
第1页 / 共16页
基于单片机的电子数字钟仿真.docx_第2页
第2页 / 共16页
基于单片机的电子数字钟仿真.docx_第3页
第3页 / 共16页
基于单片机的电子数字钟仿真.docx_第4页
第4页 / 共16页
基于单片机的电子数字钟仿真.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

基于单片机的电子数字钟仿真.docx

《基于单片机的电子数字钟仿真.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子数字钟仿真.docx(16页珍藏版)》请在冰豆网上搜索。

基于单片机的电子数字钟仿真.docx

基于单片机的电子数字钟仿真

基于单片机的电子数字钟仿真

 

CHENGDUUNIVERSITY

 

《基于单片机电子数字钟》

课程设计报告

 

专业:

电子信息工程

班级:

姓名:

学号:

指导教师:

2010年6月

 

一、课程设计目

本课程设计是自动化专业、电子信息技术专业学生在学完单片机原理及课程之后必修课程,它教学目和任务是综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机软硬知识理解,获得初步应用经验,为走出校门从事单片机应用相关工作打下基础。

二、设计内容

利用单片机定时/计数器,中断系统,以及阵列键盘和LED显示器进行设计。

在数码管显示器上实现电子时钟,并且能进行设置时间和暂停、启动控制。

用定时/计数器T0,工作于定时,采用方式1,对12MHZ系统时钟进行定时计数,初值设为XXYY(自己计算)。

形成定时时间为50ms。

用片内RAM7BH单元对50ms计数,计20次产生秒计数器7BH单元加1,秒计数器加到60则分计数器79H单元加1,分计数器加到60则时计数器7AH单元加1,时计数器加到24则时计数器清0。

然后把秒、分、时计数器分成十位和个位放到8个数码管显示缓冲区,通过数码管显示出来。

显示格式为小时十位、小时个位---分十位、分个位---秒十位、秒个位。

在处理过程中加上了按键判断程序,能对按键处理。

三、设计要求

1、在PROTEUS中设计硬件,在KEIL51中编写软件,在PROTEUS中运行程序仿真实现。

2、写课程设计报告,给出设计思想,原理,硬件电路图,给出相应程序,并写出设计过程。

课程设计报告格式:

1、课程设计目

2、课程设计具体要求

3、MCS-51单片机系统简介

4、MCS-51单片机内部定时器/计数器简介

5、键盘和LED数码管显示器简介

6、基本原理

7、硬件电路

8、软件程序流程及代码

9、设计制作过程

10、总结

四、MCS-51单片机系统简介

MCS-51系列单片机是美国Intel公司在1980年推出高性能8位单片机,它包含51和52两个子系列。

-2-

对于51子系列,主要有8031、8051、8751三种机型,它们指令系统与芯片引脚完全兼容,仅片内程序存储器有所不同,8031芯片不带ROM,8051芯片带4KROM,8751芯片带4KEPROM。

51子系列主要特点为:

◆8位CPU。

◆片内带振荡器,频率范围1.2~12MHZ。

◆片内带128字节数据存储器。

◆片内带4K程序存储器。

◆程序存储器寻址空间为64K字节。

◆片外数据存储器寻址空间为64K字节。

◆128个用户位寻址空间。

◆21个字节特殊功能寄存器。

◆4个8位并行I/O接口:

P0、P1、P2、P3。

◆2个16位定时器/计数器

◆2个优先级别5个中断源。

◆1个全双工串行I/O接口,可多机通信。

◆111条指令,含乘法指令和除法指令。

◆片内采用单总线结构。

◆有较强位处理能力。

◆采用单一+5V电源。

图一、MCS-51系列单片机内部结构

五、MCS-51单片机内部定时器/计数器中断系统简介

定时/计数器主要特性:

1.MCS-51系列中51子系列有两个16位可编程定时/计数器:

定时/计数器T0和定时/计数器T1,52子系列有三个,还有一个定时/计数器T2。

2.每个定时/计数器既可以对系统时钟计数实现定时,也可以对外部信号计数实现计数功能,通过编程设定来实现。

-3-

3.每个定时/计数器都有多种工作方式,其中T0有四种工作方式;T1有三种工作方式,T2有三种工作方式。

通过编程可设定工作于某种方式。

4.每一个定时/计数器定时计数时间到时产生溢出,使相应溢出位置位,溢出可通过查询或中断方式处理。

图二、定时/计数器T0、T1结构及工作原理

 

定时/计数器工作方式:

方式0是13位定时/计数方式,因而最大计数值(满值)为213次幂,等于8192。

如计数值为N,则置入初值X为:

X=8192-N

方式1结构与方式0结构相同,只是把13位变成16位,16位加法计数器被全部用上。

由于是16位定时/计数方式,因而最大计数值(满值)为216次幂,等于65536。

如计数值为N,则置入初值X为:

X=65536-N

方式2下,16位计数器只用了8位来计数,用是TL0(或TL1)8位来进行计数,而TH0(或TH1)用于保存初值。

当TL0(或TL1)计满时则溢出,一方面使TF0(或TF1)置位,另一方面溢出信号又会触发图6.5上三态门,使三态门导通,TH0(或TH1)值就自动装入TL0(或TL1)。

由于是8位定时/计数方式,因而最大计数值(满值)为28次幂,等于256。

如计数值为N,则置入初值X为:

X=256-N

方式3只有定时/计数器T0才有,当M1M0两位为11时,定时/计数器T0工作于方式3。

方式3下,定时/计数器T0被分为两个部分TL0和TH0,其中,TL0可作为定时/计数器使用,占用T0全部控制位:

GATE、C/T、TR0和TF0;而TH0固定只能作定时器使用,对机器周期进行计数,这时它占用定时/计数器T1TR1位、TF1位和T1中断资源。

-4-

六、键盘简介

1、键盘工作原理

键盘实际上是一组按键开关集合,平时按键开关总是处于断开状态,当按下键时它才闭合。

它结构和产生波形如图所示。

图三、键盘开关及波形示意图

2、键盘抖动消除

消除按键盘抖动通常有两种方法:

硬件消抖和软件消抖。

图四、硬件消抖电路

硬件消抖可以采用R—S触发器或单稳态电路。

软件消抖是利用延时来跳过抖动过程

3、键盘结构形式

键盘结构形式一般有两种:

独立式键盘与矩阵式键盘。

独立式键盘就是各按键相互独立,每个按键各接一根I/O口线,每根I/O口线上按键都不会影响其它I/O口线。

-5-

矩阵式键盘又叫行列式键盘。

用I/O口线组成行、列结构,键位设置在行列交点上。

例如4×4行、列结构可组成16个键键盘,比一个键位用一根I/O口线独立式键盘少了一半I/O口线。

七、LED数码管显示器简介

图五、LED显示器结构

LED数码管显示方式:

LED静态显示时,其公共端直接接地(共阴极)或接电源(共阳极),各段选线分别与I/O口线相连。

要显示字符,直接在I/O线送相应字段码。

LED动态显示是将所有数码管段选线并接在一起,用一个I/O口控制,公共端不是直接接地(共阴极)或电源(共阳极),而是通过相应I/O口线控制。

LED显示器从译码方式上有硬件译码方式和软件译码方式。

从显示方式上有静态显示方式和动态显示方式。

在使用时可以把它们组合起来。

在实际应用时,如果数码管个数较少,通常用硬件译码静态显示,在数码管个数较多时,则通常用软件译码动态显示。

 

-6-

八、基本原理

本设计考虑到仅仅是数字钟,就用内部定时计数器来技术,并过中断来处理。

在硬件设计上采用C51单片机作为核心部件。

在按键上,只用到位选择、位加和位减,就采用独立式键盘。

显示上采用数码管动态显示。

译码采用软件译码。

显示码通过P0口输出,为选择通过P2口输出。

软件设计流程图如下:

 

 

图六、主程序流程图图七、定时计数器T0中断服务程序流程图

-7-

九、硬件电路

对应元器件如下:

单片机:

80C52

按键:

BUTTON

电阻:

RES

电容:

CAP

晶振:

CRYSTAL

地:

GRAND

电源:

POWER

LED数码管:

7SEG-MPX8-CA-BLUE(CA:

共阳,CC:

共阴)

-8-

运行效果如下:

十、软件程序流程及代码

;采用8位LED软件译码动态显示程序

;使用AT89C51单片机,12MHZ晶振,P0输出字段码,P2口输出位选码,用共阳

;LED数码管,P1.0为调时位选择按键,P1.1为加1键,P1.2为减1键。

;片内RAM70H到77H单元为LED数码管显示缓冲区

;78H,79H,7AH分别为秒、分、小时计数单元

;7BH为50ms计数器,7CH为调时按键计数器

ORG0000H

LJMPSTART

ORG000BH;定时器/计数器T0中断程序入口

LJMPINTT0

;主程序

START:

MOVR0,#70H

MOVR7,#0CH

INIT:

MOV@R0,#00H

INCR0

DJNZR7,INIT

MOV72H,#10

MOV75H,#10

MOVTMOD,#01H

MOVTL0,#0B0H

MOVTH0,#03CH

SETBEA

SETBET0

SETBTR0

START1:

LCALLSCAN

LCALLKEYSCAN

SJMPSTART1

;延时1MS子程序

DL1MS:

MOVR6,#14H

DL1:

MOVR7,#19H

DL2:

DJNZR7,DL2

DJNZR6,DL1

RET

;延时20MS子程序

DL20MS:

ACALLSCAN

ACALLSCAN

ACALLSCAN

RET

-9-

;数码管显示程序

SCAN:

MOVA,78H;时间存入显示缓冲区相应位置

MOVB,#0AH

DIVAB

MOV71H,A

MOV70H,B

MOVA,79H

MOVB,#0AH

DIVAB

MOV74H,A

MOV73H,B

MOVA,7AH

MOVB,#0AH

DIVAB

MOV77H,A

MOV76H,B

MOVR1,#70H;循环扫描显示

MOVR5,#80H

MOVR3,#08H

SCAN1:

MOVA,R5

MOVP2,A

MOVA,@R1

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

MOVA,R5

LCALLDL1MS

INCR1

MOVA,R5

RRA

MOVR5,A

DJNZR3,SCAN1

MOVP2,#00H

MOVP0,#0FFH

RET

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,

80H,90H,0BFH

;“0~9”,“-”共阳极字段码

;定时器/计数器T0中断服务程序

INTT0:

PUSHACC

PUSHPSW

CLRET0

CLRTR0

MOVTL0,#0B0H

MOVTH0,#03CH

SETBTR0

INC7BH

MOVA,7BH

CJNEA,#14H,OUTT0

MOV7BH,#00

INC78H

MOVA,78H

CJNEA,#3CH,OUTT0

MOV78H,#00

INC79H

MOVA,79H

CJNEA,#3CH,OUTT0

MOV79H,#00

INC7AH

MOVA,7AH

CJNEA,#18H,OUTT0

MOV7AH,#00

OUTT0:

SETBET0

poppsw

popacc

RETI

;按键处理程序

KEYSCAN:

CLREA

JNBP1.0,KEYSCAN0

JNBP1.1,KEYSCAN1

JNBP1.2,KEYSCAN2

KEYOUT:

SETBEA

RET

KEYSCAN0:

LCALLDL20MS

JBP1.0,KEYOUT

WAIT0:

JNBP1.0,WAIT0

INC7CH

MOVA,7CH

CLRTR0

CLRET0

CJNEA,#03H,KEYOUT

MOV7CH,#00

SETBTR0

SETBET0

SJMPKEYOUT

KEYSCAN1:

LCALLDL20MS

JBP1.1,KEYOUT

WAIT1:

JNBP1.1,WAIT1

MOVA,7CH

CJNEA,#02H,KSCAN11

INC79H

MOVA,79H

CJNEA,#3CH,KEYOUT

MOV79H,#00

SJMPKEYOUT

KSCAN11:

INC7AH

MOVA,7AH

CJNEA,#18H,KEYOUT

MOV7AH,#00

SJMPKEYOUT

KEYSCAN2:

LCALLDL20MS

JBP1.2,KEYOUT

WAIT2:

JNBP1.2,WAIT2

MOVA,7CH

CJNEA,#02H,KSCAN21

DEC79H

MOVA,79H

CJNEA,#0FFH,KEYOUT

MOV79H,#3BH

SJMPKEYOUT

KSCAN21:

DEC7AH

MOVA,7AH

CJNEA,#0FFH,KEYOUT

MOV7AH,#17H

SJMPKEYOUT

END

 

-10-

十一、总结

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力重要环节,是对学生实际工作能力具体训练和考察过程.随着科学技术发展日新日异,单片机已经成为当今计算机应用中空前活跃领域,在生活中可以说得是无处不在。

因此作为二十一世纪大学来说掌握单片机开发技术是十分重要。

-11-

回顾起此次单片机课程设计,我仍感慨颇多。

确,从拿到课程设计题目后,从理论到实践,在接近一个星期日子里,可以说得是苦多于甜,但是可以学到很多很多东西,同时不仅可以巩固了以前所学过知识,而且学到了很多在书本上所没有学到过知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要,只有理论知识是远远不够,只有把所学理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己实际动手能力和独立思考能力。

在设计过程中遇到问题,可以说得是困难重重,这毕竟第一次做,难免会遇到过各种各样问题,同时在设计过程中发现了自己不足之处,对以前所学过知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件使用方法,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过知识重新温故。

-11-

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

当前位置:首页 > 解决方案

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

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