单片机课程设计对2路电压表进行循环数据采集_第1页
单片机课程设计对2路电压表进行循环数据采集_第2页
单片机课程设计对2路电压表进行循环数据采集_第3页
单片机课程设计对2路电压表进行循环数据采集_第4页
单片机课程设计对2路电压表进行循环数据采集_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理课程结业报告题目(14):数字电压表设计学号Z姓名:一、设计要求(1)以单片机为核心,设计一个数字电压表。(2)釆用中断方式,对2路05V的模拟电压进行循环釆集。(3)采集的数据送LED显示,并存入内存。(4)超过界线1.25V和2.5V警戒值时指示灯闪烁。二、设计原理(1)根据设计要求,选择AT89C51单片机为核心控制器件。(2)A/D转换釆用ADC0808,与单片机的接口为P1 口。(3)电压显示釆用4位一体的LED数码管。(4)LED数码的段码输入,由并行端口 P2产生:位码输入,用并行端P3 低四位产生。以单片机为控制器,ADC0809为ADC器件的AD转换电路,设计要求的

2、电 压显示,是对ADC采集所得信号的进一步处理。为得到可读的电压值,需根据ADC的原理,对釆集所得的68信号进行计 算,并显示在LED上。本项H中ADC0808的参考电压为+5V,根据定义,采集 所得的二进制信号addata所指代的电压值为:addata x5V256而若将其显示到小数点后两位,不考虑小数点的存在(将其乘以 100),其计算的数值为:addata x 100256x5V « addata x 1.96V将小数点显示在第二位数码管上,即为实际的电压。本设计程序将1.25V和2.5V作为两路输入的报警值,反映在二进制数字上,分 别为0x40和0x80o当AD结果超过这一数

3、值时,将会出现二极管闪烁和蜂鸣器 皆亠三、设计电路图3硕件电路设计硬件电路设计山6个部分组成:A/D转换电路、AT89C51单片机系统、LED 显示系统、时钟电路、复位电路以及测量电圧输入电路。硬件电路设计框图如图 一所示。图一数字电压表设计框图3.2总的设计电路根据以上的的硬件电路框图可以设计出以单片机为核心的数字电压表硬件 电路原理图如图二所示。U1° IXT/AUparaMtP13P1DphrisP13,1.0p”P11SP2&X pzv* rzjftxc P73" rz.wnc rzj«o RSh rz-mera&Ax: kivam raa

4、rAM raAiaR3«M raAWRSX IUWAFTP3Cr»X< P3YT>I< -znn! fliywrsPA«HUALC “【g MU 1 aw入4图二数字电压表电路图此电路的工作原理是:+5V模拟电压信号通过变阻器VR1分压后ADC0804 的VIN+, VIN通道进入,经过模/数转换后,产生相应的数字量经过其输出通 道DB0-DB,传送给AT89C51芯片的Pl 口,AT89C51负责把接收到的数字量经 过数据处理,产生正确的7段数码管的显示段码传送给四LED,同时它还通过 其四位I/O 口 P2.0、P2l、P2.2、P23产生位

5、选信号控制数码管的亮灭。四. 核心代码设计思路及程序流程图4.1程序设计总方案根据模块的划分原则,该程序划分初始化模块、A/D模块子程序和显示子程 序,这三个程序模块构成了整个系统软件的主程序,如图三所示。图三数字电压表主程序图4.2系统子程序设计4.2.1初始化程序所谓初始化,是对将要用到的051系列单片机内部部件或扩展芯片进行初 始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置, 开中断和打开定时器等。4.2.2A/D转换子程序A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数 值存入相应的内存单元,其转换流程图如图四所示。广程庁调川A/D转换子程F

6、F图四A/D转换流程图4.2.3显示子程序显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示 方式时,要使得LED显示的比较均匀,乂足够的亮度,需要设置适当的扫描频 率,当扫描频率在70Hz左右时,能够产生比较好的显示效果,一般采用间隔10ms 对LED进行动态扫描一次,没一位LED的显示时间为1ms。在本设计中,采用 定时器0溢岀中断功能实现定时,通过延时程序来实现5ms的延时。五、Proteus仿真图通过Keil生成.hex文件,然后将.hex文件导入AT89C51中,通过Proteus 进行仿真,仿真结果如下:1.当输入电压为2.21V时,LED灯不亮,仿真显示结果如下:

7、JCTAU52RWT?s mKKfl2.当输入电压为2.80V时,LED灯壳,蜂鸣器发出声音,仿真结果如下:1'2LSIA灯知1foivoor©.¥A>1rc.A>«wmnrAW FCL7ZA>?rziy.«F3.VJ0riZAiWALCOiQCM 1rocrm"Z C>1391 4pazWfnR1VTTJPIC P1?93X/7K03丽OEOUT3>16OUT?A>>0OUTGROUT»A>> AOUT* otmtnourzOUT1MS07IUKJSTWK2 inQSOM

8、M3羞B迈14-FFFF 蚤*2六、Keil核心源代码主程序:#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit ST=P2A4;sbit OE=P2A6;sbit ALE=P2A4;sbit EOC=P2A5;sbit BUZZER二P2T;sbit D1=P2A7;long int datas,bai,she,ge;uchar duan;uchar code num=0x3f,0x06,0x5b,0x4f,0x66,0x6d/)x7d

9、,0x07,0x7f,0x6f;uchar code num_dot= 0xbf,0x86,0xdb,0xcf,0xe6,0xed;uchar code wei= 0x0d,0x0b,0x07;void delay(uint z)uchar i;while(z)for(i=0;i<120;i+);void display()uchar i=0; bai=(datas*500/255)/100; she=(datas*5OO/255)/lO % 10; ge=(datas*500/255) % 10;for(i=0;i<3;i+)Pl=weii;if(i=0)duan=num_dotbai; else if(i=l)duan=numshe;) else if(i=2) duan=numge;) P3=duan;delay(2);void niian(void)if(Pl<0x40IIP0>0x80)BUZZER=1; Dl = l;elseBUZZER=0; Dl=0;void main()TMOD=0x02;TH0=0x216;TL0=0x216;EA=1;ET0=l;TR0=l; while(l)ST=OE=0;ALE=1;ST=1;ALE=0;ST=0;while(!EOC);OE=1;datas=PO;display(

温馨提示

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

评论

0/150

提交评论