没有合适的资源?快使用搜索试试~ 我知道了~
首页最简单的用单片机+ADC0808 protues仿真数字电压表
最简单的用单片机+ADC0808 protues仿真数字电压表

在学习单片机AT89S52十天后,老师发给我们的那个板子就基本不够用了,所以数字电压表就只能用protues仿真了,而且之前我在网上找了很多别人做的数字电压表实例,总感觉程序比较复杂,就尝试着自己做了下,没想到很简单的思路竟然就做出来了,当然里面还有很多不足,精度也不是很高,但是做出来的时候自己真的非常高兴!下面给出我写的C程序和仿真图,不足的地方希望可帮我修改下。
资源详情
资源评论
资源推荐

在学习单片机 AT89S52 十天后,老师发给我们的那个板子就基本不够用了,所以数字电压
表就只能用 protues 仿真了,而且之前我在网上找了很多别人做的数字电压表实例,总感觉
程序比较复杂,就尝试着自己做了下,没想到很简单的思路竟然就做出来了,当然里面还
有很多不足,精度也不是很高,但是做出来的时候自己真的非常高兴!下面给出我写的 C
程序和仿真图,不足的地方希望可帮我修改下。
可以说这个程序是非常简单的了,没有像其他人一样用中断啊,用字符串移动啊,用 ABS
地址头文件啊都没有,所以很适合新人理解吧。我就只想一个问题,把收到的 2 进制数字
量改成 10 进制就行了,仅此而已。
#include <reg52.h>
#include <math.h>
#define unit unsigned int
#define uchar unsigned char
sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
sbit led1=P2^0;
sbit led2=P2^1;
sbit led3=P2^2;
sbit led4=P2^3;
uchar ad_data;
uchar data dis[5]={0x00,0x00,0x00,0x00,0x00};
uchar code led_segment[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,
0x07,0x7F,0x6F};
void data_pro();
void delay (k);
void display();
void main(void) //主程序
{
ad_data=0; //采样值存储单元初始化为 0
while(1)
{
ST=0;
ST=1;
ST=0;
while(EOC==0)
OE=1;
ad_data=P0;
data_pro();
display();
}
















安全验证
文档复制为VIP权益,开通VIP直接复制

评论12