收藏 分享(赏)

51单片机数字电压表设计.doc

上传人:精品资料 文档编号:8767744 上传时间:2019-07-11 格式:DOC 页数:6 大小:130.50KB
下载 相关 举报
51单片机数字电压表设计.doc_第1页
第1页 / 共6页
51单片机数字电压表设计.doc_第2页
第2页 / 共6页
51单片机数字电压表设计.doc_第3页
第3页 / 共6页
51单片机数字电压表设计.doc_第4页
第4页 / 共6页
51单片机数字电压表设计.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、51 单片机数字电压表设计题目要求:1. 设计要求以单片机为核心,设计一个数字电压表。采用中断方式,对 2 路 05V 的模拟电压进行循环采集,采集的数据送 LED 显示,并存入内存。超过界限时指示灯闪烁。2. 实验原理本题目本质上是以单片机为控制器,ADC0809 为 ADC 器件的 AD 转换电路,设计要求的电压显示,是对 ADC 采集所得信号的进一步处理。为得到可读的电压值,需根据 ADC 的原理,对采集所得的信号进行计算,并显示在 LED 上。本项目中 ADC0809 的参考电压为+5V,根据定义,采集所得的二进制信号 addata 所指代的电压值为:而若将其显示到小数点后两位,不考虑

2、小数点的存在(将其乘以 100) ,其计算的数值为:。将小数点显示在第二位数码管上,即为实际的电压。本示例程序将 1.25 V 和 2.5 V 作为两路输入的报警值,反映在二进制数字上,分别为 0x40和 0x80。当 AD 结果超过这一数值时,将会出现二极管闪烁和蜂鸣器发声。运行截图:程序代码:#include #include /定义绝对地址访问#include #define uchar unsigned char#define uint unsigned intsbit RS=P17; /定义 LCD1602 端口线sbit RW=P16;sbit EN=P15;sbit ST=P37

3、; /定义 0808 控制线sbit OE=P36;sbit EOC=P13;sbit CLK=P14;sbit buzzer = P11; /喇叭sbit alarm = P12; /leduchar data chnumber; /存放当前通道号uchar disbuffer4=0,.,0,0; /定义显示缓冲区uchar data ad_data8=0,0,0,0,0,0,0,0; /0808 的 8 个通道转换数据缓冲区uint temp;/检查忙函数void fbusy()P0 = 0xff;RS = 0;RW = 1;EN = 1;EN = 0;while(P0 EN = 1;/写

4、命令函数void wc51r(uchar j)fbusy();EN = 0;RS = 0;RW = 0;EN = 1;P0 = j;EN = 0;/写数据函数void wc51ddr(uchar j)fbusy(); /读状态;EN = 0;RS = 1;RW = 0;EN = 1;P0 = j;EN = 0;void init()wc51r(0x01); /清屏wc51r(0x38); /使用 8 位数据,显示两行,使用 5*7 的字型wc51r(0x0c); /显示器开,光标开,字符不闪烁wc51r(0x06); /字符不动,光标自动右移一格/*0808 转换子函数*/void test(

5、)uchar m; for (m=0;m= 125) /电压达到了 1.25alarm = 1; /开启 led 和报警buzzer = 1;elsealarm = 0; /关闭 led 和报警buzzer = 0;chnumber = 1; /下次采集第一个电压else /采集的第一个电压wc51r(0xc9); /显示当前通道 if(temp1 = 250 | alarm = 1) /电压达到了 2.5valarm = 1; /开启 led 和报警buzzer = 1;elsealarm = 0; /关闭 led 和报警buzzer = 0;chnumber = 0;/下次采集第零个电压for (i=0;i4;i+) /显示三个电压数字wc51ddr(disbufferi); wc51ddr(v); /最后显示出电压符号Proteus 仿真图:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报