232324353546系名43435435435课程名称单片机课程设计设计题目数字电流表设计专业电子信息工程班级姓名学号指导教师时间目录一.引言………………………………………………………11.1设计要求…………………………………………………11.2设计意义…………………………………………………1二.系统硬件设计………………………………………………12.1结构框图…………………………………………………22.2原理及功能………………………………………………22.3硬件电路设计……………………………………………2三.系统软件设计………………………………………………43.1系统程序清单……………………………………………43.2仿真结果…………………………………………………14四.课设总结……………………………………………………15五.参考文献……………………………………………………161引言随着微电子技术的迅速发展和超大规模集成电路的出现,特别是单片机的出现,正引起测量、控制仪表领域新的技术革命。采用单片机作为测量仪器的主控制器,这种以单片机为主体的新型智能仪表将计算机与测量控制技术结合在一起,在测量工程自动化,测量结果所举处理以及功能的多样化方面取得了巨大的进步。基于单片机的智能综合仪表是基于智能化、数字化、网络化、新一代智能仪表的设计理念,采用智能调理、灵巧总线、工业网络、液晶显示、电子储存技术、综合指示仪表、调节仪表、计算仪表与记录仪表功能。具有高测量控制精度、工可靠性稳定性的特点。通过数字电流表的设计方案,掌握了汇编语言的编程方法,并熟练的运用AT89C51单片机定时器以及ADC0808模/数转换芯片将模拟电流量转变为数字量然后在液晶显示屏上直接显示数字的电流值。1.1设计要求⑴测量电流范围在2.0mA—100mA。⑵通过改变滑动变阻器的阻值来改变电流量。1.2设计意义⑴进一步熟悉和掌握单片机的结构和工作原理。⑵掌握单片机的接口技术及ADC0808芯片的特性、控制方法。⑶通过这次课程设计,掌握以单片机为核心的电路设计的基本方法和技术。⑷通过实际程序的设计和调试,逐步掌握模块化程序设计的方法和调试技术。⑸通过完成一个包括电路设计和程序开发的完整过程,使自身了解开发单片机应用系统的全过程,强化巩固所学知识,为以后的学习和工作打下基础。二.系统硬件设计测量2—100mA的主流电流,通过输入电路把信号送给ADC0808,转换为数字信号再送至AT89C51单片机,通过P0口经数码管显示出测量值。2.1结构框图如图1—1所示图1—12.2原理及功能8路数字电流表主要利用A/D转换器,其过程如下:先用A/D转换器对各电流值进行采样,得到相应的数字量,再按数字量与模拟量成比例关系运算得到相应的模拟电流值,然后把模拟值通过数码管显示出来。设计时假设待测的输入电流为8路,电流值的范围为0—100mA,要求能在LED数码管上显示。2.3硬件电路设计8路数字电流表应用系统硬件电路由单片机、A/D转换器、数码管显式电路和滑动变阻器处理电路等组成,电路原理图如图1—2所示。输入电路ADC0808单片机AT89C51LED数码显示图1—2ADC0808具有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的P3.2相连接,ADC0808的数据输出允许控制端OE与AT98C51的P3.1相连接,转换电路EOC与AT89C51的P3.1相连接。LED的数码显示管通过AT89C51的P0—P7口控制。RV1和RV2是两个滑动变阻器开关,通过两个电压比较器与ADC0808的输入端相连接。三.系统软件设计3.1系统程序清单:CLOCKBITP2.4;定义ADC0808时钟位RSEQUP2.0RWEQUP2.1EEQUP2.2ADCEQU35H;存放转换后的数据STBITP3.2EOCBITP3.1ORG00HLJMPSTARTORG000BHLJMPINT_T0START:MOVTMOD,#02HMOVTH0,#245MOVTL0,#00HMOVIE,#82HSETBTR0LCALLINITlcallDISP_GALVANOMETERWAIT:CLRSTSETBSTCLRST;启动转换JNBEOC,$;等待转换结束;允许输出MOVADC,P1;暂存转换结果;关闭输出MOVA,ADCMOVB,#11;1.1欧的数据处理DIVABMOV51H,BMOVB,#10MULABADDA,51HLJMPJIAOZHENGFANHUI:MOVB,#2DIVABMOVADC,AMOV32H,B;小数位CLRC;显示100以内MOVA,ADCMOVB,AMOVA,#99SUBBA,BJCDISP_100MOVA,ADC;将AD转换结果转换成BCD码MOVB,#100DIVABMOV35H,AMOVA,BMOVB,#10DIVABMOV34H,AMOVA,BMOVB,#10MULABMOVB,#10DIVABMOV33H,ALCALLDisp;显示AD转换结果AJMPWAITinit:lcalldelaylcalldelaylcalldelay;mova,#38h;lcallwrom;定义成5*7,16*2;mova,#38h;lcallwrom;定义成5*7,16*2;mova,#38h;lcallwrom;定义成5*7,16*2mova,#38hlcallwrom;定义成5*7,16*2lcalldelaymova,#01hlcallwrom;清屏?lcalldelaymova,#06hlcallwromlcalldelaymova,#0Chlcallwromlcalldelay;LCALLDISPclreretwrom:clrrsclrrwmovp0,asetbelcalldelayclreretwrdata:setbrsclrrwmovp0,asetbelcalldelayclreretDISP_100:mova,#0C5h;显示位置。。从85H开始lcallwrommova,#31hlcallwrdatamova,#30hlcallwrdatamova,#30hlcallwrdatamova,#2ehlcallwrdatamova,#30hlcallwrdatalcalldelay300ms;0.3sdelayLJMPWAITDISP_GALVANOMETER:mova,#82h;显示位置lcallwrommova,#47hlcallwrdatamova,#41hlcallwrdatamova,#4Chlcallwrdatamova,#56hlcallwrdatamova,#41hlcallwrdatamova,#4Ehlcallwrdatamova,#4Fhlcallwrdatamova,#4Dhlcallwrdatamova,#45hlcallwrdatamova,#54hlcallwrdatamova,#45hlcallwrdatamova,#52hlcallwrdataretJIAOZHENG:CJNEA,#73,J1_1ADDA,#1LJMPFANHUIJ1_1:CJNEA,#72,J1_2ADDA,#1LJMPFANHUIJ1_2:CJNEA,#71,J1_3ADDA,#1LJMPFANHUIJ1_3:CJNEA,#70,J1_4ADDA,#2LJMPFANHUIJ1_4:CJNEA,#69,J1_5ADDA,#2LJMPFANHUIJ1_5:CJNEA,#68,J1_6ADDA,#2LJMPFANHUIJ1_6:CJNEA,#67,J1_7ADDA,#2LJMPFANHUIJ1_7:CJNEA,#66,J1_8ADDA,#2LJMPFANHUIJ1_8:CJNEA,#65,J1_9ADDA,#2LJMPFANHUIJ1_9:CJNEA,#64,J1_10ADDA,#2LJMPFANHUIJ1_10:CJNEA,#63,J1_11ADDA,#2LJMPFANHUIJ1_11:CJNEA,#62,J1_12ADDA,#2LJMPFANHUIJ1_12:CJNEA,#61,J1_13;ADDA,#2LJMPFANHUIJ1_13:CJNEA,#60,J1_14ADDA,#1LJMPFANHUIJ1_14:CJNEA,#59,J1_15ADDA,#0LJMPFANHUIJ1_15:CJNEA,#58,J1_16ADDA,#1LJMPFANHUIJ1_16:CJNEA,#57,J2ADDA,#2LJMPFANHUIJ2:CJNEA,#56,J3ADDA,#3LJMPFANHUIJ3:CJNEA,#55,J4ADDA,#3LJMPFANHUIJ4:CJNEA,#54,J5ADDA,#3LJMPFANHUIJ5:CJNEA,#53,J6ADDA,#3LJMPFANHUIJ6:CJNEA,#52,J7ADDA,#3LJMPFANHUIJ7:CJNEA,#51,J8ADDA,#3LJMPFANHUIJ8:CJNEA,#50,J9ADDA,#3LJMPFANHUIJ9:CJNEA,#49,J10ADDA,#3LJMPFANHUIJ10:CJNEA,#48,J11ADDA,#3LJMPFANHUIJ11:CJNEA,#47,J12ADDA,#3LJMPFANHUIJ12:CJNEA,#46,J13ADDA,#3LJMPFANHUIJ13:CJNEA,#45,J14ADDA,#3LJMPFANHUIJ14:CJNEA,#44,J15ADDA,#3LJMPFANHUIJ15:CJNEA,#43,J16ADDA,#3LJMPFANHUIJ16:CJNEA,#42,J17ADDA,#3LJMPFANHUIJ17:CJNEA,#41,J18ADDA,#3LJMPFANHUIJ18:CJNEA,#40,J19ADDA,#3LJMPFANHUIJ19:CJNEA,#39,J20ADDA,#3LJMPFANHUIJ20:CJNEA,#38,J21ADDA,#3LJMPFANHUIJ21:CJNEA,#37,J22ADDA,#3LJMPFANHUIJ22:CJNEA,#36,J23ADDA,#3LJMPFANHUIJ23:CJNEA,#35,J24ADDA,#3LJMPFANHUIJ24:CJNEA,#34,J25ADDA,#3LJMPFANHUIJ25:CJNEA,#33,J26ADDA,#3LJMPFANHUIJ26:CJNEA,#32,J27ADDA,#3LJMPFANHUIJ27:CJNEA,#31,J28ADDA,#3LJMPFANHUIJ28:CJNEA,#30,J29ADDA,#3LJMPFANHUIJ29:CJNEA,#29,J30ADDA,#3LJMPFANHUIJ30:CJNEA,#28,J31ADDA,#3LJMPFANHUIJ31:CJNEA,#27,J32ADDA,#3LJMPFANHUIJ32:CJNEA,#26,J33ADDA,#3LJMPFANHUIJ33:CJNEA,#25,J34ADDA,#3LJMPFANHUIJ34:CJNEA,#24,J35ADD