《单片机课程设计报告数字电压表》由会员分享,可在线阅读,更多相关《单片机课程设计报告数字电压表(37页珍藏版)》请在金锄头文库上搜索。
1、目录一.课程设计的目的和意义1二.系统方案设计及提出22.1 系统方案的提出22.2 方案比较及确定2三.系统硬件设计33.1 AT89S51最小系统设计33.1.1 时钟电路硬件设计73.1.2 复位电路硬件设计73.2 A/D转换电路的设计83.3 键盘电路硬件设计103.4 显示电路硬件设计10四.系统软件设计114.1 系统软件设计内存分配及芯片地址介绍114.2 系统主程序设计114.3 A/D转换子程序设计124.4 八路循环显示控制子程序134.5 单路显示控制子程序144.6 显示子程序154.7 按键子程序16五.系统调试175.1 仿真环境介绍175.2 仿真步骤205.2
2、.1 连接仿真器205.2.2 WINDOWS软件安装205.2.3 编程及调试20六.总结21七.参考文献22附录23附录一:程序清单23附录二:系统硬件原理图32一.课程设计的目的和意义学校为我们安排了为期三周的单片机课程设计,可以说让我们受益匪浅。细想,其目的及意义主要有以下几点:目的通过单片机课程设计,加深对单片机的更深层次的理解,熟悉单片机的内部硬件资源,掌握单片机的编程方法及技巧,要学会对单片机的各部硬件资源的控制,分配,特别是掌握单片机中断,定时器的编程方法。灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到PCB制版,再到软件编程及系统调试实现系统功能,完
3、成课程设计,加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。能够上网查询器件资料,培养对新知识新技术的独立的学习能力和应用能力。独立完成一个小的系统设计,从硬件设计到软件设计,增强分析问题、解决问题的能力,为日后的毕业设计及科研工作奠定良好的基础。通过这次设计,要学会怎么利用所学单片机知识独立设计系统的能力,达到学于致用的目的,要学会发散创造设计编程思想,要学会开发系统的一般过程,并不断创新。意义作为一名自动化专业的大三学生,做单片机课程设计是十分有意义的,而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业基础课及专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去
4、锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似本次的课程设计就为我们提供了良好的实践平台。在这次课程设计中,我们运用到了以前所学的专业课知识以及一些实践性很强的软件和工具,如:Protel制图、伟福仿真设备、汇编语言编译软件、单片机的原理等。虽然在过去的学习中曾独立地学习了它们中的一部分,但都不知道学的那些东西具体可以运用在那些领域。可是在本次课程设计中,我们将所学的知识都汇聚到了一起,并适当地加入了一定的其它知识,让我们自己动手动脑完成一项单片机任务,我认为这是很有意义的。而且在学习的过程中带着问题去学我发现效率很高,利用仿真设备去发现问题并解决问题也让我
5、们学到了不少在课堂上无法学到的东西,这是我本次课程设计的巨大收获。并掌握了目前自动化仪表的一般设计过程,锻炼了我们的动手能力和分析,解决问题的能力;积累经验,培养按部就班、一丝不苟的工作和对所学知识的综合应用能力。二.系统方案设计及提出2.1 系统方案的提出a.课程设计内容及技术指标简易数字电压表可以测量05V范围内的8路输入电压值,并在4位LED数码管上8路循环显示或单路选择显示。其测量最小分辨率为0.02V。注:1、4位LED显示,一位显示模拟量通道数,三位显示电压值(0.005.00V);2、使用按键切换8路循环显示和单路显示;3、在单路显示是,使用按键选择待显示的通道;4、按键可采用查
6、询方式,也可采用中断和查询相结合的方式。b.系统设计方案框图图2.1 系统设计方案框图2.2 方案比较及确定a.单片机89C51:与MCS-51 兼容、4K字节可编程闪烁存储器、1000写/擦循环、数据保留时间为10年、128*8位内部RAM、32可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。89S51:在89C51的基础上增加了很多新的功能,性能有了较大提升,价格基本不变,甚至比89C51更低。比较可知,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案,因此选用89S51为此次课程设计中
7、的单片机。b.A/D转换器ADC0804:8位逐次逼近型A/D转换器,一个A/D 转换器和一个三态输出锁存器组成,输入方式为单通道,转换时间约为100s,它的非线形误差为1LSB,电源电压为单一+5V。ADC0809: 8位逐次逼近型A/D转换器。它由一个8路模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换,转换时间约为100s,它的非线形误差为1LSB,电源电压为单一+5V。比较可知,ADC0809较符合本次课程设计的要求,因此选用ADC0809作为A/D转换器。c.显示方式静态显示:数
8、据分开地送到每一位LED上,显示亮度很高,占用口线较多。动态显示:数据送到每一个LED上,再根据位选线来确定是哪一位LED被显示,占用的口线数目较少,适合用在显示位数较多的场合,但显示位数的增多,将占用大量的CPU时间。比较可知,选择动态显示对我们本次课程设计是比较方便的,因此选用动态显示。三.系统硬件设计3.1 AT89S51最小系统设计AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51
9、指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口
10、,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。1主要特性: 8031 CPU与MCS-51 兼容 4K字节可编程FLASH存储器(寿命:1000写/擦循环) 全静态工作:0Hz-24KHz 三级程序存储器保密锁定 128*8位内部RAM 32条可编程I/O线 两个16位定时器/计数器 6个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路2管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8
11、TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1
12、”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
13、P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。I/O口作为输入口时有两种工作方式即所谓的读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁存器只有读端口时才真正地把外部的数据读入到内部总线上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发
14、出读端口或读引脚信号以完成不同的操作这是由硬件自动完成的不需要我们操心1然后再实行读引脚操作否则就可能读入出错为什么看上面的图如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q为1加到场效应管栅极的信号为1该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1若先执行置1操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入操作时还必须附加一个准备动作所以这类I/O口被称为准双向口89C51的P0/P1/P2/P3口作为输入时都是准双向口接下来让我们再看另一个问题从图中可以看出这四个端口还有一个差别
15、除了P1口外P0P2P3口都还有其他的功能 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL