时间继电器设计.docx

上传人:b****8 文档编号:23821970 上传时间:2023-05-21 格式:DOCX 页数:23 大小:240.84KB
下载 相关 举报
时间继电器设计.docx_第1页
第1页 / 共23页
时间继电器设计.docx_第2页
第2页 / 共23页
时间继电器设计.docx_第3页
第3页 / 共23页
时间继电器设计.docx_第4页
第4页 / 共23页
时间继电器设计.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

时间继电器设计.docx

《时间继电器设计.docx》由会员分享,可在线阅读,更多相关《时间继电器设计.docx(23页珍藏版)》请在冰豆网上搜索。

时间继电器设计.docx

时间继电器设计

目录

1.前言1

2.总体方案设计1

2.1方案论证1

2.2方案选择1

3.单元模块设计2

3.1总体程序流程框图功能介绍3

3.2时标选择按键程序设计3

3.2.1程序流程框图3

3.2.2程序程序设计5

3.3测量及重新测量按键程序设计6

3.3.1程序流程框图6

3.3.2程序程序设计6

3.4脉冲产生子程序设计7

3.4.1子程序1流程框图7

3.4.2子程序1程序设计7

3.5脉冲计数子程序设计9

3.5.1子程序2流程框图9

3.5.2子程序2程序设计10

3.6十六进制变十进制子程序设计11

3.6.1子程序3流程框图11

3.6.2子程序3程序设计12

3.7四位七段显示管显示子程序设计12

3.7.1子程序4流程框图12

3.7.2子程序4程序设计12

3.8键盘防抖动子程序设计14

3.8.1子程序5流程框图14

3.8.2子程序5程序设计14

4.系统调试16

4.1仿真软件介绍16

4.2仿真电路设计16

4.3程序的编译及调试17

5.设计总结20

参考文献20

附录一(设计总电路图)

1.前言

随着现代高科技的迅猛发展,时间测量在我们的实际生活中的应用领域也越来越广,人们在用各种电类产品时,对时间测量的精准度要求越来越高。

如在控制电路中,我们需要时间的设定,使得电路产生的效果更加精确。

时间继电器就是一种控制电路中常用来控制时间的器件。

时间继电器是一种时间控制元件,具有延时精度高、延时范围宽、使用寿命长、功耗小、输出触点容量大、调整方便和直观、外观体积小、重量轻、结构紧凑等优点。

然而,现在我要根据时间继电器的原理来设计出一种与之功能相当的方案。

但是,我要用怎样的方法来测量时间呢?

于是,我想到了,在电子测量中,经常需要对信号频率或周期进行精确测量,而且利用单片机系统内部含有的高精度频率源、定时计数器能方便地对外部信号频率进行测量,得到被测信号的准确频率或周期。

并且单片机的出现,更是对包括测频在内的各种测量技术带来了许多重大的飞跃,单片机凭着小体积、价廉、功能强等优势也在电子领域占有非常重要的地位。

为此,本文给出了一种以单片机为核心的时间测量系统的设计方法。

 

2.总体方案设计

2.1方案论证

单片机是一个能实现很多功能的器件,在时间测量的设计中,我可以采用单片机对测量的时间进行显示,也可以运用单片机来产生不同的时标对时间进行更精确的测量。

时间继电器的定义是当加上或除去输入信号时,输出部分需延时或限时到规定的时间才闭合或断开其被控线路的继电器。

故我可以理解为时间继电器就是对一段规定时间的精度测量。

于是有了两种设计思路。

2.2方案选择

测量一段时间即可看做对一段脉冲方波的测量,而且我要用三种不同的时标来对这段时间进行较准确的测量,并用四位七段显示器显示出来。

三种不同的时标,我选择单片机的定时功能产生三种周期分别为0.01s,0.1s和1s的方波,如果将此三种信号与测量信号相与,在测量脉冲的一个周期内就会产生若干脉冲波,恰好这些脉冲波上升沿的个数乘以时标就得到了测量脉冲所占的时间即测量出了这段给定的时间。

现在,我用一个脉冲发生器来产生给定的脉冲,然后用单片机来产生计数脉冲,两种信号送入一个与门,然后对相与之后的信号脉冲计数,最主要的问题就在于怎么计数,于是有了两种方案如下:

一.利用计数器74LS161来计数,设计模拟图如图2.2.1所示,明显的是,2片74LS161最多只能计数计到256,故如果超过2s的时间用时标0.01来测显然是测不出来的。

图2.2.1

二.利用单片机编程来实现上升沿的计数,软件仿真设计图如图2.2.2所示。

这种设计方法解决了74LS161的局限性,故最后,我选择采用这种方法来实现时间的测量。

图2.2.2

 

3.单元模块设计

3.1总体程序流程框图功能介绍

3.2时标选择按键程序设计

3.2.1程序流程框图

3.2.2程序程序设计

一.按下“时标0.01”按键的程序

l1:

jnbp3.4,l1_next

lcallcount_add

l1_next:

lcalldelay_hund

cplp3.3

jnbp3.5,test_start1

ljmpl1

二.按下“时标0.1”按键的程序

l2:

jnbp3.4,l2_next

lcallcount_add

l2_next:

lcalll2_delay

cplp3.3

jnbp3.5,test_start2

movr4,#10

ljmpl2

三.按下“时标1”按键的程序

l3:

jnbp3.4,l3_next

lcallcount_add

l3_next:

lcalll3_delay

cplp3.3

jnbp3.5,test_start3

movr5,#100

ljmpl3

3.3测量及重新测量按键程序设计

按下“测量”按键即将计数结果的十六进制数转化成十进制数然后显示出来,按“测量”按键时要特别注意“指示灯”,如果按键的时间不对,测量结果将产生错误。

正确的按键方式应该是:

当指示灯第一次暗时,按下任意一个时标按键,待指示灯亮末,第二次指示灯暗时,按下“开始测量”按键,才能得到正确的计数数值。

因为“指示灯”亮的时候告诉我们单片机在计数并保存了数据,如果在时标按键按下之后指示灯亮了2次才按下“开始测量”按键,计数值则会是正确计数值的两倍,所以按键时要注意。

然而,在按下了“开始测量”按键的过程中,如果按下了“重新测量”按键则返回到main,四位气短显示器仍然显示初值0000。

3.3.1程序流程框图

3.3.2程序程序设计

test_start1:

lcalltwo_div

jnbp3.6,main

lcalldisplay1

ljmptest_start1

test_start2:

lcalltwo_div

jnbp3.6,main

lcalldisplay2

ljmptest_start2

test_start3:

lcalltwo_div

jnbp3.6,main

lcalldisplay3

ljmptest_start3

3.4脉冲产生子程序设计

我采用单片机的定时功能产生脉冲,基本定时5ms,可产生周期为10ms的脉冲波,根据计算,定时5ms的初值为ec78。

如果分别加上一个循环程序就可得到周期为100ms和1s的脉冲波了。

3.4.1子程序1流程框图

3.4.2子程序1程序设计

一.产生周期为10ms脉冲的程序

delay_hund:

movtmod,#01h

movtl0,#78h

movth0,#0ech

setbtr0

de1:

jnbtf0,$

clrtf0

ret

二.产生周期为10ms脉冲的程序

l2_delay:

lcalldelay_hund

djnzr4,l2_delay

movr4,#10

ret

三.产生周期为10ms脉冲的程序

l3_delay:

lcalldelay_hund

djnzr5,l3_delay

movr5,#100

ret

3.5脉冲计数子程序设计

此程序是一个单片机加计数的过程,当被测信号与时标信号一起送入与门时,结果是“1”,单片机就自动加1,结果是“0”,单片机不计数。

3.5.1子程序2流程框图

3.5.2子程序2程序设计

count_add:

clrc

mova,r0

addca,#01h

movr0,a

mova,r1

addca,#00h

movr1,a

ret

3.6十六进制变十进制子程序设计

3.6.1子程序3流程框图

3.6.2子程序3程序设计

two_div:

mov43h,#00H

mov42h,#00h

mov41h,#00h

mov40h,#00h

mov44h,r0

mov45h,r1

two_div1:

clrc

mova,44h

movr6,44h

subba,#0e8h

mov44h,a

mova,45h

movr7,45h

subba,#03h

mov45h,a

jctwo_div2

inc43h

ajmptwo_div1

two_div2:

clrc

mova,r6

mov44h,r6

subba,#64h

movr6,a

mova,r7

mov45h,r7

subba,#00h

movr7,a

jctwo_div3

inc42h

ajmptwo_div2

two_div3:

clrc

mova,44h

movb,#0ah

mov40h,a

divab

mov41h,a

mov40h,b

ret

3.7四位七段显示管显示子程序设计

3.7.1子程序4流程框图

3.7.2子程序4程序设计

在此程序设计中,四位七段显示管第一位显示的是计数结果的十进制千位数,第二位显示的是计数结果的十进制百位数,第三位显示的是计数结果的十进制十位数,第四位显示的是计数结果的十进制个位数。

由于时标分别是1,0.1,0.01,所以测量的时间结果是计数数值乘以时标,于是我采用了3个子程序来分别显示,时标为1时,直接显示计数值;时标为0.1时,在第三位七段显示管上显示小数点即可;时标为0.01时,在第二位七段显示管上显示小数点即可。

一.测量时标为0.01,带小数点显示程序:

display1:

movp1,#01h

movdptr,#char

mova,40h

movca,@a+dptr

movp0,a

lcalldelay_hund

movp1,#02h

mova,41h

movca,@a+dptr

movp0,a

lcalldelay_hund

movp1,#04h

mova,42h

movca,@a+dptr

movp0,a

setbp0.7

clrp0.7

lcalldelay_hund

movp1,#08h

mova,43h

movca,@a+dptr

movp0,a

lcalldelay_hund

ret

二.时标为0.1,带小数点显示程序:

display2:

movp1,#01h

movdptr,#char

mova,40h

movca,@a+dptr

movp0,a

lcalldelay_hund

movp1,#02h

mova,41h

movca,@a+dptr

movp0,a

setbp0.7

clrp0.7

lcalldelay_hund

movp1,#04h

mova,42h

movca,@a+dptr

movp0,a

lcalldelay_hund

movp1,#08h

mova,43h

movca,@a+dptr

movp0,a

lcalldelay_hund

ret

三.时标为1,显示程序:

display3:

movp1,#01h

movdptr,#char

mova,40h

movca,@a+dptr

movp0,a

lcalldelay_hund

movp1,#02h

mova,41h

movca,@a+dptr

movp0,a

lcalldelay_hund

movp1,#04h

mova,42h

movca,@a+dptr

movp0,a

lcalldelay_hund

movp1,#08h

mova,43h

movca,@a+dptr

movp0,a

lcalldelay_hund

ret

3.8键盘防抖动子程序设计

延时约0.5s,在此程序中有三次循环,外循环45次,第一内循环10次,第二内循环100次,故(45*10*100)*1us=0.45s,键盘防抖动约0.5s。

3.8.1子程序5流程框图

3.8.2子程序5程序设计

delay:

push1

push2

push3

movr1,#45

loop2:

movr2,#10

loop1:

movr3,#100

djnzr3,$

djnzr2,loop1

djnzr1,loop2

pop3

pop2

pop1

ret

4.系统调试

4.1仿真软件介绍

在本次的设计中,单片机开发中除必要的硬件外,同样离不开软件,我用的是Proteus和Keil软件。

Proteus是英国Labcenter公司开发的电路分析与实物仿真软件。

它运行于Windows操作系统上,可以仿真、分析各种模拟器件和集成电路,该软件的特点是:

①实现了单片机仿真和电路仿真相结合。

具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

②支持主流单片机系统的仿真。

目前支持的单片机类型有:

ARM7(LPC21xx)、8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。

③提供软件调试功能。

在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2、MPLAB等软件。

④具有强大的原理图绘制功能。

Proteus最大的亮点在于能够对单片机进行实物级的仿真。

从程序的编写,编译到调试,目标版的仿真一应俱全。

支持汇编语言和C语言的编程。

还可配合Keil实现程序的联合调试,将Proteus中绘制的原理图作为实际中的目标板,而用Keil集成环境实现对目标板的控制,与实际中通过硬件仿真器对目标板的调试几乎完全相同,并且支持多显示器的调试,即Proteus运行在一台计算机上,而Keil运行在另一台计算机上,通过网络连接实现远程的调试。

KeilIDE集成开发环境是KeilSoftwareInc/KeilElektronikGmbH开发的基于MCS8051内核的微处理器软件开发平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立和管理,编译,连接,目标代码的生成到软件仿真,硬件仿真等完整的开发流程。

尤其是C语言编译工具在产生代码的准确性和效率方面达到了较高的水平,而且可以附加灵活的控制选项,在开发大型的项目时是非常理想的工具,Keil本身是以份额纯软件工具,但是与Proteus系列硬件仿真器挂接即可进行仿真。

4.2仿真电路设计

本次设计中,硬件仿真电路的如图4.2.1所示,

4.3程序的编译及调试

将keil编程中生成的hex文件载入到上图的8051单片机中,即可以进行仿真。

例如测量时间为5s,我把脉冲发生器的频率设定为0.15HZ,则仿真的显示结果如下显示:

仿真开始显示以时标1测量时间

以时标0.1测量时间以时标0.01测量时间

可见测量的精度随着时标的精确而增加,计算测量时间为3.33s。

三种时标1,0.1,0.01的误差分别为20%,0.9%和0.3%。

可见不同的时标测得的时间精准度不一样。

时标越小精度越高。

5.设计总结

这学期的课程设计我相信会令我终生难忘,我觉得那是我学习的一个很大的转折点,如果没有这次认真的学习态度和坚持的学习精神,那么我的单片机和微机原理的学习会毫无意义的。

在这次的设计中,我把单片机课上学习的点点滴滴集合起来居然做出了这个设计,说实话有点出乎自己的意料,没想到自己也能做出一个自己的设计,而且自己觉得做得还比较完善,虽然这个设计只是仿真出来,还没有做出实物,但是这次的收获会促使我更加努力的学习探索,争取能做出实物。

这次虽然是大学里做的第二个正式的设计题,但是自己用心去做了,觉得很有收获,很开心,以前总以为自己不适合这样的专业,这些专业知识对我来说都很困难。

但是每当克服了一个困难之后,心里的豁然开朗告诉自己在学习的道路上不要认输。

一旦认定了,我就会坚持下去,即使最终没有得到自己想要的,但是在这个过程中成长的不只是一点点。

总之,我很认真的做了这次设计,付出了很多,得到的也不少。

参考文献

[1]谢自美主编.电子线路设计.实验.测试(第二版)[M].华中理工大学出版社,2003.10.

[2]袁秀英主编.单片机原理与应用教程[M].北京航空航天大学出版社,2006.8.

[3]刘守义主编.单片机应用技术[M].西安电子科技大学出版社,2007.

 

附录一(设计总电路)

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

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1