最新简单的51单片机数字钟设计Word格式文档下载.docx
《最新简单的51单片机数字钟设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《最新简单的51单片机数字钟设计Word格式文档下载.docx(8页珍藏版)》请在冰豆网上搜索。
课程设计背景·
4
课程设计目的·
MCS-51单片机内部定时器/计数器中断系统简介·
课程设计原理·
5
课程设计代码·
6
设计相关说明·
10
→设计内容
利用单片机的定时/计数器,中断系统,以及阵列键盘和LED显示器进行设计。
在数码管显示器上实现电子时钟,并且能进行设置时间和暂停、启动控制。
→进度安排
地点:
电路CAD室
设备:
计算机,KEIL51软件、PROTEUS软件
准备一周,仿真、调试一周。
→MCS-51单片机系统简介
MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。
INTEL公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的。
以后我们将用89C51、89S51来完成一系列的实验。
MCS-51系列单片机
MCS-51系列单片机分为两大系列,即51子系列与52子系列。
51子系列:
基本型,根据片内ROM的配置,对应的芯片为8031、8051、8751、8951
52子系列:
增强型,根据片内ROM的配置,对应的芯片为8032、8052、8752、8952
这两大系列单片机的主要硬件特性如下表:
上表中可以看到,8031、8031、8032、80C32片内是没有ROM的,对应着上表看,我们可以发现,51系列的单片机的RAM大小为128B,52系列的RAM大小为256B,51系列的计数器为两个16位的,52系列的计数器为三个16位计数器。
51系列的中断源为5个,52系列的中断源为6个。
→课程设计背景
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
关键字:
单片机时钟设计MC51
→课程设计目的
1、综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机软硬知识的理解,获得初步的应用经验。
2、学习AT89C51定时/计数器的原理及基本应用。
3、掌握多为数码管动态显示方法。
4、掌握KeiluVision2IDE的使用方法。
【包括项目文件的建立,给项目添加程序文件,编译、连接项目,形成目标文件,运行调试观察结果,多文件的处理,仿真环境的设置。
】
5、掌握KeilC51的调试技巧。
【包括如何设置和删除断点,如何查看和修改寄存器的内容,如何观察和修改变量,如何观察存储器区域,并行口的使用,定时/计数器的使用,串行口的使用,外中断的使用。
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
ORG0000H
程序入口地址
LJMPSTART
ORG000BH
定时器0中断入口地址
LJMPTIMER_0
K1BITP1.0
定义调时按键
K2BITP1.1
定义调分按键
START:
MOVTMOD,#01H
定时器0,工作模式1
MOVTH0,#03CH
MOVTL0,#0B0H
赋初值,定时50ms
SETBEA
;
开中断总开关
SETBTR0
开启定时器0
SETBET0
定时器0中断允许位
MOVR6,#0
用于控制走时的基准时钟源,计中断次数
MOVR5,#0
R5用于控制扫描按键的时间间隔
MOV20H,#0
秒个位寄存器清零
MOV21H,#0
秒十位寄存器清零
MOV22H,#0
分个位寄存器清零
MOV23H,#0
分十位寄存器清零
MOV24H,#0
时个位寄存器清零
MOV25H,#0
时十位寄存器清零
LJMPDISPLAY
TIMER_0:
CLREA
INCR6
INCR5
重新赋初值,定时50ms
SETB
EA
RETI
ADD_TIME:
CJNER6,#20,EXIT;
定时器中断20次,1秒到
MOVR6,#0
INC20H
MOVA,20H
CJNEA,#10,EXIT
如果秒个位等于10,清零
MOV20H,#00H
INC21H
MOVA,21H
CJNEA,#6,EXIT
如果秒十位等于6,清零
MOV21H,#00H
INC22H
MIN:
MOVA,22H
如果分个位等于10,清零
MOV22H,#00H
INC23H
MOVA,23H
如果分十位等于6,清零
MOV23H,#00H
INC24H
HOUR:
MOVA,25H
CJNEA,#2,LOOP
如果时十位等于2,检查时个位
MOVA,24H
CJNEA,#4,EXIT
如果时个位等于4,清零
MOV24H,#00H
清零时个位
MOV25H,#00H
清零时十位
LJMPEXIT
LOOP:
MOVA,24H
如果时个位等于10,清零
INC25H
LJMPEXIT
EXIT:
LJMPDISPLAY
刷新完毕,跳转到显示
DISPLAY:
MOVDPTR,#TABLE
MOVA,20H
MOVCA,@A+DPTR
MOVP0,A
CLRP2.7
LCALLDELAY
SETBP2.7
显示秒个位
MOVA,21H
CLRP2.6
SETBP2.6
显示秒十位
MOVA,#0BFH
CLRP2.5
SETBP2.5
显示“-”
MOVA,22H
CLRP2.4
SETBP2.4
显示分个位
MOVA,23H
CLRP2.3
SETBP2.3
显示分十位
CLRP2.2
SETBP2.2
CLRP2.1
SETBP2.1
显示时个位
MOVDPTR,#TABLE1;
该位使用TABLE1以消除前置0
CLRP2.0
SETBP2.0
显示时十位
CJNER5,#4,EXIT0;
当R5到4时,扫描按键
MOVR5,#0
KEY_SCAN:
JNBK1,ADD_HOUR
JNBK2,ADD_MIN
LJMPADD_TIME
无键按下,跳至走时
ADD_HOUR:
小时加1
LJMPHOUR
更新
ADD_MIN:
分钟加1
LJMPMIN
EXIT0:
LJMPADD_TIME
DELAY:
MOVR7,#150
扫描延时
DJNZR7,$
RET
TABLE:
数码管字形显示编码表
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;
字形显示编码
TABLE1:
DB0FFH,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