全球旧事资料 分类
划分为若干个相对独立的部分,设计出合理的总体结构:时钟显示是一个循环过程,系统以单片机AT89S52为主控制器,不断读取实时时钟芯片DS1302提供的时间送LED显示,时间采用24小时模式;当达到闹钟所设定时间时,控制蜂鸣器发声一分钟;当需要调整时间或闹钟时,按下相应按键进入中断处理。整个系统的电源可由电池提供或者用USB电源线由电脑提供。系统总体结构如图31所示。
蜂鸣电路
时间闹钟设置电路
单片机AT89S52
数码管显示
实时时钟芯片DS1302
电源电路
图31系统总体结构
由于汇编语言产生的目标程序简短,占用存储空间小,执行快,能充分发挥计算机的硬件功能,因此根据系统总体结构确定总流程图后,用汇编语言编写程序实现各模块功能。总流程图如图32所示。
9
f初始化模块DS1302读写模块
INT0中断模块:时间调整
显示模块蜂鸣模块
INT1中断模块:闹钟调整
图32系统总流程图
32主程序模块
主程序模块包括初始化模块、DS1302读写模块、显示模块和蜂鸣模块。
321初始化模块初始化模块包括了存储资源的分配、各标志位的赋值、中断的状态设置以及跳
转语句。当使用机器汇编时,必须为汇编程序提供一些信息,这些控制汇编的指令称为伪指令,也包括在初始化模块里。初始化模块流程图如33所示。
开始
资源分配(伪指令EQU及BIT)
跳转指令
时间、闹钟和标志位赋值
设置中断方式,中断允许图33初始化模块流程图
10
f在此模块,须定义好单片机与DS1302的串行通信接口以及调整时间或闹钟时的按键端口,如下:
P0数码管段码输入P2数码管位数选择P10DS时钟控制总线SLCKP11DS数据传送总线IOP12DS复位总线RSTP13位选择键,按下选择要调整的位置P14UP按此键调整时参数加P15DW按此键调整时参数减P16OK按此键完成调整,退出中断P17NO按此键退出中断,取消调整P32TIME按下时进入时间设置模式P33CLC按下时进入闹钟设置模式由于DS1302第一次初始化写入数据后在主电源关闭的情况下也能保持时钟的连续运行,写入程序主要在调整时间或闹钟时用到,因此在下一个DS读写模块才详细介绍。
322DS1302读写模块DS1302内有2类寄存器,一类用于存放时钟日历数据,另一类是静态RAM。
与外界数据的交换可分为单字节传送和多字节传送2种方式。图34为DS实时时间读写流程图。
多字节模式可用于时钟日历或有31个十进制地址地址命令位1~5设为1的RAM寄存器。时钟日历寄存器的9~31及RAM的31寄存地址中无数据存储能力。连续模式的读或写从0地址的r
好听全球资料 返回顶部