




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机课程设计课程设计(论文)题 目 名 称 数字电压表 课 程 名 称 课程设计 学 生 姓 名 学 号 系 、专 业 指 导 教 师 年 月 日摘要在电路设计中我们时常会用到电压表,过去大部分电压表还是模拟的,虽然精度较高但模拟电压表用指针式,里面是磁电或电磁式结构,所以较慢基于tmel51单片机开发平台和自动控制原理的基础上实现的一种数字电压表系统。该系统采用tmel89C51单片机作为控制核心,以为数据采样系统,实现被测电压的数据采样;使用系列比较器检测输入电压的范围,并通过继电器阵列实现了输入量程的自动转换。本课题是利用单片机设计一个数字电压表,能够测量015V之间的直流电压值,四位数码显示,使用的元器件数目较少。首先,外界电压模拟量输入到A/D转换部分的输入端,通过A/D转换变为数字信号,输送给单片机。然后由单片机给LED数字信号,控制其发光,从而显示数字。本电路还有两个发光二极管用来指示数字电压表的工作状态。另外,本电路还接有一个音频放大电路,也可用来指示电路的工作状态。关键词:单片机;数字电压表;A/D转换目录摘 要.I第1章 课程设计的总体方案.3 1.1 课程设计的目的.3 1.2 课程设计的要求.3 1.3 课程设计的思路.3 1.4 课程设计的方案.3第2章 系统方案硬件设计.4 2.1 单片机方案.42.2 A/D转换器方案.5 2.3 时钟、复位电路6第3章系统软件设计7 3.1 程序设计总方案.7 3.2 系统子程序设计.7 3.3 A/D转换转换子程序.7 3.4 显示子程序 8 第4章 系统仿真9 4.1 Proteus简介 9 4.2 系统仿真图. 9 第5章 实习总结10参考文献.11附录.12第1章 课程设计的总体方案1.1 课程设计的目的1.了解A/D芯片PCF8591转换性能及其编程方法。2.掌握A/D转换器与单片机的接口方法3.学会使用A/D转换器进行电压信号采集1.2课程设计的要求1.利用A/D芯片PCF8591及1602液晶显示屏组成。2.采用4路模拟量输入。3.尽量使用较少的元器件。 1.3课程设计的思路1.根据设计要求,选择AT89C51单片机为核心控制器件。2.A/D转换采用PCF8591实现,利用PCF8591将模拟电压转换为数字量。3.经单片机将数字量转换成对应电压值,电压显示采用4位一体的LED数码管。1.4 课程设计的方案硬件电路设计由6个部分组成; A/D转换电路,AT89C51单片机系统,LCD显示系统、时钟电路、复位电路以及测量电压输入电路。硬件电路设计框图如图1.1所示。 时钟电路 复位电路A/D转换电路模拟量输入显示系统AT89C51 P1 P2 P2 P0 图1.1 数字电压表系统硬件设计框图第2章 系统方案硬件设计2.1 单片机方案AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k字节Flash可擦写存储器(PEROM)。AT89C51器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,AT89C51的片内Flash允许程序存储器通过传统编程器反复编程。由于芯片内集成了通用8位中央处理器和Flash存储单元,功能强大的微处理器ATMEL AT89C51可为许多嵌入式控制应用系统提供高度灵活、高性价比的解决方案。 AT89C51具有如下特点:4k Bytes Flash存储器、128 bytes的RAM以及32个I/O口、2个16位定时/计数器,5个中断优先级2层中断嵌套中断、1个全双工串行通信口、片内时钟振荡器。 AT89C51芯片,如图2.1所示,各引脚功能如下:VCC:供电电压。 GND:接地。 P0口:为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。P1口:是个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。 图2.1 AT89C51设计P2口:为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高。P3口:管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。P3口也可作为AT89C51的一些特殊功能口,如所示: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口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。2.2 A/D转换器方案PCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。PCF8591的最大转化速率由IC总线的最大速率决定。1、主要技术指标和特性单独供电; PCF8591的操作电压范围2.5V-6V ;低待机电流 通过I2C总线串行输入/输出;PCF8591通过3个硬件地址引脚寻址 PCF8591的采样率由I2C总线速率决定; 4个模拟输入可编程为单端型或差分输入频道选择自动增量;PCF8591的模拟电压范围从Vss到VDD; PCF8591内置跟踪保持电路;8-bit逐次逼近A/D转换器;通过1路模拟输出实现DAC增益. 图2.2 PCF8591引脚图2. 3时钟、复位电路2.3.1时钟电路 AT89S51的时钟电路如图所示,在单片机的XTAL1和XTAL2两个管脚接一个晶振及两个电容构成了时钟电路电路中电容C1和C2对振荡频率有微调作用,在设计时取30uF。晶振为11.0592MHz,故选择12MHz即可。 图2.3 时钟电路 图2.4 复位电路2.3.2复位电路 AT89S51的复位电路如图所示。当单片机一上电,立即复位;另外,如果在运行中,外界干扰等因素使单片机的程序陷入死循环状态,就可以通过按键手动使其复位。复位也是使单片机退出低功耗工作方式而进入正常状态的一种操作。电容C3和电阻R10实现上电自动复位。增加按键开关S1和电阻R9又可实现按键手动复位功能。R9的作用是在S1按下的时候,防止电容C3放电电流过大烧坏开关S1的触点。 第3章 系统软件设计3.1程序设计总方案 根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图3.1所示。开始初始化调用A/D转换子程序调用显示子程序结束图3.1 数字式直流电压表主程序框图3.2系统子程序设计初始化程序:所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等3.3 A/D转换子程序A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图3.2所示。开始启动转换A/D转换结束?输出转换结果数值转换显示结束图3.2 A/D转换流程图3.4 显示子程序显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ左右时,能够产生比较好的显示效果,一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms10。在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0溢出中断功能实现11s定时,通过软件延时程序来实现5ms的延时。第四章 系统仿真4.1proteus仿真Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。4.2系统仿真图第5章 实习总结 经过两周的单片机课程设计,我有了很多的体会和感想。通过本次对简易电压表的设计,我们对单片机这门课程有了更进一步的了解。无论是在其硬件连接方面还是在软件编程方面,都取得了新的收获。本次课程设计采用了AT89C51单片机芯片,与以往我们我们所熟悉的C51芯片有许多不同之处,通过本次实验及查阅相关资料,我们对其之间的区别有了一定的认识,在本课题设计报告的硬件介绍部分也对其作了详细的论述。S51在C51的基础上增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。另外,在对单片机编程方面,我们又掌握了一些新的编程思想,使得程序更为简练、易懂,而且更为严谨,程序执行的稳定性得到了提高。 设计中我们还用到了模/数转换芯片PCF8591,以前在学单片机这门课程时只是对其理论知识有了初步的了解。通过本次实验,我们对它的工作原理彻底理解了,对其启动设置、转换结束判断以及输出控制等都基本掌握。电路连接方面,我们对其与单片机的连接也有了更为直观的认识,通过实验的摸索以及必要的理论知识,我们准确的实现了它于单片机的互连。设计过程中,我遇到过许多次失败的考验,比如,自己对单片机编程时遇到了很多阻碍,想要放弃,然而,就在要放弃的那一刻,我明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。于是,我坚持了下来。我非常感激实习老师对我的的指导和帮助,没有老师的指导,我只能晕头转向的瞎忙。 通过这次设计,这也对我们今后的工作敲响了警钟:要认真的看待每个需要处理的问题,不要认为事情过于简单,不能急于求成,但不要放弃。要保持头脑清醒。单片机是很重要的一门课程,老师和一些工作的朋友都曾说过,如果学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习。最后感谢老师对我的精心指导和帮助,感谢同学们对我的帮助。参考文献1 魏立峰 王宝兴.单片机原理及应用技术.北京:北京大学出版社, 2006 .2 张毅刚. MCS-51单片机应用与设计.哈尔滨:哈尔滨工业大学出版社,2003 .3 马忠梅 单片机的C语言应用程序设计.北京:北京航空航天大学出版社2003 4 PCF8591使用说明书 附录:#include /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #include /包含NOP空指令函数_nop_(); #include #define AddWr 0x90 /写数据地址 #define AddRd 0x91 /读数据地址 sbit Sda=P11; /定义总线连接端口 sbit Scl=P10; bit ADFlag; /定义AD采样标志位data unsigned char Display8;/定义临时存放数码管数值 void mDelay(unsigned char j) unsigned int i; for(;j0;j-) for(i=0;i125;i+) ; void Init_Timer1(void) TMOD |= 0x10; TH1=0xff; /* Init value */ TL1=0x00; EA=1; /* interupt enable */ ET1=1; /* enable timer1 interrupt */ TR1=1; /*- 启动IIC总线 -*/ void Start(void) Sda=1; _nop_(); Scl=1; _nop_(); Sda=0; _nop_(); Scl=0; /*- 停止IIC总线 -*/ void Stop(void) Sda=0; _nop_(); Scl=1; _nop_(); Sda=1; _nop_(); Scl=0; /*- 应答IIC总线 -*/ void Ack(void) Sda=0;_nop_();Scl=1;_nop_();Scl=0;_nop_();/*- 非应答启动IIC总线 -*/void NoAck(void) Sda=1; _nop_(); Scl=1; _nop_(); Scl=0; _nop_(); /*- 发送一个字节 -*/ void Send(unsigned char Data) unsigned char BitCounter=8; unsigned char temp; do temp=Data; Scl=0; _nop_(); if(temp&0x80)=0x80) Sda=1; else Sda=0;Scl=1;temp=Data1;Data=temp;BitCounter-; while(BitCounter); Scl=0; /*- 读入一个字节并返回 -*/ unsigned char Read(void) unsigned char temp=0; unsigned char temp1=0; unsigned char BitCounter=8; Sda=1; do Scl=0; _nop_(); Scl=1; _nop_(); if(Sda) temp=temp|0x01; else temp=temp&0xfe; if(BitCounter-1) temp1=temp1; temp=temp1; BitCounter-; while(BitCounter);return(temp); /*- 写入D/A数模转换值 -*/-*/ void DAC(unsigned char Data) Start(); Send(AddWr); /写入芯片地址 Ack(); Send(0x40); /写入控制位,使能DAC输出 Ack(); Send(Data); /写数据 Ack(); Stop(); /*- 读取AD模数转换的值,有返回值 -*/ unsigned int ReadADC(unsigned char Chl) unsigned int Data; Start(); /写入芯片地址 Send(AddWr); Ack(); Send(0x40|Chl);/写入选择的通道,本程序只用单端输入,差分部分需要自行添加 /Chl的值分别为0、1、2、3,分别
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025吉林松原市教育局直属学校招聘教育部直属六所师范大学应届毕业生44人模拟试卷(含答案详解)
- 2025年春季中国邮政储蓄银行上海分行校园招聘模拟试卷附答案详解
- 2025广西贵港市公安局港南分局面向社会招聘警务辅助人员16人模拟试卷附答案详解(黄金题型)
- 2025年中国黄虫灯行业市场分析及投资价值评估前景预测报告
- 2025年中国环氧浇注层压树脂行业市场分析及投资价值评估前景预测报告
- 2025江西吉安市泊士停车管理有限公司万安分公司派遣人员招聘1人考前自测高频考点模拟试题及答案详解(典优)
- 2025金沙县城乡建设发展集团有限公司模拟试卷及答案详解(夺冠系列)
- 2025年安徽中医药大学第二附属医院博士人才招聘4人考前自测高频考点模拟试题参考答案详解
- 2025北京大学电子学院招聘劳动合同制1人模拟试卷及1套完整答案详解
- 2025春季上海建工集团校园招聘正式启动考前自测高频考点模拟试题附答案详解(完整版)
- 2025年屠检考务试卷及答案
- 五金材料知识培训课件
- 2025年学校少先队知识应知应会题库(含答案)
- 2026中国农业银行秋季校园招聘备考考试题库附答案解析
- 世界粮食日节粮我先行节约粮食我在行动宣传课件
- 工业厂区场地平整建设方案
- 2025年秋新人教版数学二年级上册整册同步教案
- (2025秋新版)青岛版科学三年级上册全册教案
- 第14课《渡荆门送别》课件-2025-2026学年统编版语文八年级上册
- 住院病人防止走失课件
- 电力行业设备巡检标准与记录表
评论
0/150
提交评论