基于51单片机的数字电压表_第1页
基于51单片机的数字电压表_第2页
基于51单片机的数字电压表_第3页
基于51单片机的数字电压表_第4页
基于51单片机的数字电压表_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

基于51单片机的数字电压表文章目录前言继续整理总结之前的小项目,这一次的没有去将实物连接出来,运用的是Proteus仿真制作的,借着回忆还没有完全散去,写下此小项目。本设计中利用51单片机制作了一个简单的数字电压表,主要通过A/D转换器ADC0808把输入的模拟信号即电位器的电压值转换成数字信号,送到LED数码管进行数据显示,并预设了一个警报值,当超过警报值时,报警电路发出警报,灯泡闪烁。一、基本设计要求以单片机为核心,设计一个数字电压表。采用中断方式,对2路0~5V的模拟电压进行循环采集,采集的数据送LED数码管显示,并存入内存。超过界限时指示灯闪烁。ADC0808为ADC器件的AD转换电路,并对ADC采集所得信号的进一步处理。本程序将1.25V和2.5V作为两路输入的报警值当调节滑动变阻器时,可观察到显示的电压发生变化,且两路输入电压的测算值交替显示.。当任一路电压输入超过预设值时,LED闪烁,蜂鸣器发声。二、Proteus仿真三、使用步骤1.使用中断代码如下(示例):voidinit({TMOD=0x01;TH0=0xFC;TL0=0x18;ET0=1;EA=1;TR0=1;}voidinit0(interrupt1{staticu16i;TMOD=0x01;TH0=0xFC;TL0=0x18;i++;if(i==5000)//在中断里面进行设置ADC0808哪一个端口输出{ADDA=0;}if(i==10000){ADDA=1;i=0;}}。2.使用四位数码管显示voiddisplay({P3=0xff;P1=0xf7;P3=(~smgduan[dat/1000])&0x7f;delay5ms(;P3=0xff;P1=0xfb;P3=~smgduan[(dat/100)%10];delay5ms(;P3=0xff;P1=0xfd;P3=~smgduan[(dat/10)%10];delay5ms(;P3=0xff;P1=0xfe;P3=~smgduan[(dat%10)];delay5ms(;}。3.主函数及关于ADC0808的代码voidmain({while(1){LED=0;sound=0;ADDC=0;ADDB=0;init(;START=0;OE=0;START=1;START=0;while(EOC==0);OE=1;dat=P0;dat=dat*19.53125;display(;OE=0;if(ADDA==1){abc=dat*0.001;if(abc>1.25){sound=1;LED=1;delay(3500);LED=0;}}if(ADDA==0){abc=dat*0.001;if(abc>2.5){sound=1;LED=1;delay(3500);

温馨提示

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

评论

0/150

提交评论