数字电流表的设计Word文件下载.docx
《数字电流表的设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《数字电流表的设计Word文件下载.docx(25页珍藏版)》请在冰点文库上搜索。
设计要求
⑴测量电流范围在—100mA。
⑵通过改变滑动变阻器的阻值来改变电流量。
设计意义
{
⑴进一步熟悉和掌握单片机的结构和工作原理。
⑵掌握单片机的接口技术及ADC0808芯片的特性、控制方法。
⑶通过这次课程设计,掌握以单片机为核心的电路设计的基本方法和技术。
⑷通过实际程序的设计和调试,逐步掌握模块化程序设计的方法和调试技术。
⑸通过完成一个包括电路设计和程序开发的完整过程,使自身了解开发单片机应用系统的全过程,强化巩固所学知识,为以后的学习和工作打下基础。
。
二.系统硬件设计
测量2—100mA的主流电流,通过输入电路把信号送给ADC0808,转换为
数字信号再送至AT89C51单片机,通过P0口经数码管显示出测量值。
结构框图
如图1—1所示
`
图1—1
原理及功能
8路数字电流表主要利用A/D转换器,其过程如下:
先用A/D转换器对各电流值进行采样,得到相应的数字量,再按数字量与模拟量成比例关系运算得到相应的模拟电流值,然后把模拟值通过数码管显示出来。
设计时假设待测的输入电流为8路,电流值的范围为0—100mA,要求能在LED数码管上显示。
硬件电路设计
8路数字电流表应用系统硬件电路由单片机、A/D转换器、数码管显式电路和滑动变阻器处理电路等组成,电路原理图如图1—2所示。
/
图1—2
ADC0808具有8路模拟量输入的通道IN0—IN7,通过3为地址输入端C、B、A(引脚23—25)进行选择。
引脚22为地址锁存控制端ALE,当输入为高电平时,C、B、A引脚输入的地址锁存于ADC0808内部的锁存器中,径内部译码电路译码选中相应的模拟通道。
引脚6为启动转换控制端START。
引脚7为A/D转换器,当开始转换时,EOC信号为低电平,经过一段时间,转换结束,转换结束信号EOC输出高电平,转换结果存放于ADC0808内部的输出数据寄存器中。
引脚9为A/D转换数据输出允许控制端OE,当OE为高电平是,存放于输出数据锁存器中的数据通过ADC0808的数据线D1—D7输出。
引脚10为ADC0808的时钟信号输入端CLOCK。
在连接时,ADC0808的数据线D0—D7与AT89C51的P1相连接,ADC0808的地址锁存端ALE、启动信号START与AT89C51的相连接,ADC0808的数据输出允许控制端OE与AT98C51的相连接,转换电路EOC与AT89C51的相连接。
LED的数码显示管通过AT89C51的P0—P7口控制。
RV1和RV2是两个滑动变阻器开关,通过两个电压比较器与ADC0808的输入端相连接。
三.系统软件设计
|
系统程序清单:
CLOCKBIT;
定义ADC0808时钟位
RSEQU
RWEQU
EEQU
ADCEQU35H;
存放转换后的数据
STBIT
EOCBIT
ORG00H
LJMPSTART
ORG000BH
LJMPINT_T0
#
START:
MOVTMOD,#02H
MOVTH0,#245
MOVTL0,#00H
MOVIE,#82H
SETBTR0
LCALLINIT
lcallDISP_GALVANOMETER
、
WAIT:
CLRST
SETBST
CLRST;
启动转换
JNBEOC,$;
等待转换结束
;
允许输出
MOVADC,P1;
暂存转换结果
关闭输出
MOVA,ADC
MOVB,#11;
欧的数据处理
DIVAB
MOV51H,B
.
MOVB,#10
MULAB
ADDA,51H
LJMPJIAOZHENG
FANHUI:
MOVB,#2
>
MOVADC,A
MOV32H,B;
小数位
CLRC;
显示100以内
MOVA,ADC
MOVB,A
MOVA,#99
SUBBA,B
]
JCDISP_100
MOVA,ADC;
将AD转换结果转换成BCD码
MOVB,#100
DIVAB
MOV35H,A
MOVA,B
MOVB,#10
》
MOV34H,A
MOVA,B
MOVB,#10
MULAB
DIVAB
MOV33H,A
LCALLDisp;
显示AD转换结果
AJMPWAIT
init:
lcalldelay
lcalldelay
;
mova,#38h
lcallwrom;
定义成5*7,16*2
~
;
%
mova,#01h
lcallwrom;
清屏
mova,#06h
lcallwrom
lcalldelay
mova,#0Ch
LCALLDISP
clre
ret
wrom:
clrrs
clrrw
movp0,a
setbe
wrdata:
setbrs
DISP_100:
mova,#0C5h;
显示位置。
从85H开始
mova,#31h
lcallwrdata
<
mova,#30h
mova,#2eh
lcalldelay300ms;
delay
LJMPWAIT
DISP_GALVANOMETER:
mova,#82h;
显示位置
lcallwrom
mova,#47h
mova,#41h
mova,#4Ch
mova,#56h
mova,#4Eh
mova,#4Fh
mova,#4Dh
mova,#45h
*
mova,#54h
mova,#52h
JIAOZHENG:
CJNEA,#73,J1_1
ADDA,#1
LJMPFANHUI
J1_1:
CJNEA,#72,J1_2
J1_2:
CJNEA,#71,J1_3
J1_3:
CJNEA,#70,J1_4
ADDA,#2
J1_4:
CJNEA,#69,J1_5
J1_5:
CJNEA,#68,J1_6
J1_6:
CJNEA,#67,J1_7
J1_7:
CJNEA,#66,J1_8
J1_8:
CJNEA,#65,J1_9
J1_9:
CJNEA,#64,J1_10
J1_10:
CJNEA,#63,J1_11
J1_11:
CJNEA,#62,J1_12
J1_12:
CJNEA,#61,J1_13;
J1_13:
CJNEA,#60,J1_14
J1_14:
CJNEA,#59,J1_15
ADDA,#0
J1_15:
CJNEA,#58,J1_16
"
J1_16:
CJNEA,#57,J2
J2:
CJNEA,#56,J3
ADDA,#3
J3:
CJNEA,#55,J4
J4:
CJNEA,#54,J5
J5:
CJNEA,#53,J6
J6:
CJNEA,#52,J7
J7:
CJNEA,#51,J8
J8:
CJNEA,#50,J9
J9:
CJNEA,#49,J10
J10:
CJNEA,#48,J11
J11:
CJNEA,#47,J12
J12:
CJNEA,#46,J13
J13:
CJNEA,#45,J14
J14:
CJNEA,#44,J15
J15:
CJNEA,#43,J16
J16:
CJNEA,#42,J17
J17:
CJNEA,#41,J18
J18:
CJNEA,#40,J19
J19:
CJNEA,#39,J20
&
J20:
CJNEA,#38,J21
J21:
CJNEA,#37,J22
J22:
CJNEA,#36,J23
J23:
CJNEA,#35,J24
J24:
CJNEA,#34,J25
J25:
CJNEA,#33,J26
J26:
CJNEA,#32,J27
J27:
CJNEA,#31,J28
J28:
CJNEA,#30,J29
J29:
CJNEA,#29,J30
J30:
CJNEA,#28,J31
J31:
CJNEA,#27,J32
J32:
CJNEA,#26,J33
J33:
CJNEA,#25,J34
J34:
CJNEA,#24,J35
J35:
CJNEA,#23,J36
J36:
CJNEA,#22,J37
J37:
CJNEA,#21,J38
J38:
CJNEA,#20,J39
】
J39:
CJNEA,#19,J40
J40:
CJNEA,#18,J41
!
J41:
CJNEA,#17,J42
J42:
CJNEA,#16,J43
J43:
CJNEA,#15,J44
J44:
CJNEA,#14,J45
J45:
CJNEA,#13,J46
J46:
CJNEA,#12,J47
J47:
CJNEA,#11,J48
J48:
CJNEA,#10,J49
J49:
CJNEA,#9,J50
J50:
CJNEA,#8,J51
J51:
CJNEA,#7,J52
J52:
CJNEA,#6,J53
ADDA,#4
J53:
CJNEA,#5,J54
J54:
CJNEA,#4,J55
J55:
CJNEA,#3,J56
J56:
CJNEA,#2,J57
J57:
CJNEA,#1,J58
J58:
disp:
mova,35h
'
adda,#30h
mova,34h
mova,33h
:
mova,32h
movb,#5
mulab
mova,#'
m'
A'
lcalldelay300ms
INT_T0:
CPLCLOCK;
提供ADC0808时钟信号
RETI
delay300ms:
MOVR5,#60
D1_1:
LCALLDELAY_2
DJNZR5,D1_1
RET
DELAY:
MOVR6,#10;
延时5毫秒
D1:
MOVR7,250
DJNZR7,$
DJNZR6,D1
DELAY_2:
MOVR6,#10;
D2:
DJNZR6,D2
仿真结果
四、课设总结
自己对单片机的硬件设计,软件设计掌握的深度不够,但通过此次课程设计,却改变了很多,首先对于硬件电路的工作原理有了进一步的学习,同样就有了进一步的认识;
其次软件方面,在程序的设计,程序的调试方面都学到了很多东西,这是第一次编写单片机的大程序,很有成就感。
在一个好的氛围里才能踏下心来做东西,在这几天课设的时间里,实验室的氛围对我们的影响很大,大家一起努力,这也是我们能完成课设的动力。
另外在编程中出现问题时,一定要戒骄戒躁,脚踏实地,认真看书,仔细分析,仔细调试,就一定会发现错误,克服困难,我们也是这么做的,这在课设中十分重要。
为了减少主程序的长度,为了易于检测和调试,应尽量多点设置不同功能的子模块,子程序。
单片机在现实生活中有很大的的实用价值,学好这们课程非常关键,可以让自己的知识储备更加丰富,而这次课程设计正好提供了一个很好的机会加深对单片机知识的掌握。
通过这次课程设计,我对proteus以及Keil等软件的使用掌握的更加熟练,对汇编语言程序有了跟深层次的理解。
因为已经是大四了,各方面事情都比较所以这次课设显得很仓促,做得很不完善,在制作和调试过程中由于对程序和电路没有设计好出了不少问题,这给我提供了很好的经验教训,对自己以后的课设很有帮助。
不过总体上来说这次课设还是比较成功的,自己懂得了不少东西,制作的数字电流表也很有价值。
增长了自己的知识受益匪浅。
五.参考文献
[1] 胡辉主编.单片机原理及应用设计.北京:
中国水利水电出版社,2005,1—284页.
[2]张桂红主编.单片机原理与应用.福州:
福建科学技术出版社,,306—315页.
[3]韩志军等编著.单片机应用系统设计:
入门向导与设计实例.北京:
机械工业出版社,2005.1,132—147页.