基于KeilC51软件的电子钟设计与制作

更新时间:2023-08-13 19:57:01 阅读量: IT计算机 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第14卷第2期VoL.14 No.2鄂 州 大 学 学 报

JournalofEzhouUniversity2007年3月Mar.2007

基于KeilC51软件的电子钟设计与制作

万胜前

(鄂州大学电子工程系,湖北 鄂州 436000)

摘 要:该文介绍了KeilC51软件作为单片机应用系统设计工具的强大功能,并以单片机为核心实现

电子钟的设计为例,阐述如何借助该软件进行单片机应用系统的设计与仿真。 关键词:KeilC51软件;单片机应用系统;电子钟;设计与仿真 中图分类号:TP368.1

文献标识码:A

文章编号:1008-9004(2007)02-0017-03口则作为段选口,C口的低3位为键盘输入口,对

应0~2行,A口同时用作键盘的列扫描口。由于采用共阴极数码管,因此A口输出低电平选中相应的位,而B口输出高电平点亮相应的段。P1.0接蜂鸣器,低电平驱动蜂鸣器鸣叫启闹。由图1可见,8155的地址分配为:控制寄存器:8000H,定义为PORT;A口:8001H,定义为PORTA;B口:8002H,定义为PORTB;C口:8003H,定义为PORTC。

单片机作为实时控制已经应用到各个领域,应用现代工具开发单片机应用系统是现代电子类专业人员必须掌握的技术。KeilC51是目前世界上最好的MCS-51单片机汇编和C语言的开发工具,支持汇编、C语言以及混合编程。可以完成编辑、编译、连接、调试、仿真等整个开发流程,同时具备功能强大的软件仿真和硬件仿真(用mon51协议)功能。下面用KeilC51软件和MF-89S52开发系统为平台,以单片机为核心,实现电子钟的设计与制作。

所设计的电子钟有以下功能:

(1)自动计时,由6位LED显示器显示时、分、秒。

(2)具备校准功能,可以直接由0~9数字键设置当前时间。

(3)具备定时起闹功能。

(4)一天时差不超过1秒钟。1 硬件设计

电子钟电路的核心是MCS-51单片机,运用单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本。我们选用性价比高的常规芯片89C51,采用12MHz晶振,其内部带有4KB的FLASHROM,无须外扩程序存储器;电脑时钟没有大量的运算和暂存数据,现有的128B片内RAM已能满足要求,也不必外扩片外RAM。6位共阴极数码管分别显示时、分、秒,4 3键盘输入,采用8155作为键盘/显示接口电路。电子钟硬件原理图如图1所示。

利用8155的A口作为6位LED显示的位选口,其中,PA0~PA5分别对应位LED0~LED5,B

图1 电子钟硬件原理图

2 软件设计

2.1 系统资源分配

为编写程序方便,先对系统的资源分配加以说明。

(1)定时器:定时器0用作时钟定时,按方式1工作,每隔100ms溢出中断一次。

(2)片内RAM及标志位的分配与定义见表1。

收稿日期:2007-01-08

:(- ),女,,硕士,,:

18

鄂 州 大 学 学 报第14卷

表1 电子钟控制软件片内RAM及标志位分配表

地 址30H~35H3CH~3FH40H~42H50H~7FHPSW.5PSW.1

功 能显示缓冲区,时、分、秒

(高位在前)计时缓冲区,时、分、

秒、100ms闹钟值寄存区,时、分、秒

堆栈区计时显示允许位(1:禁止,0:允许)闹钟标志位

(1:正在闹响,0:未闹响)

F0F1

00

名 称

DISP0~DISP5HOUR,MIN,

SEC,MSECAHOUR,AMIN,ASEC

初始化值00H00HFFH

2.2 软件设计

软件设计可分为以下几个功能模块:

(1)主程序:初始化与键盘监控。流程图如图2所示:

图2 主程序流程图

(2)计时:为定时器0中断服务子程序,完成刷新计时缓冲区的功能。定时器0每隔100ms溢出中断一次,则循环中断10次延时时间为1s,上述过程重复60次为1分,分计时60次为1小时,小时计时24次则时间重新回到00:00:00。

注意:第一,定时器溢出产生中断请求,CPU并不一定立即响应中断,而可能需要延迟一个中断响应时间之后才能响应中断,中断响应时间大约为3~8个机器周期。显然,这将在定时时间中加入额外的延时时间,导致计时误差。为了保证计时精度,必须采取措施进行补偿。我们采用增大重装的定时器0初值的方法来减少定时器0定时时间。具体应调整为多大,一般需要通过调试来确定。第二,时间是按十进制递增,而MCS-51单片机只有二进制加法指令,因此用加法指令计中断服务子程序CLOCK程序。

;***定时器0中断服务子程序CLOCK***

CLOCK:MOVTL0,#0B7H

MOVTH0,#3CH;重装初值PUSHPSW

PUSHACC;现场保护INCMSECMOVA,MSEC

CJNEA,#10,DONEMOVMSEC,#00HMOVA,SECINCADAA

MOVSEC,A

CJNEA,#60,DONEMOVSEC,#00HMOVA,MININCADAAMOVMIN,A

CJNEA,#60,DONEMOVMIN,#00HMOVA,HOURINCADAA

MOVHOUR,A

CJNEA,#24,DONEMOVHOUR,#00H

DONE:POPACC

POPPSW;恢复现场RETIEND

(3)时间设置与闹钟设置:由键盘输入设置当前时间与定时启闹时间。

(4)显示:完成6位动态显示,分别显示时、分、秒。

(5)键盘扫描:判断是否有键按下,并求取键号。

(6)定时比较:判断启闹时间到否?如时间到,则启动蜂鸣器鸣叫。

(7)其它辅助功能子程序,如键盘设置、拆字、合字、时间合法性检测等。3 在线仿真调试

在线仿真调试的任务是利用开发工具,发现和纠正程序错误,同时也能发现硬件故障。

KeilC51提供了如复位、运行、暂停、单步、过

第2期万胜前:基于KeilC51软件的电子钟设计与制作

19

储器等多种调试窗口,为了能够比较直观地了解单片机中定时器、中断、并行端口、串行端口等常用外设的使用情况,还提供了一些外围接口对话框,充分利用这些功能,可以很方便地进行程序调试。

程序的调试应一个模块一个模块地进行,首先单独调试各功能子程序,检验程序是否能够实现预期的功能,接口电路的控制是否正常等;最后逐步将各子程序连接起来联调。联调需要注意的是,各程序模块间能否正确传递参数,特别要注意各子程序的现场保护与恢复。调试的基本步骤如下:

(1)用仿真器修改显示缓冲区内容,屏蔽拆字程序,调试动态扫描显示功能。例如将DISP0~DISP5单元置为 012345!,应能在LED上从左到右显示 012345!。若显示不正确,可在DISP子程序相应位置设置断点调试检查。然后用仿真器修改计时缓冲区内容,调用拆字程序,调试显示模块DISPLAY。例如,将HOUR、MIN、SEC单元置为 123456!,检查是否能正确显示 12:34:56!。若显示不正确,应在SEPA子程序相应位置设置断点,调试检查。

(2)运行主程序调试计时模块,不按下任何键,检查是否能从由00:00:00开始正确计时。若不能正确计时则应在定时器中断服务子程序中设置断点,检查HOUR、MIN、SEC、MSEC单元是否随断点运行而变化。然后屏蔽缓冲区初始化部分,用仿真器修改计时缓冲区内容为23:58:48,运行主程序(不按下任何键),检验能否正确进位。

(3)调试键盘扫描模块KEYSCAN,先用延时10ms子程序代替显示子程序延时消抖,在求取键号后设置断点,中断后观察A累加器中的键号是否正确;然后恢复用显示子程序延时消抖,检验与DISPLAY模块能否正确连接。

(4)调试时间设置/闹钟定时模块MODIFY。首先屏蔽COMB子程序,单独调试键盘设置模块KEYIN,观察显示缓冲区DISP0~DISP5单元的内容是否随键入的键号改变,以及键号能否在LED上显示。然后屏蔽KEYIN子程序,单独调试合字模块COMB,分别将R1设置为时间设置缓冲区和闹钟值寄存区的首地址,修改显示缓冲区内容,程序运行后查看时间设置缓冲区HOUR、MIN、SEC单元和闹钟值寄存区AHOUR、AMIN、ASEC单元内容是否正确。最后联调MODIFY模块。

(5)运行主程序联调,检查能否用键盘修改当前时间以及设置闹钟,能否正确计时、启闹、停闹。4 系统调试、制作与脱机运行

在线仿真调试无误后,我们就可以制作电子钟。

4.1 硬件调试

硬件调试的主要任务是排除硬件故障,其中包括设计错误和工艺性故障。4.2 脱机运行

软硬件调试成功之后,可以将程序固化到89C51的FLASHROM中,插入89C51芯片,接上电源脱机运行。有可能出现以下故障:

(1)系统不工作。其原因主要有晶振不起振(晶振损坏、晶振电路不正常导致晶振信号太弱等),或EA引脚没有接高电平(接地或悬空)等。

(2)系统工作时好时坏。这主要是由干扰引起的。由于本系统没有传感输入通道和控制输出通道,干扰源相对较少且简单,因此,在电源、总线处对地接滤波电容一般可以解决问题。5 结束语

用KeilC51软件设计单片机应用系统,方便了设计过程,提高了设计效率。KeilC51以其高品质的性能、强大的在线分析能力让设计者轻松、愉快、卓有成效地完成设计任务。

参考文献#

[1]李广第,朱月秀,王秀山.单片机基础[M].北京:北京航空航天大学出版社,2001:184-191.

[2]高鹏,安涛,寇怀成.电路设计与制版-Protel99入门与提高[M].北京:人民邮电出版社,2004:31-33.[3]李国丽,朱维勇.EDA与数字系统设计[M].北京:机械工业出版社,2004:158-159.

DesignandfabricationoftheelectronicclockbasedonthesoftwareofKeilC51

WANSheng-qian

(DepartmentofElectronicEngineering,EzhouUniversity,Ezhou,Hubei436000,China)

Abstract:ThispaperillustratesthepowerfulfunctionsofKeilC51asthetoolofdesigningSingleChipMicrocom

puterapplicationsystem.AndbysettingasanexampletheelectronclockdesigntakingSingleChipMicrocom puterasthecore,italsoelaborateshowtoapplythissoftwaretothedesignandstimulationofSingleChipMicro computerapplicationsystem.Keywords:thesoftwareofKeilC51;SingleChipMicrocomputerapplicationsystem;theelectronicclock;design

本文来源:https://www.bwwdw.com/article/vwhj.html

Top