基于proteus的数字电子钟的仿真设计Word格式.docx

上传人:b****4 文档编号:8130108 上传时间:2023-05-10 格式:DOCX 页数:12 大小:57.56KB
下载 相关 举报
基于proteus的数字电子钟的仿真设计Word格式.docx_第1页
第1页 / 共12页
基于proteus的数字电子钟的仿真设计Word格式.docx_第2页
第2页 / 共12页
基于proteus的数字电子钟的仿真设计Word格式.docx_第3页
第3页 / 共12页
基于proteus的数字电子钟的仿真设计Word格式.docx_第4页
第4页 / 共12页
基于proteus的数字电子钟的仿真设计Word格式.docx_第5页
第5页 / 共12页
基于proteus的数字电子钟的仿真设计Word格式.docx_第6页
第6页 / 共12页
基于proteus的数字电子钟的仿真设计Word格式.docx_第7页
第7页 / 共12页
基于proteus的数字电子钟的仿真设计Word格式.docx_第8页
第8页 / 共12页
基于proteus的数字电子钟的仿真设计Word格式.docx_第9页
第9页 / 共12页
基于proteus的数字电子钟的仿真设计Word格式.docx_第10页
第10页 / 共12页
基于proteus的数字电子钟的仿真设计Word格式.docx_第11页
第11页 / 共12页
基于proteus的数字电子钟的仿真设计Word格式.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于proteus的数字电子钟的仿真设计Word格式.docx

《基于proteus的数字电子钟的仿真设计Word格式.docx》由会员分享,可在线阅读,更多相关《基于proteus的数字电子钟的仿真设计Word格式.docx(12页珍藏版)》请在冰点文库上搜索。

基于proteus的数字电子钟的仿真设计Word格式.docx

2015年5月

2

4

六、4

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

1、设计目的与要求

设计目的:

通过课程设计,培养学生运用已学知识解决实际问题的能力、查阅资料的能力、自学能力和独立分析问题、解决问题的能力和能通过独立思考。

设计要求:

设计一个时、分可调的数字电子钟、开机显示“9-58-00”。

2、设计内容与方案制定

具有校时功能,按键控制电路其中时键、分键两个键分别控制时、分时间的调整。

按分键分加1;

按时键时加1。

以AT89C51单片机进行实现秒、分、时上的正常显示和进位,其中显示功能由单片机控制共阴极数码管来实现,数码管进行动态显示。

3、设计步骤

1、硬件电路设计

.硬件电路组成框图

电源

晶振电路显示电路

AT89C52

复位电路按键控制电路

.各单元电路及工作原理

(1)晶振电路

单片机的时钟产生方法有两种:

内部时钟方式和外部时钟方式。

本系统中AT89C51单片机采用内部时钟方式。

采用外接晶体和电容组成的并联谐振回路。

其电路图如下:

(2)键盘控制电路

键盘可实现对时间的校对,用两个按键来实现。

按时键来调节小时的时间,按分键来调节分针的时间。

其电路连接图如下:

(3)显示电路

LED显示器是现在最常用的显示器之一发光二极管(LED)分段式显示器由7条线段围成8字型,每一段包含一个发光二极管。

外加正向电压时二极管导通,发出清晰的光。

只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。

显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,采用动态显示方式显示时间,其硬件连接方式如下图所示。

.绘制原理图

其计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。

整个设计图由晶振电路、复位电路、AT89C51单片机、键盘控制电路组成。

显示电路将“时”、“分”、“秒”通过七段显示器显示出来,6个数码管的段选接到单片机的P0口,位选接到单片机的P2口。

数码管按照数码管动态显示的工作原理工作。

把定时器定时时间设为50ms,则计数溢出20次即得时钟计时最小单位秒,而20次计数可用软件方法实现,每累计60秒进1分,每累计60分钟,进1小时。

时采用24进制计时器,可实现对一天24小时的累计。

校时电路时用来对“时”、“分”显示数字进行校对调整,时分秒三个控制键分别接单片机的、进行控制。

按一下分键秒单元就加1,按一下时键分就加1。

.元件清单列表

单片机

AT89C51

*1

电解电容

CAP-ELEC10uF

瓷片电容

CAP22pF

*2

电阻

RES

*10

晶振

CRYSTAL

数码管

7SEG-MPX8-CA-BLUE

三极管

NPN

*8

按钮

BUTTON

*3

上位排阻

RESPACK-8

2.程序设计

程序程序

数字电子钟采用内部硬件定时器来进行定时,计时最小单位sec100为10ms。

若sec100每计满100次时,表示已经计时1s,则sec100清零且sec加1。

如果sec等于60,应将sec清零,同时min加1。

如果min等于60,应将min清零,同时hour加1。

如果hour大于23时,应将hour清零。

通过分析可知,程序中可分别由inc_sec()、inc_min()、inc_hour()这是三个函数负责秒、分、时的计时。

Sec100的计时由Timer0()中断函数来实现。

按钮K1(INT0)和K1(INT1)为调时、调分控制按键。

这两个按钮信号的输入采用外部中断方式来实现。

若产生外部中断时,通过调用inc_hour()或inc_min()函数来实现调时或调分操作。

编写显示函数display()时,应考虑小时数小于10时,应屏蔽时的十位数,使其不显示。

汇编程序

c语言编写的程序如下:

#include<

>

#defineucharunsignedchar

#defineunitunsignedint

sbitk1=P3^2;

sbitk2=P3^3;

uchartab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,

0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xBF};

uchardis_buff[8];

ucharsec100,sec,min,hour;

voiddelay(unitk)

{

unitm,n;

for(m=0;

m<

k;

m++)

{

for(n=0;

n<

120;

n++);

}

}

voiddisplay(void)

P2=0X80;

P0=tab[dis_buff[0]];

delay

(2);

P2=0x40;

P0=tab[dis_buff[1]];

P2=0x20;

P0=tab[dis_buff[2]];

P2=0x10;

P0=tab[dis_buff[3]];

P2=0x08;

P0=tab[dis_buff[4]];

P2=0x04;

P0=tab[dis_buff[5]];

P2=0x02;

P0=tab[dis_buff[6]];

if(hour>

9)

P2=0x01;

else

P2=0X00;

P0=tab[dis_buff[7]];

voiddisp_data(void)

dis_buff[7]=hour/10;

dis_buff[6]=hour%10;

dis_buff[5]=16;

dis_buff[4]=min/10;

dis_buff[3]=min%10;

dis_buff[2]=16;

dis_buff[1]=sec/10;

dis_buff[0]=sec%10;

voidinc_hour(void)

hour++;

23)

hour=0;

voidinc_min(void)

min++;

if(min>

59)

min=0;

inc_hour();

voidinc_sec(void)

sec++;

if(sec>

sec=0;

inc_min();

voidint0()interrupt0

delay(100);

if(INT0==0)

voidint1()interrupt2

voidtimer0()interrupt1

{

TH0=0xDC;

TL0=0x00;

sec100++;

if(sec100>

=100)

sec100=0;

inc_sec();

voidint_init(void)

TMOD=0x01;

TR0=1;

ET0=1;

EX0=1;

IT0=0;

EX1=1;

IT1=0;

EA=1;

voidmain(void)

int_init();

P0=0xFF;

P2=0x00;

hour=9;

min=58;

while

(1)

disp_data();

display();

四、调试与仿真

打开keil程序,创建“数字电子钟”项目,输入c语言源程序,保存为“数字电子钟.c”。

在项目管理窗口中选中文件组,单击鼠标右键,在弹出的菜单中选择“AddFiletoGrou`SourceGroup1`”,添加源程序“数组电子钟.c”到项目组。

执行命令“Project”-”BuildTarget”,编译源程序,如果编译成功,则在输出窗口中显示没有错误,并创建了”数字电子钟.hex“文件。

在已绘制好原理图的ProteusISIS中,双击单片机,在弹出的对话框选择“数字电子钟.hex”。

开始仿真,刚运行时1,数码管显示“9-80-00”,而后每隔1s进行累计显示,如图所示,每按一次K1时,小时数会加1,每按一次K2时,分钟数加1。

5、心得体会

按分键对分进行调整,按一下加一分;

按时键对时进行调整,按一下加一小时,从而达到快速设定时间的目的。

若满足以上要求则符合方案要求。

若按一下连续加若干位,则按键延时时间设置太短,可以通过增大延时时间进行改进。

通过本次仿真设计,基本掌握了简单的单片机应用设计,以及proteus仿真设计,数字电子钟设计比较简单,以后应多注意设计方面的问题并解决。

6、参考文献

[1]陈中平、基于proteus的51系列单片机设计与仿真(第二版)、电子工业出版社.2012.

[2]谭浩强、C程序设计(第四版)、清华大学出版社.2010.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2