您好,欢迎访问三七文档
1单片机课程设计说明书题目:基于AT89C51单片机数字电压表的设计院系:工院机械系班级:11机电三班姓名:吴豪学号:1101050114指导老师:朱煜钰2黄河科技学院课程设计任务书工学院机械系机械设计制造及其自动化专业11级3班学号1101050114姓名吴豪指导教师朱煜钰题目:基于AT89C51单片机的数字电压表设计课程:单片机应用技术课程设计课程设计时间2014年10月27日至2014年11月10日共2周课程设计工作内容与基本要求(设计要求、设计任务、工作计划、所需相关资料)(纸张不够可加页)1.设计要求⑴以MCS-51系列单片机为核心器件,组成一个简单的直流数字电压表。⑵采用1路模拟量输入,能够测量0-5V之间的直流电压值。⑶电压显示用4位一体的LED数码管显示,至少能够显示两位小数。⑷尽量使用较少的元器件。2.设计任务与要求2.1系统硬件电路设计根据该系统设计的功能要求选择所用元器件,设计硬件电路。要求用Proteus绘制整个系统电路原理图。2.2软件设计根据该系统要求的功能进行软件设计,绘制整个系统的软件流程图;根据流程图编写程序并汇编调试通过;列出软件清单,软件清单要求逐条加以注释。2.3Proteus仿真用Proteus对系统软硬件进行仿真调试并通过。2.4编写设计说明书内容包括任务书、设计方案分析、硬件部分设计、软件部分设计、调试结果整理分析、设计调试的心得体会等,字数不少于5000字;硬件部分设计要绘制整个系统电路原理图,对各部分电路设计原理做出说明;软件设计部分要(用visio2003画图软件)绘制整个系3统框图及各部分的软件流程图,列出程序清单,逐条加以注释,并注明各程序功能块的功能。3.工作计划序号设计内容所用时间1布置任务及调研4天3制作与调试8天4撰写设计报告书2天合计14天4.主要参考资料单片机课程设计指导书皮大能北京理工大学出版社2012.78051单片机实践与应用吴金戎清华大学出版社2003.8单片机技术基础教程与实践夏路易电子工业出版社2008.1单片机原理及应用张毅刚高等教育出版社2012.11基于Proteus的单片机系统设计与仿真实例蒋辉平机械工业出版社2007.7…指导老师签字:日期:4目录一、整体设计思路框图及原理图…………………………5二、模块分析………………………………………………51.AT89C51单片机……….…………………………..………62.A/D转换……………….…………………………..……….73.显示电路…………………………………..……………7三、软件设计………………………………………………5四、程序清单……………………………………………6五、仿真实验调试…………………………………………12六、总结与体会…………………………………………13七、参考文献………………………………………………145一、整体设计思路框图及原理图数字电压表的设计即将连续的模拟电压信号经过A/D转换器转换成二进制数值,再经由单片机软件编程转换成十进制数值并通过显示屏显示。按系统实现要求,决定控制系统采用AT89C51单片机,A/D转换由于仿真软件里的ADC0809元件有问题,这里用ADC0808代替,它和ADC0809区别很小。采用ADC0808。数字电压表系统整体框图如下图1所示。图1整体框图系统通过软件设置单片机的内部定时器T1产生中断信号。通过片选选择8路通道中的一路,将该路电压送入ADC0808的EOC端口产生高电平,同时将ADC0808的OE端口置为高电平,单片机将转换后结果存到片内RAM。系统调出转换显示程序,将转换为二进制的数据在转换成十进制数并输出到LCD显示电路,将相应电压显示出来。原理图见附录图7。二、模块分析模拟电压AT89C51单片机ADC0808转换数据显示61.AT89C51单片机接口分配电路设计如右图2所示:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在这里P0口作为输入与输出分别与ADC0808的输出端和LCD显示的输入端相连,且P0外部被阻值为1KΏ的电阻拉高。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。这里只用到了P2.0~P2.3四个端口,其中P2.1~P2.3都是作为输出端口控制显示电路的寄存器选择、读写信号和使能端口。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,在这里用到了P3.3/INT1(外部中断1)、P3.6/WR(外部数据存储器写选通)、P3.7/RD(外部数图2单片机接口电路7据存储器读选通)。2.A/D转换接口分配电路设计如图3所示:IN0~IN7为8路模拟量输入端,这里只接一路电压信号,其输入信号是由直流电源及可调电阻提供。OUT1~OUT8为8位二进制数字量输出端,其另一端连接到AT89C51单片机进行数值转换。ADDA、ADDB、ADDC为3位片选地址输入线,用于选通8路模拟输入中的一路。ALE为地址锁存允许信号,由单片机P3.6口写信号与P2.0口相或取反输入,高电平有效。START为A/D转换启动脉冲输入端,由单片机P3.6口写信号与P2.0口相或取反输入一个正脉冲使其启动(脉冲上升沿使0808复位,下降沿启动A/D转换)。EOC为A/D转换结束信号,当A/D转换结束时,此端输出一个高电平取反给P3.3口(转换期间一直为低电平)。OE为数据输出允许信号,高电平有效。当A/D转换结束时,此端由单片机P3.7读信号与P2.0口相或后取反输入一个高电平,才能打开输出三态门,输出数字量。3.显示电路接口分配设计如图4所示:图3A/D转换电路图4显示电路8RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。由单片机P2.1口控制R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。由单片机P2.2口控制E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。由单片机P2.3口控制D0~D7为8位双向数据线。由单片机P0口输入,经过阻值为1KΏ的上拉电阻连接。三、软件设计主程序的内容包括:起始地址、中断服务程序的起始地址、有关内存单元及相关部件的初始化和一些子程序的调用等。根据设计要求,设计出如图5所示的主程序流程图A/D转换子程序设计:A/D转换程序的功能是采集数据,在整个系统设计中占有很高的地位。当系统置好后,单片机扫描转换结束管脚P3.7的输入电平状态,当输入为高电平则转换完成,将转换的数值显示输出。若输入为低电平,则继续扫描。程序流程图如图6所示。图5程序流程图9四、程序清单COMEQU50H;指令寄存器DATEQU51H;数据寄存器RSEQUP2.1;LCD寄存器选择信号RWEQUP2.2;LCD读/写选择信号EEQUP2.3;LCD使能信号ORG0000HLJMPMAIN;主程序入口ORG000BH图6A/D转换子程序流程图10LJMPBT0;T0中断入口ORG0030H;主程序,初始化MAIN:MOVSP,#60HLCALLINTMOV30H,#30HMOV31H,#30HMOV32H,#0A5HMOV33H,#30HMOV34H,#30HMOVR7,#30HLCALLN1;显示Voltage=00.00MOVTMOD,#00H;定时器T0设为方式0MOVTH0,#00h;装入定时常数MOVTL0,#00hSETBTR0;启动T0MOV24h,#03h;装入T0中断次数MOVIE,#82H;开中断LP:MOVR7,#30H;显示缓冲区首地址LCALLDISPLYSJMPLP;循环显示DISPLY:MOVCOM,#0CAH;设置数据起始地址(第而行第10位)LCALLPR1MOVR1,#05HMOVR0,#30Hl:MOVDAT,@r0LCALLPR2INCR0DJNZR1,lRET;1.逐字依次输入方式演示程序段N1:MOVCOM,#01H;清屏LCALLPR1MOVCOM,#06H;设置输入方式LCALLPR111MOVCOM,#081H;设置数据起始地址(第一行地二位)LCALLPR1MOVDPTR,#TAB1MOVR2,#0EHMOVR3,#00HWRIN1:MOVA,R3MOVCA,@A+DPTRMOVDAT,ALCALLPR2INCR3DJNZR2,WRIN1MOVCOM,#0C1H;设置数据起始地址(第二行地二位)LCALLPR1MOVDPTR,#TAB2MOVR2,#9MOVR3,#00HWRIN2:MOVA,R3MOVCA,@A+DPTRMOVDAT,ALCALLPR2INCR3DJNZR2,WRIN2RETTAB1:DBVOLTAGE=;LCD间接控制方式下的初始化子程序INT:LCALLDELAY;调延时子程序MOVCOM,#38H;设置工作方式(2行,8位数据)LCALLPR1MOVCOM,#01H;清屏LCALLPR1MOVCOM,#06H;设置输入方式LCALLPR1MOVCOM,#0CH;设置显示方式LCALLPR1RET12DELAY:MOVR6,#0FH;延时子程序MOVR7,#00HDELAY1:NOPNOPDJNZR7,DELAY1DJNZR6,DELAY1RETLCD间接控制方式的驱动子程序如下1读BF和AC值PR0:PUSHACCMOVP0,#0FFH;P0置位,准备读CLRRS;RS=0SETBRW;R/W=1SETBE;E=1LCALLDELAYMOVCOM,P0;读BF和AC6-4值CLRE;E=0POPACCRET2写指令代码子程序PR1:PUSHACCCLRRS;RS=0SETBRW;R/W=1PR11:MOVP0,#0FFH;P0置位,准备读SETBE;E=1LCALLDELAYNOPMOVA,P0CLREJBACC.7,PR11;BF=1?CLRRW;R/W=0MOVP0,COMSETBE;E=1CLRE;E=0;E=0POPACCRET3写显示数据子程序PR2:PUSHACC13CLRRS;RS=0SETBRW;R/W=1PR21:MOVP0,#0FFHSETBE;E=1LCALLDELAYMOVA,P0;读BF和AC6-4值CLRE;E=0JBACC.7,PR21SETBRSCLRRWMOVP0,DAT;写入数据SETBECLREPOPACCRET4读显示数据子程序PR3:PUSHACCCLRRS;RS=0SETBRW;R/W=1PR31:MOVP0,#0FFH;P0置位,准备读SETBE;E=1LCALLDELAYMOVA,P0;读BF和AC6-4值CLRE;E=0JBACC.7,PR31SETBRSSETBRW;R/W=1MOVP0,#0FFH;读数据SETBE;E=1MOVDAT,P0CLRE;E=0POPACCRET定时器T0中断服务程序,读取ADC0809第0通道的A/D转换结果并化为显示值BT0:PUSHACC;保护现场PUSHPSWMOVPSW,#08HCLRTR0;停止T014MOVTH0,#00h;重装定时常数MOVTL0,#00h
本文标题:关于单片机论文
链接地址:https://www.777doc.com/doc-5192789 .html