基于51单片机-PCF8591数字电压表课程设计
- 格式:doc
- 大小:702.50 KB
- 文档页数:17
--
--
课程名称: 微机原理课程设计
题 目: 数字电压表
ﻬ摘要
单片微型计算机简称单片机,是典型的嵌入式微控制器,常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。
其中我们用于学习用的最多的是STC89C52单片机,STC89C52是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单片机、仿真、中断、数字电压表、数码管显示
ﻬ目录 --
-- 一、任务要求ﻩ错误!未定义书签。
1.1 设计任务ﻩ错误!未定义书签。
1.2 设计要求ﻩ错误!未定义书签。
1.3 发挥部分 ...................................................................................... 错误!未定义书签。
1.4 创新部分 ........................................................................................... 错误!未定义书签。
二、方案总体设计与论证ﻩ4
三、硬件设计ﻩ5
3.1 单片机晶振部分................................................................................ 错误!未定义书签。
3.2 单片机复位部分................................................................................ 错误!未定义书签。
3.3 电源模块部分ﻩ错误!未定义书签。
3.4 A/D转换部分ﻩ错误!未定义书签。
3.5 数码管显示部分ﻩ错误!未定义书签。
3.6 单片机STC89C52 ............................................................................................................ 9
四、软件设计 ............................................................................................................. 11
4.1 程序设计总方案 ........................................................................................................... 11
4.2 系统子程序设计ﻩ错误!未定义书签。
4.3 A/D转换子程序ﻩ错误!未定义书签。
4.4 中断 ................................................................................................. 错误!未定义书签。
五、系统仿真与调试 .................................................................... 错误!未定义书签。
六、设计总结与心得体会 ............................................................ 错误!未定义书签。
6.1 设计总结 ......................................................................................... 错误!未定义书签。
6.2 心得体会 ......................................................................................... 错误!未定义书签。
七、参考文献ﻩ错误!未定义书签。
ﻬ一、任务要求
1.1 设计任务
使用所学的单片机以及编程的知识,利用PCF8591A/D转换芯片把电阻转换为电压并使用四位数码管显示出来。 --
-- 1.2 设计要求
利用所学的软硬件知识,使用KEIL uVision4软件编写能够实现数字电压表功能的程序。使用软件将数字电压表的硬件电路的模拟电路在70mm*90mmPCB板模板上绘制出来,然后根据lochmaster30软件所绘制的模拟电路在70mm*90mmPCB板上焊接出来。检查电路焊接完好后把编写好的程序下载到单片机内验证编写的程序,观察数字电压表的显示情况是否与实验要求相符。
1.3 发挥部分
使用PCF8591A/D转换芯片通过电阻的调节改变电压并在数码管上显示出来,并且使用一个LED实时的把电压的大小体现出来,电压变高LED就变亮,电压变低LED就变暗。
1.4 创新部分
本实验需求测量0-5V电压,发挥创新,将测量电压的大小增大,设置成可调挡的形式。可测量5V、10V、20V电压等。由于时间关系,程序只写了测量5V电压的,稍后会更新程序。本实验采用的是四路检测问做法,尽可能发挥了它的功能。 --
-- 二、方案总体设计与论证
本次步进电机控制实验以单片机为主体,P0口接上拉电阻驱动数码管的段码,P2口连接数码管的位码,P2口的高四位从低到高分别控制第一、二、三、四个数码管亮或者灭。P1.0口和P1.1口分别接PCF8591芯片的SCL和SDA引脚。SCL和SDA引脚分别为I2C总线的时钟线、数据线。AIN0口接蓝白卧式可调电阻,当可调电阻滑动时,电阻的变化引起电压的变化,经过PCF8591芯片的实时转换,通过单片机处理实时的在数码管上显示出来。同时也能够通过外接在芯片的AOUT口的LED体现电压的大小。AOUT口为芯片的D/A转换输出端。外加复位和晶振电路等组成的最小系统。EA引脚接高电平。
进行本实验之初具有两套方案:
方案一:使用附加发光二极管的亮与暗来体现电压的大小。此方法拥有体现电压大小的效果更明确的优势。但是硬件电路会复杂一点。
方案二:不使用附加发光二极管的亮与暗来体现电压的大小。此方法具有硬件电路简单的优势,节约了成本。但是体现效果不明显。
经过衡量,觉得附加LED体现会使电压大小的体现效果更加明了。所以选择方案一。使用数码管显示附加LED来体现不电压的大小。
设计变化框图如图1所示:
图1 变化框图
设计系统功能图如图2所示:
图2 系统功能图
总体方案工作原理:STC89C52是集成40个I/O口的单片机,拥有12MHZ的晶振周期,电路拥有可控复位电路。PCF8591芯片可实现模拟量与数字量的变化。移动滑动变阻器,电压的变化模拟量通过PCF8591芯片转换为数字量输送到单片机中,通过单片机处理,并在数码管上显示出来。 --
-- 三、硬件设计
3.1 单片机晶振部分
如图3所示,为单片机的晶振电路部分。其中C1、C2为22pF的电容,它是振荡回路交联电容,如果没这两个电容的话,振荡部分会因为没有回路而停振。电路就不能正常工作。Y1就是12MHZ的晶振。
一般来说单片机内部有一个带反馈的线性反相放大器,外界晶振(或接陶瓷振荡器)和电容就可组成振荡器,晶振结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的。可以说晶振就是单片机的心脏,为单片机工作提供动力。
图3 单片机晶振电路部分
3.2 单片机复位部分
如图4所示,为单片机的复位电路部分。复位电路,就是利用它把电路恢复到起始状态。当电源低于单片机正常工作电压,影响单片机工作;程序跑飞,时钟失步等情况下需要使单片机复位。
该复位电路为按键复位,按键复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源VCC之间接一个按钮。当人为按下按钮时,则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转换部分
PCF8591是一个单片集成、单独供电、低功耗、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内部结构图: