基于单片机PCF数字电压表课程设计_第1页
基于单片机PCF数字电压表课程设计_第2页
基于单片机PCF数字电压表课程设计_第3页
基于单片机PCF数字电压表课程设计_第4页
基于单片机PCF数字电压表课程设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程名称: 微机原理课程设计 题 目: 数字电压表 摘要单片微型计算机简称单片机,是典型的嵌入式微控制器,常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。其中我们用于学习用的最多的是STC89C52单片机,STC

2、89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但也做了很多改进使得芯片具有传统51单片机不具备的功能。STC89C52具有8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构,全双工串行口。本设计就是以单片机STC89C52为核心,附以外围电路,实现数字电压表的功能,并运用软件Proteus进行仿真来得到实验结果。关键词:STC89C52单片机、仿真、中断、数字电压

3、表、数码管显示目录一、任务要求41.1 设计任务41.2 设计要求41.3 发挥部分41.4 创新部分4二、方案总体设计与论证5三、硬件设计63.1 单片机晶振部分63.2 单片机复位部分63.3 电源模块部分73.4 A/D转换部分73.5 数码管显示部分83.6 单片机STC89C5210四、软件设计134.1 程序设计总方案134.2 系统子程序设计134.3 A/D转换子程序134.4 中断14五、系统仿真与调试15六、设计总结与心得体会186.1 设计总结186.2 心得体会18七、参考文献19一、任务要求1.1 设计任务使用所学的单片机以及编程的知识,利用PCF8591A/D转换芯

4、片把电阻转换为电压并使用四位数码管显示出来。1.2 设计要求利用所学的软硬件知识,使用KEIL uVision4软件编写能够实现数字电压表功能的程序。使用软件将数字电压表的硬件电路的模拟电路在70mm*90mmPCB板模板上绘制出来,然后根据lochmaster30软件所绘制的模拟电路在70mm*90mmPCB板上焊接出来。检查电路焊接完好后把编写好的程序下载到单片机内验证编写的程序,观察数字电压表的显示情况是否与实验要求相符。1.3 发挥部分使用PCF8591A/D转换芯片通过电阻的调节改变电压并在数码管上显示出来,并且使用一个LED实时的把电压的大小体现出来,电压变高LED就变亮,电压变低

5、LED就变暗。1.4 创新部分本实验需求测量0-5V电压,发挥创新,将测量电压的大小增大,设置成可调挡的形式。可测量5V、10V、20V电压等。由于时间关系,程序只写了测量5V电压的,稍后会更新程序。本实验采用的是四路检测问做法,尽可能发挥了它的功能。二、方案总体设计与论证本次步进电机控制实验以单片机为主体,P0口接上拉电阻驱动数码管的段码,P2口连接数码管的位码,P2口的高四位从低到高分别控制第一、二、三、四个数码管亮或者灭。P1.0口和P1.1口分别接PCF8591芯片的SCL和SDA引脚。SCL和SDA引脚分别为I2C总线的时钟线、数据线。AIN0口接蓝白卧式可调电阻,当可调电阻滑动时,

6、电阻的变化引起电压的变化,经过PCF8591芯片的实时转换,通过单片机处理实时的在数码管上显示出来。同时也能够通过外接在芯片的AOUT口的LED体现电压的大小。AOUT口为芯片的D/A转换输出端。外加复位和晶振电路等组成的最小系统。EA引脚接高电平。进行本实验之初具有两套方案:方案一:使用附加发光二极管的亮与暗来体现电压的大小。此方法拥有体现电压大小的效果更明确的优势。但是硬件电路会复杂一点。方案二:不使用附加发光二极管的亮与暗来体现电压的大小。此方法具有硬件电路简单的优势,节约了成本。但是体现效果不明显。经过衡量,觉得附加LED体现会使电压大小的体现效果更加明了。所以选择方案一。使用数码管显

7、示附加LED来体现不电压的大小。设计变化框图如图1所示:图1 变化框图设计系统功能图如图2所示:图2 系统功能图总体方案工作原理:STC89C52是集成40个I/O口的单片机,拥有12MHZ的晶振周期,电路拥有可控复位电路。PCF8591芯片可实现模拟量与数字量的变化。移动滑动变阻器,电压的变化模拟量通过PCF8591芯片转换为数字量输送到单片机中,通过单片机处理,并在数码管上显示出来。三、硬件设计3.1 单片机晶振部分如图3所示,为单片机的晶振电路部分。其中C1、C2为22pF的电容,它是振荡回路交联电容,如果没这两个电容的话,振荡部分会因为没有回路而停振。电路就不能正常工作。Y1就是12M

8、HZ的晶振。一般来说单片机内部有一个带反馈的线性反相放大器,外界晶振(或接陶瓷振荡器)和电容就可组成振荡器,晶振结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的。可以说晶振就是单片机的心脏,为单片机工作提供动力。图3 单片机晶振电路部分3.2 单片机复位部分如图4所示,为单片机的复位电路部分。复位电路,就是利用它把电路恢复到起始状态。当电源低于单片机正常工作电压,影响单片机工作;程序跑飞,时钟失步等情况下需要使单片机复位。该复位电路为按键复位,按键复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源VCC之间接一个按钮。当

9、人为按下按钮时,则VCC的+5V电平就会直接加到RST端。按键复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。图4 单片机复位电路部分3.3 电源模块部分如图5所示,为单片机的电源模块部分。电源模块包括一个四脚直排针(P0),一个蓝白自锁开关(S5),一个1K限流电阻(R2)和一个发光二极管(L0)。电源模块能够为电路提供电源。图5 电源模块部分3.4 A/D转换部分如图6所示,为A/D转换部分。其中R3为蓝白卧式电位器,调节电阻可使VO输入芯片的电压发生变化R4为LED的限流电阻,L1为电压大小体现的发光二极管。图6 A/D转换部分PCF85

10、91是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行I2C总线接口。PCF8591的3个地址引脚A0,A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。PCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。PCF8591的最大转化速率由I2C总线的最大速率决定。如图7为PCF8591内部结构图:如图7为PCF8591内部结构图如图8为PC

11、F8591引脚图:如图8为PCF8591引脚图AIN0AIN3:模拟信号输入端。A0A3:引脚地址端。VDD、VSS:电源端。SDA、SCL:I2C总线的数据线、时钟线。OSC:外部时钟输入端,内部时钟输出端。EXT:内部、外部时钟选择线,使用内部时钟时EXT接地。AGND:模拟信号地。AOUT:D/A转换输出端。VREF:基准电源端。3.5 数码管显示部分数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、3位、4位、5位、6位、7位等数码管;按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。

12、共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。本实验用的是四位八段共阴数码管。图9为共阴极数码管电路结构。图9 共阴数码管电路结构如图10所示,为本实验的数码管显示部分。图10 数码管显示部分如图11所示,为四位共阴数码管的引脚图。图11 四位共阴数码管引脚图如图11所示,其中A1,A2,A3,A4分别是数码管从左到右的位选,dp为共地端,在使用时,共阴极数码管应该将它接地。其中,a,b,c,d,e,f,g,dp对应

13、的段选分别为如图12对应段选。图12 数码管的段选数码管要显示数字就需要通过PO口输入高低电平控制每个LED灯的亮灭,公共端接地线P0口接1K的上拉电阻。由于并未用到小数点显示,所以DP引脚悬空。如表1所示为数码管显示数字的实现:显示字型dp,g,f,e,d,c,b,a字符码00 0 1 1 1 1 1 10x3f10 0 0 0 0 1 1 00x0620 1 0 1 1 0 1 10x5b30 1 0 0 1 1 1 10x4f40 1 1 0 0 1 1 00x6650 1 1 0 1 1 0 10x6d60 1 1 1 1 1 0 10x7d70 0 0 0 0 1 1 10x0780

14、 1 1 1 1 1 1 10x7f90 1 1 0 1 1 1 10x6f表1 数码管的显示3.6 单片机STC89C52STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但也做了很多改进使得芯片具有传统51单片机不具备的功能。STC89C52具有8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构,全双工串行口。如图13所示为STC89C52的引脚图。图13

15、单片机STC89C52以下为STC89C52的管脚说明:1) P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。 2) P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P

16、1口作为低八位地址接收。3) P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。4) P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TT

17、L门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为STC89C52的一些特殊功能口:P3.0 RXD(串行输入口);P3.1 TXD(串行输出口);P3.2 /INT0(外部中断0);P3.3 /INT1(外部中断1);P3.4 T0(记时器0外部输入);P3.5T1(记时器1外部输入);P3.6 /WR(外部数据存储器写选通);P3.7 /RD(外部数据存储器读选通);P3口同时为闪烁编程和编程校验接收一些控制信号。5) RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周

18、期的高电平时间。6) ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。7) /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周

19、期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。8) /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。9) XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。10) XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用

20、外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。四、软件设计数字电压表程序编写是通过时下最流行的KEIL uVision4一体化集成编程软件完成,在KEIL环境下编写程序并生成二进制文件。软件流程图如图4所示。根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序。4.1 程序设计总方案程序流程图是人们对解决程序问题的方法,思路或者算法的一种描述。流程图的优点是:采用简单规范的符号,画法简单。结构清晰,逻辑性强。便与描述,容易理

21、解。程序流程图画法不可随意,一旦随意就会使程序结构杂乱无章,这样的程序令人难以理解和接受,并且容易出错。因此程序必须遵守三个结构:顺序结构,选择结构,循环结构。在流程图中,不同的图形代表着不同的含义。图14为本程序设计总方案: 图14 程序设计总方案4.2 系统子程序设计初始化程序,所谓初始化,是对将要用到的STC89C52单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等4.3 A/D转换子程序A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图15所示。图15 转换

22、流程图4.4 中断中断是CPU对系统发生的某个事件作出的一种反应。引起中断的事件称为中断源。中断源向CPU提出处理的请求称为中断请求。发生中断时被打断程序的暂停点成为断点。CPU暂停现行程序而转为响应中断请求的过程称为中断响应。处理中断源的程序称为中断处理程序。CPU执行有关的中断处理程序称为中断处理。而返回断点的过程称为中断返回。中断的实现实行软件和硬件综合完成,硬件部分叫做硬件装置,软件部分成为软件处理程序。大体上可以把中断全过程分为5个阶段:中断请求、中断判优、中断响应、中断处理和中断返回。单片机有五个中断源:外部中断0(INT0);定时器T0中断;外部中断1(INT1);定时器T1中断,串

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论