当前位置:文档之家› 单片机时钟计时器设计实训

单片机时钟计时器设计实训

桂林单片机实训时钟计时器姓名学号班级指导教师实训时间:2011/12/5-2011/12/16目录1 问题描述..................................................................... 错误!未定义书签。

2 设计思想..................................................................... 错误!未定义书签。

3 硬件设计..................................................................... 错误!未定义书签。

3.1定时器\计数器.................................................... 错误!未定义书签。

3.2中断系统............................................................. 错误!未定义书签。

3.3键盘和LED数码管显示器............................... 错误!未定义书签。

4 软件设计..................................................................... 错误!未定义书签。

4.1主程序................................................................. 错误!未定义书签。

4.2.数码管显示模块.............................................. 错误!未定义书签。

4.3.定时器/计数器T0中断服务程序 .................. 错误!未定义书签。

4.4 按键处理模块.................................................... 错误!未定义书签。

5 仿真分析..................................................................... 错误!未定义书签。

6 课程设计总结............................................................. 错误!未定义书签。

参考文献......................................................................... 错误!未定义书签。

附录(源程序清单)..................................................... 错误!未定义书签。

11 问题描述时钟计时器广泛应用于各种继电器、电磁开关,控制器、延时器、定时器等的时间测试。

目前所使用的时钟计时器大多是指针式或集成电路型的,结构相对复杂、测试功能单一。

本仪器应当具有实时时钟、整点报时、手动调时等功能。

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

形成定时时间为50ms。

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

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

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

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

3 硬件设计3.1定时器\计数器(1)、MCS-51系列中51子系列有两个16位的可编程定时\计数器:定时\计数器T0和定时\计数器T1。

它由加法计数器、方式寄存器TMOD、控制寄存器TCON等组成。

方式寄存器用于设定定时计数器T0和T1的工作方式,控制寄存器用于对定时计数器启动、停止进行控制。

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

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

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

四种工作方式为:13位定时\计数器、16位定时\计数器、8位自动重置定时\计数器、两个8位定时\计数器(只有T0有)(4)、每一个定时计数器定时计数时间到时产生溢出,使相应的溢出位置位,溢出可通过查询或中断方式处理。

23.2中断系统(1)、MCS-51单片机提供5个硬件中断源,2个外部中断源,2个定时计数器T0和T1的溢出中断TF0和TF1,1个串行口发送TI和接收RI中断。

(2)、MCS-51单片机中没有专门的开中断和关中断指令,对各个中断源的允许和屏蔽是由内部的中断允许寄存器IE的各位来控制的。

中断允许寄存器IE的字节地址为A8H,可以进行位寻址。

系统复位时,中断允许寄存器IE的内容为00H,如果要开放某个中断源,则必须使IE中的总控置位和对应的中断允许位置“1”。

(3)、MCS-51单片机有5个中断源,为了处理方便,每个中断源有两级控制,高优先级和低优先级。

通过由内部的中断优先级寄存器IP来设置,中断优先级寄存器IP的字节地址为B8H,可以进行位寻址。

如果某位被置“1”,则对应的中断源被设为高优先级;如果某位被清零,则对应的中断源被设为低优先级。

对于同级中断源,系统有默认的优先权顺序,从高到低优先权顺序为外部中断0、定时计数器T0中断、外部中断1、定时计数器T1中断、串行口中断。

通过设置中断优先级寄存器IP能够改变系统默认的优先级顺序。

3.24、MCS-51单片机响应中断的条件为:中断源有请求且中断允许。

3.3键盘和LED数码管显示器键盘是单片机应用系统中最常用的输入设备,在单片机应用系统中,操作人员一般都是通过键盘向单片机系统输入指令、地址和数据,实现简单的人机通信。

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

键盘的结构形式一般有两种:独立式键盘和矩阵式键盘。

矩阵式键盘的工作方式有3种:查询工作方式、定时扫描工作方式和中断工作方式。

LED数码管显示器:在单片机应用系统中,经常用到LED数码管作为显示输出设备,LED数码管显示器虽然显示信息简单,但它具有显示清晰、亮度高、使用电压低、寿命长、与单片机接口方便等特点,基本上能够满足单片机应用系统的需要,所以在单片机应用系统中经常用到。

LED数码管显示器是由发光二极管按一定的结构组合起来的显示器件。

在单片机应用系统中通常使用的是8段式LED数码管显示器,它有共阴极和共阳极两种。

所谓译码方式是指由显示字符转换得到对应的字段码的方式。

对于LED数码管显示器,通常的译码方式有两种:硬件译码方式和软件译码方式。

LED数码管在显示时,通常有两种显3示方式:静态显示方式和动态显示方式。

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

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

4 软件设计电子时钟的软件系统由主程序和子程序组成,主程序程序包含初始化参数设置、按键处理、数码管显示模块等。

4.1主程序主程序执行流程如图1所示,主程序先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有键按下,则转入相应的功能程序。

4.2.数码管显示模块本系统共用8个数码管,从右到左依次显示秒个位、秒十位、横线、分个位、分十位、横线、时个位和时十位。

采用软件译码动态显示。

4.3.定时器/计数器T0中断服务程序定时器/计数器T0用于时间计时。

选择方式1,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清0;分单元加到60则对时单元加1,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满。

在对各单元计数的同时,把它们的值放到存储单元的指定位置。

定时器/计数器T0中断服务程序流程图如图2所示。

4.4 按键处理模块MCS-51单片机实现时钟计时显示的基本方法①首先要计算计数初值时钟计时的关键问题是秒的产生,因为秒是最小时钟单位,但使用MMCS-51的定时器/计数器进行定时,即使按工作方式1,其最大定时时间也只能达到131毫秒,离1秒还差好远。

为此,我们把秒计时用硬件定时和软件计数相结合的方法实现,即:把定时器的定时时间定为125毫秒,这样当计数溢出8次就可得到41秒,而8次计数可用软件方法实现。

为得到125ms定时,我们可使用定时器/计数器0,以工作方式1进行,当设定单片机为6MHz晶振,设计数初值为X,则有如下等式:(216-X)×2us=125000us计算得计数初值X=3036,二进制表示为0000101111001101,十六进制表示为0BCDH。

②定时器定时采用中断方式完成,以便于通过中断服务程序进行溢出次数(每次125毫秒)的累计,计满8次即得到秒计时。

③通过在程序中的数值累加和数值比较来实现从秒到分和从分到时的计时④设置时钟显示及显示缓冲区假定时钟时间在六位LED数码管(LED5~LED0)上进行显示(时、分、秒各占两位)。

为此,要在内部RAM中设置显示缓冲区,共6个单元(79H~7EH),与数码管的对应关系为:LED5→7EH、LED4→7DH、LED3→7CH、LED2→7BH、LED1→7AH、LED0→79H。

即显示缓冲区从左向右依次存放时、分、秒的数值。

⑤假定已有LED显示程序为SMXS可供调用程序流程①主程序(MAIN)主程序的主要功能是进行定时器/计数器的初始化编程,然后通过反复调用显示子程序的方法,等待125ms定时中断的到来。

②中断服务程序(PIT0)中断服务程序的主要功能是进行计时操作。

程序开始先判断计数溢出是否满了8次,不满8次表明还没达到最小计时单位秒,中断返回;如满8次则表明已达到最小计时单位秒,程序继续向下执行,进行计时操作。

③加1子程序(DAAD1)加1子程序用于完成对秒、分和时的加1操作,中断服务程序中在秒、分、时加1时共有三处调用此子程序。

加1操作共包括以下三项内容:合数:由于每位LED显示器对应一个8位的缓冲单元,因此由两位BCD码表示的时间值各占用一个缓冲单元,且只占其低4位。

为此在加1运算之前需把两个缓冲单元中存放的数值合并起来,构成一个字节,然后才能进行加1运算。

相关主题