您好,欢迎来到尔游网。
搜索
您的当前位置:首页单片机数字时钟设计二十二

单片机数字时钟设计二十二

来源:尔游网
.

题目:简单51单片机数字时钟设计

..

.

摘要

 班级学号···········1  设计内容 ···········3  进度安排···········3  MCS-51单片机系统简介·····3 课程设计背景 ·········4  课程设计目的 ·········4

 MCS-51单片机内部定时器/计数器中 介···········4  课程设计原理 ·········5  课程设计代码 ·········6  设计相关说明·········10

..

断系统简.

 设计内容

利用单片机的定时/计数器,中断系统,以及阵列键盘和LED显示器进行设计。在数码管显示器上实现电子时钟,并且能进行设置时间和暂停、启动控制。

 进度安排

地点:电路CAD室

设备:计算机,KEIL 51软件、PROTEUS软件 准备一周,仿真、调试一周。

 MCS-51单片机系统简介

MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。INTEL公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中C51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的。以后我们将用C51、S51来完成一系列的实验。

MCS-51系列单片机

MCS-51系列单片机分为两大系列,即51子系列与52子系列。

51子系列:基本型,根据片内ROM的配置,对应的芯片为8031、8051、8751、51 52子系列:增强型,根据片内ROM的配置,对应的芯片为8032、8052、8752、52 这两大系列单片机的主要硬件特性如下表:

..

.

上表中可以看到,8031、8031、8032、80C32片内是没有ROM的,对应着上表看,我们可以发现,51系列的单片机的RAM大小为128B,52系列的RAM大小为256B,51系列的计数器为两个16位的,52系列的计数器为三个16位计数器。51系列的中断源为5个,52系列的中断源为6个。

 课程设计背景

近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。 关键字 : 单片机 时钟设计 MC51

 课程设计目的

1、综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对

单片机软硬知识的理解,获得初步的应用经验。 2、学习ATC51定时/计数器的原理及基本应用。 3、掌握多为数码管动态显示方法。

4、掌握Keil uVision2 IDE的使用方法。【包括项目文件的建立,给项目添加程序文件,编

译、连接项目,形成目标文件,运行调试观察结果,多文件的处理,仿真环境的设置。】 5、掌握Keil C51的调试技巧。【包括如何设置和删除断点,如何查看和修改寄存器的内容,如何观察和修改变量,如何观察存储器区域,并行口的使用,定时/计数器的使用,串行口的使用,外中断的使用。】 6、掌握PROTEUS软件使用过程。

 MCS-51单片机中断系统的结构

5个中断源的符号、名称及产生的条件如下。

INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。 INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。 T0:定时器/计数器0中断,由T0计满回零引起。 T1:定时器/计数器l中断,由T1计满回零引起。

TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。

..

.

MCS-51单片机中断系统的结构

 课程设计原理

单片机控制的数字钟的硬件结构与软件设计,给出了汇编语言源程序。此数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。显示器件选用LED七段数码管。在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。针对数字钟会产生走时误差的现象,在电路中就设计有有校准时间功能的电路。使用动态数码显示的方法,运用式按键识别过程,按“时”,“分”,“秒”数据送出显示处理方法。

..

.

 设计代码

;简要说明:实现24小时制电子钟,8位数码管显示,显示时分秒; 显示格式:23-59-59(小时十位如果为0则不显示); P0口输出段选信号,P2口输出位选信号; P1.0为调时按钮,P1.1为调分按钮;晶振12M

ORG 0000H ;程序入口地址 LJMP START

ORG 000BH ;定时器0中断入口地址 LJMP TIMER_0

K1 BIT P1.0 ;定义调时按键 K2 BIT P1.1 ;定义调分按键START: MOV TMOD,#01H ;定时器0,工作模式1 MOV TH0,#03CH

MOV TL0,#0B0H ;赋初值,定时50ms

SETB EA ;开中断总开关 SETB TR0 ;开启定时器0

SETB ET0 ;定时器0中断允许位 MOV R6,#0 ;用于控制走时的基准时钟源,计中断次数 MOV R5,#0 ;R5用于控制扫描按键的时间间隔

MOV 20H,#0 ;秒个位寄存器清零 MOV 21H,#0 ;秒十位寄存器清零 MOV 22H,#0 ;分个位寄存器清零 MOV 23H,#0 ;分十位寄存器清零 MOV 24H,#0 ;时个位寄存器清零 MOV 25H,#0 ;时十位寄存器清零 LJMP DISPLAYTIMER_0: CLR EA INC R6 INC R5

..

.

MOV TH0,#03CH

MOV TL0,#0B0H ;重新赋初值,定时50ms SETB EA RETIADD_TIME:

CJNE R6,#20,EXIT ;定时器中断20次,1秒到 MOV R6,#0 INC 20H MOV A,20H

CJNE A,#10,EXIT ;如果秒个位等于10,清零 MOV 20H,#00H INC 21H MOV A,21H

CJNE A,#6,EXIT ;如果秒十位等于6,清零 MOV 21H,#00H INC 22H MIN: MOV A,22H

CJNE A,#10,EXIT ;如果分个位等于10,清零 MOV 22H,#00H INC 23H MOV A,23H

CJNE A,#6,EXIT ;如果分十位等于6,清零 MOV 23H,#00H INC 24H HOUR: MOV A,25H

CJNE A,#2,LOOP ;如果时十位等于2,检查时个位 MOV A,24H

CJNE A,#4,EXIT ;如果时个位等于4,清零 MOV 24H,#00H ;清零时个位 MOV 25H,#00H ;清零时十位 LJMP EXIT

LOOP:

MOV A,24H

CJNE A,#10,EXIT ;如果时个位等于10,清零 MOV 24H,#00H INC 25H

LJMP EXIT EXIT:

LJMP DISPLAY ;刷新完毕,跳转到显示 DISPLAY:

MOV DPTR,#TABLE MOV A,20H

MOVC A,A+DPTR MOV P0,A CLR P2.7 LCALL DELAY

SETB P2.7 ;显示秒个位 MOV A,21H MOVC A,A+DPTR MOV P0,A CLR P2.6 LCALL DELAY

SETB P2.6 ;显示秒十位 MOV A,#0BFH MOV P0,A CLR P2.5 LCALL DELAY

SETB P2.5 ;显示“-” MOV A,22H

..

.

MOVC A,A+DPTR MOV P0,A CLR P2.4 LCALL DELAY

SETB P2.4 ;显示分个位 MOV A,23H MOVC A,A+DPTR MOV P0,A CLR P2.3 LCALL DELAY

SETB P2.3 ;显示分十位 MOV A,#0BFH MOV P0,A CLR P2.2 LCALL DELAY

SETB P2.2 ;显示“-” MOV A,24H MOVC A,A+DPTR MOV P0,A CLR P2.1 LCALL DELAY

SETB P2.1 ;显示时个位 MOV DPTR,#TABLE1 ;该位使用TABLE1以消除前置0 MOV A,25H

MOVC A,A+DPTR MOV P0,A CLR P2.0 LCALL DELAY

SETB P2.0 ;显示时十位 CJNE R5,#4,EXIT0 ;当R5到4时,扫描按键 MOV R5,#0KEY_SCAN: JNB K1,ADD_HOUR JNB K2,ADD_MIN

LJMP ADD_TIME ;无键按下,跳至走时ADD_HOUR: INC 24H ;小时加1

LJMP HOUR ;更新ADD_MIN: INC 22H ;分钟加1 LJMP MIN ;更新EXIT0: LJMP ADD_TIMEDELAY: MOV R7,#150 ;扫描延时 DJNZ R7,$

RET TABLE: ;数码管字形显示编码表 DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;字形显示编码TABLE1:

DB 0FFH,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;小时位的十位数编码,该位如果为0则不显示

END ;程序结束

 设计相关说明

..

.

参考元器件清单: 单片机:80C52 按键:BUTTON 电阻:RES 电容:CAP

晶振:CRYSTAL

LED数码管:7SEG-MPX8-CA-BLUE(CA:共阳,CC:共阴) 地:GRAND 电源:POWER

..

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务