基于Proteus和Keil的数字电子钟的设计与仿真

基于Proteus和Keil的数字电子钟的设计与仿真


2024年5月30日发(作者:)

第23卷第2期 

宁德师专学报(自然科学版) 

VoI.23 No.2 

2011年5月 

Journal of Ningde Teachers College(Natural Science) 

Mav 2011 

基于Proteus和Keil的数字电子钟的设计与仿真 

袁秋风 

(宁德师范学院物理与电气工程系,福建宁德352100) 

摘要:Proteus和Keil作为单片机系统开发的主流工具,具有节约硬件成本、缩短研发周期、提高设计成 

功率的特点.以AT89C52、DS1302和LCD1602为主要元器件,设计和仿真一个数字电子钟系统. 

关键词:Proteus;Keil;AT89C52;数字电子钟 

中图分类号:G 633.6 文献标码:A 文章编号:1004-2911(2011)02—0164-04 

1 Proteus和KeiI简介 

Proteus是英国Labcenter Electronics公司研发的多功能EDA软件I1】,主要包括ISIS Profession和 

ARES Profession两个应用软件.Proteus软件整合了Multisim软件和Protel软件的主要功能,不仅能实现 

电子线路设计与仿真,还能完成PCB设计,它突出的特点是尤其适用于微控 器及其外围器件的仿真. 

Keil软件是基于MCS8051内核的微处理器软件开发平台/21,可以完成工程建立和管理、C语言和汇 

编语言源代码的编译、连接、调试、hex目标代码的生成等开发流程,是目前单片机系统软件开发的常用 

工具之一. 

2 系统设计 

2.1设计要求 

应用Proteus和Keil设计和仿真一个数字电子钟系统,要求能显示2000年一2099年间的年月日、星 

期和时分秒.并能通过按键进行调整. 

2.2系统硬件设计 

按照系统功能要求。系统硬件可分为4个模块:主控模块、时钟模块、显示模块和按键扫描模块.系 

统框图见图1. 

主控模块从时钟电路读取实时时间,并 

送至显示电路。同时主控模块不停地扫描按 

键的状态决定是否进行时间调整.若需进行 

主控模块 

㈢I显示电路l 

时间调整,则将修改的时间写入时钟电路,时 

间调整完毕。主控模块又将重新读取实时时 

时钟电路k--> 

键扫描电路 

钟信息.主控模块可选用ATMEL公司的 

AT89C52单片机;时钟电路芯片选用DALLAS 

图1系统框图 

公司的涓流充电时钟芯片DS1302,双电源供电、功耗低、计时精度高;显示模块采用字符型LCD16O2液 

晶模块。轻便、界面友好、低功耗且操作方便;按键扫描电路选用开关按键和复位按钮,接口电路简单、 

廉价实用.系统硬件电路见图2. 

2.2.1 主控芯片AT89C52 AT89C52单片机是一种低功耗、高性能的8位微处理控制器。采用先进的高 

密度、非易失性存储技术生产,与80C51指令和引脚完全兼容.AT89C52片内含8KB可反复擦写的 

FlashROM和256字节RAM,3个16位定时肘数器,4个8位并行可编程I/O口,6个中断源,具有待机 

收稿日期:2011—O3—29 

作者简介:袁秋凤(1983一),女,助教,福建宁德人。从事电子信息类教学与研究工作. 

E-mail:ndsyqf@163.Corn 

_

第2期 袁秋风:基于Proteus和Keil的数字电子钟的设计与仿真 ・l65・ 

图2系统硬件电路和仿真效果图 

和掉电两种低功耗方式. 

2.2.2时钟芯片DS1302 DS1302时钟芯片内含一个实时时钟,日历和3l字节静态RAM。仅通过RES 

复位线、I/O数据线和SCLK串行时钟线,便能简单地实现与单片机的同步串行通信,可一次传送一字节 

或多字节的时钟信号或RAM数据,实时时钟/日历电路可计算2l00年之前的秒、分、时、日、星期、月、年 

的信息,每月的天数和闰年的天数可自动调整,实时时钟信息以BCD码形式存储.X1和X2引脚外接 

32.768KHz晶振。双电源管脚用于主电源VCC2(5V)和备用电源VCC1供应,VCC1为可编程涓流充电 

电源,提供低功率的电池备份,要求电压稍低于主电源. 

2.2.3显示模块LCD1602 LCD1602字符型液晶显示器分为带背光(16脚)和无背光(14脚)两种,基控 

制器大多为HD44780.HD44780内置了DDRAM、CGR0M和CGRAM.DDRAM用于显示数据,地址范围 

为00H~27H和40H~67H,共80个字节,分两行显示.CGROM为内部自带字符发生存储器,存储了160 

个不同的点阵字符图形。其中字符代码00H~OFH为CGRAM,用于用户自定义的字符图形.LCD1602的 

内部控制器有11条指令,完成读写、屏幕和光标的操作.其中对于DDRAM或CCRAM的读写操作,用 

RS寄存器选择、 W读写、E使能三根引脚的不同时序状态来代表读状态、写指令、读,写数据四种方式. 

LCD1602使用时,DO~D7引脚要外接上拉电阻. 

2.2.4按键接口电路按键接口电路采用1个开关按键和3个复位按钮,SET键的闭合或断开表示进 

入或退出调节时间状态,MOVE键用于控制液晶屏幕的光标移动,UP键用于增l操作,DOWN键用于 

减1操作. 

2.3系统软件设计 

系统软件部分采用汇编语言编写,主要完成时间的显示和调整,包括按键扫描、星期的自动计算、 

自定义汉字点阵字模等.系统总流程图见图3. 

2.3.1 初始化子程序 系统开始运行时,要先完成液晶屏幕的初始化设置和液晶初始化面的显示. 

对液晶模块的初始化要先通过指令设置其显示模式,由于液晶显示模块是一个慢显示器件,所以 

166・ 宁德师专学报(自然科学版) 2011年5月 

在执行每条指令之前一定要通过指令80H确认模块的忙标志为 

低电平,即不忙,否则该指令失效.写指令操作要遵循时序要求. 

LCD1602液晶显示屏的初始画面可显示两行表示欢迎的英 

文字符串.要在液晶屏幕上显示字符.首先要设置DDRAM显示地 

址。字符要正常显示必须将DDRAM地址加上80H,如要在 

DDRAM的01H地址处显示数据,则必须将DDRAM地址设置为 

81H.字符串以表格形式存放在单片机的ROM中,通过查表指令 

MOVC A,@A+DPTR读取相应字符的代码,再调用写数据到液晶 

子程序完成字符串的正常显示,写数据操作之前也需检测忙标志. 

2.3,2主程序程序主体部分主要进行DS1302时钟芯片的实时 

时钟读取并显示在LCD1302液晶显示屏上,同时不断扫描SET键 

是否处于闭合状态,一旦SET键闭合,马上进入时间调整状态,调 

整好时间后,重新读取DSI302时钟芯片的实时时钟并显示,如此 

反复进行. 

2.3.3显示时间子程序显示时间部分主要是通过不同的命令字 

读取DS1302时钟芯片内的BCD码形式的实时时钟数据,将时钟 

高低位分离并加以修正后,在LCD1602液晶上显示出来. 图3系统总流程图 

为了能显示汉字字符“年”、“月”、“日”,需要使用CGRAM存储自定义的汉字点阵字模,将汉字字符 

点阵信息以表格形式存储,对于LCD1602来说,最多只能定义8个汉字,若采用8x8点阵形式,以字符 

“年”为例,其字模为08H,0FH,12H,OFH,0AH,1FH,02H,02H. 

虽然DS1302时钟芯片能提供实时星期数据,但为了按键调时环节能依据年月日自动调整更新星 

期,引入了星期的计算,流程图见图4.星期算法可采用以下表达式: 

星期=『(年份+年份/4)%7+月校正值+日期】%7 

其中,年份取低2位,年份,4的结果需取整,“%”为 

取余符号,计算结果为0~6分别代表星期日~星期六. 

2000年~2099年的平闰年的判断依据为年的低两 

日期、月份转16进制 

位能被4整除且不能被100整除的即为闰年.另外,应 

注意将BCD码形式的年月日转换成十六进制值. 

1 

年份转16进制j 

2-3.4时间调整子程序当SET键闭合时,系统进入 

时间调整子程序,液晶光标在年份末位闪烁.通过轮流 

企 

查询SET键、MOVE键、UP键、DOWN键,以确定执行 

哪种操作.例如年份调节的具体步骤如下: 

S1:若SET键断开。则退出时间调整,返回主程序; 

S2:若SET键仍闭合,而MOVE键按下,则液晶光 

标在月份末位闪烁; 

S3:若SET键仍闭合,且MOVE键未按下,而UP 

键按下,则年份加1; 

S4:若SET键仍闭合,MOVE键未按下,UP键也 

未按下。而DOWN键按下,则年份减1; 

查表取平年月校正值 查表取闰年月校正值I 

l 

Y , r 

星期=【(年份+年份/4)%7+B校正值+日期 】 

I 

I ̄A DS1302 l 

图4星期自动调整 

S5:若SET键仍闭合,MOVE键、UP键、DOWN键 

第2期 袁秋凤:基于Proteus和Keil的数字电子钟的设计与仿真 ・167・ 

都未按下,则返回Sl继续执行. 

月份、日期、小时、分钟的调整步骤与年份类似. 

加1、减1涉及到1字节压缩BCD码的加减运算,要实现加1操作,只需使用加法指令ADD和十进 

制调整指令DA A.因为DA A指令只能用于BCD码加法运算的调整,所以要实现减1操作就必须先转 

换成加法运算.以年份减1为例,变换成“(100一1)+年份”的加法形式,进位舍弃,再使用DA A指令修正. 

3系统的仿真 

3.1电路原理图绘制 

启动Proteus中的1SIS Profession软件,使用系统默认的工作环境,新建设计文件;从元件库中选取 

系统硬件电路图所示的元器件,并添加到对象选择器窗口;将元器件放置于原理图编辑器中,拖动到合 

适的位置,并修改元器件的属性;完成相关元器件引脚的连线;最后进行电气规则检查,若电气规则检 

查无误,则电路原理图绘制完成.完成的电路原理图见图2. 

3.2程序编写调试及仿真 

启动Keil uVision软件,新建工程文件,CPU选取ATMEL公司的AT89C52;创建一个asm格式文件 

并添加入文件组;在程序编辑窗lYl输入程序代码,调试并编译程序,生成hex格式的目标代码文件. 

运行ISIS Profession软件,打开设计文件,将目标代码文件载入AT89C52单片机,单击仿真运行按 

钮。分别进行时间显示和时间调整的仿真,依据仿真出现的问题修改源程序直至达到要求的仿真效果, 

时间显示的仿真效果如图2所示. 

本文以设计一个液晶显示的可调数字钟系统为例,讲述了Proteus和Keil在单片机系统设计中的 

使用方法.单片机系统设计过程运用Proteus和Keil可以缩短研发周期,节约生产成本,提高设计的成功 

率.同样地,如果将Proteus和Keil合理地应用于单片机课程教学中,不仅能极大节省硬件投入,还能让 

学生从直观的实例演示和动手实践中,加深对理论知识的理解,更好地掌握单片机系统设计步骤、软件 

编程和调试方法. 

参考文献: 

【1】王威,刘佳,张志雄,等.基于Proteus和Keil的单片机虚拟仿真平台的设计【J].上海电力学院学报,2009,25(6):608 

【2]蔡明文,冯先成.单片机课程设计[M].武汉:华中科技大学出版社,2007.3. 

The design and simulation of a digital electronic clock system 

based on Proteus and Keil 

YUAN Qiu-feng 

(Department Of Physical and Electircal Engineering,Ningde Normal University,Ningde,Fujian 352100,China) 

Abstract:Proteus and Keil are the main tools for developing single chip microcomputer systems.They have 

such characteristics as saving cost,reducing development cycle and increasing Success rate of design.In this 

paper,a digital electronic clock system is designed and simulated,with AT89C5 1,DS 1 302 and LCD 1 602 as 

hte main components. 

Key words:Proteus;Keil;AT89C52;digital electronic clock 


发布者:admin,转转请注明出处:http://www.yc00.com/news/1717053376a2733333.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信